Skip to content

Commit 7583e30

Browse files
committed
Stop passing -Zincremental-verify-ich
1 parent 3347209 commit 7583e30

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

collector/src/bin/rustc-fake.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,19 @@ fn main() {
7575
args.push(OsString::from("-Adeprecated"));
7676
args.push(OsString::from("-Aunknown-lints"));
7777

78-
// This forces incremental query hash verification on. Currently, rustc
79-
// hashes 1/32 of queries loaded from disk without this flag, but that 1/32
80-
// is based on the (expected) hash of the data, which can vary from build to
81-
// build, adding a source of noise to our measurements, which we prefer to
82-
// avoid. rustc-perf can accept the higher cost of always verifying hashes,
83-
// and we currently prefer to avoid exposing a means of hard-disabling
84-
// verification.
85-
args.push(OsString::from("-Zincremental-verify-ich"));
78+
// We deliberately do not pass -Zincremental-verify-ich. rustc-perf used to
79+
// force it on every invocation because rustc selected the ~1/32 of
80+
// incremental cache values it verifies by their (expected) value hash,
81+
// which varies from build to build and moved the verification cost around
82+
// between the two artifacts being compared. Since rust-lang/rust#160130
83+
// the subset is selected by key fingerprint and session count, both of
84+
// which are stable here: `determinism_env` pins the rustc version and both
85+
// artifacts run the same scenario sequence from a fresh incremental
86+
// directory, so both sides of a comparison verify the same nodes. Sampled
87+
// verification is therefore not a source of noise, and without the flag we
88+
// measure the incremental configuration users actually run. In
89+
// non-incremental compiles the flag only triggered a costly query key
90+
// verification sweep.
8691

8792
if let Some(pos) = args.iter().position(|arg| arg == "--wrap-rustc-with") {
8893
// Strip out the flag and its argument, and run rustc under the wrapper

0 commit comments

Comments
 (0)