summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Make the FMA3 instruction names consistent between VEX and EVEX ↵Craig Topper2016-07-245-411/+387
| | | | | | | | encoded versions. This places the 132/213/231 form number in front of the SS/SD/PS/PD. Move the Y for 256-bit versions to be after the PS/PD. Change the AVX512 scalar forms to include a Z in the their name. This new format should be consistent with the general naming of instructions. llvm-svn: 276559
* [X86] Replace CodeGenOnly VPSRAVW/D/Q_Int instructions with patterns since ↵Craig Topper2016-07-244-8/+87
| | | | | | the operand types exactly match the normal VPSRAVW/D/Q instructions. llvm-svn: 276555
* [Loop Vectorizer] Handling loops FP induction variables.Elena Demikhovsky2016-07-246-56/+561
| | | | | | | | | | | | | | | | Allowed loop vectorization with secondary FP IVs. Like this: float *A; float x = init; for (int i=0; i < N; ++i) { A[i] = x; x -= fp_inc; } The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute. Differential Revision: https://reviews.llvm.org/D21330 llvm-svn: 276554
* [MSSA] Make EXPENSIVE_CHECKS check more.George Burgess IV2016-07-241-13/+11
| | | | | | | | checkClobberSanity will now be run for all results of `ClobberWalk`, instead of just the crazy phi-optimized ones. This can help us catch cases where our cache is being wonky. llvm-svn: 276553
* [MSSA] Remove useless assert. NFC.George Burgess IV2016-07-241-1/+0
| | | | | | | liveOnEntry is always a MemoryDef; asserting that a MemoryPhi isn't liveOnEntry, while correct, isn't very helpful. :) llvm-svn: 276542
* [X86][SSE] Added float widened broadcast testsSimon Pilgrim2016-07-231-0/+83
| | | | llvm-svn: 276535
* [X86][SSE] Added more widened broadcast testsSimon Pilgrim2016-07-231-5/+368
| | | | | | Added more vXi16 and vXi8 tests llvm-svn: 276534
* Change some more llvm highlighting instances to be text instead. It seems ↵Aaron Ballman2016-07-231-9/+9
| | | | | | | | that Pygment does not handle "token" or "none" yet, and this caused the documentation bot to go red. Patch by Gor Nishanov. llvm-svn: 276532
* Switching the highlighting from llvm to none in an attempt to appease the ↵Aaron Ballman2016-07-231-1/+1
| | | | | | build bot (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11984/steps/docs-llvm-html/logs/stdio). llvm-svn: 276531
* Removes a warning about duplicate label named _strings from CommandLine.rst.Aaron Ballman2016-07-231-1/+1
| | | | llvm-svn: 276530
* CODE_OWNERS: Take ownership of the MIPS backendSimon Dardis2016-07-231-4/+4
| | | | | | | As agreed with Daniel Sanders, I'm taking over as code owner for the MIPS backend. llvm-svn: 276529
* [X86] Fix typo in comment.Craig Topper2016-07-231-1/+1
| | | | llvm-svn: 276528
* [X86][SSE] Added tests where we should be trying to widen a load+splat into ↵Simon Pilgrim2016-07-231-0/+149
| | | | | | a broadcast llvm-svn: 276527
* [X86][SSE] Regenerated uitofp <2 x i32> -> <2 x float> conversion testsSimon Pilgrim2016-07-231-16/+51
| | | | | | Demonstrate difference in codegen discussed on PR14760 llvm-svn: 276526
* [InstCombine] allow icmp (bit-manipulation-intrinsic(), C) folds for vectorsSanjay Patel2016-07-233-23/+20
| | | | llvm-svn: 276523
* Fix a GCC error due to this member name also being a type name. ThisChandler Carruth2016-07-231-3/+3
| | | | | | | should fix the build with GCC 4.9 at least. Not sure if this is the right name or fix, but I've followed up on the original commit. llvm-svn: 276522
* [AVX512] Implement commuting support for EVEX encoded FMA3 instructions.Craig Topper2016-07-234-304/+228
| | | | llvm-svn: 276521
* [X86] Make one of the FMA3 commuting methods static. Remove a call to isFMA3 ↵Craig Topper2016-07-232-212/+212
| | | | | | just to get the IsIntrisic flag, instead get it during the first call and pass it along. NFC llvm-svn: 276520
* [X86] Fix switch statement indentation per coding standards.Craig Topper2016-07-231-136/+136
| | | | llvm-svn: 276519
* AMDGPU: Delete dead codeMatt Arsenault2016-07-232-97/+0
| | | | | | This has been dead since r269479 llvm-svn: 276518
* [Profile] Use explicit flag to enable IR PGOXinliang David Li2016-07-233-9/+17
| | | | | | | | Patch by Jake VanAdrighem Differential Revision: http://reviews.llvm.org/D22607 llvm-svn: 276516
* Avoid using a raw AssumptionCacheTracker in various inliner functions.Sean Silva2016-07-238-82/+115
| | | | | | | | | | This unblocks the new PM part of River's patch in https://reviews.llvm.org/D22706 Conveniently, this same change was needed for D21921 and so these changes are just spun out from there. llvm-svn: 276515
* [coroutines] Part 1 of N: DocumentationDavid Majnemer2016-07-232-0/+1222
| | | | | | | | | | | This is the first patch in the coroutine series. It contains the documentation for the coroutine intrinsics and their usage. Patch by Gor Nishanov! Differential Revision: https://reviews.llvm.org/D22603 llvm-svn: 276513
* [LoopUnrollAnalyzer] Handle out of bounds accesses in visitLoadDavid Majnemer2016-07-231-4/+10
| | | | | | | | | | | | While we handed loads past the end of an array, we didn't handle loads _before_ the array. This fixes PR28062. N.B. While the bug in the code is obvious, I am struggling to craft a test case which is reasonable in size. llvm-svn: 276510
* [SCEV] Make isImpliedCondOperandsViaRanges smarterSanjoy Das2016-07-233-20/+67
| | | | | | | | | | | | This change lets us prove things like "{X,+,10} s< 5000" implies "{X+7,+,10} does not sign overflow" It does this by replacing replacing getConstantDifference by computeConstantDifference (which is smarter) in isImpliedCondOperandsViaRanges. llvm-svn: 276505
* [cmake] Use a sane default for LLVM_PROFILE_DATA_DIRVedant Kumar2016-07-231-1/+1
| | | | | | | | | | | It's been pointed out that arbitrarily spraying raw profiles into a build directory is insane. Doing this wastes a tremendous amount of space and is also very lossy, since the test harness tends to wipe away temporary sub-directories (which usually contain relevant profile data). The new default is a `profiles` directory inside of the build dir. llvm-svn: 276504
* [SCEV] Change the interface of computeConstantDifference; NFCSanjoy Das2016-07-232-28/+25
| | | | | | | This is in preparation of s/getConstantDifference/computeConstantDifference/ in a later change. llvm-svn: 276503
* [InstCombine] move udiv+cmp fold over with other BinOp+cmp folds; NFCISanjay Patel2016-07-231-9/+8
| | | | llvm-svn: 276502
* auto-generate checksSanjay Patel2016-07-231-32/+62
| | | | llvm-svn: 276501
* Revert "[AMDGPU] Emit read-only data to .rodata for hsa"Tom Stellard2016-07-223-4/+3
| | | | | | | | | | | | This reverts commit r276298. Data stored in .rodata can have a negative offset from .text, but we don't support negative values in relocations yet. This caused a regression in one of the amp conformance tests: 5_Data_Cont/5_2_a_v/5_2_3_m/Assignment/Test.02.01 llvm-svn: 276498
* [LoopDataPrefetch] Fix unused variable in release buildAdam Nemet2016-07-221-2/+1
| | | | llvm-svn: 276491
* [LoopDataPrefetch] Include hotness of region in opt remarkAdam Nemet2016-07-223-4/+112
| | | | llvm-svn: 276488
* [LoopDataPrefetch] Sort headersAdam Nemet2016-07-221-1/+1
| | | | llvm-svn: 276487
* [CFLAA] Add more offset-sensitivity tracking.George Burgess IV2016-07-225-43/+162
| | | | | | | | | | | | | | | | | | | This patch teaches FunctionInfo about offsets. Like the last patch, this one doesn't introduce any visible functionality change (the core algorithm knows nothing about offsets; they're just plumbed through). Tests will come when we start acting differently because of the offsets. Patch by Jia Chen. (N.B. I made a tiny change to Jia's patch to avoid warnings by GCC: I put DenseMapInfo specializations in the `llvm` namespace. Only realized that those appeared when compiling locally. :) ) Differential Revision: https://reviews.llvm.org/D22634 llvm-svn: 276486
* add tests for icmp vector foldsSanjay Patel2016-07-222-1/+50
| | | | llvm-svn: 276482
* GlobalISel: allow multiple types on MachineInstrs.Tim Northover2016-07-229-75/+98
| | | | llvm-svn: 276481
* Unpoison stack before resume instructionVitaly Buka2016-07-223-1/+113
| | | | | | | | | | | | | | | | | | | Summary: Clang inserts cleanup code before resume similar way as before return instruction. This makes asan poison local variables causing false use-after-scope reports. __asan_handle_no_return does not help here as it was executed before llvm.lifetime.end inserted into resume block. To avoid false report we need to unpoison stack for resume same way as for return. PR27453 Reviewers: kcc, eugenis Differential Revision: https://reviews.llvm.org/D22661 llvm-svn: 276480
* Add flag to PassManagerBuilder to disable GVN Hoist Pass.Alina Sbirlea2016-07-222-2/+6
| | | | | | | | | | | | | | Summary: Adding a flag to diable GVN Hoisting by default. Note: The GVN Hoist Pass causes some Halide tests to hang. Halide will disable the pass while investigating. Reviewers: llvm-commits, chandlerc, spop, dberlin Subscribers: mehdi_amini Differential Revision: https://reviews.llvm.org/D22639 llvm-svn: 276479
* [SLPVectorizer] Vectorize reverse-order loads in horizontal reductionsMichael Kuperstein2016-07-222-16/+102
| | | | | | | | | | | | | | | | | | When vectorizing a tree rooted at a store bundle, we currently try to sort the stores before building the tree, so that the stores can be vectorized. For other trees, the order of the root bundle - which determines the order of all other bundles - is arbitrary. That is bad, since if a leaf bundle of consecutive loads happens to appear in the wrong order, we will not vectorize it. This is partially mitigated when the root is a binary operator, by trying to build a "reversed" tree when that's considered profitable. This patch extends the workaround we have for binops to trees rooted in a horizontal reduction. This fixes PR28474. Differential Revision: https://reviews.llvm.org/D22554 llvm-svn: 276477
* add tests for icmp vector foldsSanjay Patel2016-07-221-0/+24
| | | | llvm-svn: 276476
* add tests for icmp vector foldsSanjay Patel2016-07-221-0/+24
| | | | llvm-svn: 276475
* [Coverage] Mark more methods const (NFC)Vedant Kumar2016-07-221-4/+8
| | | | llvm-svn: 276474
* add tests for icmp vector foldsSanjay Patel2016-07-222-6/+69
| | | | llvm-svn: 276472
* Add invariant start call creation in IRBuilder.NFCAnna Thomas2016-07-222-0/+25
| | | | | | Differential Revision: https://reviews.llvm.org/D22700 llvm-svn: 276471
* Use RValue refs in APInt add/sub methods.Pete Cooper2016-07-223-63/+243
| | | | | | | | | | | | | This adds versions of operator + and - which are optimized for the LHS/RHS of the operator being RValue's. When an RValue is available, we can use its storage space instead of allocating new space. On code such as ConstantRange which makes heavy use of APInt's over 64-bits in size, this results in significant numbers of saved allocations. Thanks to David Blaikie for all the review and most of the code here. llvm-svn: 276470
* [llvm-cov] Don't copy stylesheets into index filesVedant Kumar2016-07-222-6/+8
| | | | | | Just link in the stylesheet from the toplevel dir of the report. llvm-svn: 276468
* [SCEV] Extract out a helper function; NFCSanjoy Das2016-07-222-7/+23
| | | | | | | The helper will get smarter in a later change, but right now this is just code reorganization. llvm-svn: 276467
* update to use FileCheck and auto-generate checksSanjay Patel2016-07-221-161/+338
| | | | llvm-svn: 276466
* Fix include case. NFC.George Burgess IV2016-07-221-1/+1
| | | | llvm-svn: 276465
* add tests for icmp vector foldsSanjay Patel2016-07-222-0/+26
| | | | llvm-svn: 276464
OpenPOWER on IntegriCloud