2023-12-05 Triage Log

A small number of perf changes that unfortunately led to quite a few perf regressions. A large chunk of those regressions were in rustdoc and were considered acceptable since rustdoc is now doing strictly more work. Some other regressions have already been fixed and will hopefully soon be merged. The last of the regressions are still under investigation, but hopefully they will be resolved soon.

Triage done by @rylev. Revision range: df0295f0..9358642e

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
3.0%[0.2%, 12.3%]53
Regressions ❌
(secondary)
4.1%[0.2%, 11.6%]102
Improvements ✅
(primary)
-0.3%[-0.5%, -0.1%]65
Improvements ✅
(secondary)
-0.6%[-1.2%, -0.2%]25
All ❌✅ (primary)1.1%[-0.5%, 12.3%]118

4 Regressions, 1 Improvements, 1 Mixed; 1 of them in rollups 60 artifact comparisons made in total

Regressions

Rollup of 5 pull requests #118473 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.4%[1.4%, 1.4%]1
Regressions ❌
(secondary)
0.1%[0.1%, 0.1%]3
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.4%[1.4%, 1.4%]1
  • Noise

Restore #![no_builtins] crates participation in LTO. #113923 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
6.4%[0.8%, 12.4%]17
Regressions ❌
(secondary)
5.3%[0.5%, 12.2%]72
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)6.4%[0.8%, 12.4%]17
  • Builtin function symbols that erroneously do not get GCed
  • #118568 seems to reverse these perf regressions.

Portable SIMD subtree update #118077 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.3%, 2.1%]14
Regressions ❌
(secondary)
1.3%[0.2%, 2.2%]23
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.7%[0.3%, 2.1%]14
  • All doc regressions due to more docs being generated and thus acceptable

Add an assume that the index is inbounds to slice::get_unchecked #116915 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
2.5%[0.3%, 4.5%]10
Regressions ❌
(secondary)
0.4%[0.3%, 0.6%]3
Improvements ✅
(primary)
-0.5%[-0.5%, -0.5%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)2.2%[-0.5%, 4.5%]11
  • Still under investigation and perhaps a revert is called for

Improvements

resolve: Feed the def_kind query immediately on DefId creation #118188 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.3%[-0.5%, -0.2%]58
Improvements ✅
(secondary)
-0.5%[-1.0%, -0.1%]34
All ❌✅ (primary)-0.3%[-0.5%, -0.2%]58

Mixed

add track_caller for arith ops #114841 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]6
Regressions ❌
(secondary)
0.7%[0.2%, 1.3%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.2%[-0.3%, -0.2%]3
All ❌✅ (primary)0.3%[0.2%, 0.4%]6
  • Only really affecting rustdoc which is an acceptable tradeoff given the wins in diagnostics