A great week, with 170 primary benchmark scenarios seeing improvement. Every PR flagged by perf provided at least some wins, and perhaps more impressive: No rollup PR's were flagged by perf this week! Furthermore, cjgillot fixed an issue where incremental compilation was being unnecessarily hindered by our span and lint system. Great work everyone!
Triage done by @pnkfelix. Revision range: d9297d22..02cd79af
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.2% | [0.4%, 1.9%] | 2 |
Regressions ❌ (secondary) | 0.5% | [0.4%, 0.6%] | 6 |
Improvements ✅ (primary) | -2.4% | [-31.0%, -0.2%] | 170 |
Improvements ✅ (secondary) | -1.5% | [-5.8%, -0.3%] | 159 |
All ❌✅ (primary) | -2.4% | [-31.0%, 1.9%] | 172 |
0 Regressions, 2 Improvements, 7 Mixed; 0 of them in rollups 54 artifact comparisons made in total
More lexer improvements #102302 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 2.2% | [2.2%, 2.2%] | 1 |
Improvements ✅ (primary) | -0.5% | [-1.0%, -0.2%] | 80 |
Improvements ✅ (secondary) | -0.8% | [-1.8%, -0.3%] | 75 |
All ❌✅ (primary) | -0.5% | [-1.0%, -0.2%] | 80 |
Inline a few functions. #102387 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.4% | [-1.0%, -0.2%] | 60 |
Improvements ✅ (secondary) | -0.8% | [-2.3%, -0.3%] | 42 |
All ❌✅ (primary) | -0.4% | [-1.0%, -0.2%] | 60 |
Rewrite and refactor format_args!() builtin macro. #100996 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.5% | [1.1%, 2.0%] | 6 |
Improvements ✅ (primary) | -0.3% | [-0.7%, -0.2%] | 7 |
Improvements ✅ (secondary) | -1.2% | [-1.5%, -0.6%] | 7 |
All ❌✅ (primary) | -0.3% | [-0.7%, -0.2%] | 7 |
rustdoc: Remove clean::TraitWithExtraInfo
and queryify is_notable_trait
#102384 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Regressions ❌ (secondary) | 2.7% | [2.7%, 2.7%] | 1 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -1.4% | [-1.7%, -1.2%] | 12 |
All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Fix perf regression from TypeVisitor changes #101893 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.4% | [1.2%, 1.6%] | 6 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -1.3% | [-2.9%, -0.5%] | 9 |
All ❌✅ (primary) | - | - | 0 |
Shrink hir::def::Res
#101887 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.2% | [0.6%, 1.6%] | 7 |
Improvements ✅ (primary) | -0.2% | [-0.3%, -0.2%] | 5 |
Improvements ✅ (secondary) | -0.3% | [-0.4%, -0.3%] | 2 |
All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 5 |
Move lint level source explanation to the bottom #101986 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.0% | [0.9%, 1.0%] | 2 |
Improvements ✅ (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
Improvements ✅ (secondary) | -0.9% | [-1.4%, -0.3%] | 8 |
All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
Compute lint levels by definition #102236 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.6% | [0.3%, 0.9%] | 14 |
Regressions ❌ (secondary) | 1.0% | [0.2%, 2.0%] | 20 |
Improvements ✅ (primary) | -3.2% | [-30.2%, -0.2%] | 84 |
Improvements ✅ (secondary) | -1.1% | [-2.8%, -0.3%] | 52 |
All ❌✅ (primary) | -2.7% | [-30.2%, 0.9%] | 98 |
Mark Cell::replace() as #[inline] #102548 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.9% | [0.4%, 1.8%] | 3 |
Regressions ❌ (secondary) | 0.9% | [0.2%, 1.3%] | 10 |
Improvements ✅ (primary) | -0.3% | [-1.2%, -0.2%] | 14 |
Improvements ✅ (secondary) | -0.4% | [-1.9%, -0.2%] | 12 |
All ❌✅ (primary) | -0.1% | [-1.2%, 1.8%] | 17 |
FnMutDelegate
to trait objects#[const_trait]
on Trait
for impl const Trait
rustc_data_structures::thin_vec::ThinVec
with thin_vec::ThinVec
const_eval_select
a real intrinsicdepth_limit
in QueryVTable
to avoid entering a new tcx in layout_of
Fn
/FnMut
/FnOnce
if its return type isn’t sized