summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* Add the printing the Mach-O (__LLVM,__bundle) xar archive file section ↵Kevin Enderby2016-05-234-0/+64
| | | | | | | | | | | | | "verbosely" to llvm-objdump. This section is created with -fembed-bitcode option. This requires the use of libxar and the Cmake and lit support were crafted by Chris Bieneman! rdar://26202242 llvm-svn: 270491
* [X86][SSE] Use shuffle/sext instead of deprecated (+ auto-upgraded) pmovsxwd ↵Simon Pilgrim2016-05-231-5/+4
| | | | | | intrinsic call llvm-svn: 270489
* [SPARC] Fix 8 and 16-bit atomic load and store.James Y Knight2016-05-231-3/+35
| | | | | | | | | They were accidentally using the 32-bit load/store instruction for 8/16-bit operations, due to incorrect patterns (8/16-bit cmpxchg and atomicrmw will be fixed in subsequent changes) llvm-svn: 270486
* Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2Reid Kleckner2016-05-232-0/+158
| | | | | | | | | | | | | | This effectively revers commit r270389 and re-lands r270106, but it's almost a rewrite. The behavior change in r270106 was that we could no longer assume that each LF_FUNC_ID record got its own type index. This patch adds a map from DINode* to TypeIndex, so we can stop making that assumption. This change also emits padding bytes between type records similar to the way MSVC does. The size of the type record includes the padding bytes. llvm-svn: 270485
* [InstCombine] Fix assertion when bitcast is converted to gepGerolf Hoflehner2016-05-231-0/+32
| | | | | | | | | | When an aggregate contains an opaque type its size cannot be determined. This triggers an "Invalid GetElementPtrInst indices for type" assert in function checkGEPType. The fix suppresses the conversion in this case. http://reviews.llvm.org/D20319 llvm-svn: 270479
* [LoopUnroll] Enable advanced unrolling analysis by default.Michael Zolotukhin2016-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch turns on LoopUnrollAnalyzer by default. To mitigate compile time regressions, I chose very conservative thresholds for now. Later we can make them more aggressive, but it might require being smarter in which loops we're optimizing. E.g. currently the biggest issue is that with more agressive thresholds we unroll many cold loops, which increases compile time for no performance benefit (performance of those loops is improved, but it doesn't matter since they are cold). Test results for compile time(using 4 samples to reduce noise): ``` MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes 5.19% SingleSource/Benchmarks/Polybench/medley/reg_detect/reg_detect 4.19% MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow 3.39% MultiSource/Applications/JM/lencod/lencod 1.47% MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1 -6.06% ``` I didn't see any performance changes in the testsuite, but it improves some internal tests. Reviewers: hfinkel, chandlerc Subscribers: llvm-commits, mzolotukhin Differential Revision: http://reviews.llvm.org/D20482 llvm-svn: 270478
* llvm-dwp: More error handling around invalid compressed sectionsDavid Blaikie2016-05-233-1/+3
| | | | llvm-svn: 270466
* [profile] show more statisticsXinliang David Li2016-05-231-2/+8
| | | | | | Add value profile statistics with the 'show' command. llvm-svn: 270450
* [BPF] Remove exit-on-error flag in test (PR27766)Diana Picus2016-05-231-1/+1
| | | | | | | | | | | | | | The exit-on-error flag on the many_args1.ll test is needed to avoid an unreachable in BPFTargetLowering::LowerCall. We can also avoid it by ignoring any superfluous arguments to the call (i.e. any arguments after the first 5). Fixes PR27766. Differential Revision: http://reviews.llvm.org/D20471 v2 of r270419 llvm-svn: 270440
* [X86][RTM] _xabort() should not have "noreturn" attributeAsaf Badouh2016-05-231-2/+16
| | | | | | Differential Revision: http://reviews.llvm.org/D20518 llvm-svn: 270437
* [X86][AVX] Added tests that access ymm registers before and after explicit ↵Simon Pilgrim2016-05-231-6/+60
| | | | | | vzeroupper/vzeroall calls llvm-svn: 270434
* Reverts "[BPF] Remove exit-on-error flag in test (PR27766)"Renato Golin2016-05-231-1/+1
| | | | | | | | This patch reverts r270419 because it broke a lot of buildbots, mostly Windows. We'd like help in investigating the issues, but for now, it should stay out. llvm-svn: 270433
* [X86][SSE] Regenerated scalar load folding testsSimon Pilgrim2016-05-231-22/+46
| | | | llvm-svn: 270431
* [X86][SSE] Regenerated partial register update testsSimon Pilgrim2016-05-231-38/+46
| | | | llvm-svn: 270430
* [X86][SSE] Updated sse/avx cvtsi2sd tests to use non-constant valueSimon Pilgrim2016-05-232-14/+10
| | | | llvm-svn: 270425
* [X86][SSE2] Regenerated sse2 upgraded intrinsics testsSimon Pilgrim2016-05-231-5/+18
| | | | llvm-svn: 270423
* [X86][AVX] Regenerated avx upgraded intrinsics testsSimon Pilgrim2016-05-231-41/+77
| | | | llvm-svn: 270422
* [BPF] Remove exit-on-error flag in test (PR27766)Diana Picus2016-05-231-1/+1
| | | | | | | | | | The exit-on-error flag on the many_args1.ll test is needed to avoid an unreachable in BPFTargetLowering::LowerCall. We can also avoid it by ignoring any superfluous arguments to the call (i.e. any arguments after the first 5). Fixes PR27766 llvm-svn: 270419
* [Sparc][LEON] LEON Erratum fix. Insert NOP after LD or LDF instruction.Chris Dewhurst2016-05-231-0/+43
| | | | | | | | | | Due to an erratum in some versions of LEON, we must insert a NOP after any LD or LDF instruction to ensure the processor has time to load the value correctly before using it. This pass will implement that erratum fix. The code will have no effect for other Sparc, but non-LEON processors. Differential Review: http://reviews.llvm.org/D20353 llvm-svn: 270417
* [AMDGPU] Assembler: refactor parsing of modifiers and immediates. Allow ↵Sam Kolton2016-05-239-64/+61
| | | | | | | | | | | | modifiers for imms. Reviewers: nhaustov, tstellarAMD Subscribers: kzhuravl, arsenm Differential Revision: http://reviews.llvm.org/D20166 llvm-svn: 270415
* [AVX512] Add patterns to implement stores of extracts of least signficant ↵Craig Topper2016-05-221-1/+217
| | | | | | | | subvectors using XMM or YMM stores instead of the vector extract instructions. Similar is already done for AVX and we had lost it going to AVX512VL. llvm-svn: 270383
* [X86][SSE] Added extra i8 extract element testSimon Pilgrim2016-05-221-0/+20
| | | | llvm-svn: 270379
* [x86, AVX] don't add a vzeroupper if that's what the code is already doing ↵Sanjay Patel2016-05-222-6/+0
| | | | | | | | | | | | | | | (PR27823) This isn't the complete fix, but it handles the trivial examples of duplicate vzero* ops in PR27823: https://llvm.org/bugs/show_bug.cgi?id=27823 ...and amusingly, the bogus cases already exist as regression tests, so let's take this baby step. We'll need to do more in the general case where there's legitimate AVX usage in the function + there's already a vzero in the code. Differential Revision: http://reviews.llvm.org/D20477 llvm-svn: 270378
* [x86, AVX] add test file to show vzeroupper pass excessesSanjay Patel2016-05-221-0/+43
| | | | llvm-svn: 270375
* [ValueTracking, InstCombine] extend isKnownToBeAPowerOfTwo() to handle ↵Sanjay Patel2016-05-223-10/+4
| | | | | | | | | | | | | | vector splat constants We could try harder to handle non-splat vector constants too, but that seems much rarer to me. Note that the div test isn't resolved because there's a check for isIntegerTy() guarding that transform. Differential Revision: http://reviews.llvm.org/D20497 llvm-svn: 270369
* [AVX512] Implement missing patterns for any_extend load lowering.Igor Breger2016-05-221-0/+70
| | | | | | Differential Revision: http://reviews.llvm.org/D20513 llvm-svn: 270357
* [AVX512] Add an AddedComplexity line to the 512-bit insert_subvector undef ↵Craig Topper2016-05-221-14/+14
| | | | | | index 0 patterns. This gives them higher priority than the memory patterns. This matches AVX1/2. llvm-svn: 270355
* [X86] Add a common check-prefix to both run lines on a test so identical ↵Craig Topper2016-05-221-361/+168
| | | | | | checks appear just once. llvm-svn: 270345
* [AVX512] Add a couple patterns to fix some cases where two vector mask ↵Craig Topper2016-05-221-12/+4
| | | | | | inversions could appear in a row. llvm-svn: 270344
* [profile] Static counter allocation for value profiling (part-1)Xinliang David Li2016-05-211-0/+31
| | | | | | Differential Revision: http://reviews.llvm.org/D20459 llvm-svn: 270336
* [AVX512] Add patterns for extracting subvectors and storing to memory.Craig Topper2016-05-212-6/+84
| | | | llvm-svn: 270334
* [Clang][AVX512][intrinsics] Fix rcp and sqrt intrinsics.Michael Zuckerman2016-05-212-20/+42
| | | | | | Differential Revision: http://reviews.llvm.org/D20438 llvm-svn: 270322
* [Clang][AVX512][intrinsics] Fix vscalef intrinsics.Michael Zuckerman2016-05-213-35/+26
| | | | | | Differential Revision: http://reviews.llvm.org/D20324 llvm-svn: 270321
* [llvm-readobj] - Teach readobj to recognize SHF_COMPRESSED flag.George Rimar2016-05-212-0/+9
| | | | | | | | | | | | | | | | | | | | | | | Main problem here was that SHF_COMPRESSED has the same value with XCORE_SHF_CP_SECTION, which was included as standart (common) flag. As far I understand xCore is a family of controllers and it that means it's constant should be processed separately, only if e_machine == EM_XCORE, otherwise llvm-readobj would output different constants twice for compressed section: Flags [ .. SHF_COMPRESSED (0x800) .. XCORE_SHF_CP_SECTION (0x800) .. ] what probably does not make sence if you're not working with xcore file. Differential revision: http://reviews.llvm.org/D20273 llvm-svn: 270320
* [AVX512] Add patterns for VEXTRACT v16i16->v8i16 and v32i8->v16i8. Disable ↵Craig Topper2016-05-214-19/+25
| | | | | | AVX2 versions of vector extract when AVX512VL is enabled. llvm-svn: 270318
* [AVX512] Disable AVX2 VPERMD, VPERMQ, VPERMPS, and VPERMPD patterns when ↵Craig Topper2016-05-211-4/+4
| | | | | | AVX512VL is enabled. Also add shuffle comment printing for AVX512VL VPERMPD/VPERMQ to keep some tests that now use these instructions instead of the AVX2 ones. llvm-svn: 270317
* [AVX512] Disable AVX/AVX2 VBROADCASTSS/VBROADCASTSD patterns when AVX512VL ↵Craig Topper2016-05-211-3/+3
| | | | | | is enabled. llvm-svn: 270316
* [AVX512] Use update_llc_test_checks to update some tests so we can see all ↵Craig Topper2016-05-213-4415/+7909
| | | | | | the instruction encodings and ensure everything is with EVEX. llvm-svn: 270315
* [SimplifyCFG] Remove cleanuppads which are empty except for calls to ↵David Majnemer2016-05-211-0/+31
| | | | | | | | | | | | | lifetime.end A cleanuppad is not cheap, they turn into many instructions and result in additional spills and fills. It is not worth keeping a cleanuppad around if all it does is hold a lifetime.end instruction. N.B. We first try to merge the cleanuppad with another cleanuppad to avoid dropping the lifetime and debug info markers. llvm-svn: 270314
* [AVX512] Fix test cases I missed in r270311.Craig Topper2016-05-211-4/+4
| | | | llvm-svn: 270313
* AMDGPU: Define priorities for register classesMatt Arsenault2016-05-219-40/+43
| | | | | | | | | | Allocating larger register classes first should give better allocation results (and more importantly for myself, make the lit tests more stable with respect to scheduler changes). Patch by Matthias Braun llvm-svn: 270312
* AMDGPU: Cleanup lowering actionsMatt Arsenault2016-05-212-32/+131
| | | | | | | | These are kind of a mess and hard to follow, particularly for loads and stores. Fix various redundant, unnecessary and dead settings. llvm-svn: 270307
* [GuardWidening] Fix incorrect use of remove_ifSanjoy Das2016-05-211-0/+38
| | | | | | | | | | | I had used `std::remove_if` under the assumption that it moves the predicate matching elements to the end, but actaully the elements remaining towards the end (after the iterator returned by `std::remove_if`) are indeterminate. Fix the bug (and make the code more straightforward) by using a temporary SmallVector, and add a test case demonstrating the issue. llvm-svn: 270306
* AMDGPU: Fix high bits after division optimizationMatt Arsenault2016-05-216-41/+329
| | | | | | | This is essentially doing a 24-bit signed division with FP. We need to truncate to the N bit result. llvm-svn: 270305
* AMDGPU: Fix verifier error when spilling SGPRsMatt Arsenault2016-05-211-2/+2
| | | | | | | | | | | The current SGPR spilling test does not stress this because it is using s_buffer_load instructions to increase SGPR pressure and spill, but their output operands have the same SReg_32_XM0 constraint. This fixes an error when the SReg_32 output from most instructions is spilled. llvm-svn: 270301
* AMDGPU: Handle cbranch vccz/vccnzMatt Arsenault2016-05-213-8/+12
| | | | llvm-svn: 270297
* AMDGPU: Implement ReverseBranchConditionMatt Arsenault2016-05-211-6/+2
| | | | llvm-svn: 270296
* AMDGPU: Implement AnalyzeBranchMatt Arsenault2016-05-219-41/+84
| | | | | | Original patch by Tom Stellard llvm-svn: 270295
* [WebAssembly] Optimize away return instructions using fallthroughs.Dan Gohman2016-05-2141-49/+90
| | | | | | | | | This saves a small amount of code size, and is a first small step toward passing values on the stack across block boundaries. Differential Review: http://reviews.llvm.org/D20450 llvm-svn: 270294
* Fix constant folding of addrspacecast of nullMatt Arsenault2016-05-212-3/+50
| | | | | | | This should not be making assumptions on the value of the casted pointer. llvm-svn: 270293
OpenPOWER on IntegriCloud