Only one outright regression this week. We had some very cool work from cjgillot
to prevent queries from doing expensive clones, by just forcing them all to be
Copy
! Also, nnethercote's overhaul of interning yielded massive improvements
across many crates. Also, a slew of benchmarks were unexpectedly improved
quite a lot by some changes to way we invoke the linker when building LLVM itself.
Triage done by @pnkfelix. Revision range: 775e480722c7aba6ff4ff3ccec8c1f4639ae7889..a240ccd81c74c105b6f5fe84c46f8d36edb7e306
2 Regressions, 2 Improvements, 4 Mixed; 0 of them in rollups 47 comparisons made in total
Inherit lifetimes for async fn instead of duplicating them. #91403
- Average relevant regression: 1.7%
- Largest regression in instruction counts: 2.0% on
full
builds ofissue-88862 check
- This regression was predicted by a rust-timer build when PR was first proposed, ...
- ... but there was no follow-up on those results at that time; left comment on PR.
Apply noundef attribute to &T, &mut T, Box, bool #93670
- Average relevant regression: 0.7%
- Largest regression in instruction counts: 1.1% on
full
builds ofregression-31157 debug
- PR author says that Cachegrind indicates this is due to overhead of inserting attribute itself.
- PR author also says there is related work in LLVM 14 that may help ease the performance impact here, so stay tuned for when that lands in PR #93577
Ensure that queries only return Copy types. #93511
- Average relevant improvement: -2.3%
- Largest improvement in instruction counts: -6.1% on
incr-unchanged
builds ofexterns debug
bootstrap: tidy up flag handling for llvm build #93918
- Average relevant improvement: -1.6%
- Largest improvement in instruction counts: -5.4% on
full
builds ofhelloworld check
Inline a few trivial conversion functions #94021
- Average relevant improvement: -0.5%
- Largest improvement in instruction counts: -1.1% on
full
builds ofdeeply-nested-async check
Revert lazy TAIT PR #93893
- Average relevant regression: 1.0%
- Average relevant improvement: -1.2%
- Largest improvement in instruction counts: -1.8% on
full
builds ofdeeply-nested-async check
- Largest regression in instruction counts: 1.6% on
full
builds ofwg-grammar check
- Left comment: we had to revert the TAIT PR, the fallout from it was too high. Marked as triaged.
Implement tainted_by_errors
in MIR borrowck, use it to skip CTFE #93691
- Average relevant regression: 1.7%
- Average relevant improvement: -0.4%
- Largest improvement in instruction counts: -0.6% on
incr-unchanged
builds ofkeccak check
- Largest regression in instruction counts: 2.4% on
incr-patched: u8 3072
builds ofissue-46449 debug
- There were three experiments done for this PR, with distinct commits: first run, second run, third run.
- The second experiment is what landed; the first experiment had smaller max and average values in its summary, but it regressed far more crates overall, while the second experiment regressed only a few crates, each by slightly more than the first experiment.
- In any case, this was expected fallout from this PR.
make find_similar_impl_candidates
even fuzzier #93298
- Average relevant regression: 0.7%
- Average relevant improvement: -0.3%
- Largest improvement in instruction counts: -0.3% on
full
builds ofinflate check
- Largest regression in instruction counts: 0.8% on
full
builds ofkeccak check
- Not clear why this had a performance impact at all, as it should have only affected error reporting.
Overhaul interning. #93148
- Average relevant regression: 1.0%
- Average relevant improvement: -1.1%
- Largest improvement in instruction counts: -4.5% on
full
builds ofprojection-caching check
- Largest regression in instruction counts: 1.8% on
full
builds ofmatch-stress-enum check
- This was a massive improvement, full stop.
- #93893 Revert lazy TAIT PR
- #93670 Apply noundef attribute to &T, &mut T, Box, bool
- #93466 Make dead code check a query.
- #93312 Return an indexmap in
all_local_trait_impls
query - #93298 make
find_similar_impl_candidates
even fuzzier - #93288 Rollup of 8 pull requests
- #93154 debuginfo: Make sure that type names for closure and generator environments are unique in debuginfo.
- #93148 Overhaul interning.
- #93138 Rollup of 17 pull requests
- #93095 Store a
Symbol
instead of anIdent
inAssocItem
- #92896 Update some rustc dependencies to deduplicate them
- #92844 Rollup of 9 pull requests
- #92816 Remove deprecated LLVM-style inline assembly
- #92805 partially revertish
lazily "compute" anon const default substs
- #92535 Allow unwinding from OOM hooks
- #92534 Hash
Ident
spans in all HIR structures - #92356 Add {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}{,Assign}<$t> to Saturat…
- #92277 rustc_metadata: Stop passing
CrateMetadataRef
by reference (step 1) - #92252 Update pulldown-cmark version to 0.9
- #92229 Do not display
~const Drop
in rustdoc - #92227 Rustdoc: use
is_doc_hidden
method on more places - #92149 Fix bad caching of
~const Drop
bounds - #92135 Add
#[inline]
modifier toTypeId::of
- #92110 Backport LLVM changes to disable deferred inlining
- #92106 Rollup of 4 pull requests
- #92088 intra-doc: Use an enum to represent URL fragments
- #92064 Rollup of 7 pull requests
- #92062 Rollup of 7 pull requests
- #92041 Remove 'speculative evaluation' of predicates
- #92007 Lazy type-alias-impl-trait
TODO: Nags