summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][XOP] Added VPPERM constant mask decoding and target shuffle combining ↵Simon Pilgrim2016-04-164-5/+80
| | | | | | | | support Added additional test that peeks through bitcast to v16i8 mask llvm-svn: 266533
* Add missing #include to fix buildVedant Kumar2016-04-161-0/+1
| | | | | | | Failing bot: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental/23112/ llvm-svn: 266532
* [X86][XOP] More VPPERM shuffle mask decode testsSimon Pilgrim2016-04-161-0/+104
| | | | | | As requested by D18441 llvm-svn: 266531
* Fix cmake build after r266524.Oleksiy Vyalov2016-04-161-0/+1
| | | | llvm-svn: 266530
* ValueMapper: Fix unused var warning. NFCSimon Atanasyan2016-04-161-0/+2
| | | | llvm-svn: 266529
* Remove links to deleted TODOs.Simon Atanasyan2016-04-161-5/+0
| | | | llvm-svn: 266528
* [ELF] Include Twine.h header to restore LLD build after r266524. NFCSimon Atanasyan2016-04-161-0/+1
| | | | llvm-svn: 266527
* Recommitted 266457 with fix:George Rimar2016-04-168-28/+280
| | | | | | | | | | | | | | | | | | | | * Do script driven layout only if SECTIONS section exist. Initial commit message: [ELF] - Implemented basic location counter support. This patch implements location counter support. It also separates assign addresses for sections to assignAddressesScript() if it scipt exists. Main testcase is test/ELF/linkerscript-locationcounter.s, It contains some work with location counter. It is basic now. Implemented location counter assignment and '+' operations. Patch by myself with LOTS of comments and design suggestions from Rui Ueyama. Differential revision: http://reviews.llvm.org/D18499 llvm-svn: 266526
* Add missing headers (fix build after headers cleanup in LLVM)Mehdi Amini2016-04-161-0/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266525
* Remove some unneeded headers and replace some headers with forward class ↵Mehdi Amini2016-04-1640-61/+43
| | | | | | | | | | | declarations (NFC) Differential Revision: http://reviews.llvm.org/D19154 Patch by Eugene Kosov <claprix@yandex.ru> From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266524
* Add SVN version to libLLVMLTOMehdi Amini2016-04-163-9/+104
| | | | | | | | | | | | | | | | | | | | Summary: For Incremental LTO, we need to make sure that an old cache entry is not used when incrementally re-linking with a new libLTO. Adding a global LLVM_REVISION in llvm-config.h would for to rebuild/relink the world for every "git pull"/"svn update". So instead only libLTO is made dependent on the VCS and will be rebuilt (and the dependent binaries relinked, i.e. as of today: libLTO.dylib and llvm-lto). Reviewers: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18987 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266523
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-162-4/+4
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266522
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-162-4/+4
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266521
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-1616-26/+19
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266520
* ThinLTO: Move the ODR resolution to be based purely on the summary.Mehdi Amini2016-04-165-85/+135
| | | | | | | | | This is a requirement for the cache handling in D18494 Differential Revision: http://reviews.llvm.org/D18908 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266519
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-162-4/+4
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266518
* ThinLTO: Make aliases explicit in the summaryMehdi Amini2016-04-1611-41/+271
| | | | | | | | | | | To be able to work accurately on the reference graph when taking decision about internalizing, promoting, renaming, etc. We need to have the alias information explicit. Differential Revision: http://reviews.llvm.org/D18836 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266517
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-164-8/+8
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266516
* Replace hardcoded comment at 'lit.site.cfg.in'Alex Denisov2016-04-163-4/+6
| | | | | | | | | | | | At the moment almost every lit.site.cfg.in contains two lines comment: ## Autogenerated by LLVM/Clang configuration. # Do not edit! The patch adds variable LIT_SITE_CFG_IN_HEADER, that is replaced from configure_lit_site_cfg with the note and some useful information. llvm-svn: 266515
* Do not modify a cl::opt programmatically, global mutable state is evil.Mehdi Amini2016-04-161-9/+13
| | | | | | | Found by TSAN on ThinLTO. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266514
* ValueMapper: Stop memoizing ConstantAsMetadataDuncan P. N. Exon Smith2016-04-162-13/+41
| | | | | | | | | | | | Stop memoizing ConstantAsMetadata in ValueMapper::mapMetadata. Now we have to recompute it, but these metadata aren't particularly common, and it restricts the lifetime of the Metadata map unnecessarily. (The motivation is that I have a patch which uses a single Metadata map for the lifetime of IRMover. Mehdi profiled r266446 with the patch applied and we saw a pretty big speedup in lib/Linker.) llvm-svn: 266513
* [DebugInfo] Correct the assertion introduced in r266509 + update test.Davide Italiano2016-04-162-3/+4
| | | | llvm-svn: 266512
* Add missing override keyword to silence -Winconsistent-missing-override. NFCCraig Topper2016-04-161-1/+1
| | | | llvm-svn: 266511
* Reapply "ValueMapper: Eliminate cross-file co-recursion, NFC"Duncan P. N. Exon Smith2016-04-164-174/+496
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit r266507, reapplying r266503 (and r266505 "ValueMapper: Use API from r266503 in unit tests, NFC") completely unchanged. I reverted because of a bot failure here: http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/16810/ However, looking more closely, the failure was from a host-compiler crash (clang 3.7.1) when building: lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o I didn't modify that file, or anything it includes, with that commit. The next build (which hadn't picked up my revert) got past it: http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/16811/ I think this was just unfortunate timing. I suppose the bot must be flakey. llvm-svn: 266510
* [DebugInfo] Reduce size of DILocalVariable from 40 to 32 bytes.Davide Italiano2016-04-161-3/+6
| | | | | | | | This significantly contributes to peak memory usage during a LTO Release+DebugInfo build of clang. In my profile the peak usage is around 164MB before this change and ~130MB after. llvm-svn: 266509
* AMDGPU: Enable LocalStackSlotAllocation passMatt Arsenault2016-04-164-20/+231
| | | | | | | | | | | This resolves more frame indexes early and folds the immediate offsets into the scratch mubuf instructions. This cleans up a lot of the mess that's currently emitted, such as emitting add 0s and repeatedly initializing the same register to 0 when spilling. llvm-svn: 266508
* Revert "ValueMapper: Eliminate cross-file co-recursion, NFC"Duncan P. N. Exon Smith2016-04-164-496/+174
| | | | | | | | | | | | This reverts commit r266503, in case it's the root cause of this bot failure: http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/16810 I'm also reverting r266505 -- "ValueMapper: Use API from r266503 in unit tests, NFC" -- since it's in the way. llvm-svn: 266507
* AMDGPU: Use s_addk_i32 / s_mulk_i32Matt Arsenault2016-04-166-18/+185
| | | | llvm-svn: 266506
* ValueMapper: Use API from r266503 in unit tests, NFCDuncan P. N. Exon Smith2016-04-161-52/+52
| | | | | | | I'm not in a hurry to migrate all the users, but the unit tests at least should use the new API. llvm-svn: 266505
* [LTO] Don't crash on a BitcodeFile without DataLayout.Davide Italiano2016-04-162-0/+14
| | | | | | Emit an error instead. llvm-svn: 266504
* ValueMapper: Eliminate cross-file co-recursion, NFCDuncan P. N. Exon Smith2016-04-163-122/+444
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eliminate co-recursion of Mapper::mapValue through ValueMaterializer::materializeInitFor, through a major redesign of the ValueMapper.cpp interface. - Expose a ValueMapper class that controls the entry points to the mapping algorithms. - Change IRLinker to use ValueMapper directly, rather than llvm::RemapInstruction, llvm::MapValue, etc. - Use (e.g.) ValueMapper::scheduleMapGlobalInit to add mapping work to a worklist in ValueMapper instead of recursing. There were two fairly major complications. Firstly, IRLinker::linkAppendingVarProto incorporates an on-the-fly IR ugprade that I had to split apart. Long-term, this upgrade should be done in the bitcode reader (and we should only accept the "new" form), but for now I've just made it work and added a FIXME. The hold-op is that we need to deprecate C API that relies on this. Secondly, IRLinker has special logic to correctly implement aliases with comdats, and uses two ValueToValueMapTy instances and two ValueMaterializers. I supported this by allowing clients to register an alternate mapping context, whose MCID can be passed in when scheduling new work. While out of scope for this commit, it should now be straightforward to remove recursion from Mapper::mapValue. llvm-svn: 266503
* Update and fix LLVM_ENABLE_MODULES:Richard Smith2016-04-168-29/+19
| | | | | | | | | | | | | | | | 1) We need to add this flag prior to adding any other, in case the user has specified a -fmodule-cache-path= flag in their custom CXXFLAGS. Such a flag causes -Werror builds to fail, and thus all config checks fail, until we add the corresponding -fmodules flag. The modules selfhost bot does this, for instance. 2) Delete module maps that were putting .cpp files into modules. 3) Enable -fmodules-local-submodule-visibility, to get proper module visibility rules applied across submodules of the same module. Disable -fmodules for C builds, since that flag is not available there. llvm-svn: 266502
* [modules] Don't expose *intrin.h headers that cannot be included standalone asRichard Smith2016-04-162-49/+13
| | | | | | separate modules. These cause build breakage with -fmodules-local-submodule-visibility. llvm-svn: 266501
* Add some missing #includes, found by C++ modules selfhost.Richard Smith2016-04-162-1/+5
| | | | llvm-svn: 266500
* [sanitizers] Fixup to r266494; the Unit test should not run on WindowsAnna Zaks2016-04-161-0/+2
| | | | | | | The test is failing on Windows because we do not have a definition for DemangleSwiftAndCXX nor DemangleCXXABI, which I am replacing, on Windows. llvm-svn: 266499
* Teach map/unordered_map how to optimize 'emplace(Key, T)'.Eric Fiselier2016-04-167-4/+184
| | | | | | | | | In cases where emplace is called with two arguments and the first one matches the key_type we can Key to check for duplicates before allocating. This patch expands on work done by dexonsmith@apple.com. llvm-svn: 266498
* [sanitizers] Fixup r266494; make it build on Linux.Anna Zaks2016-04-161-0/+1
| | | | llvm-svn: 266497
* [CUDA] Raise an error if the CUDA install can't be found.Justin Lebar2016-04-162-4/+10
| | | | | | | | | | | | | | | Summary: Without this change, we silently proceed on without including __clang_cuda_runtime_wrapper.h. This leads to very strange behavior -- you say you're compiling CUDA code, but e.g. __device__ is not defined! Reviewers: tra Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19180 llvm-svn: 266496
* Improve diagnostic for the case when a non-defined function-like macro is usedRichard Smith2016-04-164-8/+45
| | | | | | in a preprocessor constant expression. llvm-svn: 266495
* [sanitizers] Teach the internal demangler about Swift namesAnna Zaks2016-04-154-4/+47
| | | | | | | | | Add support for Swift names when symbolicating sanitizer traces. This is now relevant since TSan and ASan support have been added to Swift on OS X. Differential Revision: http://reviews.llvm.org/D19135 llvm-svn: 266494
* Linker: Remove an unnecessary local variable in for loop, NFCDuncan P. N. Exon Smith2016-04-151-6/+4
| | | | | | Reduces changes in a follow-up commit. llvm-svn: 266493
* Make this header include the header it depends on, rather than trying to ↵Richard Smith2016-04-151-1/+1
| | | | | | include itself. Found by C++ modules build. llvm-svn: 266492
* Extract key to avoid preemptive mallocs in insert/emplace in associative ↵Eric Fiselier2016-04-1517-1018/+1004
| | | | | | | | | | | | | | containers Summary: This patch applies Duncan's work on __hash_table to __tree. Reviewers: mclow.lists, dexonsmith Subscribers: dexonsmith, cfe-commits Differential Revision: http://reviews.llvm.org/D18637 llvm-svn: 266491
* ValueMapper: Hide Mapper::VM behind an accessor, NFCDuncan P. N. Exon Smith2016-04-151-29/+32
| | | | | | | | | Change Mapper::VM to a pointer and add a `getVM()` accessor for it. While this has no functionality change, it minimizes the diff on an upcoming patch that allows switching between instances of ValueToValueMapTy on a single Mapper instance. llvm-svn: 266490
* Don't skip splitSeparateComponents in eliminateDeadDefs for ↵Wei Mi2016-04-154-22/+25
| | | | | | | | | | | | | | | | | | HoistSpillHelper::hoistAllSpills. Because HoistSpillHelper::hoistAllSpills is called in postOptimization, before the patch we didn't want LiveRangeEdit::eliminateDeadDefs to call splitSeparateComponents and generate unassigned new vregs. However, skipping splitSeparateComponents will make verify-machineinstrs unhappy, so I remove the early return, and use HoistSpillHelper::LRE_DidCloneVirtReg to assign physreg/stackslot for those new vregs. In addition, some code reorganization to make class HoistSpillHelper privately inheriting from LiveRangeEdit::Delegate possible. This is to be consistent with class RAGreedy and class RegisterCoalescer. Differential Revision: http://reviews.llvm.org/D19142 llvm-svn: 266489
* Add ProfileData to required_librariesEaswaran Raman2016-04-151-1/+1
| | | | | | This should fix ppc64be build breakage due to r266477 llvm-svn: 266488
* [LTO] Add datalayout to test to prevent an assertion in Debug mode.Davide Italiano2016-04-151-0/+2
| | | | | | While here, run this test only on x86. llvm-svn: 266487
* [cfi] Support explicit sections for functions in cfi-icall.Evgeniy Stepanov2016-04-152-2/+29
| | | | | | | | | | Allow explicit section for indirectly called functions in cfi-icall. Jumptables for functions in the same type class must be contiguous, so they always go to the default text section. Fixes PR25079. llvm-svn: 266486
* Revert r266457: "[ELF] - Implemented basic location counter support."Rui Ueyama2016-04-158-280/+28
| | | | | | | This reverts commit r266457 as it breaks "hello world" both on Linux and FreeBSD. llvm-svn: 266485
* [LTO] Implement parallel Codegen for LTO using splitCodeGen.Davide Italiano2016-04-158-38/+95
| | | | | | | | Parallelism level can be chosen using the new --lto-jobs=K option where K is the number of threads used for CodeGen. It currently defaults to 1. llvm-svn: 266484
OpenPOWER on IntegriCloud