OSDN Git Service
JF Bastien [Sat, 27 Feb 2016 16:38:23 +0000 (16:38 +0000)]
WebAssembly: fix build
It was broken by the work for PR26753.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262140
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Sat, 27 Feb 2016 14:19:19 +0000 (14:19 +0000)]
Revert "[sancov] do not instrument nodes that are full pre-dominators"
This reverts commit r262103, as it broke all ARM and AArch64 bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262139
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 27 Feb 2016 13:26:58 +0000 (13:26 +0000)]
Tidyup for loops - don't repeat upper limit evaluation if you don't have to. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262137
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Dewhurst [Sat, 27 Feb 2016 12:52:26 +0000 (12:52 +0000)]
Addition of tests to previous check-in. Tests for coprocessor register usage in Sparc.
Previous check-in message was:
The patch adds missing registers and instructions to complete all the registers supported by the Sparc v8 manual.
These are all co-processor registers, with the exception of the floating-point deferred-trap queue register.
Although these will not be lowered automatically by any instructions, it allows the use of co-processor
instructions implemented by inline-assembly.
Code Reviewed at http://reviews.llvm.org/D17133, with the exception of a very small change in brace placement in SparcInstrInfo.td,
which was formerly causing a problem in the disassembly of the %fq register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262135
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 27 Feb 2016 12:51:46 +0000 (12:51 +0000)]
[X86][AVX] vpermilvar.pd mask element indices only use bit1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262134
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Dewhurst [Sat, 27 Feb 2016 12:49:59 +0000 (12:49 +0000)]
The patch adds missing registers and instructions to complete all the registers supported by the Sparc v8 manual.
These are all co-processor registers, with the exception of the floating-point deferred-trap queue register.
Although these will not be lowered automatically by any instructions, it allows the use of co-processor
instructions implemented by inline-assembly.
Code Reviewed at http://reviews.llvm.org/D17133, with the exception of a very small change in brace placement in SparcInstrInfo.td,
which was formerly causing a problem in the disassembly of the %fq register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262133
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 27 Feb 2016 12:33:08 +0000 (12:33 +0000)]
[X86][AVX] Added AVX1 target shuffle combine tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262132
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 27 Feb 2016 11:49:16 +0000 (11:49 +0000)]
Strip trailing whitespace. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262131
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 27 Feb 2016 11:07:16 +0000 (11:07 +0000)]
[PM] Loosen the regex for the proxy template name even further to cope
with 'class' keywords in the template arguments and other silliness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262130
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 27 Feb 2016 10:48:14 +0000 (10:48 +0000)]
[PM] Use a boring regex instead of explicitly naming the analysis
manager as some compilers print the typedef name and others print the
"canonical" name of the underlying class template.
This isn't really an important artifact of the test anyways so it seems
fine to just loosen the test assertions here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262129
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 27 Feb 2016 10:45:35 +0000 (10:45 +0000)]
[PM] Provide explicit instantiation declarations and definitions for the
PassManager and AnalysisManager template specializations as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262128
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 27 Feb 2016 10:38:10 +0000 (10:38 +0000)]
[PM] Provide two templates for the two directionalities of analysis
manager proxies and use those rather than repeating their definition
four times.
There are real differences between the two directions: outer AMs are
const and don't need to have invalidation tracked. But every proxy in
a particular direction is identical except for the analysis manager type
and the IR unit they proxy into. This makes them prime candidates for
nice templates.
I've started introducing explicit template instantiation declarations
and definitions as well because we really shouldn't be emitting all this
everywhere. I'm going to go back and add the same for the other
templates like this in a follow-up patch.
I've left the analysis manager as an opaque type rather than using two
IR units and requiring it to be an AnalysisManager template
specialization. I think its important that users retain the ability to
provide their own custom analysis management layer and provided it has
the appropriate API everything should Just Work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262127
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 27 Feb 2016 09:38:05 +0000 (09:38 +0000)]
DAGCombiner: Relax sqrt NaN folding check
This is OK for +0 since compares to +/-0 give the same result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262125
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 27 Feb 2016 08:53:55 +0000 (08:53 +0000)]
AMDGPU: Split vi-insts subtarget feature
This will be more useful for marking builtins acceptable for which
subtargets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262121
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 27 Feb 2016 08:53:52 +0000 (08:53 +0000)]
AMDGPU: Add s_sleep intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262120
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 27 Feb 2016 08:53:46 +0000 (08:53 +0000)]
AMDGPU: Implement readcyclecounter
This matches the behavior of the HSAIL clock instruction.
s_realmemtime is used if the subtarget supports it, and falls
back to s_memtime if not.
Also introduces new intrinsics for each of s_memtime / s_memrealtime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262119
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 07:00:35 +0000 (07:00 +0000)]
CodeGen: Avoid implicit conversion in MachineInstrBuilder, NFC
Avoid another implicit conversion from MachineInstrBundleIterator to
MachineInstr*, this time in MachineInstrBuilder.h (this is in pursuit of
PR26753).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262118
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 06:51:00 +0000 (06:51 +0000)]
CodeGen: Remove implicit iterator to pointer conversions, NFC
Remove a couple of implicit conversions from MachineInstrBundleIterator
to MachineInstr*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262116
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 06:40:41 +0000 (06:40 +0000)]
CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC
Take MachineInstr by reference instead of by pointer in SlotIndexes and
the SlotIndex wrappers in LiveIntervals. The MachineInstrs here are
never null, so this cleans up the API a bit. It also incidentally
removes a few implicit conversions from MachineInstrBundleIterator to
MachineInstr* (see PR26753).
At a couple of call sites it was convenient to convert to a range-based
for loop over MachineBasicBlock::instr_begin/instr_end, so I added
MachineBasicBlock::instrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262115
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Sat, 27 Feb 2016 06:01:26 +0000 (06:01 +0000)]
[instrprof] Use __{start,stop}_SECNAME on PS4 too.
Summary:
The PS4 linker seems to handle this fine.
Hi David, it seems that indeed most ELF linkers support
__{start,stop}_SECNAME, as our proprietary linker does as well.
This follows the pattern of r250679 w.r.t. the testing.
Maggie, Phillip, Paul: I've tested this with the PS4 SDK 3.5 toolchain
prerelease and it seems to work fine.
Reviewers: davidxl
Subscribers: probinson, phillip.power, MaggieYi
Differential Revision: http://reviews.llvm.org/D17672
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262112
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Sat, 27 Feb 2016 05:50:40 +0000 (05:50 +0000)]
[sancov] properly initializing pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262111
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 27 Feb 2016 05:45:12 +0000 (05:45 +0000)]
[libFuzzer] don't emit callbacks to sanitizer run-time in -fsanitize-coverage=trace-pc mode; update libFuzzer doc for previous commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262110
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Sat, 27 Feb 2016 05:18:30 +0000 (05:18 +0000)]
Suppress an uncovered switch warning [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262109
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 27 Feb 2016 04:34:07 +0000 (04:34 +0000)]
[LICM] Teach LICM how to handle cases where the alias set tracker was
merged into a loop that was subsequently unrolled (or otherwise nuked).
In this case it can't merge in the ASTs for any remaining nested loops,
it needs to re-add their instructions dircetly.
The fix is very isolated, but I've pulled the code for merging blocks
into the AST into a single place in the process. The only behavior
change is in the case which would have crashed before.
This fixes a crash reported by Mikael Holmen on the list after r261316
restored much of the loop pass pipelining and allowed us to actually do
this kind of nested transformation sequenc. I've taken that test case
and further reduced it into the somewhat twisty maze of loops in the
included test case. This does in fact trigger the bug even in this
reduced form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262108
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 27 Feb 2016 03:14:23 +0000 (03:14 +0000)]
[libFuzzer] fixing the bot
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262106
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Sat, 27 Feb 2016 02:21:44 +0000 (02:21 +0000)]
[sancov] print_coverage_points command.
Differential Revision: http://reviews.llvm.org/D17670
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262104
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Sat, 27 Feb 2016 02:10:27 +0000 (02:10 +0000)]
[sancov] do not instrument nodes that are full pre-dominators
Summary:
Without tree pruning clang has 2,667,552 points.
Wiht only dominators pruning: 1,515,586.
With both dominators & predominators pruning: 1,340,534.
Differential Revision: http://reviews.llvm.org/D17671
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262103
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 27 Feb 2016 01:50:16 +0000 (01:50 +0000)]
[libFuzzer] speedup path coverage handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262102
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Sat, 27 Feb 2016 01:10:43 +0000 (01:10 +0000)]
Minor code cleanup. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262096
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Sat, 27 Feb 2016 00:53:54 +0000 (00:53 +0000)]
[InstCombine] Be more conservative about removing stackrestore
We ended up removing a save/restore pair around an inalloca call,
leading to a miscompile in Chromium.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262095
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 26 Feb 2016 23:44:10 +0000 (23:44 +0000)]
Revert r262092, caught LLD tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262093
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 26 Feb 2016 23:34:02 +0000 (23:34 +0000)]
[FileCheck] Abort if -NOT is combined with another suffix.
Combinations of suffixes that look useful actually are ignored;
complaining about them will avoid mistakes.
Differential Revision: http://reviews.llvm.org/D17587
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262092
91177308-0d34-0410-b5e6-
96231b3b80d8
Cong Hou [Fri, 26 Feb 2016 23:25:30 +0000 (23:25 +0000)]
Fix a bug in isVectorReductionOp() in SelectionDAGBuilder.cpp that may cause assertion failure on AArch64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262091
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 26 Feb 2016 23:00:03 +0000 (23:00 +0000)]
[X86] Move an encoding test from CodeGen to MC. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262089
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 26 Feb 2016 23:00:00 +0000 (23:00 +0000)]
[X86] Delete old redundant test. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262088
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 26 Feb 2016 22:59:57 +0000 (22:59 +0000)]
[X86] Fix a stale comment. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262087
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 26 Feb 2016 22:59:41 +0000 (22:59 +0000)]
[X86] Remove the unused SDTX86atomicBinary. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262086
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Fri, 26 Feb 2016 22:53:59 +0000 (22:53 +0000)]
[LVI] Extend select handling to catch min/max/clamp idioms
Most of this is fairly straight forward. Add handling for min/max via existing matcher utility and ConstantRange routines. Add handling for clamp by exploiting condition constraints on inputs.
Note that I'm only handling two constant ranges at this point. It would be reasonable to consider treating overdefined as a full range if the instruction is typed as an integer, but that should be a separate change.
Differential Revision: http://reviews.llvm.org/D17184
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262085
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 26 Feb 2016 22:42:23 +0000 (22:42 +0000)]
[libFuzzer] add -print_final_stats=1 flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262084
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 26 Feb 2016 22:28:50 +0000 (22:28 +0000)]
Strip trailing whitespace. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262083
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Fri, 26 Feb 2016 22:08:18 +0000 (22:08 +0000)]
[ConstantRange] Add umin/smin operators
This was split off from http://reviews.llvm.org/D17184.
Reviewed by: Sanjoy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262080
91177308-0d34-0410-b5e6-
96231b3b80d8
Kit Barton [Fri, 26 Feb 2016 21:59:44 +0000 (21:59 +0000)]
[PPC] Legalize FNEG on PPC when possible
Currently we always expand ISD::FNEG. For v4f32 and v2f64 vector types VSX has
native support for this opcode
Phabricator: http://reviews.llvm.org/D17647
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262079
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 26 Feb 2016 21:56:27 +0000 (21:56 +0000)]
Fix spelling. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262078
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 21:51:44 +0000 (21:51 +0000)]
[x86, InstCombine] transform x86 AVX2 masked stores to LLVM intrinsics
Replicate everything for integers...because x86.
Continuation of:
http://reviews.llvm.org/rL262064
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262077
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 26 Feb 2016 21:33:56 +0000 (21:33 +0000)]
[libFuzzer] initial implementation of path coverage based on -fsanitize-coverage=trace-pc. This does not scale well yet, but already cracks FullCoverageSetTest in seconds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262073
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 26 Feb 2016 21:21:40 +0000 (21:21 +0000)]
[CMake] Allow LLVM_TARGETS_TO_BUILD to accept "Native"
This allows a user to specify "Native" as a target when configuring LLVM. Native will resolve to the LLVM_NATIVE_ARCH, which is the target that supports code generation for the host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262070
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 26 Feb 2016 21:18:34 +0000 (21:18 +0000)]
Reapply r262054 with triple fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262069
91177308-0d34-0410-b5e6-
96231b3b80d8
Kit Barton [Fri, 26 Feb 2016 21:11:55 +0000 (21:11 +0000)]
Power9] Implement new vsx instructions: compare and conversion
This change implements the following vsx instructions:
Quad/Double-Precision Compare:
xscmpoqp xscmpuqp
xscmpexpdp xscmpexpqp
xscmpeqdp xscmpgedp xscmpgtdp xscmpnedp
xvcmpnedp(.) xvcmpnesp(.)
Quad-Precision Floating-Point Conversion
xscvqpdp(o) xscvdpqp
xscvqpsdz xscvqpswz xscvqpudz xscvqpuwz xscvsdqp xscvudqp
xscvdphp xscvhpdp xvcvhpsp xvcvsphp
xsrqpi xsrqpix xsrqpxp
28 instructions
Phabricator: http://reviews.llvm.org/D16709
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262068
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 26 Feb 2016 21:07:04 +0000 (21:07 +0000)]
[CMake] Add the gold plugin before clang
This is needed to connect dependencies between the LLVMgold plugin and the clang stage-2 builds due to limitations in ExternalProject_Add.
Patch by Mike Edwards
Differential Revision: http://reviews.llvm.org/D17655
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262067
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 26 Feb 2016 21:07:02 +0000 (21:07 +0000)]
[CMake] Assigning the LTO component to lto.h
This makes it so lto.h is installed when you run the install-LTO target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262066
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 21:04:14 +0000 (21:04 +0000)]
[x86, InstCombine] transform x86 AVX masked stores to LLVM intrinsics
The intended effect of this patch in conjunction with:
http://reviews.llvm.org/rL259392
http://reviews.llvm.org/rL260145
is that customers using the AVX intrinsics in C will benefit from combines when
the store mask is constant:
void mstore_zero_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(0), v);
}
void mstore_fake_ones_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(1), v);
}
void mstore_ones_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(0x80000000), v);
}
void mstore_one_set_elt_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set_epi32(0x80000000, 0, 0, 0), v);
}
...so none of the above will actually generate a masked store for optimized code.
Differential Revision: http://reviews.llvm.org/D17485
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262064
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 20:59:05 +0000 (20:59 +0000)]
[x86] refactor to eliminate duplicated code; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262062
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Fri, 26 Feb 2016 20:49:07 +0000 (20:49 +0000)]
Fix warning in DwarfCFIException. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262061
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 26 Feb 2016 20:41:07 +0000 (20:41 +0000)]
Revert r262054 on one file that fails sometimes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262060
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Fri, 26 Feb 2016 20:30:37 +0000 (20:30 +0000)]
Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC
Summary: This is extracted from D17555
Reviewers: davidxl, reames, sanjoy, MatzeB, pete
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D17580
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262058
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Fri, 26 Feb 2016 20:05:02 +0000 (20:05 +0000)]
[GlobalISel] Fix a ranlib warning about empty TOC.
Fixes PR26733
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262057
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Fri, 26 Feb 2016 19:40:34 +0000 (19:40 +0000)]
Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT.
FileCheck actually doesn't support combo suffixes.
Differential Revision: http://reviews.llvm.org/D17588
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262054
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Fri, 26 Feb 2016 18:55:22 +0000 (18:55 +0000)]
Fix Sparc 32bit Lowering to rebundle up v2i32 values.
Summary: Fix LowerCall to rebundle v2i32 values after lowering and add testcase
Reviewers: jyknight
Subscribers: llvm-commits, jyknight
Differential Revision: http://reviews.llvm.org/D17615
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262048
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 18:42:50 +0000 (18:42 +0000)]
[x86, AVX] fold 'isPositive' 256-bit vector integer operations (PR26701)
This extends the fold introduced with:
http://reviews.llvm.org/rL262036
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262047
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 26 Feb 2016 18:08:59 +0000 (18:08 +0000)]
[IR] Optimize bitfield layout of Value for MSVC
This should save a pointer of padding from all MSVC Value subclasses.
Recall that MSVC will not pack the following bitfields together:
unsigned Bits : 29;
unsigned Flag1 : 1;
unsigned Flag2 : 1;
unsigned Flag3 : 1;
Add a static_assert because LLVM developers always trip over this
behavior. This regressed in June.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262045
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 18:07:58 +0000 (18:07 +0000)]
[x86, AVX] add 256-bit tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262044
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Fri, 26 Feb 2016 17:01:45 +0000 (17:01 +0000)]
[CMAKE] Update build on recent Haiku
This patch updates cmake build scripts to build on Haiku. It adds Haiku x86_64 to config.guess.
Please consider reviewing.
Pathc by Jérôme Duval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262038
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 16:56:03 +0000 (16:56 +0000)]
[x86, SSE] fold 'isPositive' vector integer operations (PR26701)
This is one of the cases shown in:
https://llvm.org/bugs/show_bug.cgi?id=26701
Shift and negate is what InstCombine appears to prefer, so I've started with that pattern.
Note that the 'pcmpeq' instructions are always generating the negative one for the actual
'pcmpgt' comparison in each case (side note: why isn't there an alias mnemonic for that?).
Differential Revision: http://reviews.llvm.org/D17630
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262036
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 26 Feb 2016 16:53:19 +0000 (16:53 +0000)]
[WinEH] Fix funclet return block clobber mask placement
MBB slot index intervals are half open, not closed. getMBBEndIndex()
returns the slot index of the start of the next block in layout order.
Placing a register mask there is incorrect if the successor of the
funclet return is not laid out after the return. Clang generates IR for
catch bodies before generating the following normal code, so we never
noticed this issue until the D frontend authors filed a bug about it.
Instead, we can put the clobber mask on the last instruction of the
funclet return block. We still aren't using a register mask operand on
the CATCHRET instruction because it would cause PEI to spill all CSRs,
including XMM regs, in the prologue.
Fixes PR26679.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262035
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 26 Feb 2016 12:30:18 +0000 (12:30 +0000)]
[PM] Finish removing references to fix MSVC builds. Somehow adding base
classes changed whether the decltype of these expressions was
a reference. I'm somewhat horrified why, and there may need to be
a deeper fix on MSVC, but this should at least get the bots a step
further.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Dewhurst [Fri, 26 Feb 2016 12:20:10 +0000 (12:20 +0000)]
Reverting breaking change. Sorry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 26 Feb 2016 12:17:54 +0000 (12:17 +0000)]
[PM] Speculative patch to try and fix MSVC's compilation.
No idea why r262004 triggered this, but just trying to fix somehow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Dewhurst [Fri, 26 Feb 2016 11:46:47 +0000 (11:46 +0000)]
Reviewed at reviews.llvm.org/D17133
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 26 Feb 2016 11:44:45 +0000 (11:44 +0000)]
[PM] Introduce CRTP mixin base classes to help define passes and
analyses in the new pass manager.
These just handle really basic stuff: turning a type name into a string
statically that is nice to print in logs, and getting a static unique ID
for each analysis.
Sadly, the format of passes in anonymous namespaces makes using their
names in tests really annoying so I've customized the names of the no-op
passes to keep tests sane to read.
This is the first of a few simplifying refactorings for the new pass
manager that should reduce boilerplate and confusion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262004
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Dewhurst [Fri, 26 Feb 2016 11:38:24 +0000 (11:38 +0000)]
Initial test commit only
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262003
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 26 Feb 2016 10:02:04 +0000 (10:02 +0000)]
[PM] Remove a FIXME now that it is no longer needed.
This has been fixed for some time, but the code hadn't been updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261996
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikolay Haustov [Fri, 26 Feb 2016 09:51:05 +0000 (09:51 +0000)]
[AMDGPU] Assembler: Basic support for MIMG
Add parsing and printing of image operands. Matches legacy sp3 assembler.
Change image instruction order to have data/image/sampler operands in the beginning. This is needed because optional operands in MC are always last.
Update SITargetLowering for new order.
Add basic MC test.
Update CodeGen tests.
Review: http://reviews.llvm.org/D17574
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 26 Feb 2016 09:37:52 +0000 (09:37 +0000)]
[PM] Clean up some formatting with the latest clang-format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261992
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 26 Feb 2016 09:10:53 +0000 (09:10 +0000)]
[AArch64] Slight cleanup in FPLoadBalancing
Instead of the convoluted if-statment we can just use getColor. This also fixes
a bug where we relied upon the parity of tablegen-generated register indexes
(instead of using the machine encoding).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261990
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 26 Feb 2016 08:52:29 +0000 (08:52 +0000)]
[X86][F16C] Added native IR half/float conversion tests.
Placeholder tests until we start improving native vector support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261989
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 26 Feb 2016 07:30:15 +0000 (07:30 +0000)]
llvm-dwp: provide diagnostics for duplicate DWO IDs
These diagnostics aren't perfect - in the case of merging several dwos
into dwps and those dwps into more dwps - just getting the message about
the original source file name might not be much help (since it's the
same in both dwos, by definition - but doesn't tell you which chain of
dwps to backtrack)
It might be worth adding the DW_AT_dwo_id to the split debug info to
improve the diagnostic experience - might help track down the duplicates
better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261988
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 26 Feb 2016 07:04:58 +0000 (07:04 +0000)]
llvm-dwp: Support empty .dwo files
Though a bit odd, this is handy for a few reasons - for example, in a
build system that wants consistent input/output of build steps, but
where split-dwarf might be overriden/disabled by the user on a per-file
basis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261987
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 06:50:29 +0000 (06:50 +0000)]
[X86] Null out some redundant patterns for masked vector register to register moves. These can be accomplished with both aligned and unaligned opcodes.
Currently aligned is what is being used so remove the redundant patterns for the unaligned versions. But don't do this for the byte and word vector types since they don't have aligned versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261985
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 06:50:27 +0000 (06:50 +0000)]
[TableGen] Fix typos in comments. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261984
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 06:50:24 +0000 (06:50 +0000)]
[X86] Add test cases for r261977 and fix a grammatical error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261983
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Fri, 26 Feb 2016 06:06:04 +0000 (06:06 +0000)]
[JumpThreading] Simplify Instructions first in ComputeValueKnownInPredecessors()
This change tries to find more opportunities to thread over basic blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261981
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 05:29:39 +0000 (05:29 +0000)]
[X86] Remove a couple returns after llvm_unreachables. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261979
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 05:29:35 +0000 (05:29 +0000)]
[X86] Use inclusive ranges for XMM/YMM/ZMM registers in is32Extended and isX86_64ExtendedReg. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261978
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Feb 2016 05:29:32 +0000 (05:29 +0000)]
[X86] Explicitly diagnose use of %xmm16-%xmm31, %ymm16-%ymm31 and %zmm16-%zmm31 when AVX512 is not enabled in the asm parser.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261977
91177308-0d34-0410-b5e6-
96231b3b80d8
Hongbin Zheng [Fri, 26 Feb 2016 03:41:47 +0000 (03:41 +0000)]
Another fix the testcase introduced by r261903 - Add the missing matches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261971
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 26 Feb 2016 03:33:59 +0000 (03:33 +0000)]
Minor doc fix: statepoints are invokable too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261968
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 26 Feb 2016 03:18:55 +0000 (03:18 +0000)]
MachineCopyPropagation: Catch copies of the form A<-B;A<-B
Differential Revision: http://reviews.llvm.org/D17475
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261966
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 26 Feb 2016 03:18:50 +0000 (03:18 +0000)]
MachineCopyPropagation: Keep scanning through instructions with regmasks
This also simplifies the code by removing the overly conservative
NoInterveningSideEffect() function. This function checked:
- That the two copies belong to the same block: We only process one
block at a time and clear our maps in between it is impossible to find a
copy from a different block.
- There is no terminator between the two copy instructions: This is not
allowed anyway (the MachineVerifier would complain)
- Does not have instructions with hasUnmodeledSideEffects() or isCall()
set: Even for those instructuction we must have all clobbers/defs of
registers explicit as an operand. If the register is explicitely
clobbered we would never come to the point of checking for
NoInterveningSideEffect() anyway.
(I also checked this with a temporary build of the test-suite with all
potentially failing conditions in NoInterveningSideEffect() turned into
asserts)
Differential Revision: http://reviews.llvm.org/D17474
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261965
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 26 Feb 2016 03:05:10 +0000 (03:05 +0000)]
[PGO] Add test case to ensure covmap section is not allocatable.
Differential Revision: http://reviews.llvm.org/D17324
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261959
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Fri, 26 Feb 2016 02:57:05 +0000 (02:57 +0000)]
[LoopUnrollAnalyzer] Check that we're using SCEV for the same loop we're simulating.
Summary: Check that we're using SCEV for the same loop we're simulating. Otherwise, we might try to use the iteration number of the current loop in SCEV expressions for inner/outer loops IVs, which is clearly incorrect.
Reviewers: chandlerc, hfinkel
Subscribers: sanjoy, llvm-commits, mzolotukhin
Differential Revision: http://reviews.llvm.org/D17632
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261958
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Fri, 26 Feb 2016 02:07:36 +0000 (02:07 +0000)]
Minor code cleanups. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261955
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Fri, 26 Feb 2016 01:44:04 +0000 (01:44 +0000)]
[UnitTests] UnrollAnalyzer: make unit-test more general so that it can cover more cases in future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261954
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Fri, 26 Feb 2016 01:17:22 +0000 (01:17 +0000)]
[sancov] Pruning full dominator blocks from instrumentation.
Summary:
This is the first simple attempt to reduce number of coverage-
instrumented blocks.
If a basic block dominates all its successors, then its coverage
information is useless to us. Ingore such blocks if
santizer-coverage-prune-tree option is set.
Differential Revision: http://reviews.llvm.org/D17626
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261949
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 26 Feb 2016 01:14:27 +0000 (01:14 +0000)]
[x86, SSE] add tests to show missing pcmp folds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261948
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 26 Feb 2016 00:54:08 +0000 (00:54 +0000)]
Add forward declarations /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261946
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 26 Feb 2016 00:04:25 +0000 (00:04 +0000)]
[WinEH] Don't remove unannotated inline-asm calls
Inline-asm calls aren't annotated with funclet bundle operands because
they don't throw and cannot be inlined through. We shouldn't require
them to bear an funclet bundle operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261942
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 25 Feb 2016 23:34:21 +0000 (23:34 +0000)]
More internal details of SROA pass to library visibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261934
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Thu, 25 Feb 2016 22:05:19 +0000 (22:05 +0000)]
Support: Give ManagedStatic's helper object library visibility
It doesn't make much sense to export these symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261931
91177308-0d34-0410-b5e6-
96231b3b80d8
Hemant Kulkarni [Thu, 25 Feb 2016 20:47:07 +0000 (20:47 +0000)]
Reverts change r261907 and r261918
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261927
91177308-0d34-0410-b5e6-
96231b3b80d8
Hongbin Zheng [Thu, 25 Feb 2016 19:16:40 +0000 (19:16 +0000)]
Use regex in testcase, do not fail windows bots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261922
91177308-0d34-0410-b5e6-
96231b3b80d8