2021-11-30 Triage Log
Overall, many changes this week, but overall an improvement on multiple benchmarks over the week from a number of pull requests dedicated to optimizations of certain patterns. We are still seeing a large number of spurious changes due to rustc-perf#1105, which has yet to be addressed.
Triage done by @simulacrum. Revision range: 22c2d9ddbf356bcdb718e88ca6ee3665e1e42690..1c0287830e0fb3c4007afea2819ba03766da6e9c
4 Regressions, 4 Improvements, 9 Mixed; 5 of them in rollups 41 comparisons made in total
Regressions
Mark places as initialized when mutably borrowed #90788
- Moderate regression in instruction counts (up to 0.6% on
full
builds of match-stress-enum
) - Fix for a miscompilation, so necessary regression.
Visit param_env
field in Obligation's TypeFoldable
impl #91205
- Very large regression in instruction counts (up to 6.6% on
full
builds of hyper-2
) - Fix for incorrect code, regressions unfortunately unavoidable.
Improvements
Rollup of 6 pull requests #91159
- Moderate improvement in instruction counts (up to -0.6% on
full
builds of match-stress-enum
) - Presumably due to #91140. Otherwise not clear what the cause is, but as a small improvement, unlikely to devote significant time to it.
Optimize live point computation #90491
- Very large improvement in instruction counts (up to -29.2% on
full
builds of issue-58319
) - Expected per PR benchmarking, benefitting both stress tests and some real-world code.
Remove eval_always from upvars. #90580
- Small improvement in instruction counts (up to -0.7% on
incr-unchanged
builds of style-servo
) - Small optimization to query system.
Rollup of 8 pull requests #91388
- Large improvement in instruction counts (up to -1.5% on
full
builds of futures
) - Unclear cause for the improvement, but as an improvement, unlikely to devote significant time to it.
Mixed
Avoid generating empty closures for fieldless enum variants #89881
- Small improvement in instruction counts (up to -1.6% on
incr-patched: add static arr item
builds of coercions
) - Small regression in instruction counts (up to 0.6% on
incr-unchanged
builds of clap-rs
) - Primarily benefits bootstrap time (-5.4 seconds, -0.7%), instruction count changes largely real but not avoidable (differences in LLVM decision making).
Remove eval_always for inherent_impls. #90579
Faster Layout::array
#91246
- Large improvement in instruction counts (up to -4.2% on
incr-unchanged
builds of deep-vector
) - Very large regression in instruction counts (up to 5.0% on
incr-unchanged
builds of inflate
) - Most prominent regression is spurious, and overall this looks like improvements outweighing regressions.
Rollup of 7 pull requests #91269
- Very large improvement in instruction counts (up to -5.1% on
incr-unchanged
builds of inflate
) - Very large regression in instruction counts (up to 18.3% on
incr-unchanged
builds of clap-rs
) - Regressions seem potentially real, but may also be related to rustc-perf#1105. Locally this seems to not be the case, though, so it seems probable that the regression is real.
Rollup of 6 pull requests #91288
- Small improvement in instruction counts (up to -1.0% on
incr-patched: b9b3e592dd cherry picked
builds of style-servo
) - Large regression in instruction counts (up to 1.7% on
full
builds of externs
) - Seems to be a genuine regression. Unclear what the cause is.
Make TypeFolder::fold_*
return Result
#91230
- Large improvement in instruction counts (up to -1.0% on
incr-full
builds of deeply-nested-async
) - Large regression in instruction counts (up to 4.0% on
incr-unchanged
builds of deep-vector
) - Regressions seem genuine, but are likely to be shuffling of instruction sequences rather than something directly addressable.
Update libc to 0.2.108 #90681
- Very large improvement in instruction counts (up to -15.3% on
incr-unchanged
builds of clap-rs
) - Large regression in instruction counts (up to 3.0% on
incr-unchanged
builds of deeply-nested-async
) - Looks like a genuine regression, potentially slightly more work at crate loading time.
Tokenize emoji as if they were valid identifiers #88781
- Small improvement in instruction counts (up to -0.8% on
full
builds of deeply-nested
) - Small regression in instruction counts (up to 0.3% on
incr-full
builds of deeply-nested-async
) - Genuine regression; more expensive logic in tokenization.
Rollup of 6 pull requests #91221
- Moderate improvement in instruction counts (up to -1.3% on
incr-unchanged
builds of wg-grammar
) - Small regression in instruction counts (up to 0.6% on
full
builds of ctfe-stress-4
) - Regression seems genuine, though cause is unclear.
Untriaged Pull Requests
60 untriaged pull requests.