An amazing week. We saw more wins than losses; I want to call out specifically the wins from removing attributes from metadata (up to 8.2% faster builds for 18 benchmarks) and from enabling LTO for rustc_driver.so (up to 9.6% faster builds for an epic 230 benchmarks, with zero regressions).
Triage done by @pnkfelix. Revision range: e0f8e60d..629a414d
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.7% | [0.7%, 0.7%] | 2 |
Improvements ✅ (primary) | -4.3% | [-9.4%, -0.4%] | 231 |
Improvements ✅ (secondary) | -4.4% | [-9.5%, -0.5%] | 256 |
All ❌✅ (primary) | -4.3% | [-9.4%, -0.4%] | 231 |
2 Regressions, 6 Improvements, 2 Mixed; 2 of them in rollups 53 artifact comparisons made in total
Add default trait implementations for “c-unwind” ABI function pointers #101263 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.9% | [0.2%, 2.6%] | 19 |
Regressions ❌ (secondary) | 1.9% | [0.4%, 3.0%] | 23 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.9% | [0.2%, 2.6%] | 19 |
Rollup of 10 pull requests #103562 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.2%, 0.4%] | 43 |
Regressions ❌ (secondary) | 0.5% | [0.2%, 1.2%] | 25 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 43 |
deeply-nested-multi
, which regressed by 0.74--1.2% depending on the scenario.Use Set instead of Vec in transitive_relation #103214 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.6% | [-0.7%, -0.6%] | 2 |
Improvements ✅ (secondary) | -1.2% | [-1.6%, -0.6%] | 7 |
All ❌✅ (primary) | -0.6% | [-0.7%, -0.6%] | 2 |
Remove more attributes from metadata #98450 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
Improvements ✅ (primary) | -2.7% | [-8.2%, -0.2%] | 18 |
Improvements ✅ (secondary) | -5.5% | [-8.4%, -0.8%] | 23 |
All ❌✅ (primary) | -2.7% | [-8.2%, -0.2%] | 18 |
stop using ty::UnevaluatedConst
directly #103227 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
Enable LTO for rustc_driver.so #101403 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -4.2% | [-9.6%, -0.4%] | 230 |
Improvements ✅ (secondary) | -4.0% | [-9.5%, -0.4%] | 257 |
All ❌✅ (primary) | -4.2% | [-9.6%, -0.4%] | 230 |
Rollup of 11 pull requests #103502 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 2.3% | [2.3%, 2.3%] | 1 |
Improvements ✅ (primary) | -0.5% | [-0.5%, -0.5%] | 1 |
Improvements ✅ (secondary) | -0.9% | [-1.2%, -0.8%] | 6 |
All ❌✅ (primary) | -0.5% | [-0.5%, -0.5%] | 1 |
Perf improvements for effective visibility calculating #103158 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.4% | [-0.5%, -0.3%] | 6 |
Improvements ✅ (secondary) | -0.6% | [-2.0%, -0.2%] | 22 |
All ❌✅ (primary) | -0.4% | [-0.5%, -0.3%] | 6 |
Deny hashing ty/re/ct inference variables #103220 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.8% | [0.5%, 1.2%] | 8 |
Improvements ✅ (primary) | -0.2% | [-0.3%, -0.2%] | 2 |
Improvements ✅ (secondary) | -0.9% | [-1.0%, -0.5%] | 9 |
All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 2 |
Remove ParamEnv from uninhabited query #102660 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.5% | [1.2%, 1.7%] | 7 |
Improvements ✅ (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
Improvements ✅ (secondary) | -1.2% | [-1.2%, -1.2%] | 3 |
All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
rustc_query_description!
FnMutDelegate
to trait objectsTypeckResults
from InferCtxt
#[const_trait]
on Trait
for impl const Trait
rustc_data_structures::thin_vec::ThinVec
with thin_vec::ThinVec
const_eval_select
a real intrinsicdepth_limit
in QueryVTable
to avoid entering a new tcx in layout_of
Fn
/FnMut
/FnOnce
if its return type isn’t sizedTODO: Nags