Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.
Triage done by @rylev. Revision range: 4bd4e2e..b9d608c
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.4% | [0.5%, 3.6%] | 16 |
Regressions ❌ (secondary) | 1.0% | [0.2%, 3.5%] | 29 |
Improvements ✅ (primary) | -0.8% | [-7.8%, -0.2%] | 157 |
Improvements ✅ (secondary) | -2.9% | [-48.3%, -0.3%] | 84 |
All ❌✅ (primary) | -0.6% | [-7.8%, 3.6%] | 173 |
3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 51 artifact comparisons made in total
Rollup of 7 pull requests #112625 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.2%, 0.4%] | 4 |
Regressions ❌ (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 4 |
Add AliasKind::Weak
for type aliases. #108860 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.2%, 0.5%] | 8 |
Regressions ❌ (secondary) | 0.4% | [0.2%, 0.8%] | 7 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.5%] | 8 |
CI: merge mingw
test CI jobs #112645 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.8% | [0.7%, 0.8%] | 3 |
Regressions ❌ (secondary) | 0.7% | [0.6%, 0.7%] | 2 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.8% | [0.7%, 0.8%] | 3 |
Introduce a minimum CGU size in non-incremental builds. #112448 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
Improvements ✅ (secondary) | -8.5% | [-45.9%, -0.4%] | 22 |
All ❌✅ (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
Don't drain-on-drop in DrainFilter impls of various collections. #104455 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.5% | [0.2%, 1.2%] | 3 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.5% | [-1.8%, -0.1%] | 35 |
Improvements ✅ (secondary) | -0.5% | [-1.1%, -0.2%] | 14 |
All ❌✅ (primary) | -0.4% | [-1.8%, 1.2%] | 38 |
optimize slice::Iter::fold #106343 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.7% | [0.4%, 1.1%] | 5 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.2% | [-0.4%, -0.2%] | 87 |
Improvements ✅ (secondary) | -0.3% | [-1.2%, -0.1%] | 24 |
All ❌✅ (primary) | -0.2% | [-0.4%, 1.1%] | 92 |
Rollup of 7 pull requests #112716 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
Improvements ✅ (secondary) | -0.4% | [-0.4%, -0.2%] | 4 |
All ❌✅ (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
Rollup of 5 pull requests #112755 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
Rollup of 6 pull requests #112774 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
Improvements ✅ (secondary) | -0.7% | [-0.7%, -0.7%] | 2 |
All ❌✅ (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
new solver proof tree generation #112351 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
Improvements ✅ (secondary) | -1.2% | [-1.6%, -0.5%] | 8 |
All ❌✅ (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
Add support for targets without unwinding in mir-opt
, and improve --bless
for it #112418 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.2%, 0.3%] | 3 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -1.3% | [-1.3%, -1.3%] | 1 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.3%] | 3 |
Ignore the always part of #[inline(always)] in MIR inlining #112294 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.7% | [1.2%, 2.5%] | 8 |
Regressions ❌ (secondary) | 0.6% | [0.2%, 1.4%] | 7 |
Improvements ✅ (primary) | -0.4% | [-3.0%, -0.2%] | 61 |
Improvements ✅ (secondary) | -0.4% | [-1.0%, -0.2%] | 18 |
All ❌✅ (primary) | -0.1% | [-3.0%, 2.5%] | 69 |
#[inline(always)]
into a stronger hint. But I think this PR stands decently on its own as a tidy simplification.”Remove box_free
lang item #100036 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.2% | [1.0%, 1.7%] | 4 |
Regressions ❌ (secondary) | 1.7% | [1.1%, 3.4%] | 5 |
Improvements ✅ (primary) | -0.6% | [-0.6%, -0.6%] | 2 |
Improvements ✅ (secondary) | -2.5% | [-4.4%, -1.4%] | 4 |
All ❌✅ (primary) | 0.6% | [-0.6%, 1.7%] | 6 |
make mir dataflow graphviz dumps opt-in #112617 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.6% | [0.6%, 0.7%] | 3 |
Regressions ❌ (secondary) | 0.6% | [0.6%, 0.6%] | 1 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -0.5% | [-0.6%, -0.4%] | 6 |
All ❌✅ (primary) | 0.6% | [0.6%, 0.7%] | 3 |