Skip to content

Latest commit

 

History

History
177 lines (113 loc) · 18.7 KB

2021-12-21.md

File metadata and controls

177 lines (113 loc) · 18.7 KB

2021-12-21 Triage Log

Unfortunately a change introduced in rust-lang/rust#89836 has made performance across different compiler artifacts much more variable by embedding compiler version information (including a git commit hash) in demangled symbol names. This means that even if two compiler artifacts are built from the same exact source code (with only the git commit changed), the compiler will have slightly different performance characteristics. This makes comparisons across pull requests virtually impossible.

The compiler team is still deciding what to do to handle this, but in the mean time, performance testing is largely broken. This issue is currently being tracked inrust-lang/rustc-perf#1126.

Triage done by @rylev. Revision range: 404c8471aba60c2d837fa728e7c729a0f52d5830..3d57c61a9e04dcd3df633f41142009d6dcad4399

2 Regressions, 2 Improvements, 23 Mixed; 9 of them in rollups 38 comparisons made in total

Regressions

Update Clippy #92036

  • Very large regression in instruction counts (up to 133.5% on incr-unchanged builds of ctfe-stress-4)
  • Largely caused by a change in how we're doing benchmarking that should not impact any other PRs other than this one.
  • Luckily we can generally rely on updating Clippy as having no effect whatsoever on compiler performance.

Rollup of 7 pull requests #92059

  • Very large regression in instruction counts (up to 20.0% on incr-unchanged builds of encoding)

Improvements

Rollup of 7 pull requests #91962

  • Very large improvement in instruction counts (up to -5.9% on incr-unchanged builds of inflate)

Rollup of 7 pull requests #92099

  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)

Mixed

Stabilize asm! and global_asm! #91728

  • Large improvement in instruction counts (up to -3.9% on incr-unchanged builds of deep-vector)
  • Moderate regression in instruction counts (up to 1.4% on incr-unchanged builds of html5ever)

Rollup of 7 pull requests #91959

  • Small improvement in instruction counts (up to -0.5% on incr-unchanged builds of helloworld)
  • Very large regression in instruction counts (up to 6.2% on incr-unchanged builds of inflate)

extend simplify_type #86986

  • Large improvement in instruction counts (up to -4.7% on full builds of hyper-2)
  • Very large regression in instruction counts (up to 8.4% on incr-patched: sparse set builds of regex)

Include rustc version in rustc_span::StableCrateId #89836

  • Very large improvement in instruction counts (up to -11.6% on incr-unchanged builds of tuple-stress)
  • Large regression in instruction counts (up to 4.7% on incr-unchanged builds of unicode_normalization)

Optimize vec::retain performance #91527

  • Large improvement in instruction counts (up to -4.4% on incr-unchanged builds of unicode_normalization)
  • Large regression in instruction counts (up to 4.1% on incr-patched: println builds of regression-31157)

Rollup of 6 pull requests #91996

  • Moderate improvement in instruction counts (up to -2.4% on incr-patched: println builds of regression-31157)
  • Very large regression in instruction counts (up to 46.9% on incr-unchanged builds of clap-rs)

rustdoc: don't clone already owned Path and modify it inplace #91833

  • Very large improvement in instruction counts (up to -31.9% on incr-unchanged builds of clap-rs)
  • Large regression in instruction counts (up to 4.9% on incr-patched: println builds of regression-31157)

Fix #91306 by deriving all access from a single *mut T #91616

  • Moderate improvement in instruction counts (up to -1.3% on incr-unchanged builds of regression-31157)
  • Very large regression in instruction counts (up to 7.3% on incr-unchanged builds of ctfe-stress-4)

Rollup of 7 pull requests #92003

  • Very large improvement in instruction counts (up to -6.8% on incr-unchanged builds of ctfe-stress-4)
  • Very large regression in instruction counts (up to 13.0% on incr-unchanged builds of tuple-stress)

Implement normalize_erasing_regions queries in terms of 'try' version #91672

  • Very large improvement in instruction counts (up to -11.6% on incr-unchanged builds of tuple-stress)
  • Very large regression in instruction counts (up to 7.4% on incr-unchanged builds of ctfe-stress-4)

rustdoc: Pretty-print assoc const defaults on-demand #91812

  • Very large improvement in instruction counts (up to -6.8% on incr-unchanged builds of ctfe-stress-4)
  • Very large regression in instruction counts (up to 14.3% on incr-unchanged builds of tuple-stress)

Update cargo #92023

  • Very large improvement in instruction counts (up to -12.5% on incr-unchanged builds of tuple-stress)
  • Very large regression in instruction counts (up to 8.3% on incr-unchanged builds of wg-grammar)

Do array-slice equality via array equality, rather than always via slices #91838

  • Small improvement in instruction counts (up to -1.7% on full builds of piston-image)
  • Moderate regression in instruction counts (up to 1.7% on incr-patched: b9b3e592dd cherry picked builds of style-servo)

Rollup of 7 pull requests #92062

  • Large improvement in instruction counts (up to -4.7% on incr-patched: println builds of regression-31157)
  • Small regression in instruction counts (up to 1.0% on full builds of webrender)

Rollup of 7 pull requests #92064

  • Large improvement in instruction counts (up to -1.2% on full builds of keccak)
  • Moderate regression in instruction counts (up to 3.5% on incr-patched: println builds of regression-31157)

Avoid sorting in hash map stable hashing #91837

  • Large improvement in instruction counts (up to -4.9% on incr-full builds of clap-rs)
  • Moderate regression in instruction counts (up to 2.8% on incr-patched: println builds of regression-31157)

rustdoc: Add UrlPartsBuilder #91871

  • Moderate improvement in instruction counts (up to -3.6% on incr-patched: println builds of regression-31157)
  • Small regression in instruction counts (up to 0.4% on incr-unchanged builds of helloworld)

Remove SymbolStr #91957

  • Small improvement in instruction counts (up to -0.2% on full builds of externs)
  • Moderate regression in instruction counts (up to 3.1% on incr-patched: println builds of regression-31157)

Rollup of 4 pull requests #92106

  • Small improvement in instruction counts (up to -0.3% on incr-unchanged builds of helloworld)
  • Moderate regression in instruction counts (up to 0.8% on incr-unchanged builds of externs)

Eliminate ObligationCauseData #91844

rustdoc: make --passes and --no-defaults have no effect #91900

  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)
  • Small regression in instruction counts (up to 1.1% on incr-patched: println builds of regression-31157)

Remove 'speculative evaluation' of predicates #92041

  • Very large improvement in instruction counts (up to -5.8% on incr-unchanged builds of regression-31157)
  • Very large regression in instruction counts (up to 8.8% on incr-unchanged builds of deeply-nested)

Fully serialize AdtDef #91924

  • Very large improvement in instruction counts (up to -25.0% on incr-unchanged builds of issue-46449)
  • Very large regression in instruction counts (up to 15.8% on incr-full builds of webrender-wrench)

Untriaged Pull Requests