2024-07-16 Triage Log

Fairly quiet week with the only pure regressions being small and coming from correctness fixes. The biggest single change came from turning off the -Zenforce-type-length-limit check which had positive impacts across many different benchmarks since the compiler is doing strictly less work.

Triage done by @rylev. Revision range: a2d58197..5572759b

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.7%]12
Regressions ❌
(secondary)
0.4%[0.2%, 0.9%]45
Improvements ✅
(primary)
-0.7%[-1.5%, -0.2%]37
Improvements ✅
(secondary)
-3.3%[-13.5%, -0.4%]21
All ❌✅ (primary)-0.4%[-1.5%, 0.7%]49

2 Regressions, 3 Improvements, 2 Mixed; 1 of them in rollups 56 artifact comparisons made in total

Regressions

Fix regression in the MIR lowering of or-patterns #127028 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.3%, 1.2%]3
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.7%[0.3%, 1.2%]3
  • Given this is a correctness fix, and the regressions seem in line with previous historical performance (i.e., it regressed back to a previous baseline), I think it's safe to call this triaged

Avoid follow-up errors and ICEs after missing lifetime errors on data structures #127311 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]8
Regressions ❌
(secondary)
0.3%[0.2%, 0.4%]16
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.3%[0.2%, 0.4%]8
  • Instruction counts go up, cycles do not (deeply nested multi is probably just noise in mono collection). In any case, this is a correctness fix so it seems like a small perf hit would be acceptable in any case.

Improvements

Fix Parser::look_ahead #127636 (Comparison Link)

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

Gate the type length limit check behind a nightly flag #127670 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.6%[-1.4%, -0.2%]28
Improvements ✅
(secondary)
-1.1%[-1.5%, -0.4%]8
All ❌✅ (primary)-0.6%[-1.4%, -0.2%]28

find_field does not need to be a query. #127718 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-7.5%[-13.5%, -2.7%]9
All ❌✅ (primary)--0

Mixed

Rollup of 7 pull requests #127580 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.6%[2.6%, 2.6%]1
Improvements ✅
(primary)
-0.6%[-1.0%, -0.2%]9
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.6%[-1.0%, -0.2%]9
  • Noise

Only track mentioned places for jump threading #127087 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.5%[0.4%, 0.6%]3
Regressions ❌
(secondary)
1.1%[0.2%, 1.6%]7
Improvements ✅
(primary)
-0.6%[-1.3%, -0.2%]6
Improvements ✅
(secondary)
-0.6%[-2.0%, -0.3%]8
All ❌✅ (primary)-0.2%[-1.3%, 0.6%]9
  • The perf impact was expected given the pre-merge runs and is less severe than it was pre-merge.