2024-01-30 Triage Log

This was a very quiet week with only one PR having any real impact on overall compiler performance. The removal of the internal StructuralEq trait saw a roughly 0.4% improvement on average across nearly 50 real-world benchmarks.

Triage done by @rylev. Revision range: d6b151fc7..5c9c3c7

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.3%, 0.7%]5
Regressions ❌
(secondary)
0.5%[0.2%, 1.4%]10
Improvements ✅
(primary)
-0.5%[-1.5%, -0.2%]48
Improvements ✅
(secondary)
-2.3%[-7.7%, -0.4%]36
All ❌✅ (primary)-0.4%[-1.5%, 0.7%]53

0 Regressions, 4 Improvements, 4 Mixed; 3 of them in rollups 37 artifact comparisons made in total

Regressions

Improvements

Only use dense bitsets in dataflow analyses #116152 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.5%, -0.2%]5
Improvements ✅
(secondary)
-0.8%[-1.1%, -0.4%]2
All ❌✅ (primary)-0.4%[-0.5%, -0.2%]5

const-eval interning: get rid of type-driven traversal #119044 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.9%[-1.1%, -0.8%]3
Improvements ✅
(secondary)
-3.8%[-8.0%, -0.6%]14
All ❌✅ (primary)-0.9%[-1.1%, -0.8%]3

Remove all ConstPropNonsense #119627 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.6%, -0.2%]11
Improvements ✅
(secondary)
-0.5%[-0.5%, -0.5%]3
All ❌✅ (primary)-0.4%[-0.6%, -0.2%]11

remove StructuralEq trait #116167 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.3%, 0.3%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.4%[-0.6%, -0.2%]48
Improvements ✅
(secondary)
-1.3%[-3.0%, -0.3%]23
All ❌✅ (primary)-0.4%[-0.6%, 0.3%]49

Mixed

Rollup of 10 pull requests #120335 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.8%]9
Regressions ❌
(secondary)
0.7%[0.6%, 0.9%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.7%[-0.7%, -0.7%]1
All ❌✅ (primary)0.4%[0.3%, 0.8%]9
  • Small regressions in doc benchmarks
  • Most likely caused by addings AsyncFn family of traits.
  • Author has been pinged, but it‘s probably acceptable cost given that we’re documenting more.

Rollup of 9 pull requests #120375 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.3%[0.3%, 0.4%]3
Improvements ✅
(primary)
-0.2%[-0.2%, -0.2%]6
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.2%[-0.2%, -0.2%]6
  • Small number of improvements outweigh the small number of regressions and so it's not really worth investigating further.

Rollup of 12 pull requests #120401 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.6%[0.5%, 1.1%]7
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.1%[-3.1%, -3.1%]1
All ❌✅ (primary)--0
  • Very small regressions in match stress test is not worth investigating

Merge into larger interval set #120024 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]14
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.3%[-0.3%, -0.2%]2
All ❌✅ (primary)0.3%[0.2%, 0.4%]14
  • The reviewer decided that the performance hit here was worth it given that we are now protecting against truly extreme cases that the perf benchmark suite doesn't test against.