Fairly busy week with some massive performance improvements at the expense of some significant albeit smaller regressions. The main wins came in a long-standing PR from @cjgillot to enable encoding spans in metadata relative to their enclosing item. This causes more work in full compilation which causes some regressions up to 5% but can lead to very large wins in incremental compilation scenarios (up to ~70%). For example, the clap crate compiles 68% faster after a small 1 line change than it did previously.
Triage done by @rylev. Revision range: b38a6d..b43596
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.6% | [0.3%, 4.6%] | 97 |
Regressions ❌ (secondary) | 1.8% | [0.2%, 7.6%] | 60 |
Improvements ✅ (primary) | -9.7% | [-68.7%, -0.2%] | 53 |
Improvements ✅ (secondary) | -1.7% | [-15.3%, -0.1%] | 62 |
All ❌✅ (primary) | -2.4% | [-68.7%, 4.6%] | 150 |
1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 47 artifact comparisons made in total
Rollup of 8 pull requests #106228 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.4% | [0.2%, 0.6%] | 7 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.4% | [0.2%, 0.6%] | 7 |
Allow trait method paths to satisfy const Fn bounds #106210 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.2%, 0.5%] | 16 |
Regressions ❌ (secondary) | 0.4% | [0.2%, 0.7%] | 16 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -1.4% | [-1.4%, -1.4%] | 1 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.5%] | 16 |
fix comment for TokenCursor::desugar
#106268 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.5%, -0.2%] | 17 |
Improvements ✅ (secondary) | -0.3% | [-0.7%, -0.2%] | 15 |
All ❌✅ (primary) | -0.3% | [-0.5%, -0.2%] | 17 |
Abolish QueryVTable
in favour of more assoc items on QueryConfig
#106307 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.6% | [0.4%, 1.0%] | 4 |
Improvements ✅ (primary) | -0.5% | [-1.0%, -0.2%] | 63 |
Improvements ✅ (secondary) | -0.6% | [-1.3%, -0.4%] | 60 |
All ❌✅ (primary) | -0.5% | [-1.0%, -0.2%] | 63 |
Catch panics/unwinding in destruction of TLS values #105426 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.7% | [0.3%, 1.9%] | 11 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.6%, -0.2%] | 41 |
Improvements ✅ (secondary) | -1.8% | [-14.6%, -0.2%] | 31 |
All ❌✅ (primary) | -0.1% | [-0.6%, 1.9%] | 52 |
Use some more const_eval_select
in pointer methods for compile times #106275 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.4% | [0.4%, 0.4%] | 1 |
Regressions ❌ (secondary) | 0.7% | [0.6%, 0.9%] | 2 |
Improvements ✅ (primary) | -0.5% | [-0.9%, -0.2%] | 28 |
Improvements ✅ (secondary) | -0.8% | [-0.8%, -0.7%] | 3 |
All ❌✅ (primary) | -0.4% | [-0.9%, 0.4%] | 29 |
regex
and found nothing. The gains much outweigh the regressions so we should be fine keeping it.Encode spans relative to the enclosing item -- enable on nightly #84762 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.7% | [0.2%, 5.0%] | 108 |
Regressions ❌ (secondary) | 1.8% | [0.2%, 7.6%] | 90 |
Improvements ✅ (primary) | -20.0% | [-68.9%, -0.6%] | 25 |
Improvements ✅ (secondary) | -2.7% | [-4.8%, -1.5%] | 11 |
All ❌✅ (primary) | -2.4% | [-68.9%, 5.0%] | 133 |
Reenable limited top-down MIR inlining #106364 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.5% | [0.3%, 1.1%] | 4 |
Regressions ❌ (secondary) | 0.6% | [0.5%, 0.6%] | 4 |
Improvements ✅ (primary) | -0.6% | [-1.2%, -0.2%] | 9 |
Improvements ✅ (secondary) | -0.9% | [-2.4%, -0.2%] | 18 |
All ❌✅ (primary) | -0.2% | [-1.2%, 1.1%] | 13 |