2022-09-27 Triage Log

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)meanrangecount
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

Regressions

a fn pointer doesn‘t implement Fn/FnMut/FnOnce if its return type isn’t sized #100096 (Comparison Link)

(instructions:u)meanrangecount
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)meanrangecount
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.

Improvements

use partition_point instead of binary_search when looking up source lines #101999 (Comparison Link)

(instructions:u)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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)meanrangecount
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

Mixed

Revert perf-regression 101620 #102064 (Comparison Link)

(instructions:u)meanrangecount
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)meanrangecount
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)meanrangecount
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.