2024-02-20 Triage Log

Relatively few PRs affecting performance, but massive improvements thanks to the update to LLVM 18 (PR #12005), as well as the merging of two related compiler queries (PR #120919) and other small improvements from a rollup (PR #121055).

Triage done by @pnkfelix. Revision range: 74c3f5a1..5af21304

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.5%, 0.5%]1
Regressions ❌
(secondary)
7.1%[0.5%, 78.5%]17
Improvements ✅
(primary)
-2.4%[-13.9%, -0.4%]222
Improvements ✅
(secondary)
-2.0%[-9.8%, -0.3%]155
All ❌✅ (primary)-2.4%[-13.9%, 0.5%]223

3 Regressions, 1 Improvements, 6 Mixed; 1 of them in rollups 65 artifact comparisons made in total

Regressions

Tracking import use types for more accurate redundant import checking #117772 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 1.0%]44
Regressions ❌
(secondary)
0.7%[0.4%, 1.1%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.2%, 1.0%]44
  • regressions are explained by petrochenkov: This lint is newly firing against benchmark code, which means that lint reporting machinery is being exercised that was previously not being exercised.
  • marked as triaged and filed rust-lang/rustc-perf#1819 to follow up with potential counter-action in benchmark tooling.

macro_rules: Preserve all metavariable spans in a global side table #119673 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.1%, 1.3%]26
Regressions ❌
(secondary)
0.5%[0.1%, 3.3%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.1%, 1.3%]26
  • Instruction count regressions flagged against serde_derive, diesel, serde, html5ever, syn
  • Most of these were anticipated in the final perf runs against the try builds.
  • Marking as triaged under assumption that the reviewers deemed this change to be worth the predicted cost.

Always evaluate free constants and statics, even if previous errors occurred #121087 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.8%[0.4%, 2.0%]4
Regressions ❌
(secondary)
1.0%[0.3%, 5.2%]11
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.8%[0.4%, 2.0%]4

Improvements

pattern_analysis: Move constructor selection logic to PlaceInfo #120692 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-1.8%[-1.9%, -1.7%]6
All ❌✅ (primary)--0

Mixed

Merge impl_polarity and impl_trait_ref queries #120919 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.5%, 0.7%]3
Regressions ❌
(secondary)
1.5%[1.5%, 1.5%]1
Improvements ✅
(primary)
-0.3%[-0.7%, -0.2%]43
Improvements ✅
(secondary)
-0.4%[-0.5%, -0.2%]5
All ❌✅ (primary)-0.3%[-0.7%, 0.7%]46
  • already marked as triaged (more wins than losses)

Update to LLVM 18 #120055 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.1%[0.7%, 3.5%]7
Improvements ✅
(primary)
-2.4%[-14.1%, -0.5%]233
Improvements ✅
(secondary)
-1.6%[-8.0%, -0.3%]160
All ❌✅ (primary)-2.4%[-14.1%, -0.5%]233
  • already marked as triaged (more wins than losses)

Rollup of 8 pull requests #121055 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.2%]2
Regressions ❌
(secondary)
0.9%[0.8%, 0.9%]2
Improvements ✅
(primary)
-0.9%[-1.8%, -0.2%]9
Improvements ✅
(secondary)
-0.6%[-1.1%, -0.3%]21
All ❌✅ (primary)-0.7%[-1.8%, 0.2%]11
  • already marked as triaged (more wins than losses)

cargo update #120454 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.4%[0.8%, 1.9%]10
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.9%[-3.4%, -0.2%]15
All ❌✅ (primary)--0
  • already marked as triaged (improvements and regressions balanced out, and the binary size regressions were deemed due to upstream dependencies)

Store static initializers in metadata instead of the MIR of statics. #116564 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
15.9%[0.4%, 81.2%]8
Improvements ✅
(primary)
-0.4%[-0.5%, -0.2%]8
Improvements ✅
(secondary)
-2.5%[-8.9%, -0.4%]18
All ❌✅ (primary)-0.4%[-0.5%, -0.2%]8
  • already marked as triaged: the benchmark stress test is now writing an 8MB constant to metadata instead of a tiny bit of MIR

Clean up potential_query_instability with FxIndexMap and UnordMap #120931 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]4
Improvements ✅
(primary)
-0.2%[-0.2%, -0.2%]2
Improvements ✅
(secondary)
-6.6%[-6.6%, -6.6%]1
All ❌✅ (primary)-0.2%[-0.2%, -0.2%]2
  • regressions are solely to the secondary many-assoc-items benchmark (check full, check/debug/opt incr-full), and was anticipated.
  • marking as triaged