2023-08-08 Triage Log

Overall a very positive week, primarily due to an upgrade to LLVM 17 and some changes to lint execution. Memory usage is down 4-7% over the last week and wall times are down 3-5%.

Triage done by @simulacrum. Revision range: 828bdc2c26f5c95773c4ecf72870919f16417b66..443c3161dd04f4c1b656a626f9079921bee9c326

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-3.1%[-7.1%, -1.2%]253
Improvements ✅
(secondary)
-4.1%[-28.4%, -0.3%]233
All ❌✅ (primary)-3.1%[-7.1%, -1.2%]253

2 Regressions, 7 Improvements, 2 Mixed; 2 of them in rollups 64 artifact comparisons made in total

Regressions

Rollup of 9 pull requests #114481 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.8%[0.4%, 1.5%]80
Regressions ❌
(secondary)
0.7%[0.2%, 1.2%]25
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.8%[0.4%, 1.5%]80

Unclear what is causing this regression. It's entirely limited to the incr-patched and incr-unchanged scenarios, and digging into one of the benchmarks (bitmaps-3.1.0 check incr-unchanged) seems to show a mix of noise and, in aggregate, significant improvements over the last several days. Not clear which PR in this rollup could have caused this change in behavior.

See these comments for some more details.

Re-enable atomic loads and stores for all RISC-V targets #98333 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.8%[0.4%, 1.3%]18
Regressions ❌
(secondary)
0.6%[0.2%, 0.9%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.8%[0.4%, 1.3%]18

This PR has a very similar regression profile to the previous rollup in this list (#114481).

Improvements

Remove constness from TraitPredicate #114202 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.7%[-0.9%, -0.4%]16
Improvements ✅
(secondary)
-0.6%[-1.2%, -0.3%]13
All ❌✅ (primary)-0.7%[-0.9%, -0.4%]16

cg_llvm: stop identifying ADTs in LLVM IR #114350 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.8%[-1.2%, -0.6%]5
Improvements ✅
(secondary)
-1.1%[-1.5%, -0.6%]6
All ❌✅ (primary)-0.8%[-1.2%, -0.6%]5

Convert builtin “global” late lints to run per module #113734 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.5%[0.4%, 0.8%]3
Improvements ✅
(primary)
-1.7%[-3.4%, -0.2%]88
Improvements ✅
(secondary)
-4.2%[-26.5%, -0.2%]85
All ❌✅ (primary)-1.7%[-3.4%, -0.2%]88

parent_module_from_def_id does not need to be a query. #114516 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.4%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-1.4%[-2.0%, -1.1%]17
Improvements ✅
(secondary)
-1.2%[-1.5%, -0.3%]11
All ❌✅ (primary)-1.2%[-2.0%, 0.4%]19

Steal MIR for CTFE when possible. #114502 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.6%[-0.6%, -0.6%]1
Improvements ✅
(secondary)
-1.5%[-2.6%, -0.5%]19
All ❌✅ (primary)-0.6%[-0.6%, -0.6%]1

Update to LLVM 17 #114048 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-2.2%[-5.6%, -0.8%]173
Improvements ✅
(secondary)
-2.2%[-12.9%, -0.5%]199
All ❌✅ (primary)-2.2%[-5.6%, -0.8%]173

This represents a large win across multiple benchmarks. Unfortunately it also regresses artifact sizes for libLLVM.so by 50MB. Investigation into why is ongoing.

Do not run ConstProp on mir_for_ctfe. #114459 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.2%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.8%[-1.2%, -0.5%]8
Improvements ✅
(secondary)
-1.7%[-3.0%, -1.1%]7
All ❌✅ (primary)-0.7%[-1.2%, 0.2%]9

The one regression is actually within noise floor for the relevant benchmark.

Mixed

Optimize Iterator implementation for &mut impl Iterator + Sized #111200 (Comparison Link)

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

Rollup of 7 pull requests #114604 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.4%[0.4%, 2.0%]3
Regressions ❌
(secondary)
1.2%[1.1%, 1.3%]6
Improvements ✅
(primary)
-0.7%[-0.9%, -0.4%]2
Improvements ✅
(secondary)
-1.0%[-1.5%, -0.5%]2
All ❌✅ (primary)0.5%[-0.9%, 2.0%]5

Investigation into cause is ongoing.