2022-06-28 Triage Log

Overall, a positive week for compiler performance with regressions mainly being relegated to smaller issues. This can be see by the fact that 95 test cases in real world crates were improvements while regressions only happened in 22 test cases. The largest improvement was by @nnethercote where the compilation of #[derive(Debug)] was improved. This led to an average of 1% improvement in compile times across 124 real world crate test cases.

Triage done by @rylev. Revision range: abace0a1f17986d89aedf610819deab2b4afee56..baf382e63c023259fa1f9042f8f479f183ca6ed3

Summary:

meanmaxcount
Regressions 😿
(primary)
0.6%2.4%22
Regressions 😿
(secondary)
0.5%1.0%35
Improvements πŸŽ‰
(primary)
-1.1%-5.2%95
Improvements πŸŽ‰
(secondary)
-2.3%-10.3%35
All πŸ˜ΏπŸŽ‰ (primary)-0.8%-5.2%117

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

Regressions

Rollup of 16 pull requests #98438 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
0.3%0.4%37
Regressions 😿
(secondary)
0.4%0.6%17
Improvements πŸŽ‰
(primary)
N/AN/A0
Improvements πŸŽ‰
(secondary)
-0.4%-0.5%3
All πŸ˜ΏπŸŽ‰ (primary)0.3%0.4%37
  • Given the difficulty of investigation and the relatively small magnitude of the regression, I've marked this as triaged.

fix universes in the NLL type tests #98109 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
0.6%1.9%31
Regressions 😿
(secondary)
0.9%2.0%35
Improvements πŸŽ‰
(primary)
N/AN/A0
Improvements πŸŽ‰
(secondary)
N/AN/A0
All πŸ˜ΏπŸŽ‰ (primary)0.6%1.9%31
  • This was a high-priority correctness fix, so the regressions are acceptable at least in the short term.
  • Oli already commented on possible ideas for fixing the regression.

Rollup of 9 pull requests #98591 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
N/AN/A0
Regressions 😿
(secondary)
1.2%1.7%7
Improvements πŸŽ‰
(primary)
N/AN/A0
Improvements πŸŽ‰
(secondary)
N/AN/A0
All πŸ˜ΏπŸŽ‰ (primary)N/AN/A0
  • #98576 is probably the only likely candidate for this regression.
  • The cahcegrind didn't reveal anything super interesting though unfortunately.
  • Left a comment here.

Improvements

Rollup of 11 pull requests #98335 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
N/AN/A0
Regressions 😿
(secondary)
1.1%1.1%1
Improvements πŸŽ‰
(primary)
-0.9%-1.2%8
Improvements πŸŽ‰
(secondary)
-0.6%-0.7%13
All πŸ˜ΏπŸŽ‰ (primary)-0.9%-1.2%8

proc_macro/bridge: cache static spans in proc_macro's client thread-local state #98187 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
N/AN/A0
Regressions 😿
(secondary)
N/AN/A0
Improvements πŸŽ‰
(primary)
-0.4%-0.7%12
Improvements πŸŽ‰
(secondary)
N/AN/A0
All πŸ˜ΏπŸŽ‰ (primary)-0.4%-0.7%12

Only keep a single query for well-formed checking #98222 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
N/AN/A0
Regressions 😿
(secondary)
N/AN/A0
Improvements πŸŽ‰
(primary)
-0.2%-0.3%2
Improvements πŸŽ‰
(secondary)
-0.2%-0.3%7
All πŸ˜ΏπŸŽ‰ (primary)-0.2%-0.3%2

Mixed

Remove dereferencing of Box from codegen #95576 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
0.6%1.6%5
Regressions 😿
(secondary)
0.5%0.8%17
Improvements πŸŽ‰
(primary)
-0.5%-0.5%1
Improvements πŸŽ‰
(secondary)
-1.2%-1.7%8
All πŸ˜ΏπŸŽ‰ (primary)0.4%1.6%6
  • Some light investigation from Oli already done.
  • Seems like we're spending a bit more time in trait obligation resolution
  • Asked Oli whether this is acceptable.

Rollup of 6 pull requests #98359 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
0.8%1.0%6
Regressions 😿
(secondary)
N/AN/A0
Improvements πŸŽ‰
(primary)
-0.3%-0.6%14
Improvements πŸŽ‰
(secondary)
N/AN/A0
All πŸ˜ΏπŸŽ‰ (primary)0.0%1.0%20
  • By in large, a wash in terms of change to overall performance.
  • The regressions are contained to diesel.
  • If I had to guess about a place to investigate, it would be #87867, but it might not be worth the effort.

Rollup of 9 pull requests #98447 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
2.1%2.1%1
Regressions 😿
(secondary)
N/AN/A0
Improvements πŸŽ‰
(primary)
N/AN/A0
Improvements πŸŽ‰
(secondary)
-0.3%-0.3%1
All πŸ˜ΏπŸŽ‰ (primary)2.1%2.1%1
  • The regressions are contained to only one test case (regex opt) in codegen related queries.
  • I didn't find any PRs that seemed like likely culprits.

Improve derive(Debug) #98190 (Comparison Link)

meanmaxcount
Regressions 😿
(primary)
0.5%0.6%4
Regressions 😿
(secondary)
0.5%0.8%13
Improvements πŸŽ‰
(primary)
-1.0%-5.3%120
Improvements πŸŽ‰
(secondary)
-1.8%-10.3%69
All πŸ˜ΏπŸŽ‰ (primary)-1.0%-5.3%124
  • Largely a very positive win.