2022-03-30 Triage Log
A mixed week: some minor regressions, but things overall improved for instruction counts.
Max RSS has gone up slightly over the past month, on the order of 0.5% regression according to benchmark summary. pnkfelix is following up on that with rustc-perf team on zulip
Triage done by @pnkfelix. Revision range: 3ea44938e21f0de8ae7d4f6399a8a30f97867c70..3e7514670db841a7f0d7656f3b13b1c8b2c11599
4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups 63 comparisons made in total
Regressions
Rollup of 5 pull requests #95250
- Arithmetic mean of relevant regressions: 2.2%
- Largest regression in instruction counts: 11.1% on
full
builds of cargo-0.60.0 doc
- Already triaged by oli-obk.
- it is solely in rustdoc, and oli-obk has a plan to address it in the long term.
Properly track ImplObligations
#91030
- Arithmetic mean of relevant regressions: 1.9%
- Largest regression in instruction counts: 3.8% on
full
builds of projection-caching check
- triaged; this was anticipated.
- The only primary regression was to diesel doc, and the regressions are justified by the improvement to the diagnostics.
Separate const prop lints from optimizations #94934
- Arithmetic mean of relevant regressions: 1.2%
- Largest regression in instruction counts: 2.1% on
incr-full
builds of unicode_normalization opt
- Already triaged by oli-obk.
- In short: this was expected, becaused we are doing const-prop twice now.
- (The end-goal is stop optimizations from changing diagnostics. This PR is a step towards that goal.)
Rollup of 4 pull requests #95448
- Arithmetic mean of relevant regressions: 1.5%
- Largest regression in instruction counts: 2.5% on
incr-patched: io error 6144
builds of issue-46449 debug
- triaged
- The only primary benchmark impacted by this was
unicode-normalization-0.1.19
, and that only saw a 0.50% regression on incr-patched: println and a 0.36% regression on full build. We can ignore that. - The only secondary benchmark impacted was issue-46449, which is trying to catch regression of quadratic blowup, not minor regressions.
Improvements
Introduce TtParser
#95159
- Arithmetic mean of relevant regressions: 0.3%
- Arithmetic mean of relevant improvements: -1.9%
- Arithmetic mean of all relevant changes: -1.7%
- Largest improvement in instruction counts: -6.2% on
incr-unchanged
builds of deep-vector check
Overlap inherent impls #95082
- Arithmetic mean of relevant improvements: -1.0%
- Largest improvement in instruction counts: -2.0% on
full
builds of diesel-1.4.8 check
resolve: Do not build expensive suggestions if they are not actually used #95255
- Arithmetic mean of relevant improvements: -0.6%
- Largest improvement in instruction counts: -2.1% on
full
builds of projection-caching doc
Fix perf issue for auto trait selection #95333
- Arithmetic mean of relevant improvements: -3.1%
- Largest improvement in instruction counts: -10.1% on
full
builds of cargo-0.60.0 doc
Remove header field from clean::Function #95096
- Arithmetic mean of relevant regressions: 0.3%
- Arithmetic mean of relevant improvements: -0.9%
- Arithmetic mean of all relevant changes: -0.8%
- Largest improvement in instruction counts: -1.4% on
full
builds of await-call-tree doc
Mixed
Change Thir to lazily create constants #94876
- Arithmetic mean of relevant regressions: 1.6%
- Arithmetic mean of relevant improvements: -1.0%
- Arithmetic mean of all relevant changes: -0.3%
- Largest improvement in instruction counts: -2.8% on
full
builds of keccak check
- Largest regression in instruction counts: 3.5% on
full
builds of tuple-stress check
- Triaged.
- The changes to the primary benchmarks are almost universally green here.
- The secondary benchmarks are more of a mixed bag, but I think we can accept a 3.5% regression on tuple-stress given the overall benefits.
More macro expansion optimizations #95259
- Arithmetic mean of relevant improvements: -1.5%
- Arithmetic mean of all relevant changes: -1.1%
- Largest improvement in instruction counts: -2.0% on
incr-unchanged
builds of diesel check
- Largest regression in instruction counts: 0.4% on
incr-full
builds of unicode-normalization-0.1.19 opt
- Already triaged by nnethercote
- The perf wins clearly outweigh the losses here.
Rollup of 5 pull requests #95382
- Arithmetic mean of relevant regressions: 2.2%
- Arithmetic mean of relevant improvements: -0.4%
- Arithmetic mean of all relevant changes: 1.2%
- Largest improvement in instruction counts: -0.4% on
incr-unchanged
builds of deeply-nested-multi check
- Largest regression in instruction counts: 3.2% on
full
builds of await-call-tree check
- Left comment
- Changes to the primary benchmarks seem like a wash and probably ignorable (0.33% worse for unicode-normalization-0.1.19, 0.33% better for ripgrep-13.0.0).
- Re secondary benchmarks: 3% worse for await-call-tree (on six scenarios), which is more concerning. I assume PR #95120 is cause.
- Leaving as untriaged.
Lazy type-alias-impl-trait take two #94081
- Arithmetic mean of relevant regressions: 0.5%
- Arithmetic mean of relevant improvements: -0.5%
- Arithmetic mean of all relevant changes: -0.3%
- Largest improvement in instruction counts: -1.0% on
incr-full
builds of wg-grammar check
- Largest regression in instruction counts: 0.8% on
full
builds of projection-caching check
- triaged
- The actual performance changes indicate this ended up a win overall, based on the amount of green.
Untriaged Pull Requests
Nags requiring follow up
TODO: Nags