Overall an interesting week performance wise, with small improvements to a vast number of benchmarks seeming to outweigh an isolated set of (slightly) larger regressions. It included a number of PRs regressed instruction counts but did not matter for cycle times, plus one mysterious regression to check_match
and mir_borrowck
from reworking constructor splitting (see report on PR 116391 for details), and an awesome broad set of improvements from automatically inlining small functions across crates (see report on PR 116505 for details).
Triage done by @pnkfelix. Revision range: 84d44dd1..b9832e72
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 3.0% | [0.3%, 12.2%] | 7 |
Regressions ❌ (secondary) | 0.7% | [0.3%, 1.2%] | 15 |
Improvements ✅ (primary) | -1.1% | [-17.9%, -0.2%] | 131 |
Improvements ✅ (secondary) | -2.4% | [-39.6%, -0.2%] | 121 |
All ❌✅ (primary) | -0.9% | [-17.9%, 12.2%] | 138 |
4 Regressions, 1 Improvements, 4 Mixed; 3 of them in rollups 84 artifact comparisons made in total
Rollup of 7 pull requests #116605 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.4% | [0.2%, 0.6%] | 7 |
Regressions ❌ (secondary) | 0.3% | [0.3%, 0.4%] | 3 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.4% | [0.2%, 0.6%] | 7 |
Optimize librustc_driver.so
with BOLT #116352 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 2.3% | [0.2%, 5.7%] | 10 |
Regressions ❌ (secondary) | 1.9% | [0.3%, 5.0%] | 60 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -0.3% | [-0.3%, -0.3%] | 4 |
All ❌✅ (primary) | 2.3% | [0.2%, 5.7%] | 10 |
Rollup of 3 pull requests #116742 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.3%, 0.4%] | 3 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.3% | [0.3%, 0.4%] | 3 |
don't UB on dangling ptr deref, instead check inbounds on projections #114330 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.7% | [0.5%, 1.0%] | 17 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | - | - | 0 |
optimize zipping over array iterators #115515 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.4%, -0.2%] | 3 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 3 |
Also consider call and yield as MIR SSA. #113915 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 3.9% | [3.9%, 3.9%] | 1 |
Regressions ❌ (secondary) | 0.1% | [0.1%, 0.1%] | 2 |
Improvements ✅ (primary) | -0.4% | [-0.9%, -0.2%] | 26 |
Improvements ✅ (secondary) | -0.4% | [-0.6%, -0.3%] | 5 |
All ❌✅ (primary) | -0.2% | [-0.9%, 3.9%] | 27 |
Rollup of 5 pull requests #116640 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.1% | [1.1%, 1.1%] | 1 |
Improvements ✅ (primary) | -0.3% | [-0.4%, -0.2%] | 4 |
Improvements ✅ (secondary) | -0.4% | [-0.5%, -0.4%] | 6 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 4 |
exhaustiveness: Rework constructor splitting #116391 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.2% | [0.2%, 0.3%] | 4 |
Regressions ❌ (secondary) | 3.9% | [0.5%, 5.8%] | 9 |
Improvements ✅ (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.1% | [-0.4%, 0.3%] | 5 |
check_match
and mir_borrowck
.Automatically enable cross-crate inlining for small functions #116505 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 2.3% | [0.3%, 13.0%] | 8 |
Regressions ❌ (secondary) | 0.5% | [0.2%, 0.8%] | 2 |
Improvements ✅ (primary) | -1.2% | [-18.1%, -0.1%] | 148 |
Improvements ✅ (secondary) | -2.2% | [-39.8%, -0.2%] | 209 |
All ❌✅ (primary) | -1.0% | [-18.1%, 13.0%] | 156 |
SyntaxContext
decodingSharded
from query cachesriscv64gc-unknown-hermit
targetUnDerefer