2021-12-14 Triage Log

This week‘s report started with 6 regressions; after eliminating truly obvious noise, we are left with just 2 minor regressions. Of the cases that regressed, I think the only interesting one is keccak (regressed by 1.73% in PR #91549). But don’t be too depressed: keccak was also improved up to 23% by PR #85013 (!); thanks to @simulacrum for that PR.

Triage done by @pnkfelix. Revision range: e2116acae59654bfab2a9729a024f3e2fd6d4b02..404c8471aba60c2d837fa728e7c729a0f52d5830

2 Regressions, 5 Improvements, 3 Mixed; 1 of them in rollups 48 comparisons made in total

Regressions

“Support AVR for inline asm!” #91224

  • Moderate regression in instruction counts (up to 0.8% on incr-unchanged builds of externs)
  • This regression is solely isolated to variants of the externs benchmark.
  • It seems like a near certainty that the regression reported here is noise exacerbated by this pathological benchmark.
  • Marked as triaged.

“Eliminate ConstnessAnd again” #91549

  • Large regression in instruction counts (up to 3.1% on full builds of inflate)
  • This PR went through many rounds of performance evaluation and tuning.
  • The only “real” regressions are likely to be inflate and keccak, and I am suspicious of inflate based on its sensitivity in other PR's.
  • I‘m leaving this PR in this week’s report largely just to draw attention to the problem we face in trying to evalute impact of cases like this.

Improvements

“Avoid string validation in rustc_serialize, check a marker byte instead” #91407

“Sync portable-simd to remove autosplats” #91484

“replace vec::Drain drop loops with drop_in_place” #85157

“replace dynamic library module with libloading” #90716

  • Moderate improvement in instruction counts (up to -0.8% on incr-unchanged builds of externs)
  • Don't get too excited kids, its just externs.

“manually implement Hash for DefId” #91660

  • Large improvement in instruction counts (up to -2.3% on full builds of match-stress-enum)
  • match-stress-enum and externs are both pathological cases, so don't expect your compiles to get 2% faster.
  • Nonetheless, this was a fun change. (Check out the dialogue and associated blog post.)

Mixed

“Replace dominators algorithm with simple Lengauer-Tarjan” #85013

“Rollup of 6 pull requests” #91799

  • Very large improvement in instruction counts (up to -5.9% on incr-unchanged builds of inflate)
  • Small regression in instruction counts (up to 0.8% on incr-unchanged builds of issue-88862)
  • I don‘t yet now hat’s up with the regression here to issue-88862.

“Deduplicate projection sub-obligations” #90423

  • Very large improvement in instruction counts (up to -6.2% on full builds of deeply-nested)
  • Small regression in instruction counts (up to 0.5% on full builds of regression-31157)
  • This is a targetted fix to address performance regressons that leaked into 1.57. It has been beta-nominated for backport.

Untriaged Pull Requests