@@ -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