summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [InstCombine] use m_APInt to allow shl folds for vectors with splat constantsSanjay Patel2017-01-132-7/+9
| | | | llvm-svn: 291934
* Update version to 5.0Eric Fiselier2017-01-135-4/+4284
| | | | llvm-svn: 291928
* [SCEV] Limit recursion depth of constant evolving.Michael Liao2017-01-131-3/+10
| | | | | | | | | | - For a loop body with VERY complicated exit condition evaluation, constant evolving may run out of stack on platforms such as Windows. Need to limit the recursion depth. Differential Revision: https://reviews.llvm.org/D28629 llvm-svn: 291927
* [InstCombine] add tests to show missing transforms for vector shl; NFCSanjay Patel2017-01-131-5/+24
| | | | llvm-svn: 291926
* Fix merge conflict caused by r291921Eric Fiselier2017-01-131-1/+1
| | | | llvm-svn: 291925
* [X86][AVX] Bad v4f64/v4i64 '1z3z' shuffle test caseSimon Pilgrim2017-01-131-0/+49
| | | | | | This lowers to SHUFPD if the input is zeroinitializer but not with a demanded elts optimized build vector. llvm-svn: 291924
* [InstCombine] use Op0/Op1 local variables more consistently with shifts; NFCSanjay Patel2017-01-131-22/+16
| | | | llvm-svn: 291923
* Revert "Rework fix for PR19460 - Use explicit bool as an extension instead."Eric Fiselier2017-01-133-7/+19
| | | | | | This reverts commit 3a1b90a866b6d5d62a5f37fbfb3a1ee36cc70dd1. llvm-svn: 291921
* Regenerate test.Simon Pilgrim2017-01-131-5/+5
| | | | llvm-svn: 291920
* unique_ptrify createDriverOptTableDavid Blaikie2017-01-137-16/+16
| | | | llvm-svn: 291919
* Fix UBSan bots by blacklisting bits/stl_tree.h.Ivan Krasin2017-01-132-0/+9
| | | | | | | | | | | | | | | | Summary: libstdc++ has some undefined behavior in bits/stl_tree.h that has recently became excercised by some of the LLVM code. Given that fixing libstdc++ will take years, adding the file into a blacklist to fix bots seems like a necessity. Reviewers: vitalybuka Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D28686 llvm-svn: 291918
* Use less byval on 32-bit Windows x86 for classes with basesReid Kleckner2017-01-132-22/+48
| | | | | | | | | | | | This comes up in V8, which has a Handle template class that wraps a typed pointer, and is frequently passed by value. The pointer is stored in the base, HandleBase. This change allows us to pass the struct as a pointer instead of using byval. This avoids creating tons of temporary allocas that we copy from during call lowering. Eventually, it would be good to use FCAs here instead. llvm-svn: 291917
* Remove unused lambda captures. NFCMalcolm Parsons2017-01-1313-24/+24
| | | | llvm-svn: 291916
* [InstCombine] if the condition of a select may be known via assumes, ↵Sanjay Patel2017-01-133-1/+43
| | | | | | | | | | | | | | | | | | | | eliminate the select This is a limited solution for PR31512: https://llvm.org/bugs/show_bug.cgi?id=31512 The motivation is that we will need to increase usage of llvm.assume and/or metadata to solve PR28430: https://llvm.org/bugs/show_bug.cgi?id=28430 ...and this kind of simplification is needed to take advantage of that extra information. The 'not' test case would be handled by: https://reviews.llvm.org/D28485 Differential Revision: https://reviews.llvm.org/D28337 llvm-svn: 291915
* Revert r291903 and r291898. Reason: they break check-lld on the bots.Ivan Krasin2017-01-1319-680/+55
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Revert [ARM] Fix ubig32_t read in ARMAttributeParser Now using support functions to read data instead of trying to perform casts. =========================================================== Revert [ARM] Enable objdump to construct triple for ARM Now that The ARMAttributeParser has been moved into the library, it has been modified so that it can parse the attributes without printing them and stores them in a map. ELFObjectFile now queries the attributes to fill out the architecture details of a provided triple for 'arm' and 'thumb' targets. llvm-objdump uses this new functionality. Subscribers: llvm-commits, samparker, aemerson, mgorny Differential Revision: https://reviews.llvm.org/D28683 llvm-svn: 291911
* Regenerate test with update_llc_test_checks.pySimon Pilgrim2017-01-131-65/+1
| | | | llvm-svn: 291910
* ARM: match GCC's behaviour for builtinsSaleem Abdulrasool2017-01-135-170/+59
| | | | | | | | | | | | GCC changes the CC between the user-code and the builtins based on the value of `-target` rather than `-mfloat-abi`. When a HF target is used, the VFP variant of the AAPCS CC is used. Otherwise, the AAPCS variant is used. In all cases, the AEABI functions use the AAPCS CC. Adjust the calling convention based on the target. Resolves PR30543! llvm-svn: 291909
* [ELF] - Move the addition of synthetics from addPredefinedSections()George Rimar2017-01-132-19/+12
| | | | | | | | | | | These were 3 last synthetics that were added in addPredefinedSections() instead of createSyntheticSections(). Now it is possible to move addition to correct common place. Also patch fixes testcase which discards .shstrtab, by restricting doing that. Differential revision: https://reviews.llvm.org/D28561 llvm-svn: 291908
* Revert "Support for Python 3 in libclang python bindings"Jonathan Coe2017-01-132-97/+56
| | | | | | | | | This reverts commit 4464581bb63e9789e9ee231a8c8800be5f614743. Memory access issues on Linux were reported by Mathieu Duponchelle and discussed here: https://reviews.llvm.org/D26082. llvm-svn: 291907
* [llvm-dwp] - Reuse object::Decompressor classGeorge Rimar2017-01-133-33/+26
| | | | | | | | One more place where Decompressor class can be reused. Differential revision: https://reviews.llvm.org/D28679 llvm-svn: 291906
* [Sema] Add warning for unused lambda capturesMalcolm Parsons2017-01-1314-13/+166
| | | | | | | | | | | | | | | Summary: Warn when a lambda explicitly captures something that is not used in its body. The warning is part of -Wunused and can be enabled with -Wunused-lambda-capture. Reviewers: rsmith, arphaman, jbcoe, aaron.ballman Subscribers: Quuxplusone, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D28467 llvm-svn: 291905
* Apply clang-tidy's performance-unnecessary-value-param to LLVM.Benjamin Kramer2017-01-1334-64/+65
| | | | | | | With some minor manual fixes for using function_ref instead of std::function. No functional change intended. llvm-svn: 291904
* [ARM] Fix ubig32_t read in ARMAttributeParserSam Parker2017-01-131-3/+3
| | | | | | | | | Now using support functions to read data instead of trying to perform casts. Differential Revision: https://reviews.llvm.org/D28669 llvm-svn: 291903
* [globalisel][aarch64] Make getCopyMapping() take register banks ID's rather ↵Daniel Sanders2017-01-133-27/+38
| | | | | | | | | | | | | | | | | than IsGPR booleans Summary: This allows the function to handle architectures with more than two register banks. Depends on D27978 Reviewers: ab, t.p.northover, rovka, qcolombet Subscribers: aditya_nandakumar, kristof.beyls, aemerson, rengolin, vkalintiris, dberris, llvm-commits, rovka Differential Revision: https://reviews.llvm.org/D27339 llvm-svn: 291902
* [X86][AVX512] Add support for variable ASHR v2i64/v4i64 support without VLXSimon Pilgrim2017-01-134-40/+40
| | | | | | | | | | Use v8i64 variable ASHR instructions if we don't have VLX. This is a reduced version of D28537 that just adds support for variable shifts - I'll continue with that patch (for just constant/uniform shifts) once I've fixed the type legalization issue in avx512-cvt.ll. Differential Revision: https://reviews.llvm.org/D28604 llvm-svn: 291901
* [aarch64][globalisel] Move getValueMapping/getCopyMapping to ↵Daniel Sanders2017-01-133-118/+118
| | | | | | | | | | | | | | | | | | | | | AArch64GenRegisterBankInfo. NFC. Summary: We did lose a little specificity in the assertion messages for the PartialMappingIdx enumerators in this change but this was necessary to avoid unnecessary use of 'public:' and we haven't lost anything that can't be discovered easily in lldb. Once this is tablegen-erated we could also safely remove the assertions. Depends on D27976 Reviewers: t.p.northover, ab, rovka, qcolombet Subscribers: aditya_nandakumar, aemerson, rengolin, vkalintiris, dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D27978 llvm-svn: 291900
* [aarch64][globalisel] Refactor getRegBankBaseIdxOffset() to remove the ↵Daniel Sanders2017-01-133-21/+37
| | | | | | | | | | | | | | | | | power-of-2 assumption. NFC Summary: We don't exploit it yet though Depends on D27976 Reviewers: t.p.northover, ab, rovka, qcolombet Subscribers: aditya_nandakumar, aemerson, rengolin, vkalintiris, dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D27977 llvm-svn: 291899
* [ARM] Enable objdump to construct triple for ARMSam Parker2017-01-1319-56/+681
| | | | | | | | | | | | | Now that The ARMAttributeParser has been moved into the library, it has been modified so that it can parse the attributes without printing them and stores them in a map. ELFObjectFile now queries the attributes to fill out the architecture details of a provided triple for 'arm' and 'thumb' targets. llvm-objdump uses this new functionality. Differential Revision: https://reviews.llvm.org/D28281 llvm-svn: 291898
* [aarch64][globalisel] Move data into <Target>GenRegisterBankInfo. NFC.Daniel Sanders2017-01-133-180/+217
| | | | | | | | | | | | Summary: Depends on D27809 Reviewers: t.p.northover, rovka, qcolombet, ab Subscribers: aditya_nandakumar, aemerson, rengolin, vkalintiris, dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D27976 llvm-svn: 291897
* [ARM] Moved ARMAttributeParser to SupportSam Parker2017-01-135-7/+7
| | | | | | | | | Moved ARMAttributeParser out of llvm-readobj and into the support library. Differential Revision: https://reviews.llvm.org/D28227 llvm-svn: 291896
* Remove a couple of Stream flagsPavel Labath2017-01-1310-191/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: I came across this while trying to understand what Log::Debug does. It turns out it does not do anything, as there is no instance of someone setting a debug flag on a stream. The same is true for the Verbose and AddPrefix flags. Removing these will enable some cleanups in the Logging class, and it brings us closer towards the long term goal of standardizing on llvm stream classes. I have removed these flags and all code the code which tested for their presence -- there wasn't much of it, mostly in SymbolFileDWARF, which is probably going away at some point anyway. The eBinary flag still has some users, so I am letting it life for the time being. Reviewers: clayborg, zturner Subscribers: aprantl, beanz, lldb-commits Differential Revision: https://reviews.llvm.org/D28616 llvm-svn: 291895
* [ARM] CodeGen: Replace AddDefaultT1CC and AddNoT1CC. NFCDiana Picus2017-01-136-59/+55
| | | | | | | | | | | For AddDefaultT1CC, we add a new helper t1CondCodeOp, which creates the appropriate register operand. For AddNoT1CC, we use the existing condCodeOp helper - we only had two uses of AddNoT1CC, so at this point it's probably not worth having yet another helper just for them. Differential Revision: https://reviews.llvm.org/D28603 llvm-svn: 291894
* [ARM] CodeGen: Remove AddDefaultCC. NFC.Diana Picus2017-01-139-74/+92
| | | | | | | | | | Replace all uses of AddDefaultCC with add(condCodeOp()). The transformation has been done automatically with a custom tool based on Clang AST Matchers + RefactoringTool. Differential Revision: https://reviews.llvm.org/D28557 llvm-svn: 291893
* Fix the build of the include-fixer plugin for some shared cmake builds and MSVC.Benjamin Kramer2017-01-132-0/+12
| | | | | | | | | | - The include fixer plugin does not directly depend on pthread, but can pick up pthread references transitively through inlining. Just add pthreads to the linked libs unconditionally. - MSVC emits bogus warnings when including <future> and building without exceptions. Blacklist the warnings explicitly. llvm-svn: 291892
* [CodeGen] Rename MachineInstrBuilder::addOperand. NFCDiana Picus2017-01-1366-608/+604
| | | | | | | | | | | Rename from addOperand to just add, to match the other method that has been added to MachineInstrBuilder for adding more than just 1 operand. See https://reviews.llvm.org/D28057 for the whole discussion. Differential Revision: https://reviews.llvm.org/D28556 llvm-svn: 291891
* [ARM] CodeGen: Remove AddDefaultPred. NFC.Diana Picus2017-01-1318-630/+830
| | | | | | | | | | | | | | | | | | | | | | | | | Replace all uses of AddDefaultPred with MachineInstrBuilder::add(predOps()). This makes the code building MachineInstrs more readable, because it allows us to write code like: MIB.addSomeOperand(blah) .add(predOps()) .addAnotherOperand(blahblah) instead of AddDefaultPred(MIB.addSomeOperand(blah)) .addAnotherOperand(blahblah) This commit also adds the predOps helper in the ARM backend, as well as the add method taking a variable number of operands to the MachineInstrBuilder. The transformation has been done mostly automatically with a custom tool based on Clang AST Matchers + RefactoringTool. Differential Revision: https://reviews.llvm.org/D28555 llvm-svn: 291890
* Fix log typo in ABISysV_arm64.cppOmair Javaid2017-01-131-1/+1
| | | | | | | This commit fixes a typo in ABISysV_arm64.cpp. Log was reporting a call to ABISysV_x86_64::PrepareTrivialCall. llvm-svn: 291889
* [X86][AVX512] Adding missing shuffle lowering to blend mask instructions Michael Zuckerman2017-01-1311-98/+325
| | | | | | | | | | | | | | | Some shuffles can be lowered to blend mask instruction (VPBLENDMB/VPBLENDMW/VPBLENDMD/VPBLENDMQ) . In this patch, I added new pattern match for this case. Reviewers: 1. craig.topper 2. guyblank 3. RKSimon 4. igorb Differential Revision: https://reviews.llvm.org/D28483 llvm-svn: 291888
* RegionPass: Set isExecuted flag correctlyTobias Grosser2017-01-131-0/+1
| | | | | | | This was forgotten in r291882. Without this fix, the Polly build bots are broken. llvm-svn: 291887
* DWARFDie.h: Move a class declaration out of the method description since ↵NAKAMURA Takumi2017-01-131-1/+2
| | | | | | r291861. [-Wdocumentation] llvm-svn: 291886
* [AVX-512] Remove unmasked BLENDM instructions from the wrong load folding ↵Craig Topper2017-01-131-4/+0
| | | | | | | | table. The unmasked versions read memory from operand 2, but were in the operand 3 table. These aren't the most interesting set of blendm instructions as the unmasked version isn't useful. We were also missing the B and W forms. I'll add the masked versions of all sizes in a future patch. llvm-svn: 291885
* [X86] Move some entries in the load folding tables to move appropriate ↵Craig Topper2017-01-131-10/+10
| | | | | | grouping. NFC llvm-svn: 291884
* [IR] Don't call assertModuleIsMaterialized in release buildsCraig Topper2017-01-132-2/+10
| | | | | | | | | | | | | | | | | Summary: To fix a release vs debug build linking error, r259695 made the body of assertModuleIsMaterialized empty if Value.cpp gets compiled in a release build. This way any code compiled as a debug build can still link against a release version of the function. This patch takes this a step farther and removes all calls to it from Value.h in any code that includes it in a relase build. This shrinks the opt binary on my macbook build by 17240 bytes. Reviewers: rafael Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28191 llvm-svn: 291883
* Track validity of pass resultsSerge Pavlov2017-01-1311-17/+67
| | | | | | | | | | | | | | | | | | | | | | | | Running tests with expensive checks enabled exhibits some problems with verification of pass results. First, the pass verification may require results of analysis that are not available. For instance, verification of loop info requires results of dominator tree analysis. A pass may be marked as conserving loop info but does not need to be dependent on DominatorTreePass. When a pass manager tries to verify that loop info is valid, it needs dominator tree, but corresponding analysis may be already destroyed as no user of it remained. Another case is a pass that is skipped. For instance, entities with linkage available_externally do not need code generation and such passes are skipped for them. In this case result verification must also be skipped. To solve these problems this change introduces a special flag to the Pass structure to mark passes that have valid results. If this flag is reset, verifications dependent on the pass result are skipped. Differential Revision: https://reviews.llvm.org/D27190 llvm-svn: 291882
* Another fix for r291850 because there are apparently targets which addChandler Carruth2017-01-131-4/+4
| | | | | | | "-mllvm" flags to the CC1 invocation (notably, Hexagon seems to hit this). llvm-svn: 291881
* Implement DR1265 (wg21.link/cwg1265).Richard Smith2017-01-138-78/+165
| | | | | | | | | | | | Diasllow a declaration using the 'auto' type specifier from using two different meanings of it at once, or from declaring multiple functions with deduced return types or introducing multiple trailing return types. The standard does not technically disallow the multiple trailing return types case if all the declarators declare variables (such as function pointers with trailing return types), but we disallow that too, following the clear intent. llvm-svn: 291880
* Add a necessary newline for diagnose_if documentation.Eric Christopher2017-01-131-0/+1
| | | | llvm-svn: 291879
* ProfileSummaryInfo improvements.Easwaran Raman2017-01-134-5/+230
| | | | | | | | | | | * Add is{Hot|Cold}CallSite methods * Fix a bug in isHotBB where it was looking for MD_prof on a return instruction * Use MD_prof data only if sample profiling was used to collect profiles. * Add an unit test to ProfileSummaryInfo Differential Revision: https://reviews.llvm.org/D28584 llvm-svn: 291878
* [Sema] Restrict explicit instantation definition dllexportShoaib Meenai2017-01-132-5/+21
| | | | | | | | | | | | | | | | In the case where the template class itself is already `dllexport`, the implicit instantiation will have already emitted all members. When we check the explicit instantiation definition, the `Specialization` will have inherited the `dllexport` attribute, so we'll attempt to emit all members for a second time, which causes an assertion failure. Restrict the exporting to when the `dllexport` attribute is newly introduced by the explicit instantiation definition. Fixes PR31608. Differential Revision: https://reviews.llvm.org/D28590 llvm-svn: 291877
* [DOXYGEN] Documentation for the newly added x86 intrinsics.Ekaterina Romanova2017-01-135-12/+64
| | | | | | | | | | | | | | Added doxygen comments for the newly added intrinsics in avxintrin.h, namely _mm256_cvtsd_f64, _mm256_cvtsi256_si32 and _mm256_cvtss_f32 Added doxygen comments for the new intrinsics in emmintrin.h, namely _mm_loadu_si64 and _mm_load_sd. Explicit parameter names were added for _mm_clflush and _mm_setcsr The rest of the changes are editorial, removing trailing spaces at the end of the lines. Differential Revision: https://reviews.llvm.org/D28503 llvm-svn: 291876
OpenPOWER on IntegriCloud