Skip to content

Latest commit

 

History

History
140 lines (117 loc) · 11.7 KB

2022-02-08.md

File metadata and controls

140 lines (117 loc) · 11.7 KB

2022-02-08 Triage Log

A week with a number of correctness-related regressions, and a few small cleanups yielding good performance results. Overall an improvement, particularly for incremental benchmarks.

Triage done by @simulacrum. Revision range: 1ea4851715893ee3f365a8ef09d47165e9a7864f..775e480722c7aba6ff4ff3ccec8c1f4639ae7889

4 Regressions, 2 Improvements, 5 Mixed; 1 of them in rollups 27 comparisons made in total

Regressions

debuginfo: Make sure that type names for closure and generator environments are unique in debuginfo. #93154

  • Average relevant regression: 1.6%
  • Largest regression in instruction counts: 2.9% on incr-full builds of deeply-nested-closures debug
  • debuginfo generation made more complicated for correctness reasons; led to a regression. Left a comment asking if this is expected.

rustdoc: Collect traits in scope for foreign inherent impls #93539

  • Average relevant regression: 1.1%
  • Largest regression in instruction counts: 1.7% on full builds of projection-caching doc
  • Fixes a regression, and necessary for correctness due to rustdoc inlining impls on inherent types across crate boundaries.

Allow unwinding from OOM hooks #92535

  • Average relevant regression: 0.8%
  • Average relevant improvement: -0.3%
  • Largest regression in instruction counts: 1.9% on incr-patched: println builds of regression-31157 opt
  • Expected, relatively minimal impact for a desired feature.

Lazy type-alias-impl-trait #92007

  • Average relevant regression: 1.2%
  • Largest regression in instruction counts: 1.7% on full builds of match-stress-enum check
  • New errors in wg-grammar
  • Errors and regression are being investigated, but were not expected. It is likely that we should get in the habit of pre-running perf on larger PRs like this, which have higher risk of causing problems.

Rollup of 13 pull requests #93738

  • Average relevant regression: 0.6%
  • Largest regression in instruction counts: 0.8% on full builds of deeply-nested doc
  • Regressions across many documentation benchmarks, though exact cause is unclear (in part due to the rollup). Likely related to #93208, though, which is an expected regression source.

Add more *-unwind ABI variants #93561

  • Average relevant regression: 0.5%
  • Largest regression in instruction counts: 1.2% on full builds of ctfe-stress-4 check
  • Regression in enough benchmarks that this seems a genuine regression.

Improvements

Compress amount of hashed bytes for isize values in StableHasher #93432

  • Average relevant improvement: -1.4%
  • Largest improvement in instruction counts: -6.6% on incr-full builds of clap-rs check
  • Restoring parts of a previously landed and reverted optimization.

use fold_list in try_super_fold_with for SubstsRef #93643

  • Average relevant improvement: -1.1%
  • Largest improvement in instruction counts: -2.7% on full builds of keccak check

Mixed

Make dead code check a query. #93466

  • Average relevant regression: 0.9%
  • Average relevant improvement: -0.8%
  • Largest improvement in instruction counts: -3.1% on incr-unchanged builds of match-stress-enum check
  • Largest regression in instruction counts: 1.6% on incr-patched: dummy fn builds of unused-warnings check
  • Majority of the improvement limited to incr-unchanged benchmark. Regressions are relatively small and predominantly in stress tests, though also in style-servo incremental patched test cases.

Return an indexmap in all_local_trait_impls query #93312

  • Average relevant regression: 0.6%
  • Average relevant improvement: -0.9%
  • Largest improvement in instruction counts: -1.1% on incr-unchanged builds of ctfe-stress-4 check
  • Largest regression in instruction counts: 0.8% on incr-unchanged builds of cranelift-codegen check
  • Largely performance-neutral, but change is motivated by (future) correctness around DefId not implementing Ord rather than performance.

Optimize core::str::Chars::count #90414

  • Average relevant regression: 0.4%
  • Average relevant improvement: -0.9%
  • Largest improvement in instruction counts: -1.4% on incr-unchanged builds of encoding check
  • Largest regression in instruction counts: 0.5% on incr-full builds of html5ever debug
  • Results do not suggest improvements or regressions are directly tied to this PR, so seems likely to be optimizer noise.

Fix invalid special casing of the unreachable! macro #93179

  • Average relevant improvement: -1.2%
  • Largest improvement in instruction counts: -2.2% on full builds of cranelift-codegen check
  • Largest regression in instruction counts: 1.8% on incr-patched: b9b3e592dd cherry picked builds of style-servo debug
  • Regression appears to be due to codegen unit reshuffling, not directly coupled to the changes in this PR.

Make io::Error use 64 bits on targets with 64 bit pointers. #87869

  • Average relevant regression: 3.4%
  • Average relevant improvement: -1.1%
  • Largest improvement in instruction counts: -4.3% on full builds of piston-image opt
  • Largest regression in instruction counts: 11.2% on full builds of issue-46449 opt
  • As noted on the PR thread, likely limited to just one benchmark that is not checking for this performance specifically regardless.

Untriaged Pull Requests