2021-10-19 Triage Log

A week where improvements outweigh regressions. The highlight of the week is the change to split out LLVM profile guided optimization (PGO) and using clang 13 to compile LLVM which led to improvements in many real world crates (e.g., cargo) in the range of 10%. Most regressions were limited and at most in the less than 1% range. We are seeing more performance changes in rollups which are supposed to be performance neutral. We'll have to decide how to best address this.

Triage done by @rylev. Revision range: 9475e609b8458fff9e444934a6017d2e590642cf..d45ed7502ad225739270a368528725930f54b7b6

3 Regressions, 4 Improvements, 2 Mixed; 2 of them in rollups 34 comparisons made in total

Regressions

Rollup of 6 pull requests #89858

  • Moderate regression in instruction counts (up to 0.7% on incr-unchanged builds of cranelift-codegen)
  • This rollup is the kind that is very hard to diagnose because none of the individual PRs seem to be risky.
  • Left a comment about possible causes and a call out for more investigation.

add slice::swap_unchecked #88540

  • Small regression in instruction counts (up to 1.5% on full builds of piston-image)
  • Seems like we're doing more bounds checking than is necessary when using slice::swap though this should only happen when debug assertions are on which is not the case in the compiler.
  • It is interesting that this has predominately impacted full build scenarios, but it's not clear why this would be the case.
  • It‘s already been suggested to revert this, and I’ve left a comment as such in the PR.

Associated consts sidebar #89815

  • Moderate regression in instruction counts (up to 0.9% on full builds of many-assoc-items)
  • Expected since we're doing more work and the benchmark in question is explicitly meant to test the worst case in this scenario.

Improvements

Remove textual span from diagnostic string #89555

polymorphization: shims and predicates #89514

Split out LLVM PGO step and use clang 13 to compile LLVM #89499

  • Very large improvement in instruction counts (up to -13.6% on incr-patched: println builds of cargo)

Revert "Auto merge of #89709 - clemenswasser:apply_clippy_suggestions… #89905

  • Large improvement in instruction counts (up to -3.3% on full builds of inflate)
  • This directly addresses and improves the performance lost in #89709.

Mixed

Rollup of 10 pull requests #89939

  • Large improvement in instruction counts (up to -1.7% on full builds of inflate)
  • Moderate regression in instruction counts (up to 1.0% on full builds of diesel)
  • No obvious place where the regressions or improvements are coming from.
  • Most likely culprit is #89915 as most other PRs in the rollup seem to be pretty low risk.
  • Left a comment saying as much.

Index and hash HIR as part of lowering #89124

  • Very large improvement in instruction counts (up to -5.4% on full builds of cranelift-codegen)
  • Very large regression in instruction counts (up to 5.3% on full builds of unused-warnings)
  • Definitely looks related to the change in question (unused-warnings shows larges increases in HIR lowering).
  • Left a comment asking for clarification of next steps.

Untriaged Pull Requests