A mixed week, with a vast number of improvements (in large part due to PR #122010, which undoes a prior regression; PR #120985, a host LLVM update). But also three admittedly small-ish regressions which seemed unanticipated and were still large enough that I did not feel comfortable rubber-stamping them with a perf-regression-triaged marking.
Triage done by @pnkfelix. Revision range: 41d97c8a..e919669d
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.6% | [0.2%, 1.4%] | 38 |
Regressions ❌ (secondary) | 1.1% | [0.2%, 4.9%] | 50 |
Improvements ✅ (primary) | -1.0% | [-4.8%, -0.2%] | 119 |
Improvements ✅ (secondary) | -0.8% | [-2.2%, -0.4%] | 36 |
All ❌✅ (primary) | -0.6% | [-4.8%, 1.4%] | 157 |
2 Regressions, 5 Improvements, 9 Mixed; 5 of them in rollups 54 artifact comparisons made in total
interpret: avoid a long-lived PlaceTy in stack frames #121985 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Regressions ❌ (secondary) | 3.0% | [0.2%, 4.5%] | 8 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Detect unused struct impls pub trait #121752 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.4% | [0.2%, 0.5%] | 6 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.4% | [0.2%, 0.5%] | 6 |
live_symbols_and_ignored_derived_traits
is the source of the perf regression, which is consistent with the idea that this lint has become more expensive since that's where we see the call to the newly-added solve_rest_impl_items
(a worklist algorithm from the PR).Rollup of 7 pull requests #122111 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.4% | [-0.4%, -0.3%] | 7 |
Improvements ✅ (secondary) | -0.5% | [-0.6%, -0.3%] | 5 |
All ❌✅ (primary) | -0.4% | [-0.4%, -0.3%] | 7 |
Rollup of 8 pull requests #122117 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -2.1% | [-3.9%, -0.4%] | 12 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -2.1% | [-3.9%, -0.4%] | 12 |
non_local_definitions
lint allow-by-defaultMerge collect_mod_item_types
query into check_well_formed
#121500 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.6% | [-0.8%, -0.2%] | 4 |
Improvements ✅ (secondary) | -0.5% | [-0.6%, -0.5%] | 2 |
All ❌✅ (primary) | -0.6% | [-0.8%, -0.2%] | 4 |
Avoid invoking the intrinsic
query for DefKinds other than Fn
or AssocFn
#122010 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.5% | [-1.0%, -0.2%] | 74 |
Improvements ✅ (secondary) | -0.7% | [-2.1%, -0.2%] | 26 |
All ❌✅ (primary) | -0.5% | [-1.0%, -0.2%] | 74 |
Dep node encoding cleanups #122064 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | -0.3% | [-0.3%, -0.2%] | 19 |
Improvements ✅ (secondary) | -0.3% | [-0.4%, -0.2%] | 12 |
All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 19 |
Optimize write with as_const_str for shorter code #122059 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.1% | [0.3%, 1.9%] | 2 |
Improvements ✅ (primary) | -0.8% | [-1.2%, -0.4%] | 2 |
Improvements ✅ (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
All ❌✅ (primary) | -0.8% | [-1.2%, -0.4%] | 2 |
Replace the default branch with an unreachable branch If it is the last variant #120268 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.7% | [0.2%, 1.8%] | 4 |
Regressions ❌ (secondary) | 0.2% | [0.2%, 0.3%] | 7 |
Improvements ✅ (primary) | -0.8% | [-1.2%, -0.3%] | 5 |
Improvements ✅ (secondary) | -0.9% | [-2.2%, -0.3%] | 3 |
All ❌✅ (primary) | -0.1% | [-1.2%, 1.8%] | 9 |
Rollup of 8 pull requests #122182 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.3% | [1.3%, 1.3%] | 1 |
Regressions ❌ (secondary) | 0.8% | [0.2%, 1.3%] | 2 |
Improvements ✅ (primary) | -0.3% | [-0.7%, -0.2%] | 17 |
Improvements ✅ (secondary) | -0.5% | [-0.9%, -0.2%] | 15 |
All ❌✅ (primary) | -0.3% | [-0.7%, 1.3%] | 18 |
Replace TypeWalker
usage with TypeVisitor
in wf.rs
#122150 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.7% | [0.3%, 1.3%] | 6 |
Improvements ✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
Improvements ✅ (secondary) | -0.2% | [-0.3%, -0.2%] | 3 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
Rollup of 12 pull requests #122241 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.9% | [0.2%, 1.6%] | 2 |
Improvements ✅ (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
Improvements ✅ (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
All ❌✅ (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
Update host LLVM on x64 Linux to LLVM 18 #120985 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.3% | [0.1%, 1.0%] | 88 |
Regressions ❌ (secondary) | 0.4% | [0.1%, 0.5%] | 21 |
Improvements ✅ (primary) | -1.0% | [-1.6%, -0.4%] | 54 |
Improvements ✅ (secondary) | -0.8% | [-1.2%, -0.6%] | 8 |
All ❌✅ (primary) | -0.2% | [-1.6%, 1.0%] | 142 |
Rollup of 8 pull requests #122256 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 0.6% | [0.2%, 1.6%] | 21 |
Regressions ❌ (secondary) | 0.6% | [0.3%, 1.6%] | 7 |
Improvements ✅ (primary) | -0.7% | [-1.0%, -0.5%] | 3 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 0.4% | [-1.0%, 1.6%] | 24 |
Distinguish between library and lang UB in assert_unsafe_precondition #121662 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | 1.1% | [0.3%, 1.7%] | 4 |
Regressions ❌ (secondary) | 1.1% | [1.1%, 1.1%] | 1 |
Improvements ✅ (primary) | -0.9% | [-1.7%, -0.4%] | 4 |
Improvements ✅ (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
All ❌✅ (primary) | 0.1% | [-1.7%, 1.7%] | 8 |
Stop using LLVM struct types for byval/sret #122050 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 1.9% | [0.5%, 3.3%] | 2 |
Improvements ✅ (primary) | -2.1% | [-2.4%, -1.9%] | 2 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | -2.1% | [-2.4%, -1.9%] | 2 |