2023-01-31 Triage Log

Overall a positive week, with relatively few regressions overall and a number of improvements.

Triage done by @simulacrum. Revision range: c8e6a9e8b6251bbc8276cb78cabe1998deecbed7..a64ef7d07d0411315be85a646586cb85eeb9c136

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.6%, 0.6%]1
Regressions ❌
(secondary)
0.3%[0.3%, 0.3%]1
Improvements ✅
(primary)
-0.8%[-2.0%, -0.2%]27
Improvements ✅
(secondary)
-0.9%[-1.9%, -0.5%]11
All ❌✅ (primary)-0.8%[-2.0%, 0.6%]28

2 Regressions, 4 Improvements, 6 Mixed; 2 of them in rollups 44 artifact comparisons made in total

Regressions

Fix thin archive reading #107360 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.6%]13
Regressions ❌
(secondary)
0.5%[0.4%, 0.5%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.4%[0.3%, 0.6%]13

Revert of previous PR to fix behavior. Regressions are minor and hopefully the relanding of the original PR will fix them too.

Use stable metric for const eval limit instead of current terminator-based logic #106227 (Comparison Link)

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

The new metric adds new MIR instructions, which increases the size of MIR and slightly hurts performance. However, this is in service of a concrete feature, so acceptable.

Improvements

use LocalDefId instead of HirId in trait resolution to simplify the obligation clause resolution #103902 (Comparison Link)

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

InstCombine away intrinsic validity assertions #105582 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.2%[-0.3%, -0.2%]6
Improvements ✅
(secondary)
-0.6%[-1.3%, -0.3%]4
All ❌✅ (primary)-0.2%[-0.3%, -0.2%]6

Only compute mir_generator_witnesses query in drop_tracking_mir mode. #107406 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.7%[-5.7%, -1.1%]10
All ❌✅ (primary)--0

Test drop_tracking_mir before querying generator. #107443 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.5%[-0.6%, -0.2%]14
Improvements ✅
(secondary)
-0.7%[-1.0%, -0.4%]8
All ❌✅ (primary)-0.5%[-0.6%, -0.2%]14

Mixed

Move format_args!() into AST (and expand it during AST lowering) #106745 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.2%, 0.8%]4
Regressions ❌
(secondary)
0.8%[0.3%, 1.3%]3
Improvements ✅
(primary)
-0.6%[-2.3%, -0.2%]51
Improvements ✅
(secondary)
-0.7%[-0.8%, -0.7%]6
All ❌✅ (primary)-0.6%[-2.3%, 0.8%]55

Overall mostly an improvement, not worth further investigation.

Rollup of 8 pull requests #107343 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.5%, 0.8%]7
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.4%[-0.4%, -0.4%]1
All ❌✅ (primary)0.7%[0.5%, 0.8%]7

Regressions are limited to a single primary benchmark (bitmaps), and don't seem large enough to warrant spending further time investigating.

rustdoc: Collect “rustdoc-reachable” items during early doc link resolution #107054 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.4%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.5%[-1.0%, -0.3%]4
Improvements ✅
(secondary)
-0.6%[-0.9%, -0.2%]14
All ❌✅ (primary)-0.2%[-1.0%, 0.4%]6

Wins generally outweigh small regressions.

Compute generator saved locals on MIR #101692 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.4%, 0.6%]14
Regressions ❌
(secondary)
2.2%[0.3%, 6.0%]22
Improvements ✅
(primary)
-0.4%[-0.7%, -0.2%]12
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.1%[-0.7%, 0.6%]26

Follow-up in #107406 has resolved 5% regression here, leaving ~1% regressions, but those are likely overall OK.

Rollup of 9 pull requests #107408 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.8%[1.5%, 2.1%]6
Regressions ❌
(secondary)
0.6%[0.2%, 1.8%]5
Improvements ✅
(primary)
-0.6%[-0.6%, -0.6%]2
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.2%[-0.6%, 2.1%]8

Remove HirId -> LocalDefId map from HIR. #107206 (Comparison Link)

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