2021-04-01 Triage Log

A somewhat negative weak for performance where regressions outweigh improvements. Sadly, a lot of the regressions don't seem very straight-forward to understand, and so more investigation will be necessary.

Triage done by @rylev. Revision range: 9b6339e4b9747d473270baa42e77e1d2fff39bf4..4896450e7e0a522486b4d3a8d360ac4e1d2072a0

2 Regressions, 2 Improvements, 3 Mixed 2 of them in rollups

Regressions

implement feature(const_generics_defaults) #75384

  • Moderate regression in instruction counts (up to 1.1% on incr-unchanged builds of ucd-check)
  • A small regression in incremental compilation in one particular benchmark ucd. The query affected is generate_crate_metadata which tracks with the fact that incremental compilation is affected.
  • A quick scan of the changes doesn't reveal anything suspicious as encoding of metadata has changed only a little bit and should only be impacted when encoding something with default const generics.

Use EvaluatedToOkModuloRegions whenever we erase regions #83220

  • Moderate regression in instruction counts (up to 1.8% on full builds of hyper-2-check)
  • A moderate regression in trait obligation evaluation which this code directly impacts.
  • A performance run was performed, but the impact was deemed acceptable. The author and reviewer were pinged about why the performance is acceptable.

Refactor Binder to track bound vars #76814

  • Moderate regression in instruction counts (up to 3.9% on incr-unchanged builds of externs-check)
  • Moderate regression in trait resolution queries which this code directly impacts. While a performance run was made, it was never discussed in the PR. The author and reviewer were pinged.

Improvements

Rollup of 9 pull requests #83432

Rollup of 8 pull requests #83580

Mixed

Remove assignments to ZST places instead of marking ZST return place as unused #83177

  • Moderate regression in instruction counts (up to 3.1% on incr-patched: b9b3e592dd cherry picked builds of style-servo-debug)
  • Moderate improvement in instruction counts (up to -1.1% on incr-full builds of externs-debug)
  • Perf regression is mainly in LLVM caused most likely by LLVM now being able to perf optimizations it could not previously. It's unclear why the regression occurred though.

Import small cold functions #82980

  • Moderate regression in instruction counts (up to 4.7% on incr-unchanged builds of deeply-nested-async-check)
  • Moderate improvement in instruction counts (up to -2.3% on full builds of ctfe-stress-4-opt)
  • I am unsure of the overall cost/benefit analysis of this change and have pinged the author and reviewer about it.

Reduce the impact of Vec::reserve calls that do not cause any allocation #83357

  • Moderate regression in instruction counts (up to 3.1% on incr-unchanged builds of webrender-wrench-opt)
  • Moderate improvement in instruction counts (up to -2.2% on incr-unchanged builds of ucd-check)
  • It is often hard to track how changes in the standard library impact performance. The author and reviewer were pinged for their perspective.

Nags requiring follow up