2022-02-02 Triage Log

This was a relatively quiet week with regressions and improvements relatively equally each other out. The big exception is with a somewhat large regression in rustdoc which was needed for a large and important architectural change. This could lead to users see somewhat slower doc build times with more memory used especially in projects with large crate dependency graphs.

Triage done by @rylev. Revision range: c54dfee65126a0ac385d55389a316e89095a0713..1ea4851715893ee3f365a8ef09d47165e9a7864f

2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups 35 comparisons made in total

Regressions

rustdoc: Pre-calculate traits that are in scope for doc links #88679

  • Average relevant regression: 5.4%
  • Largest regression in instruction counts: 9.1% on full builds of regression-31157 doc
  • All the regressions are localized to rustdoc and are quite substantial but exacerbated by an architectural issue which needs to be solved.
  • The regressions are well known and extensively discussed in the PR with the next steps being tracked in an issue.

Store def_id_to_hir_id as variant in hir_owner. #93373

  • Average relevant regression: 1.2%
  • Average relevant improvement: -0.3%
  • Largest regression in instruction counts: 5.5% on incr-unchanged builds of match-stress-enum check
  • This is the first commit (originally bundled with #93301) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.
  • A more detailed justification for this can be found here, but in general this allows for even more incremental compilation and is thus worth the small immediate compilation performance penalty.

Improvements

Fix the unsoundness in the early_otherwise_branch mir opt pass #91840

  • Average relevant improvement: -1.1%
  • Largest improvement in instruction counts: -6.9% on full builds of deeply-nested-async check

Only traverse attrs once while checking for coherence override attributes #93343

  • Average relevant improvement: -1.1%
  • Largest improvement in instruction counts: -1.4% on incr-full builds of stm32f4 check

Rollup of 10 pull requests #93427

  • Average relevant improvement: -1.2%
  • Largest improvement in instruction counts: -1.9% on full builds of ctfe-stress-4 doc

Disable drop range analysis #93284

  • Average relevant improvement: -1.6%
  • Largest improvement in instruction counts: -2.0% on full builds of await-call-tree check

Mixed

Store hir_id_to_def_id in OwnerInfo. #93301

  • Average relevant regression: 0.6%
  • Average relevant improvement: -0.5%
  • Largest improvement in instruction counts: -0.6% on full builds of unused-warnings check
  • Largest regression in instruction counts: 2.2% on incr-unchanged builds of match-stress-enum check
  • This is the first commit (originally bundled with #93373) of a larger PR (#89278) which saw larger PR regressions than the two sub PRs combined.

Create core::fmt::ArgumentV1 with generics instead of fn pointer #90891

  • Average relevant regression: 1.2%
  • Average relevant improvement: -1.2%
  • Largest improvement in instruction counts: -6.7% on full builds of tokio-webpush-simple opt
  • Largest regression in instruction counts: 2.1% on full builds of keccak check
  • The improvements outweigh the regressions considerably and this was considered a fine trade off.

Untriaged Pull Requests