Overall a fairly quiet week in terms of new changes; the majority of the delta this week was due to reverting #101620, which was a regression noted in last week's report.
Triage done by @simulacrum. Revision range: 8fd6d03e22fba2930ad377b87299de6a37076074..d9297d22ad9edc2b56f0dd8734c1187a0c88be69
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 5.6% | [0.4%, 32.9%] | 32 |
Regressions ❌ (secondary) | 7.4% | [0.7%, 25.3%] | 22 |
Improvements ✅ (primary) | -4.0% | [-13.4%, -0.3%] | 135 |
Improvements ✅ (secondary) | -4.3% | [-19.4%, -0.1%] | 123 |
All ❌✅ (primary) | -2.2% | [-13.4%, 32.9%] | 167 |
2 Regressions, 7 Improvements, 3 Mixed; 3 of them in rollups 53 artifact comparisons made in total
a fn pointer doesn‘t implement Fn
/FnMut
/FnOnce
if its return type isn’t sized #100096 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 23.0% | [21.3%, 25.2%] | 6 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | - | - | 0 |
Perf regression is being investigated by @compiler-errors. No positive fix yet though; due to the reported regression (#102289) we are thinking that just reverting may be the better option. This is a soundness fix though so the perf regression may be OK, but further investigation is warranted.
Require #[const_trait]
on Trait
for impl const Trait
#100982 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.4% | [0.4%, 0.5%] | 6 |
Regressions ❌ (secondary) | 1.5% | [1.5%, 1.5%] | 1 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.4% | [0.4%, 0.5%] | 6 |
This regression was known prior to merging the PR, but the reviewer concluded that the small wall-clock delta wasn't worth further investigation. Left a comment asking for a better justification of the regression.
use partition_point instead of binary_search when looking up source lines #101999 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.7%, -0.2%] | 62 |
Improvements ✅ (secondary) | -0.6% | [-1.6%, -0.2%] | 41 |
All ❌✅ (primary) | -0.3% | [-0.7%, -0.2%] | 62 |
Rollup of 10 pull requests #102150 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.4%, -0.2%] | 4 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 4 |
Use internal iteration in Iterator
comparison methods #100845 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 |
Move DepKindStruct from rustc_middle to rustc_query_system #101710 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.5% | [-0.9%, -0.2%] | 66 |
Improvements ✅ (secondary) | -0.4% | [-0.7%, -0.2%] | 18 |
All ❌✅ (primary) | -0.5% | [-0.9%, -0.2%] | 66 |
Rollup of 5 pull requests #102297 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Improvements ✅ (secondary) | -1.3% | [-1.5%, -1.2%] | 6 |
All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Fix lint scoping for let-else. #102257 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Improvements ✅ (secondary) | -1.4% | [-1.6%, -1.2%] | 6 |
All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Improve code example for Option::unwrap_or_default #102283 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Improvements ✅ (secondary) | -1.3% | [-1.6%, -1.2%] | 6 |
All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 1 |
Revert perf-regression 101620 #102064 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 5.6% | [0.3%, 33.5%] | 33 |
Regressions ❌ (secondary) | 1.1% | [0.3%, 1.5%] | 11 |
Improvements ✅ (primary) | -3.7% | [-12.3%, -0.3%] | 129 |
Improvements ✅ (secondary) | -4.1% | [-19.0%, -0.2%] | 121 |
All ❌✅ (primary) | -1.8% | [-12.3%, 33.5%] | 162 |
This fixes a perf regression from last week and the overall trend is an improvement, so as expected.
Use function pointers instead of macro-unrolled loops in rustc_query_impl #101785 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.2% | [1.2%, 1.2%] | 2 |
Improvements ✅ (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
Improvements ✅ (secondary) | -1.1% | [-1.5%, -0.6%] | 9 |
All ❌✅ (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
Overall mixed results and generally a slight improvement. The seemingly more important goal of reducing bootstrap times isn't really achieved by this PR though it may help future iteration on these functions by avoiding some LLVM sensitivity.
Rollup of 5 pull requests #102324 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.7% | [0.7%, 0.7%] | 1 |
Regressions ❌ (secondary) | 1.4% | [1.3%, 1.6%] | 6 |
Improvements ✅ (primary) | -0.7% | [-0.9%, -0.6%] | 6 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -0.5% | [-0.9%, 0.7%] | 7 |
keccak, the primary regression, is within its suspected noise level bar.