summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* AMDGPU/SI: Change assembly name for flat scratch registers to flat_scratchTom Stellard2015-12-211-3/+3
| | | | | | This matches what the assembler accepts. llvm-svn: 256177
* [AArch64] Add additional extract-extend patterns for smovMatthew Simpson2015-12-211-0/+7
| | | | | | | | | | | | | This patch adds to the target description two additional patterns for matching extract-extend operations to SMOV. The patterns catch the v16i8-to-i64 and v8i16-to-i64 cases. The existing patterns miss these cases because the extracted elements must first be legalized to i32, resulting in any_extend nodes. This was originally implemented as a DAG combine (r255895), but was reverted due to failing out-of-tree tests. llvm-svn: 256176
* Remove extra whitespace. NFC.Chad Rosier2015-12-211-3/+3
| | | | llvm-svn: 256173
* [ThinLTO] Rename variable to reflect bulk importing change (NFC)Teresa Johnson2015-12-211-10/+11
| | | | llvm-svn: 256171
* [WebAssembly] Convert a regular for loop to a range-based for loop.Dan Gohman2015-12-211-2/+1
| | | | llvm-svn: 256169
* [WebAssembly] Clean up comments and fix a missing #include dependency.Dan Gohman2015-12-211-13/+7
| | | | llvm-svn: 256168
* [WebAssembly] Remove an unneeded empty destructor.Dan Gohman2015-12-211-4/+0
| | | | llvm-svn: 256167
* [WebAssembly] Enclose the operand variables for load and store instructions ↵Dan Gohman2015-12-211-23/+23
| | | | | | | | | in braces. This allows the AsmMatcherEmitter to properly tokenize the AsmStrings for load and store instructions. This is a step towards asm parsing. llvm-svn: 256166
* [WebAssembly] Mark the ARGUMENT pseudo-instructions as CodeGenOnly.Dan Gohman2015-12-211-1/+1
| | | | llvm-svn: 256165
* [WebAssembly] Add some comments and make some minor source cleanups.Dan Gohman2015-12-211-3/+4
| | | | llvm-svn: 256164
* Teach MCOperand::print how to print FPImm operands.Dan Gohman2015-12-211-0/+2
| | | | llvm-svn: 256163
* Remove unused functions from ModuleLinker (NFC)Teresa Johnson2015-12-211-54/+0
| | | | | | | Remove a couple ModuleLinker methods and a related static function that are no longer used after the linker split. llvm-svn: 256162
* Remove overly strict new assert in BitcodeReader.Teresa Johnson2015-12-211-16/+1
| | | | | | | | | | This fixes a bug introduced by the ThinLTO metadata linking patch r255909. The assert is overly-strict and while useful in development of the patch, doesn't seem interesting to keep. Fixes PR25907. llvm-svn: 256161
* Revert "[AArch64] Promote loads from stores"Jun Bum Lim2015-12-211-280/+3
| | | | | | This reverts commit r256004 due to a failure in cortex-a53. llvm-svn: 256160
* [LIR] Refactor code to enable future patch. NFC.Chad Rosier2015-12-211-41/+41
| | | | llvm-svn: 256159
* [AArch64] Enable PostRAScheduler for AArch64 generic build.Chad Rosier2015-12-211-1/+2
| | | | | | | | | Disable post-ra scheduler for perturbed tests to appease the bots and to preserve the history of the tests. http://reviews.llvm.org/D15652 llvm-svn: 256158
* AVX512BW: Enable AND/OR/XOR vector byte/word paked operation by promoting to ↵Igor Breger2015-12-211-1/+8
| | | | | | qword that natively suppored. llvm-svn: 256157
* Implemented Support of IA interrupt and exception handlers:Amjad Aboud2015-12-2113-198/+313
| | | | | | | | http://lists.llvm.org/pipermail/cfe-dev/2015-September/045171.html Differential Revision: http://reviews.llvm.org/D15567 llvm-svn: 256155
* [mips][microMIPS] Implement DERET and DI instructions and check size operand ↵Zlatko Buljan2015-12-2110-60/+74
| | | | | | | | for EXT and DEXT* instructions Differential Revision: http://reviews.llvm.org/D15570 llvm-svn: 256152
* [MC, COFF] Unbreak support for COFF timestampsDavid Majnemer2015-12-211-0/+1
| | | | | | | | | | | | | | | | | | | Support for COFF timestamps was unintentionally broken in r246905 when it was conditionally available depending on whether or not LLVM was configured with LLVM_ENABLE_TIMESTAMPS. However, Config/config.h was never included which essentially broke the feature. Due to lax testing, the breakage was never identified until we observed strange failures during incremental links of Chromium. This issue is resolved by simply including Config/config.h in WinCOFFObjectWriter and teaching lit that the MC/COFF/timestamp.s test is conditionally supported depending on LLVM_ENABLE_TIMESTAMPS. With this in place, we can strengthen the test to ensure that it will not accidentally get broken in the future. This fixes PR25891. llvm-svn: 256137
* [Cygwin] Enable TLS as emutls.NAKAMURA Takumi2015-12-211-0/+6
| | | | | | | | It resolves clang selfhosting with std::once() for Cygwin. FIXME: It may be EmulatedTLS-generic also for X86-Android. FIXME: Pass EmulatedTLS to LLVM CodeGen from Clang with -femulated-tls. llvm-svn: 256134
* [RS4GC] Add an assert which fails if there is a (yet unsupported) addrspacecast.Manuel Jacob2015-12-211-0/+5
| | | | | | The slightly strange indentation comes from clang-format. llvm-svn: 256132
* [InstCombine] Fix indentation. NFC.Craig Topper2015-12-211-2/+2
| | | | llvm-svn: 256131
* [AVR] Added AVRCallingConv.tdDylan McKay2015-12-203-1/+67
| | | | llvm-svn: 256130
* [X86] Use range-based for loop. NFCCraig Topper2015-12-201-3/+2
| | | | llvm-svn: 256127
* [X86] Prevent constant hoisting for a couple compare immediates that the ↵Craig Topper2015-12-201-1/+13
| | | | | | | | | | selection DAG knows how to optimize into a shift. This allows "icmp ugt %a, 4294967295" and "icmp uge %a, 4294967296" to be optimized into right shifts by 32 which can fold the immediate into the shift instruction. These patterns show up with some regularity in real code. Unfortunately, since getImmCost can't see the icmp predicate we can't be tell if we're only catching these specific cases. llvm-svn: 256126
* Add AVR.td and AVRRegisterInfo.tdDylan McKay2015-12-204-1/+783
| | | | | | | | | | | | | | | | | | | | | Summary: This adds the core AVR TableGen file, along with the register descriptions. Lines in AVR.td which require other TableGen files which haven't been committed yet are commented out. This is a fairly trivial patch, and should only require a quick review. I kept the line width smaller than 80 columns, but there are a few exceptions because I'm not sure how to split a string over several lines. Reviewers: stoklund Subscribers: dylanmckay, agnat Differential Revision: http://reviews.llvm.org/D14684 llvm-svn: 256120
* Fix a latent UAF bug in profwriterXinliang David Li2015-12-201-0/+2
| | | | llvm-svn: 256116
* Fix mapping of @llvm.arm.ssat/usat intrinsics to ssat/usat instructions for ↵Weiming Zhao2015-12-201-2/+2
| | | | | | | | | | | | | | | | | Thumb2 Summary: r250697 fixed the mapping for ARM mode. We have to do the same for Thumb2 otherwise the same llvm.arm.ssat() will generate different saturating amount for ARM and Thumb. r250697: http://reviews.llvm.org/rL250697 Reviewers: rmaprath Subscribers: aemerson, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D15653 llvm-svn: 256115
* [PGO] Improve Indexed Profile Reader efficiency Xinliang David Li2015-12-203-73/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With the support of value profiling added, the Indexed prof reader gets less efficient. The prof reader initialization used to be just reading the file header, but with VP support added, initialization needs to walk through all profile keys of ondisk hash table resulting in very poor locality and large memory increase (keys are stored together with the profile data in the mapped profile buffer). Even worse, when the reader is used by the compiler (not llvm-profdata too), the penalty becomes very high as compilation of each single module requires touching profile data buffer for the whole program. In this patch, the icall target values (MD5hash) are no longer eargerly converted back to name strings when the data is read into memory. New interface is added to to profile reader so that InstrProfSymtab can be lazily created for Indexed profile reader on-demand. Creating of the symtab is intended to be used by llvm-profdata tool for symbolic dumping of VP data. It can be used with compiler (for legacy out of tree uses) too but not recommended due to compile time and memory reasons mentioned above. Some other cleanups are also included: Function Addr to md5 map is now consolated into InstrProfSymtab. InstrProfStringtab is no longer used and eliminated. llvm-svn: 256114
* Minor clean up -- move large single use method out of header(NFC)Xinliang David Li2015-12-201-0/+31
| | | | llvm-svn: 256113
* Nonnull elements in OperandBundleCallSites are not all InstructionsSanjoy Das2015-12-191-3/+2
| | | | | | | | | | `CloneAndPruneIntoFromInst` sometimes RAUW's dead instructions with `undef` before erasing them (to avoid deleting instructions that still have uses). This changes the `WeakVH` in `OperandBundleCallSites` to hold an `undef`, and we need to guard for this situation in eventuality in `llvm::InlineFunction`. llvm-svn: 256110
* Delete APIs that have been deprecated since 2010.Rafael Espindola2015-12-191-42/+0
| | | | llvm-svn: 256107
* Assert that we have all use/users in the getters.Rafael Espindola2015-12-194-7/+18
| | | | | | | | | | | | | | An error that is pretty easy to make is to use the lazy bitcode reader and then do something like if (V.use_empty()) The problem is that uses in unmaterialized functions are not accounted for. This patch adds asserts that all uses are known. llvm-svn: 256105
* Remove unnecessary casts. NFC.Manuel Jacob2015-12-191-6/+5
| | | | llvm-svn: 256101
* SelectionDAG: Cleanup integer bin op promotion functions.Matt Arsenault2015-12-192-34/+17
| | | | | | | SDIV and UDIV had special handling, but this is the same handling that min/max need. llvm-svn: 256098
* Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-196-144/+72
| | | | | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Includes a fix to scrub value subclass data in dropAllReferences. Does not use binary literals. Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256095
* Revert "Reapply "[IR] Move optional data in llvm::Function into a hungoff ↵Vedant Kumar2015-12-196-72/+144
| | | | | | | | | | uselist"" This reverts commit r256093. This broke lld-x86_64-win7 because of -Werror,-Wc++1y-extensions. llvm-svn: 256094
* Reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-196-144/+72
| | | | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Includes a fix to scrub value subclass data in dropAllReferences. Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256093
* Revert "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-196-71/+144
| | | | | | | | This reverts commit r256090. This broke llvm-clang-lld-x86_64-debian-fast. llvm-svn: 256091
* [IR] Move optional data in llvm::Function into a hungoff uselistVedant Kumar2015-12-196-144/+71
| | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256090
* [libFuzzer] deprecate -save_minimized_corpus, -merge can be used insteadKostya Serebryany2015-12-192-7/+7
| | | | llvm-svn: 256086
* [libFuzzer] split the tests to run them in parallel, remove one redundant testKostya Serebryany2015-12-196-66/+41
| | | | llvm-svn: 256085
* AMDGPU/SI: Fix implemenation of isSourceOfDivergence() for graphics shadersTom Stellard2015-12-191-6/+5
| | | | | | | | | | | | | | | Summary: The analysis of shader inputs was completely wrong. We were passing the wrong index to AttributeSet::hasAttribute() and the logic for which inputs where in SGPRs was wrong too. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15608 llvm-svn: 256082
* [libFuzzer] make CrossOver just one of the other mutationsKostya Serebryany2015-12-196-38/+58
| | | | llvm-svn: 256081
* [RS4GC] Remove an overly strong assertionPhilip Reames2015-12-191-10/+5
| | | | | | As shown by the included test case, it's reasonable to end up with constant references during base pointer calculation. The code actually handled this case just fine, we only had the assert to help isolate problems under the belief that constant references shouldn't be present in IR generated by managed frontends. This turned out to be wrong on two fronts: 1) Manual Jacobs is working on a language with constant references, and b) we found a case where the optimizer does create them in practice. llvm-svn: 256079
* Clean up the processing of dbg.value in various placesKeno Fischer2015-12-193-12/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: First up is instcombine, where in the dbg.declare -> dbg.value conversion, the llvm.dbg.value needs to be called on the actual loaded value, rather than the address (since the whole point of this transformation is to be able to get rid of the alloca). Further, now that that's cleaned up, we can remove a hack in the backend, that would add an implicit OP_deref if the argument to dbg.value was an alloca. This stems from before the existence of DIExpression and is no longer necessary since the deref can be expressed explicitly. Now, in order to make sure that the tests pass with this change, we need to correct the printing of DEBUG_VALUE comments to take into account the expression, which wasn't taken into account before. Unfortunately, for both these changes, there were a number of incorrect test cases (mostly the wrong number of DW_OP_derefs, but also a couple where the test itself was broken more badly). aprantl and I have gone through and adjusted these test case in order to make them pass with these fixes and in some cases to make sure they're actually testing what they are meant to test. Reviewers: aprantl Subscribers: dsanders Differential Revision: http://reviews.llvm.org/D14186 llvm-svn: 256077
* AMDGPU: Switch barrier intrinsics to using convergentMatt Arsenault2015-12-191-2/+2
| | | | | | | | noduplicate prevents unrolling of small loops that happen to have barriers in them. If a loop has a barrier in it, it is OK to duplicate it for the unroll. llvm-svn: 256075
* Fix broken type legalization of min/maxMatt Arsenault2015-12-192-2/+20
| | | | | | | This was using an anyext when promoting the type when zext/sext is required. llvm-svn: 256074
* AMDGPU/SI: use S_MOV_B64 for larger copies in copyPhysRegNicolai Haehnle2015-12-191-6/+22
| | | | | | | | | | Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15629 llvm-svn: 256073
OpenPOWER on IntegriCloud