2020-10-05 Triage Log

A quiet week. One rather large regression on a synthetic benchmark and a few small improvements.

#77023 is an interesting case. It encoded an invariant about slice lengths as an assume intrinsic inside len function. It seems to have caused a small compile-time slowdown, but there was no improvement in check build performance (a proxy for generated code quality). In fact, the LLVM documentation specifically advises against overuse of the assume intrinsic in cases where the invariant is unlikely to be of much help to the optimizer. That seems to be the case here.

Triage done by @ecstaticmorse. Revision range: 6369a98ebdee8ce01510f5d4307ddb771c8cb0e5..ea7e131435a960d154e9a5d6a9297039574ffd7d

1 Regressions, 2 Improvements, 1 Mixed

1 of them in rollups

Regressions

#77381 Rollup of 12 pull requests

Improvements

#77257 Optimize IntRange::from_pat, then shrink ParamEnv

  • Moderate improvement in instruction counts (up to -2.1% on full builds of ctfe-stress-4-check)
  • Moderate regression in instruction counts (up to 1.3% on full builds of unicode_normalization-check)

#77466 Re-land PR #71840 (Rework MIR drop tree lowering) #77466

  • Moderate regression in instruction counts (up to 2.3% on full builds of regex-opt)
  • Moderate improvement in instruction counts (up to -2.2% on incr-unchanged builds of webrender-wrench-opt)

Mixed

#77023 Hint the maximum length permitted by invariant of slices

  • Moderate regression in instruction counts (up to 2.5% on incr-patched: sparse set builds of regex-opt)
  • Moderate improvement in instruction counts (up to -1.2% on incr-patched: b9b3e592dd cherry picked builds of style-servo-debug)

Nags requiring follow up