summaryrefslogtreecommitdiffstats
path: root/llvm/test/ThinLTO/X86
Commit message (Collapse)AuthorAgeFilesLines
...
* [ThinLTO] XFAIL path manipulation test on WindowsTeresa Johnson2016-05-171-0/+2
| | | | | | | | This test is creating and checking paths using '/'. XFAIL it on Windows to unbreak bot: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/5478 llvm-svn: 269775
* [ThinLTO] Option to control path of distributed backend filesTeresa Johnson2016-05-171-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add support to control where files for a distributed backend (the individual index files and optional imports files) are created. This is invoked with a new thinlto-prefix-replace option in the gold plugin and llvm-lto. If specified, expects a string of the form "oldprefix:newprefix", and instead of generating these files in the same directory path as the corresponding bitcode file, will use a path formed by replacing the bitcode file's path prefix matching oldprefix with newprefix. Also add a new replace_path_prefix helper to Path.h in libSupport. Depends on D19636. Reviewers: joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D19644 llvm-svn: 269771
* Re-enable llvm/test/ThinLTO/X86/cache.ll.NAKAMURA Takumi2016-05-141-3/+0
| | | | | | | | This reverts; r269548, "XFAIL ThinLTO Caching test on Windows." r269561, "Rework r269548, "XFAIL ThinLTO Caching test on Windows.", not to use XFAIL, for now." llvm-svn: 269567
* Rework r269548, "XFAIL ThinLTO Caching test on Windows.", not to use XFAIL, ↵NAKAMURA Takumi2016-05-141-1/+1
| | | | | | | | for now. It was passing (and is XPASSing) with --host=linux --target=win32. llvm-svn: 269561
* XFAIL ThinLTO Caching test on Windows.Mehdi Amini2016-05-141-0/+3
| | | | | | | I have no idea what's going on on Windows here. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269548
* Add testing in llvm-lto for ThinLTO caching.Mehdi Amini2016-05-142-0/+27
| | | | | | | Trying to improve code coverage for `make check` From: mehdi_amini <mehdi_amini@91177308-0d34-0410-b5e6-96231b3b80d8> llvm-svn: 269545
* Revert "Add testing in llvm-lto for ThinLTO caching."Mehdi Amini2016-05-142-29/+0
| | | | | | | | This reverts commit r269538 and r269542. "rename()" is expected to fail across filesystems, will handle this. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269543
* Increase verbosity in the test output to help debugging windows issuesMehdi Amini2016-05-141-1/+3
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269542
* Add testing in llvm-lto for ThinLTO caching.Mehdi Amini2016-05-142-0/+27
| | | | | | | Trying to improve code coverage for `make check` From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269538
* [ThinLTO] Add option to emit imports files for distributed backendsTeresa Johnson2016-05-102-0/+25
| | | | | | | | | | | | | | | | | | | | | Summary: Add support for emission of plaintext lists of the imported files for each distributed backend compilation. Used for distributed build file staging. Invoked with new gold-plugin thinlto-emit-imports-files option, which is only valid with thinlto-index-only (i.e. for distributed builds), or from llvm-lto with new -thinlto-action=emitimports value. Depends on D19556. Reviewers: joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D19636 llvm-svn: 269067
* Restore "[ThinLTO] Emit individual index files for distributed backends"Teresa Johnson2016-05-102-0/+51
| | | | | | | | | | | | | | | | | | | This restores commit r268627: Summary: When launching ThinLTO backends in a distributed build (currently supported in gold via the thinlto-index-only plugin option), emit an individual index file for each backend process as described here: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098272.html ... Differential Revision: http://reviews.llvm.org/D19556 Address msan failures by avoiding std::prev on map.end(), the theory is that this is causing issues due to some known UB problems in __tree. llvm-svn: 269059
* Refactor stripDebugInfo(Function) to handle intrinsicMehdi Amini2016-05-073-0/+67
| | | | | | | | | | | | | | This moves the code that handles stripping debug info intrinsic from StripDebugInfo(Module) to StripDebugInfo(Function). The latter is already walking every instructions so it makes sense to do it at the same time. This makes also stripDebugInfo(Function) as an API more useful: it is really dropping every debug info in the Function. Finally the existing code is trigerring an assertion when the Module is not fully materialized. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268847
* Revert r268832 "Refactor stripDebugInfo(Function) to handle intrinsic"Vitaly Buka2016-05-073-67/+0
| | | | | | It breaks many bots llvm-svn: 268837
* Refactor stripDebugInfo(Function) to handle intrinsicMehdi Amini2016-05-073-0/+67
| | | | | | | | | | | | | | This moves the code that handles stripping debug info intrinsic from StripDebugInfo(Module) to StripDebugInfo(Function). The latter is already walking every instructions so it makes sense to do it at the same time. This makes also stripDebugInfo(Function) as an API more useful: it is really dropping every debug info in the Function. Finally the existing code is trigerring an assertion when the Module is not fully materialized. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268832
* ThinLTO: fix assertion and refactor check for hidden use from inline ASM in ↵Mehdi Amini2016-05-062-0/+36
| | | | | | | | | | | a helper function This test was crashing, and currently it breaks bootstrapping clang with debuginfo Differential Revision: http://reviews.llvm.org/D20008 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268715
* Revert "[ThinLTO] Emit individual index files for distributed backends"Vitaly Buka2016-05-052-51/+0
| | | | | | | | | MemorySanitizer: use-of-uninitialized-value in lib/Bitcode/Writer/BitcodeWriter.cpp:364:70 http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/12544/steps/check-llvm%20msan/logs/stdio This reverts commit 0c4a898ea550699d1b2f4fe3767251c8f9a48d52. llvm-svn: 268660
* Fix Windows bot failures from r268627Teresa Johnson2016-05-051-3/+3
| | | | | | | | | | Remove "/" path separator from expected pattern which should fix a couple of Windows bots that have failed: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/4816 http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/2610 llvm-svn: 268629
* [ThinLTO] Emit individual index files for distributed backendsTeresa Johnson2016-05-052-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When launching ThinLTO backends in a distributed build (currently supported in gold via the thinlto-index-only plugin option), emit an individual index file for each backend process as described here: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098272.html The individual index file encodes the summary and module information required for implementing the importing/exporting decisions made for a given module in the thin link step. This is in place of the current mechanism that uses the combined index to make importing decisions in each back end independently. It is an enabler for doing global summary based optimizations in the thin link step (which will be recorded in the individual index files), and reduces the size of the index that must be sent to each backend process, and the amount of work to scan it in the backends. Rather than create entirely new ModuleSummaryIndex structures (and all the included unique_ptrs) for each backend index file, a map is created to record all of the GUID and summary pointers needed for a particular index file. The IndexBitcodeWriter walks this map instead of the full index (hiding the details of managing the appropriate summary iteration in a new iterator subclass). This is more efficient than walking the entire combined index and filtering out just the needed summaries during each backend bitcode index write. Depends on D19481. Reviewers: joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D19556 llvm-svn: 268627
* ThinLTO: do not import function whose linkage prevents inlining.Mehdi Amini2016-05-031-2/+2
| | | | | | | | | | | There is not point in importing a "weak" or a "linkonce" function since we won't be able to inline it anyway. We already had a targeted check for WeakAny, this is using the same check on GlobalValue as the inline, i.e. isMayBeOverriddenLinkage() From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268341
* ThinLTO: do not promote GlobalVariable that have a specific section.Mehdi Amini2016-04-272-0/+38
| | | | | | | Differential Revision: http://reviews.llvm.org/D18298 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 267646
* ThinLTOCodeGenerator: preserve linkonce when in "MustPreserved" setMehdi Amini2016-04-261-0/+8
| | | | | | | | | If the linker specifically requested for a linkonce to be preserved, we need to make sure we won't drop it even if all the uses in the current module disappear. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 267543
* Add an internalization step to the ThinLTOCodeGeneratorMehdi Amini2016-04-241-0/+19
| | | | | | | | | | | | | Keeping as much as possible internal/private is known to help the optimizer. Let's try to benefit from this in ThinLTO. Note: this is early work, but is enough to build clang (and all the LLVM tools). I still need to write some lit-tests... Differential Revision: http://reviews.llvm.org/D19103 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 267317
* Always traverse GlobalVariable initializer when computing the export listMehdi Amini2016-04-232-0/+37
| | | | | | | | | | | | | | | | Summary: We are always importing the initializer for a GlobalVariable. So if a GlobalVariable is in the export-list, we pull in any refs as well. Reviewers: tejohnson Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19102 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 267303
* ThinLTO: Resolve linkonce_odr aliases just like functionsMehdi Amini2016-04-215-2/+380
| | | | | | | | | | | | 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
* FunctionImport: make sure we always select the right callee in presence of aliasMehdi Amini2016-04-203-0/+40
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266854
* Move summary creation out of llvm-as into optMehdi Amini2016-04-122-4/+4
| | | | | | | | | | | | | | | | | | Summary: Let keep llvm-as "dumb": it converts textual IR to bitcode. This commit removes the dependency from llvm-as to libLLVMAnalysis. We'll add back summary in llvm-as if we get to a textual representation for it at some point. In the meantime, opt seems like a better place for that. Reviewers: tejohnson Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D19032 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266131
* ThinLTO: special handling for LinkOnce functionsMehdi Amini2016-04-012-0/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | These function can be dropped by the compiler if they are no longer referenced in the current module. However there is a change that another module is still referencing them because of the import. Multiple solutions can be used: - Always import LinkOnce when a caller is imported. This ensure that every module with a call to a LinkOnce has the definition and will be able to emit it if it emits the call. - Turn the LinkOnce into Weak, so that it is always emitted. - Turn all LinkOnce into available_externally and come back after all modules are codegen'ed to emit only one copy of the linkonce, when there is still a reference to it. This patch implement the second option, with am optimization that only *one* module will turn the LinkOnce into Weak, while the others will turn it into available_externally, so that there is exactly one copy emitted for the whole compilation. http://reviews.llvm.org/D18346 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 265190
* [ThinLTO] Renaming of function index to module summary index (NFC)Teresa Johnson2016-03-151-2/+2
| | | | | | | | | | | | | | | (Resubmitting after fixing missing file issue) With the changes in r263275, there are now more than just functions in the summary. Completed the renaming of data structures (started in r263275) to reflect the wider scope. In particular, changed the FunctionIndex* data structures to ModuleIndex*, and renamed related variables and comments. Also renamed the files to reflect the changes. A companion clang patch will immediately succeed this patch to reflect this renaming. llvm-svn: 263513
* Revert "[ThinLTO] Renaming of function index to module summary index (NFC)"Teresa Johnson2016-03-141-2/+2
| | | | | | This reverts commit r263490. Missed a file. llvm-svn: 263493
* [ThinLTO] Renaming of function index to module summary index (NFC)Teresa Johnson2016-03-141-2/+2
| | | | | | | | | | | | | With the changes in r263275, there are now more than just functions in the summary. Completed the renaming of data structures (started in r263275) to reflect the wider scope. In particular, changed the FunctionIndex* data structures to ModuleIndex*, and renamed related variables and comments. Also renamed the files to reflect the changes. A companion clang patch will immediately succeed this patch to reflect this renaming. llvm-svn: 263490
* Fix ThinLTO test: depends on the X86 backendMehdi Amini2016-03-093-0/+174
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 262993
OpenPOWER on IntegriCloud