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