2024-06-11 Triage Log

This week saw more regressions than wins, caused mostly by code being reorganized within the compiler and a new feature being implemented. There have also been some nice improvements caused by better optimizing spans.

Triage done by @kobzol. Revision range: 1d52972d..b5b13568

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.2%, 2.7%]105
Regressions ❌
(secondary)
1.0%[0.1%, 6.9%]74
Improvements ✅
(primary)
-0.5%[-1.0%, -0.2%]20
Improvements ✅
(secondary)
-1.4%[-8.8%, -0.2%]32
All ❌✅ (primary)0.5%[-1.0%, 2.7%]125

5 Regressions, 3 Improvements, 4 Mixed; 5 of them in rollups 59 artifact comparisons made in total

Regressions

Rollup of 8 pull requests #125976 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.9%[0.2%, 1.3%]14
Regressions ❌
(secondary)
0.9%[0.4%, 2.8%]5
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.9%[0.2%, 1.3%]14
  • Looks like it was caused by #125968.
  • This PR resulted in some code being shuffled around the compiler (what we call “codegen noise”), we determined that it is not worth investigating further.

Don't walk the bodies of free constants for reachability. #122505 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.8%[0.2%, 2.6%]4
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.8%[0.2%, 2.6%]4
  • The compiler needs to do a little bit more work after this PR, so the regression is expected.

Unsafe extern blocks #124482 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]32
Regressions ❌
(secondary)
0.2%[0.2%, 0.3%]4
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.3%[0.2%, 0.4%]32
  • This PR adds a new feature, so a small performance regression is expected.

Rollup of 7 pull requests #126108 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.3%]5
Regressions ❌
(secondary)
0.9%[0.5%, 1.5%]15
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.2%[0.2%, 0.3%]5
  • Caused by #125724, which moves some code to a different compiler package, so that it can be used with the new trait solver.

Add Rust for Linux auto CI job #125209 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.3%[2.5%, 6.1%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0
  • This PR did not modify the compiler at all, so this has to be noise.

Improvements

Rollup of 11 pull requests #125989 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.0%[2.0%, 2.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.3%[-0.3%, -0.2%]10
All ❌✅ (primary)--0

Revert: create const block bodies in typeck via query feeding #125918 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.3%[-0.5%, -0.2%]35
Improvements ✅
(secondary)
-0.4%[-0.4%, -0.3%]9
All ❌✅ (primary)-0.3%[-0.5%, -0.2%]35

Rollup of 9 pull requests #126240 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-2.3%[-6.4%, -0.2%]3
All ❌✅ (primary)--0

Mixed

Make TLS accessors closures that return pointers #125525 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]6
Regressions ❌
(secondary)
2.9%[2.9%, 2.9%]1
Improvements ✅
(primary)
-0.5%[-1.1%, -0.3%]14
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.2%[-1.1%, 0.4%]20
  • More wins than losses.

Rollup of 11 pull requests #126134 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 1.0%]43
Regressions ❌
(secondary)
0.4%[0.1%, 0.8%]14
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.2%[-0.2%, -0.2%]3
All ❌✅ (primary)0.4%[0.2%, 1.0%]43

rustc_span: Optimize syntax context updates in spans #125017 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.2%, 0.6%]6
Regressions ❌
(secondary)
0.7%[0.4%, 1.0%]10
Improvements ✅
(primary)
-0.4%[-1.5%, -0.2%]37
Improvements ✅
(secondary)
-1.5%[-9.3%, -0.2%]33
All ❌✅ (primary)-0.3%[-1.5%, 0.6%]43
  • More improvements than regressions.

Add SingleUseConsts mir-opt pass #125910 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.4%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.3%[-0.4%, -0.2%]4
Improvements ✅
(secondary)
-2.3%[-2.9%, -1.7%]2
All ❌✅ (primary)-0.1%[-0.4%, 0.4%]6
  • Slighty more wins than losses on instructions.
  • Small binary size win.