summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Clarify memory ownership semantics; NFC.Aaron Ballman2016-04-212-93/+96
| | | | | | Patch by Clement Courbet llvm-svn: 266986
* [mips][microMIPS] Add R_MICROMIPS_PC26_S1 relocationZoran Jovanovic2016-04-217-2/+72
| | | | | | Differential Revision: http://reviews.llvm.org/D14822 llvm-svn: 266985
* [AMDGPU] Assembler: prevent parseDPPCtrlOps from eating invalid tokensSam Kolton2016-04-211-2/+14
| | | | | | | | | | Reviewers: nhaustov, tstellarAMD Subscribers: arsenm Differential Revision: http://reviews.llvm.org/D19317 llvm-svn: 266984
* [Clang][AVX512][BuiltIn] Adding intrinsics of VGATHER{DPS|DPD} , ↵Michael Zuckerman2016-04-219-2/+458
| | | | | | | | VPGATHER{QD|QQ|DD|DQ} and VGATHERPF{0|1}{DPS|QPS|DPD|QPD} instruction set . Differential Revision: http://reviews.llvm.org/D19224 llvm-svn: 266983
* Use llvm::CachedHash.Rafael Espindola2016-04-211-30/+1
| | | | llvm-svn: 266982
* Add a CachedHash structure.Rafael Espindola2016-04-212-0/+79
| | | | | | | | | | | | | A DenseMap doesn't store the hashes, so it needs to recompute them when the table is resized. In some applications the hashing cost is noticeable. That is the case for example in lld for symbol names (StringRef). This patch adds a templated structure that can wraps any value that can go in a DenseMap and caches the hash. llvm-svn: 266981
* [mips][microMIPS] Implement TLBP, TLBR, TLBWI and TLBWR instructionsZlatko Buljan2016-04-217-5/+46
| | | | | | Differential Revision: http://reviews.llvm.org/D18855 llvm-svn: 266980
* [ELF] - Make LinkerScript::getSectionOrder private. NFC.George Rimar2016-04-211-1/+1
| | | | llvm-svn: 266979
* [ELF] - Use ArrayRef instead of std::vector& for LinkerScript module. NFC.George Rimar2016-04-212-4/+4
| | | | llvm-svn: 266978
* [mips][microMIPS] Implement LL, SC, MOVEP, ROTR, ROTRV and SYSCALL ↵Zlatko Buljan2016-04-2116-12/+136
| | | | | | | | instructions and add tests for LWM32 and SWM32 Differential Revision: http://reviews.llvm.org/D19150 llvm-svn: 266977
* Correctly parse GCC-style asm line following MS-style asm line.Denis Zobnin2016-04-215-26/+68
| | | | | | | | | | | | | | Quit parsing MS-style inline assembly if the following statement has GCC style. Enables compilation of code like void f() { __asm mov ebx, ecx __asm__("movl %ecx, %edx"); } Differential Revision: http://reviews.llvm.org/D18652 llvm-svn: 266976
* Back out the test case for r266973 for now.Benjamin Kramer2016-04-211-2/+0
| | | | | | | It breaks on windows, need to investigate. It's not testing the important part of that change anyways. llvm-svn: 266975
* [ELF] - Get rid of SectionOrder array.George Rimar2016-04-213-13/+48
| | | | | | | | | | | SectionOrder vector was a part of LinkerScript class. It can be removed because Commands vector contains the same information and SectiorOrder is just a subset. Differential revision: http://reviews.llvm.org/D19171 llvm-svn: 266974
* [Tooling] Inject -resource-dir instead of overwriting argv[0].Benjamin Kramer2016-04-212-8/+25
| | | | | | | | | This allows using a different standard library (the one from argv[0] in the compilation database) with the correct builtins. Differential Revision: http://reviews.llvm.org/D19356 llvm-svn: 266973
* Compilation for Intel MCU (Part 1/3)Andrey Turetskiy2016-04-214-8/+60
| | | | | | | | | | | Add -miamcu option which: * Sets IAMCU triple * Sets IAMCU ABI * Enforces static compilation Differential Revision: http://reviews.llvm.org/D18398 llvm-svn: 266972
* Updated a test not to produce an empty s-file.Evgeny Astigeevich2016-04-211-1/+1
| | | | llvm-svn: 266971
* Fix cast compiler warning message in include-fixer.Haojian Wu2016-04-211-3/+2
| | | | | | | | | | Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19323 llvm-svn: 266970
* [AArch64][CodeGen] Fix of PR27158: incorrect peephole optimization in ↵Evgeny Astigeevich2016-04-214-75/+221
| | | | | | | | | | | | | | | | AArch64InstrInfo::optimizeCompareInstr AArch64InstrInfo::optimizeCompareInstr has bug PR27158 which causes generation of incorrect code. A compare instruction is substituted with another instruction which does not produce the same flags as the original compare instruction. This patch contains: 1. Fix of the bug. 2. A regression test in MIR. 3. A new test to check that SUBS is replaced by SUB. Differential Revision: http://reviews.llvm.org/D18838 llvm-svn: 266969
* [AVX512] Add CTTZ support for v8i64 and v16i32 vectors.Craig Topper2016-04-212-182/+167
| | | | llvm-svn: 266968
* [X86] Fix vector-tzcnt-512 test to disable CDI while enabling BWI for one of ↵Craig Topper2016-04-211-18/+134
| | | | | | the runs. Update check patterns accordingly. llvm-svn: 266967
* Fix test command line to explicitly disable CDI instructions for one test.Craig Topper2016-04-211-1/+1
| | | | llvm-svn: 266966
* CachePruning: early exit if no path suppliedMehdi Amini2016-04-211-2/+11
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266965
* ThinLTO: initialize variablesMehdi Amini2016-04-211-2/+2
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266964
* [AVX512] Add support for lowering CTTZ v64i8 and v32i16 with BWI instructions.Craig Topper2016-04-212-729/+126
| | | | llvm-svn: 266963
* [X86] Remove redundant calls to setOperationAction for ↵Craig Topper2016-04-211-19/+2
| | | | | | EXTRACT_VECTOR_ELT/INSERT_VECTOR_ELT from SSE41 block. They were already done in an earlier block. NFC llvm-svn: 266962
* [X86] Remove some operations from the default Expand all vector ops loop. ↵Craig Topper2016-04-211-22/+26
| | | | | | Instead let them stay Legal and mark them Expand for specific types where needed. Reduces overall number of calls to setOperationAction. NFC llvm-svn: 266961
* [X86] Remove old leftover MMX code that sets various 64-bit vector ↵Craig Topper2016-04-211-17/+0
| | | | | | operations to Expand. These vector types aren't legal so these operations would never make it far enough to need to expand. NFC llvm-svn: 266960
* ThinLTO: add module caching handling.Mehdi Amini2016-04-213-11/+171
| | | | | | | Differential Revision: http://reviews.llvm.org/D18494 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266959
* ThinLTO: Resolve linkonce_odr aliases just like functionsMehdi Amini2016-04-216-13/+418
| | | | | | | | | | | | This help to streamline the process of handling importing since we don't need to special case alias everywhere: just like linkonce_odr function, make sure at least one alias is emitted by turning it weak. Differential Revision: http://reviews.llvm.org/D19308 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266958
* [LTO/Test] Make x86_64-darwin bot happy again.Davide Italiano2016-04-211-0/+1
| | | | llvm-svn: 266957
* [libc++] fix macro redef warning when exception is disabledWeiming Zhao2016-04-211-1/+1
| | | | | | | | | | | | | Summary: when setting LIBCXX_ENABLE_EXCEPTIONS=false, _LIBCPP_NO_EXCEPTIONS wil be defined in both commandline and _config Reviewers: bcraig, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19344 llvm-svn: 266956
* [SimplifyCFG] Fold `llvm.guard(false)` to unreachableSanjoy Das2016-04-212-1/+105
| | | | | | | | | | | | | | Summary: `llvm.guard(false)` always bails out of the current compilation unit, so we can prune any control flow following it. Reviewers: hfinkel, pcc, reames Subscribers: majnemer, reames, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D19245 llvm-svn: 266955
* [LTO] Another couple of tests for cases we already get right.Davide Italiano2016-04-213-0/+40
| | | | | | | -> Drop linkage when converting to decl -> Handling of unnamed_addr. llvm-svn: 266954
* [LTO] Discard names for Values that are not global.Davide Italiano2016-04-215-0/+38
| | | | | | | This is not on by default (but it might be in the future). The knob to enable the optimization is -lto-discard-value-names. llvm-svn: 266953
* [X86] Remove unnecessary setting of CTTZ_ZERO_UNDEF to Custom for vector ↵Craig Topper2016-04-211-5/+0
| | | | | | | | types where we can't do any better than the Custom lowering of CTTZ. LegalizeVectorOps will expand to CTTZ since its marked Custom. CTTZ_ZERO_UNDEF can be custom lowered specially if CTLZ is supported. Otherwise CTTZ and CTTZ_ZERO_UNDEF are handled the same way by using CTPOP and bitmath. llvm-svn: 266952
* [SelectionDAG] Teach LegalizeVectorOps to directly Expand ↵Craig Topper2016-04-211-3/+5
| | | | | | | | CTTZ_ZERO_UNDEF/CTLZ_ZERO_UNDEF to CTTZ/CTLZ directly if those ops are Legal/Custom instead of deferring it to LegalizeOps. This is needed to support CTTZ/CTLZ Custom correctly since LegalizeOps would be too late to do the custom lowering. llvm-svn: 266951
* [AVX512] Add support for popcount of v8i64 and v16i32 with and without BWI ↵Craig Topper2016-04-212-94/+97
| | | | | | | | instructions. Without BWI we have to split the vectors into 256-bit vectors so we can use AVX2 pshufb and then concatenate the results. llvm-svn: 266950
* ValueMapper: Map uniqued nodes in post-orderDuncan P. N. Exon Smith2016-04-211-32/+57
| | | | | | | | | | | | | | | The iteratitive algorithm from r265456 claimed but failed to create a post-order traversal. It had the same error that was fixed in the ValueEnumerator in r266947: now, instead of pushing all operands on the worklist at once, we pause whenever an operand gets pushed in order to go depth-first (I know, it sounds obvious). Sadly, I have no idea how to observe this from outside the algorithm and so I haven't written a test. The output should be the same; it should just use fewer temporary nodes now. I've added some comments that I hope make the current logic clear enough it's unlikely to regress. llvm-svn: 266949
* ThinLTO/ModuleLinker: add a flag to not always pull-in linkonce when ↵Mehdi Amini2016-04-218-12/+96
| | | | | | | | | | | | | | | | | | | performing importing Summary: The function importer already decided what symbols need to be pulled in. Also these magically added ones will not be in the export list for the source module, which can confuse the internalizer for instance. Reviewers: tejohnson, rafael Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D19096 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266948
* BitcodeWriter: Emit metadata in post-order (again)Duncan P. N. Exon Smith2016-04-214-23/+64
| | | | | | | | | | | | | | | Emit metadata nodes in post-order. The iterative algorithm from r266709 failed to maintain this property. After understanding my mistake, it wasn't too hard to write a test with llvm-bcanalyzer (and I've actually made this change once before: see r220340). This also reverts the "noisy" testcase change from r266709. That should have been more of a red flag :/. Note: The same bug crept into the ValueMapper in r265456. I'm still working on the fix. llvm-svn: 266947
* MachineSched: Cleanup; NFCMatthias Braun2016-04-211-32/+16
| | | | llvm-svn: 266946
* [modules] Make the tweak to avoid circular inclusion of emmintrin.h andRichard Smith2016-04-212-12/+5
| | | | | | | | | xmmintrin.h a bit more directed. If for whatever reason modules are enabled but we textually include one of these headers, don't deploy the special case for modules. To make this work cleanly, extend __building_module to be defined even when modules is disabled. llvm-svn: 266945
* Expressions can run without a process.Jim Ingham2016-04-211-17/+30
| | | | | | | | | | | Code was added in ClangExpressionParser::ClangExpressionParser that was calling through the process w/o checking that it was good. Also, we were pretending that we could do something reasonable if we had no target, but that's actually not true, so I check for a target at the beginning of the constructor and don't make a compiler in that case. <rdar://problem/25841198> llvm-svn: 266944
* Reland test change.Nico Weber2016-04-211-0/+1
| | | | llvm-svn: 266943
* Revert unintentionally commited bits in r266935.Nico Weber2016-04-212-26/+1
| | | | llvm-svn: 266942
* Corrected wording of REPL not available messaging (contained a repeated word ↵Kate Stone2016-04-212-2/+2
| | | | | | and lacked clarity.) llvm-svn: 266941
* Added command prefix to new help messages to ensure that they're correctly ↵Kate Stone2016-04-211-11/+5
| | | | | | words in REPL mode. llvm-svn: 266940
* Add optimization for 'icmp slt (or A, B), A' and some related idioms based ↵Nick Lewycky2016-04-215-43/+231
| | | | | | | | | | | | | | | | | | | | on knowledge of the sign bit for A and B. No matter what value you OR in to A, the result of (or A, B) is going to be UGE A. When A and B are positive, it's SGE too. If A is negative, OR'ing a value into it can't make it positive, but can increase its value closer to -1, therefore (or A, B) is SGE A. Working through all possible combinations produces this truth table: ``` A is +, -, +/- F F F + B is T F ? - ? F ? +/- ``` The related optimizations are flipping the 'slt' for 'sge' which always NOTs the result (if the result is known), and swapping the LHS and RHS while swapping the comparison predicate. There are more idioms left to implement (aren't there always!) but I've stopped here because any more would risk becoming unreasonable for reviewers. llvm-svn: 266939
* Remove the (ignored) -Wreceived-is-weak diagnostic.Bob Wilson2016-04-212-5/+2
| | | | | | | | We kept this around for a while since Xcode 6 and earlier had a build setting for this warning. It was removed in Xcode 7 so there should be no need for this warning now. llvm-svn: 266938
* Module Debugging: Emit the canonical debug info for Objective-C classesAdrian Prantl2016-04-204-5/+29
| | | | | | | | | | | | | in the compile unit that contains their implementation even if their interface is declared in a module. The private @implementation of an @interface may have additional hidden ivars so we should not defer to the public version of the type that is found in the module. <rdar://problem/25541798> llvm-svn: 266937
OpenPOWER on IntegriCloud