Description
I only ran the debug
benchmarks, as check
should be identical and release
will definitively be faster because of much less optimizations by cg_clif.
Except for some stress-tests the clean
and baseline incremental
results are quite positive (~10-60% improvement, often ~40%) For clean incremental
the results are much worse (easily ~200%), as compiled object files are not stored in the incremental cache (#760) For patched incremental
the results are very mixed. Sometimes the difference is just a little bit less than clean incremental
, while in other cases it is up to ~70% faster than cg_llvm.
packed-simd
failed due to a verifier error. Edit(2020-03-11): Opened #919. Edit(2020-03-11): Fixed in #916. hyper-2
failed due to unsized locals not being implemented (used for impl FnOnce for Box<FnOnce>
).style-servo
failed due to running out of disk space.
Patch for rustc-perf
diff --git a/collector/src/bin/rustc-perf-collector/execute.rs b/collector/src/bin/rustc-perf-collector/execute.rs
index 9aa2cc48..4f577183 100644
--- a/collector/src/bin/rustc-perf-collector/execute.rs
+++ b/collector/src/bin/rustc-perf-collector/execute.rs
@@ -203,13 +203,19 @@ impl<'a> CargoProcess<'a> {
fn run_rustc(&mut self) -> anyhow::Result<()> {
loop {
let mut cmd = self.base_command(self.cwd, "rustc");
+ cmd.env("RUSTFLAGS", "-Cpanic=abort \
+ -Zcodegen-backend=~/Documents/cg_clif/target/release/librustc_codegen_cranelift.so \
+ --sysroot ~/Documents/cg_clif/build_sysroot/sysroot");
+ cmd.arg("--target").arg("x86_64-unknown-linux-gnu");
cmd.arg("-p").arg(self.get_pkgid(self.cwd));
match self.build_kind {
BuildKind::Check => {
+ return Ok(());
cmd.arg("--profile").arg("check");
}
BuildKind::Debug => {}
BuildKind::Opt => {
+ return Ok(());
cmd.arg("--release");
}
}