summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/back/lto.rs
AgeCommit message (Collapse)AuthorLines
2018-09-14Rollup merge of #53950 - michaelwoerister:more-lto-cli, r=alexcrichtonkennytm-2/+1
Allow for opting out of ThinLTO and clean up LTO related cli flag handling. It turns out that there currently is no way to explicitly disable ThinLTO (except for the nightly-only `-Zthinlto` flag). This PR extends `-C lto` to take `yes` and `no` in addition to `thin` and `fat`. It should be backwards compatible. It also cleans up how LTO mode selection is handled. Note that merging the PR in the current state would make the new values for `-C lto` available on the stable channel. I think that would be fine but maybe some team should vote on it.
2018-09-05ThinLTO: Don't keep files open after mmaping them (because it's not needed).Michael Woerister-3/+3
2018-09-05Allow for opting out of ThinLTO and clean up LTO related cli flag handling.Michael Woerister-2/+1
2018-09-03incr.ThinLTO: Do some cleanup and add some logging.Michael Woerister-21/+33
2018-08-31Always add all modules to the global ThinLTO module analysis when compiling ↵Michael Woerister-138/+97
incrementally.
2018-08-31Support local ThinLTO with incremental compilation.Michael Woerister-20/+88
2018-08-31Persist ThinLTO import data in incr. comp. session directory.Michael Woerister-3/+116
2018-08-15Use CGU name as LLVM module name and add some caching to CGU name generation.Michael Woerister-6/+5
2018-08-07Fix issue around dllimport and ThinLTO as LLD runs it.Michael Woerister-0/+4
2018-08-04Normalize variants of CrateType to standard styleMark Rousskov-6/+6
This is a clippy-breaking change.
2018-07-31rustc: Handle linker diagnostic from LLVMAlex Crichton-2/+10
Previously linker diagnostic were being hidden when two modules were linked together but failed to link. This commit fixes the situation by ensuring that we have a diagnostic handler installed and also adds support for handling linker diagnostics.
2018-07-30rustc_codegen_llvm: use safe references for ThinLTOData.Irina Popa-7/+6
2018-07-30rustc_codegen_llvm: use safe references for ThinLTOBuffer.Irina Popa-2/+2
2018-07-30rustc_codegen_llvm: use safe references for ModuleBuffer.Irina Popa-2/+2
2018-07-30rustc_codegen_llvm: use safe references for Linker.Irina Popa-5/+5
2018-07-30rustc_codegen_llvm: use safe references for TargetMachine.Irina Popa-2/+2
2018-07-30rustc_codegen_llvm: use safe references for Pass.Irina Popa-4/+2
2018-07-30rustc_codegen_llvm: use safe references for Context and Module.Irina Popa-160/+166
2018-07-28Don't format!() string literalsljedrz-7/+7
2018-07-18rustc: Remove a workaroudn in ThinLTO fixed upstreamAlex Crichton-14/+0
This commit removes a hack in our ThinLTO passes which removes available externally functions manually. The [upstream bug][1] has long since been fixed, so we should be able to rely on LLVM natively for this now! [1]: https://bugs.llvm.org/show_bug.cgi?id=35736
2018-07-16Revert "Provide a way of accessing the ThinLTO module import map in rustc."Michael Woerister-68/+1
This reverts commit 9df56ca0eea1a8f5af945df25ce23e276b1d48a7.
2018-07-16Revert "Persist ThinLTO import data in incr. comp. session directory."Michael Woerister-81/+2
This reverts commit 8dc7ddb9763f28b83de7bf3b3025f8042ea9e830.
2018-07-16Revert "Clean up LLVM module naming (just use CodegenUnit names)."Michael Woerister-5/+6
This reverts commit f6894ebe664d111259a91a2b5fcc1236ca413436.
2018-07-16Revert "Use callback-based interface to load ThinLTO import data into rustc."Michael Woerister-31/+43
This reverts commit e045a6cd8c0235a26ef11e6cd9a13ebd817f1265.
2018-07-13Use callback-based interface to load ThinLTO import data into rustc.Michael Woerister-43/+31
2018-07-11Clean up LLVM module naming (just use CodegenUnit names).Michael Woerister-6/+5
2018-07-11Persist ThinLTO import data in incr. comp. session directory.Michael Woerister-2/+81
2018-07-11Provide a way of accessing the ThinLTO module import map in rustc.Michael Woerister-1/+68
2018-06-12Rename -Z no-verify to -Z verify-llvm-irNikita Popov-2/+2
This disables IR verification by default.
2018-06-12Respect -Z no-verify during LTONikita Popov-6/+11
Currently -Z no-verify only controls IR verification prior to LLVM codegen, while verification is performed unconditionally both before and after linking with (Thin)LTO.
2018-05-17Rename trans to codegen everywhere.Irina Popa-0/+773