2021-12-28 Triage Log

Relatively quiet week, mostly rustdoc improvements.

Triage done by @simulacrum. Revision range: 3d57c61a9e04dcd3df633f41142009d6dcad4399..e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4

2 Regressions, 1 Improvements, 6 Mixed; 0 of them in rollups 26 comparisons made in total

Regressions

Fix bad caching of ~const Drop bounds #92149

  • Moderate regression in instruction counts (up to 2.6% on incr-patched: println builds of regression-31157)
  • Necessary fix for correctness.

Add #[inline] modifier to TypeId::of #92135

  • Large regression in instruction counts (up to 4.4% on full builds of keccak)
  • Reverted in a later pull request, unclear what the exact cause of the regression is.

Improvements

:arrow_up: rust-analyzer #92247

  • Moderate improvement in instruction counts (up to -1.2% on incr-unchanged builds of deeply-nested-async)
  • Likely spurious change, rust-analyzer performance is not directly related.

Remove PartialOrd, Ord from LocalDefId #90408

  • Large improvement in instruction counts (up to -3.7% on full builds of deeply-nested-async)
  • Overall an improvement; largely a correctness change as relative ordering of DefId‘s isn’t tracked by incremental compilation.

Do not display ~const Drop in rustdoc #92229

  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)
  • Likely to be just noise, no clear explanation for changes to rustc performance from rustdoc changes.

Rustdoc: use is_doc_hidden method on more places #92227

intra-doc: Use an enum to represent URL fragments #92088

rustc_metadata: Switch crate data iteration from a callback to iterator #92159

  • Moderate improvement in instruction counts (up to -1.3% on incr-unchanged builds of deeply-nested-async)

Mixed

Backport LLVM changes to disable deferred inlining #92110

  • Moderate improvement in instruction counts (up to -8.3% on incr-patched: println builds of regression-31157)
  • Large regression in instruction counts (up to 2.8% on full builds of deeply-nested)
  • Avoids an extreme regression in LLVM, which was blocking migration onto the new pass manager (and so newer rustc versions) for some crates.