summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Apply performance-unnecessary-value-param to clang-tidy.Benjamin Kramer2016-06-156-10/+11
| | | | | | With minor manual tweaks. No functionality change intended. llvm-svn: 272795
* [mips] Eliminate unused code for addrRegReg complex pattern. NFC.Vasileios Kalintiris2016-06-155-29/+0
| | | | | | | | | | Reviewers: dsanders, sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D21381 llvm-svn: 272794
* Add llvm_unreachable to silence a "not all control paths" false positive ↵Aaron Ballman2016-06-151-0/+1
| | | | | | warning from MSVC. llvm-svn: 272793
* Preserve DebugInfo when replacing values in DAGCombinerNirav Dave2016-06-157-14/+32
| | | | | | | | | | | | | | | | | | | [DAG] Previously debug values would transfer debuginfo for the selected start node for a replacement which allows for debug to be dropped. Push debug value transfer to occur with node/value replacement in SelectionDAG, remove now extraneous transfers of debug values. This refixes PR9817 which was being incompletely checked in the testsuite. Reviewers: jyknight Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D21037 llvm-svn: 272792
* Reverting r272778 because there's an assertionRanjeet Singh2016-06-155-81/+19
| | | | | | failure when running the test CodeGen/ARM/intrinsics-coprocessor.ll llvm-svn: 272791
* Reverting r272777 because one of the testsRanjeet Singh2016-06-154-115/+19
| | | | | | | added in the llvm patch is causing an assertion to fail. llvm-svn: 272790
* Apply some suggestions from clang-tidy's performance-unnecessary-value-param.Benjamin Kramer2016-06-157-39/+32
| | | | | | No functionality change intended. llvm-svn: 272789
* Don't use static variables in LambdaCaptureJohn Brawn2016-06-154-38/+31
| | | | | | | | | | | | | | | | | | | | | | | When static variables are used in inline functions in header files anything that uses that function ends up with a reference to the variable. Because RecursiveASTVisitor uses the inline functions in LambdaCapture that use static variables any AST plugin that uses RecursiveASTVisitor, such as the PrintFunctionNames example, ends up with a reference to these variables. This is bad on Windows when building with MSVC with LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON as variables used across a DLL boundary need to be explicitly dllimported in the DLL using them. This patch avoids that by adjusting LambdaCapture to be similar to before r263921, with a capture of either 'this' or a VLA represented by a null Decl pointer in DeclAndBits with an extra flag added to the bits to distinguish between the two. This requires the use of an extra bit, and while Decl does happen to be sufficiently aligned to allow this it's done in a way that means PointerIntPair doesn't realise it and gives an assertion failure. Therefore I also adjust Decl slightly to use LLVM_ALIGNAS to allow this. Differential Revision: http://reviews.llvm.org/D20732 llvm-svn: 272788
* [AVX512] Use native IR for mask pcmpeq/pcmpgt intrinsics.Craig Topper2016-06-155-48/+121
| | | | llvm-svn: 272787
* [AVX512] Remove the GCCBuiltins from the mask pcmpeq/pcmpgt intrinsics so we ↵Craig Topper2016-06-151-24/+24
| | | | | | | | can emit native IR from clang. The intrinsics themselves can be removed in a future commit. llvm-svn: 272786
* [AMDGPU] Fix few coding style issues. NFC.Valery Pykhtin2016-06-152-23/+23
| | | | llvm-svn: 272785
* [mips] Missing test caseSimon Dardis2016-06-151-0/+54
| | | | | | Add missing testcase from r272666. llvm-svn: 272784
* Replace ScalarReplAggregatesPass by SROAPass.Michael Kruse2016-06-151-1/+1
| | | | | | | | ScalarReplAggregatesPass was deprecated and replaced by SROAPass. ScalarReplAggregatesPass got finally removed in LLVM commit r272737, hence this patch is also a compile fix. llvm-svn: 272783
* [Sparc] Change to let clang know that setjmp and longjmp intrinsics are ↵Chris Dewhurst2016-06-151-0/+5
| | | | | | | | implemented in the back-end. Differential Revision: http://reviews.llvm.org/D19798 llvm-svn: 272782
* [LV] Remove more unused functions. NFCAdam Nemet2016-06-151-4/+0
| | | | | | LoopVectorizationLegality::strides_begin/end are also unused. llvm-svn: 272781
* [LV] Remove unused function. NFCAdam Nemet2016-06-151-1/+0
| | | | | | LoopVectorizationLegality::mustCheckStrides is unused. llvm-svn: 272780
* tsan: intercept epoll_pwaitDmitry Vyukov2016-06-151-38/+36
| | | | llvm-svn: 272779
* [ARM] Add support for mrrc/mrrc2 intrinsics.Ranjeet Singh2016-06-155-19/+81
| | | | | | Differential Revision: http://reviews.llvm.org/D21178 llvm-svn: 272778
* [ARM] Add mrrc/mrrc2 intrinsics and update existing mcrr/mcrr2 intrinsics.Ranjeet Singh2016-06-154-19/+115
| | | | | | | | | | | | | | Patch adds intrinsics for mrrc/mrrc2. The intrinsics for mrrc/mrrc2 return a single uint64_t to represent two 32 bit values. The mcrr/mcrr2 intrinsic was changed to accept a single uint64_t instead of two 32 bit values as the input for consistency. Differential Revision: http://reviews.llvm.org/D21179 llvm-svn: 272777
* Revert accidential "[MSVC] Late parsing of in-class defined member functions ↵Alexey Bataev2016-06-1522-315/+12
| | | | | | | | in template" This reverts commit 0253605771b8bd9d414aba74fe2742c730d6fd1a. llvm-svn: 272776
* [OPENMP] Fix crash for 'schedule|dist_schedule' clauses duringAlexey Bataev2016-06-153-2/+47
| | | | | | | | | | instantiation. Added checks for non-dependent context when trygin to capture non-constant schedule chunk expression for proper codegen of outlined functions. llvm-svn: 272775
* [MSVC] Late parsing of in-class defined member functions in templateAlexey Bataev2016-06-1522-12/+315
| | | | | | | | | | | | | | | | | | | classes. MSVC actively uses unqualified lookup in dependent bases, lookup at the instantiation point (non-dependent names may be resolved on things declared later) etc. and all this stuff is the main cause of incompatibility between clang and MSVC. Clang tries to emulate MSVC behavior but it may fail in many cases. clang could store lexed tokens for member functions definitions within ClassTemplateDecl for later parsing during template instantiation. It will allow resolving many possible issues with lookup in dependent base classes and removing many already existing MSVC-specific hacks/workarounds from the clang code. llvm-svn: 272774
* [include-fixer] Correct two wrong header mappings.Haojian Wu2016-06-151-2/+2
| | | | | | | | | | Reviewers: bkramer Subscribers: ioeric, cfe-commits Differential Revision: http://reviews.llvm.org/D21371 llvm-svn: 272773
* Work around MSVC "friend" semantics.Sean Silva2016-06-151-0/+2
| | | | | | | | | | | | The error on clang-x86-win2008-selfhost is: C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(955) : error C2248: 'llvm::slpvectorizer::BoUpSLP::ScheduleData' : cannot access private struct declared in class 'llvm::slpvectorizer::BoUpSLP' C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(608) : see declaration of 'llvm::slpvectorizer::BoUpSLP::ScheduleData' C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(337) : see declaration of 'llvm::slpvectorizer::BoUpSLP' I reproduced this locally with both MSVC 2013 and MSVC 2015. llvm-svn: 272772
* [mips] Replace AdditionalRequires<[IsGP64bit]> with GPR_64. NFC.Daniel Sanders2016-06-151-8/+4
| | | | | | | | | | | | Summary: Also fixed one case where HasMips64 was being used instead of IsGP64bit. Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D21028 llvm-svn: 272771
* Use FPasses in opt exactly when it is initialized.Patrik Hagglund2016-06-151-1/+1
| | | | | | | | | | | | | Previously, there was a discrepancy between the population of function passes in FPasses, and their invocation. Function passes specified on the command line, after an optimizaton level was simply discared. This fix PR27509. Patch by Jesper Antonsson. Differential Review: http://reviews.llvm.org/D20725 llvm-svn: 272770
* [mips] Removed invalid test from o32_cc.llDaniel Sanders2016-06-151-1/+0
| | | | | | MIPS32R1 cannot implement a 64-bit FPU because this was introduced in MIPS32R2. llvm-svn: 272769
* [mips] clang-format Mips16ISelDAGToDAG.{cpp,h}Daniel Sanders2016-06-152-52/+52
| | | | llvm-svn: 272768
* Speculative buildbot fix.Sean Silva2016-06-151-0/+5
| | | | | | | | | | | | | | This wasn't failing for me with clang as the compiler. I think GCC may disagree with clang about whether a friend declaration introduces a declaration in the enclosing namespace (or something). Example error: /home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:950:77: error: ‘llvm::raw_ostream& llvm::slpvectorizer::operator<<(llvm::raw_ostream&, const llvm::slpvectorizer::BoUpSLP::ScheduleData&)’ should have been declared inside ‘llvm::slpvectorizer’ const BoUpSLP::ScheduleData &SD) { ^ llvm-svn: 272767
* [PM] Port SLPVectorizer to the new PMSean Silva2016-06-155-138/+229
| | | | | | | | | | | This uses the "runImpl" approach to share code with the old PM. Porting to the new PM meant abandoning the anonymous namespace enclosing most of SLPVectorizer.cpp which is a bit of a bummer (but not a big deal compared to having to pull the pass class into a header which the new PM requires since it calls the constructor directly). llvm-svn: 272766
* [mips][msa] Fix register/register-class mismatches in emitINSERT_DF_VIDX().Daniel Sanders2016-06-152-9/+24
| | | | | | | | | | Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D21068 llvm-svn: 272765
* [mips][microMIPS] Add CodeGen support for AND*, OR16, OR*, XOR*, NOT16 and ↵Zlatko Buljan2016-06-1524-183/+1879
| | | | | | | | NOR instructions Differential Revision: http://reviews.llvm.org/D16719 llvm-svn: 272764
* [AVX512] Fix BLENDM lowering patterns. Operands should be swapped to match ↵Igor Breger2016-06-1511-259/+156
| | | | | | | | | | SELECT behavior. Use BLENDM instead of masked move instruction. Differential Revision: http://reviews.llvm.org/D21001 llvm-svn: 272763
* Push a dependent computation into the assert that uses it; NFCSanjoy Das2016-06-151-5/+3
| | | | | | | | | ... instead of explicitly conditioning on NDEBUG. Also use an easier to read conditional expression. (Addresses post-commit review from David Blaikie.) llvm-svn: 272762
* AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsicsNicolai Haehnle2016-06-154-35/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes two related bugs. First, the generic optimization passes unfortunately generate negative constant offsets but the hardware treats SOffset as an unsigned value. Second, there is a hardware bug on SI and CI, where address clamping in MUBUF instructions does not work correctly when SOffset is larger than the buffer size. This patch works around this bug by never using SOffset. An alternative workaround would be to do the clamping manually when SOffset is too large, but generating the required code sequence during instruction selection would be rather involved, and in any case the resulting code would probably be worse. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96360 Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21326 llvm-svn: 272761
* Fix unused variable warning; NFCSanjoy Das2016-06-151-0/+2
| | | | | | | TailCallReturnAddrDelta is used only in an assert, so put it under defined(NDEBUG). llvm-svn: 272760
* [SCEV] Use dyn_cast<T> instead of dyn_cast<const T>; NFCSanjoy Das2016-06-151-7/+7
| | | | | | The const is unnecessary. llvm-svn: 272759
* [SCEV] Use cast<> instead of dyn_cast; NFCSanjoy Das2016-06-151-4/+2
| | | | llvm-svn: 272758
* [PM] Port AlignmentFromAssumptions to the new PM.Sean Silva2016-06-157-21/+92
| | | | | | This uses the "runImpl" pattern to share code between the old and new PM. llvm-svn: 272757
* Don't force SP-relative addressing for statepointsSanjoy Das2016-06-156-58/+89
| | | | | | | | | | | | | | | | | | | Summary: ... when the offset is not statically known. Prioritize addresses relative to the stack pointer in the stackmap, but fallback gracefully to other modes of addressing if the offset to the stack pointer is not a known constant. Patch by Oscar Blumberg! Reviewers: sanjoy Subscribers: llvm-commits, majnemer, rnk, sanjoy, thanm Differential Revision: http://reviews.llvm.org/D21259 llvm-svn: 272756
* Add a "declared 'nonnull' here" note to warnings where an expression is ↵Nick Lewycky2016-06-153-12/+16
| | | | | | checked against null. llvm-svn: 272755
* Add support for callsite in the new C API for attributesAmaury Sechet2016-06-157-6/+88
| | | | | | | | | | | | Summary: The second consumer of attributes. Reviewers: Wallbraker, whitequark, echristo, rafael, jyknight Subscribers: mehdi_amini Differential Revision: http://reviews.llvm.org/D21266 llvm-svn: 272754
* [SCEV] clang-format some sectionsSanjoy Das2016-06-151-12/+10
| | | | llvm-svn: 272753
* [SCEV] Change the interface for SolveQuadraticEquation; NFCSanjoy Das2016-06-151-21/+14
| | | | | | | | Use Optional<T> to denote the absence of a solution, not SCEVCouldNotCompute. This makes the usage of SolveQuadraticEquation somewhat simpler. llvm-svn: 272752
* Add results.xml for macOS lldb unittestsTim Hammerquist2016-06-151-1/+1
| | | | | | | | | | | | | http://reviews.llvm.org/D21211 If gtest tests of lldb fail, there are no test results for Jenkins to consume. This will make the results of the gtest failure available to Jenkins. This is to address the failure visible in: http://lab.llvm.org:8080/green/job/lldb_build_test/19196/ llvm-svn: 272751
* AMDGPU/SI: Correctly encode constant expressionsTom Stellard2016-06-152-9/+33
| | | | | | | | | | | | | | | Summary: We we have an MCConstantExpr, we can encode it directly into the instruction instead of emitting fixups. Reviewers: artem.tamazov, vpykhtin, SamWot, nhaustov, arsenm Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21236 Change-Id: I88b3edf288d48e65c5d705fc4850d281f8e36948 llvm-svn: 272750
* [MBP] add comments and bug fixXinliang David Li2016-06-152-9/+20
| | | | | | | | | | Document the new parameter and threshod computation model. Also fix a bug when the threshold parameter is set to be different from the default. llvm-svn: 272749
* AMDGPU/AsmParser: Add support for parsing symbol operandsTom Stellard2016-06-152-2/+77
| | | | | | | | | | | | | | Summary: We can now reference symbols directly in operands, like this: s_mov_b32 s0, global Reviewers: artem.tamazov, vpykhtin, SamWot, nhaustov Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21038 llvm-svn: 272748
* [libcxx] [test] In test/support/test_allocator.h, fix construct() to avoid ↵Eric Fiselier2016-06-151-11/+12
| | | | | | | | | | | | | | | | | moving immovable types. Summary: In test/support/test_allocator.h, fix construct() to avoid moving immovable types. This improves the allocator's conformance, and fixes compiler errors with MSVC's STL. The scenario is when the allocator is asked to construct an object of type X that's immovable (deleted copy/move ctors), but implicitly constructible from an argument type A. When perfectly forwarded, X can be (explicitly) constructed from A, and everything is fine. That's std::allocator's behavior, and the Standard's default when a user allocator's construct() doesn't exist. The previous implementation of construct() here mishandled this scenario. Passing A to this construct() would implicitly construct an X temporary, bound to (non-templated) T&&. Then construct() would attempt to move-construct X from that X temporary, but X is immovable, boom. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21094 llvm-svn: 272747
* Improve portability of random_device tests. Patch from STL@microsoft.comEric Fiselier2016-06-152-2/+6
| | | | llvm-svn: 272746
OpenPOWER on IntegriCloud