summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ScopedNoAliasAA] Remove an unneccesary setDavid Majnemer2016-08-152-22/+13
| | | | | | | | | | | We are trying to prove that one group of operands is a subset of another. We did this by populating two Sets and determining that every element within one was inside the other. However, this is unnecessary. We can simply construct a single set and test if each operand is within it. llvm-svn: 278641
* Explicitly generate a reference variable to hold the initializer for aRichard Smith2016-08-145-97/+80
| | | | | | | | tuple-like decomposition declaration. This significantly simplifies the semantics of BindingDecls for AST consumers (they can now always be evalated at the point of use). llvm-svn: 278640
* [InstCombine] add test for missing vector icmp foldSanjay Patel2016-08-141-6/+22
| | | | llvm-svn: 278639
* Add private option to change build dialect from C++11Eric Fiselier2016-08-141-3/+5
| | | | | | | | | | Although libc++ only requires C++11 to build, there are other reasons to turn on a newer dialect in the build. For example IDE's may not highlight any C++14/C++17 in the headers when configured for C++11. This patch add's a private option for changing this. llvm-svn: 278638
* [InstCombine] add tests for vector icmp foldsSanjay Patel2016-08-141-2/+40
| | | | llvm-svn: 278637
* [InstCombine] add test for potentially missing vector icmp foldSanjay Patel2016-08-141-3/+18
| | | | llvm-svn: 278636
* [InstCombine] add test for missing vector icmp foldSanjay Patel2016-08-141-3/+15
| | | | llvm-svn: 278635
* [InstCombine] add tests for missing vector icmp foldsSanjay Patel2016-08-141-0/+36
| | | | llvm-svn: 278634
* [InstCombine] remove unnecessary function attributes from testsSanjay Patel2016-08-141-29/+29
| | | | llvm-svn: 278633
* [InstCombine] add tests for missing vector icmp foldsSanjay Patel2016-08-141-0/+47
| | | | llvm-svn: 278632
* [InstCombine] add test for missing vector icmp foldSanjay Patel2016-08-141-0/+13
| | | | llvm-svn: 278631
* [InstCombine] add test for missing vector icmp foldSanjay Patel2016-08-141-6/+20
| | | | llvm-svn: 278630
* [AVX-512] Mark VPMADDWD as commutable to match SSE/AVX version.Craig Topper2016-08-141-7/+8
| | | | llvm-svn: 278629
* [AVX-512] Add masked commutable floating point max/min instructions to ↵Craig Topper2016-08-141-0/+24
| | | | | | folding tables. llvm-svn: 278628
* [AVX-512] Add masked logical operations to memory folding tables.Craig Topper2016-08-141-2/+98
| | | | llvm-svn: 278627
* [AVX512] Fix VFPCLASSSD/VFPCLASSSS intrinsic lowering. The i1 result should ↵Igor Breger2016-08-142-25/+5
| | | | | | | | be zero extended according to SPEC. Differential Revision: http://reviews.llvm.org/D23489 llvm-svn: 278626
* elf-core: set powerpc vector byte order correctlyEd Maste2016-08-141-1/+1
| | | | | | | It was being set to the fp reg set's byte order due to an apparent copy-and-pasteo. llvm-svn: 278625
* autogenerate checksIgor Breger2016-08-141-3/+20
| | | | llvm-svn: 278624
* [AVX512] Fix insertelement i1 lowering.Igor Breger2016-08-147-74/+222
| | | | | | | | | 1. Use shuffle to insert element i1 into vector. The previous implementation was incorrect ( dest_bit OR src_bit , it doesn't clear the bit if src_bit=0 ) 2. Improve shuffle i1 vector, use CVT2MASK if supported instead TRUNCATE. Differential Revision: http://reviews.llvm.org/D23347 llvm-svn: 278623
* Revert "gold: add a cast to appease std::max NFC"Saleem Abdulrasool2016-08-141-2/+1
| | | | | | This was fixed differently by Teresa and this should no longer be needed. llvm-svn: 278622
* Revert "CodeGen: If Convert blocks that would form a diamond when tail-merged."Diana Picus2016-08-143-430/+69
| | | | | | | | | This reverts commit r278287. This commit broke the clang-cmake-thumbv7-a15-full-sh bot. See https://llvm.org/bugs/show_bug.cgi?id=28949 llvm-svn: 278621
* Revert "Codegen: Don't tail-duplicate blocks with un-analyzable fallthrough."Diana Picus2016-08-142-44/+0
| | | | | | | | | This reverts commit r278288. r278287 broke the clang-cmake-thumbv7-a15-full-sh bot. Revert this so we can get to r278287. llvm-svn: 278620
* [IRCE] Change variable grouping; NFCSanjoy Das2016-08-141-2/+2
| | | | llvm-svn: 278619
* [IRCE] Create llvm::Loop instances for cloned out loopsSanjoy Das2016-08-1413-26/+61
| | | | llvm-svn: 278618
* [IRCE] Don't iterate on loops that were cloned outSanjoy Das2016-08-142-0/+37
| | | | | | | | | | | | | | | | IRCE has the ability to further version pre-loops and post-loops that it created, but this isn't useful at all. This change teaches IRCE to leave behind some metadata in the loops it creates (by cloning the main loop) so that these new loops are not re-processed by IRCE. Today this bug is hidden by another bug -- IRCE does not update LoopInfo properly so the loop pass manager does not re-invoke IRCE on the loops it split out. However, once the latter is fixed the bug addressed in this change causes IRCE to infinite-loop in some cases (e.g. it splits out a pre-loop, a pre-pre-loop from that, a pre-pre-pre-loop from that and so on). llvm-svn: 278617
* [IRCE] Add better DEBUG diagnostic; NFCSanjoy Das2016-08-141-1/+3
| | | | | | | NFC meaning IRCE should not _do_ anything different, but -debug-only=irce will be a little friendlier. llvm-svn: 278616
* Fix bitcode auto-upgrade when using bitcode lazy loadingMehdi Amini2016-08-143-1/+26
| | | | | | | | | | | | The auto-upgrade path could be called before the VST (global names) was fully parsed, and thus intrinsic names were not available and the autoupgrade logic could not operate. Fix link failures with ThinLTO. This is a recommit of r278610 with a different fix. llvm-svn: 278615
* Fix unsupported relocation type R_HEX_6_X' for symbol .rodataRon Lieberman2016-08-132-2/+49
| | | | | | | | | | | LowerTargetConstantPool is not properly setting the TargetFlag to indicate desired relocation. Coding error, the offset parameter was omitted, so the TargetFlag was used as the offset, and the TargetFlag defaulted to zero. This only affects -fpic compilation, and only those items created in a Constant Pool, for example a vector of constants. Halide ran into this issue. llvm-svn: 278614
* Revert "Fix bitcode auto-upgrade when using bitcode lazy loading"Mehdi Amini2016-08-133-32/+9
| | | | | | This reverts commit r278610. Tests are broken llvm-svn: 278613
* [IRCE] Fix test case; NFCSanjoy Das2016-08-131-1/+1
| | | | | | | | The (negative) test case is supposed to check that IRCE does not muck with range checks it cannot handle, not that it does the right thing in the absence of profiling information. llvm-svn: 278612
* [IRCE] Be resilient in the face of non-simplified loopsSanjoy Das2016-08-132-2/+42
| | | | | | | | Loops containing `indirectbr` may not be in simplified form, even after running LoopSimplify. Reject then gracefully, instead of tripping an assert. llvm-svn: 278611
* Fix bitcode auto-upgrade when using bitcode lazy loadingMehdi Amini2016-08-133-9/+32
| | | | | | | | | | The auto-upgrade path could be called before the VST (global names) was fully parsed, and thus intrinsic names were not available and the autoupgrade logic could not operate. Fix link failures with ThinLTO. llvm-svn: 278610
* Revert "Revert "Invariant start/end intrinsics overloaded for address space""Mehdi Amini2016-08-139-23/+78
| | | | | | This reverts commit 32fc6488e48eafc0ca1bac1bd9cbf0008224d530. llvm-svn: 278609
* Revert "Invariant start/end intrinsics overloaded for address space"Mehdi Amini2016-08-139-78/+23
| | | | | | This reverts commit r276447. llvm-svn: 278608
* [IRCE] Use dyn_cast instead of explicit isa/cast; NFCSanjoy Das2016-08-131-10/+8
| | | | llvm-svn: 278607
* [IRCE] Use range-for; NFCSanjoy Das2016-08-131-5/+3
| | | | llvm-svn: 278606
* [ADT] Add a reserve() method to DenseSet as well as an insert() for R-valueMehdi Amini2016-08-132-1/+81
| | | | | | Recommit 278600 with some fixes to make the test more robust. llvm-svn: 278604
* Revert "[ADT] Add a reserve method to DenseSet as well as an insert() for ↵Mehdi Amini2016-08-132-72/+0
| | | | | | | | | R-value" This reverts commit r278600. The unittest does not pass on MSVC, there is an extra move. Investigating how to make it more robust. llvm-svn: 278603
* Limit DenseMap::setNumEntries input to 1<<31, in accordance with the 31 bits ↵Yaron Keren2016-08-131-2/+2
| | | | | | | | allocated to NumEntries. std::numeric_limits<int>::max() may be something else than 1<<31. llvm-svn: 278602
* Add missing REQUIRES in sancov/print_coverage_pcs.test: it requires aarch64 ↵Mehdi Amini2016-08-131-1/+1
| | | | | | as well now llvm-svn: 278601
* [ADT] Add a reserve method to DenseSet as well as an insert() for R-valueMehdi Amini2016-08-132-0/+72
| | | | llvm-svn: 278600
* [x86] add tests to show missed 64-bit immediate mergingSanjay Patel2016-08-131-0/+54
| | | | | | | Tests are slightly modified versions of those written by Sunita Marathe in D23391. llvm-svn: 278599
* Test commitAditya Kumar2016-08-131-2/+4
| | | | llvm-svn: 278598
* [X86] Add a check of isCommutable at the top of ↵Craig Topper2016-08-131-0/+3
| | | | | | | | X86InstrInfo::findCommutedOpIndices. Most callers don't check if the instruction is commutable before calling. This saves us the trouble of ending up in the default of the switch and having to determine if this is an FMA or not. llvm-svn: 278597
* [AVX-512] Add isCommutable to scalar FMA3 instructions.Craig Topper2016-08-131-5/+5
| | | | llvm-svn: 278596
* [AVX-512] Add commutable flags to 132 form FMA3 instructions.Craig Topper2016-08-131-3/+3
| | | | llvm-svn: 278595
* [X86] Remove patterns for (vzmovl (insert_subvector undef, ↵Craig Topper2016-08-131-11/+0
| | | | | | (scalar_to_vector))) as the (vzmovl VR256) pattern has higher priority. NFC llvm-svn: 278594
* [AVX-512] Remove an AddedComplexity that was prioritizing basic vzmovl ↵Craig Topper2016-08-132-13/+7
| | | | | | patterns over more complex ones that produce better code. llvm-svn: 278593
* [AVX-512] Add patterns to support VZEXT_MOVL from 512-bit vectors with ↵Craig Topper2016-08-135-1/+117
| | | | | | | | 64-bit and 32-bit elements. Fixes PR28961. llvm-svn: 278592
* [PM] Port LoopDataPrefetch to new pass managerTeresa Johnson2016-08-137-62/+136
| | | | | | | | | | | | | | | | Summary: Refactor the existing support into a LoopDataPrefetch implementation class and a LoopDataPrefetchLegacyPass class that invokes it. Add a new LoopDataPrefetchPass for the new pass manager that utilizes the LoopDataPrefetch implementation class. Reviewers: mehdi_amini Subscribers: sanjoy, mzolotukhin, nemanjai, llvm-commits Differential Revision: https://reviews.llvm.org/D23483 llvm-svn: 278591
OpenPOWER on IntegriCloud