An overall busy but decent week for performance. While there were some performance regressions they were mostly small, and they were outnumbered by performance gains. Perhaps the most interesting news is not a compiler performance improvement but rather the introduction of no-alias optimizations at the LLVM level. This slightly hurts optimized build time performance in some cases, but it should make some workloads run faster after compilation.
Triage done by @rylev. Revision range: f24ce9b0140d9be5a336954e878d0c1522966bb8..9b6339e4b9747d473270baa42e77e1d2fff39bf4
2 Regressions, 5 Improvements, 3 Mixed 1 of them in rollups
Implement (but don't use) valtree and refactor in preparation of use #82936
full
builds of ctfe-stress-4-opt
)eval_to_allocation_raw
which is what ctfe stresses, so we'll look into it.Use TrustedRandomAccess for in-place iterators where possible #79846
full
builds of deep-vector-debug
)deep-vector-debug
full compilation. It looks to be impacting typeck
, but I‘m not sure why this would be. It’s also possible that it's noise.Add a check for ASCII characters in to_upper and to_lower #81358
incr-unchanged
builds of match-stress-enum-check
)ast/hir: Rename field-related structures #83188
incr-unchanged
builds of deep-vector-check
)Revert performance-sensitive change in #82436 #83293
incr-full
builds of packed-simd-check
)Rollup of 9 pull requests #83360
full
builds of deep-vector-debug
)Simplify encoder and decoder #83273
incr-unchanged
builds of tokio-webpush-simple-check
)feat: Update hashbrown to instantiate less llvm IR #77566
full
builds of cargo-debug
)incr-full
builds of ctfe-stress-4-debug
)ctfe
that remained. The reviewers determined that merging was more important that investigating that issue, but it will be looked into.Replace closures_captures and upvar_capture with closure_min_captures #82951
incr-unchanged
builds of clap-rs-check
)incr-unchanged
builds of tuple-stress-check
)encode_query_results_for
query which explains why this is impacting incremental builds. While this is minor, we will look into it.Enable mutable noalias for LLVM >= 12 #82834
incr-patched: Job
builds of regex-debug
)incr-unchanged
builds of syn-opt
)