A large amount of noise in the comparisons this week, likely due to new probabilistic query hash verification increasing likelihood of changes in each benchmark; solutions are being tracked in rustc-perf#1105.
Otherwise, though, the week largely amounted to a neutral one for performance. There were some regressions, particularly in doc builds, as a result of the addition of portable SIMD. These are relatively speaking minor and primarily impact small crates.
Triage done by @simulacrum. Revision range: eee8b9c7bafade55981d155dae71657f1cc55a22..934624fe5f66ce3fb8abf0597a6deb079783335f
5 Regressions, 2 Improvements, 6 Mixed; 2 of them in rollups
41 comparisons made in total
pub use core::simd; #89167
full
builds of helloworld
)proc_macro: Add an expand_expr method to TokenStream #87264
incr-unchanged
builds of inflate
)MIRI says reverse
is UB, so replace it with something LLVM can vectorize #90821
full
builds of deeply-nested
)Rollup of 5 pull requests #90769
full
builds of webrender-wrench
)Added the --temps-dir option #83846
incr-unchanged
builds of helloworld
)Use Vec extend and collect instead of repeatedly calling push #90813
full
builds of match-stress-enum
)Address performance regression introduced by #90218 #90845
full
builds of regression-31157
)Replace Copy/Clone compiler magic on arrays with library impls #86041
incr-unchanged
builds of deeply-nested
)full
builds of cranelift-codegen
)Optimize pattern matching #90746
full
builds of match-stress-enum
)incr-unchanged
builds of deep-vector
)rustdoc: Go back to loading all external crates unconditionally #90489
incr-unchanged
builds of deep-vector
)full
builds of cargo
)Make RawVec private to alloc #90542
incr-unchanged
builds of inflate
)incr-unchanged
builds of deep-vector
)Optimize Eq and Hash for Path/PathBuf #90596
incr-unchanged
builds of coercions
)incr-unchanged
builds of tuple-stress
)Rollup of 8 pull requests #90945
full
builds of deeply-nested-async
)incr-patched: println
builds of clap-rs
)rustc_index::newtype_index
macroreverse
is UB, so replace it with something LLVM can vectorizedist
command to match the components they generateDocContext.{ty,lt,ct}_substs
into one mapconst_raw_ptr_deref
for *const T
tcx.get_diagnostic_name