2022-03-01 Triage Log

A relatively noisy week in performance measurements, particularly on the externs incremental benchmark. Based on the timing of the first noise, this seems to be due to #93839, which makes me suspect this is related to PGO or inlining decisions of some kind. #94373 might help.

Overall a relatively unchanged to slightly good week, with no outright regressions and most changes relatively small.

Triage done by @simulacrum. Revision range: 1204400ab8da9830f6f77a5e40e7ad3ea459676a..f0c4da49983aa699f715caf681e3154b445fb60b

0 Regressions, 5 Improvements, 6 Mixed; 2 of them in rollups 43 comparisons made in total

Regressions

  • No regressions this week.

Improvements

At opt-level=0, apply only ABI-affecting attributes to functions #94127

  • Arithmetic mean of relevant improvements: -1.2%
  • Largest improvement in instruction counts: -3.9% on incr-patched: Job builds of regex debug

Make TLS __getit #[inline(always)] on non-Windows #94373

  • Largest improvement in instruction counts: -3.0% on incr-patched: b9b3e592dd cherry picked builds of style-servo debug
  • Tries to tackle some of the noise we've been seeing in the externs benchmarks.

Avoid query cache sharding code in single-threaded mode #94084

  • Arithmetic mean of relevant regressions: 1.1%
  • Arithmetic mean of relevant improvements: -0.8%
  • Arithmetic mean of all relevant changes: -0.6%
  • Largest improvement in instruction counts: -2.3% on full builds of keccak check
  • Primarily focused on bootstrap time improvement, rather than perf improvements to benchmarks, but helps slightly with both.

Apply noundef attribute to all scalar types which do not permit raw init #94157

  • Arithmetic mean of relevant improvements: -1.0%
  • Largest improvement in instruction counts: -1.7% on incr-full builds of coercions debug
  • This may also be noise; the externs and coercions benchmark are both typically relatively noisy.

rustc_errors: let DiagnosticBuilder::emit return a “guarantee of emission”. #93368

  • Arithmetic mean of all relevant changes: -0.5%
  • Largest improvement in instruction counts: -0.5% on full builds of deeply-nested-async debug
  • Improvements in bootstrap time, but not a significant change in compile times otherwise.

Mixed

Back more metadata using per-query tables #94129

  • Arithmetic mean of relevant regressions: 0.8%
  • Arithmetic mean of relevant improvements: -0.6%
  • Arithmetic mean of all relevant changes: -0.5%
  • Largest improvement in instruction counts: -1.0% on full builds of wf-projection-stress-65510 doc
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt

Rollup of 9 pull requests #94333

  • Arithmetic mean of relevant regressions: 0.8%
  • Arithmetic mean of relevant improvements: -5.9%
  • Arithmetic mean of all relevant changes: -3.3%
  • Largest improvement in instruction counts: -14.4% on incr-unchanged builds of encoding check
  • Largest regression in instruction counts: 1.1% on incr-patched: println builds of cargo opt

Use undef for (some) partially-uninit constants #94130

  • Arithmetic mean of relevant regressions: 0.7%
  • Arithmetic mean of relevant improvements: -1.9%
  • Arithmetic mean of all relevant changes: -0.1%
  • Largest improvement in instruction counts: -2.9% on full builds of ctfe-stress-4 opt
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt

Caching the stable hash of Ty within itself #94299

  • Arithmetic mean of relevant regressions: 0.9%
  • Arithmetic mean of relevant improvements: -1.2%
  • Arithmetic mean of all relevant changes: -1.0%
  • Largest improvement in instruction counts: -9.6% on incr-unchanged builds of clap-rs check
  • Largest regression in instruction counts: 1.3% on incr-full builds of deeply-nested check

Revert “Auto merge of #92419 - erikdesjardins:coldland, r=nagisa” #94402

  • Arithmetic mean of relevant regressions: 0.7%
  • Arithmetic mean of relevant improvements: -1.7%
  • Arithmetic mean of all relevant changes: 0.5%
  • Largest improvement in instruction counts: -3.8% on full builds of ripgrep opt
  • Largest regression in instruction counts: 3.3% on full builds of syn opt

Rollup of 7 pull requests #94469

  • Arithmetic mean of relevant regressions: 0.3%
  • Arithmetic mean of relevant improvements: -0.8%
  • Arithmetic mean of all relevant changes: 0.0%
  • Largest improvement in instruction counts: -0.9% on incr-unchanged builds of externs debug
  • Largest regression in instruction counts: 0.3% on full builds of await-call-tree doc
  • Regression across multiple doc benchmarks.