about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/Cargo.toml
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-09-03 13:59:57 +0000
committerbors <bors@rust-lang.org>2018-09-03 13:59:57 +0000
commitee73f80dc963707df3b3da82976556d64cac5752 (patch)
tree95b4ebd6c5b993d4c4c4ab8d3ce4b2c3913fad84 /src/librustc_codegen_llvm/Cargo.toml
parent591a17d3d90d6cab51200a0e696f0d8ca63c2f87 (diff)
parent21d05f64aa10fd15208bd6d96599275b044a0636 (diff)
downloadrust-ee73f80dc963707df3b3da82976556d64cac5752.tar.gz
rust-ee73f80dc963707df3b3da82976556d64cac5752.zip
Auto merge of #53673 - michaelwoerister:incr-thinlto-2000, r=alexcrichton
Enable ThinLTO with incremental compilation.

This is an updated version of #52309. This PR allows `rustc` to use (local) ThinLTO and incremental compilation at the same time. In theory this should allow for getting compile-time improvements for small changes while keeping the runtime performance of the generated code roughly the same as when compiling non-incrementally.

The difference to #52309 is that this version also caches the pre-LTO version of LLVM bitcode. This allows for another layer of caching:
1. if the module itself has changed, we have to re-codegen and re-optimize.
2. if the module itself has not changed, but a module it imported from during ThinLTO has, we don't need to re-codegen and don't need to re-run the first optimization phase. Only the second (i.e. ThinLTO-) optimization phase is re-run.
3. if neither the module itself nor any of its imports have changed then we can re-use the final, post-ThinLTO version of the module. (We might have to load its pre-ThinLTO version though so it's available for other modules to import from)
Diffstat (limited to 'src/librustc_codegen_llvm/Cargo.toml')
-rw-r--r--src/librustc_codegen_llvm/Cargo.toml1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/Cargo.toml b/src/librustc_codegen_llvm/Cargo.toml
index 28fa49846b7..b711502b14b 100644
--- a/src/librustc_codegen_llvm/Cargo.toml
+++ b/src/librustc_codegen_llvm/Cargo.toml
@@ -14,6 +14,7 @@ cc = "1.0.1"
 num_cpus = "1.0"
 rustc-demangle = "0.1.4"
 rustc_llvm = { path = "../librustc_llvm" }
+memmap = "0.6"
 
 [features]
 # This is used to convince Cargo to separately cache builds of `rustc_codegen_llvm`