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) | mean | range | count |
---|---|---|---|
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
Rollup of 9 pull requests #114481 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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).
Remove constness
from TraitPredicate
#114202 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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.
Optimize Iterator
implementation for &mut impl Iterator + Sized
#111200 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
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) | mean | range | count |
---|---|---|---|
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.