Skip to content

Commit 480d7a0

Browse files
Merge pull request #1112 from Mark-Simulacrum/triage
Add triage log for the past week
2 parents 767094c + 5266f20 commit 480d7a0

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

triage/2021-11-30.md

+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# 2021-11-30 Triage Log
2+
3+
Overall, many changes this week, but overall an improvement on multiple benchmarks over
4+
the week from a number of pull requests dedicated to optimizations of certain
5+
patterns. We are still seeing a large number of spurious changes due to
6+
[rustc-perf#1105](https://github.com/rust-lang/rustc-perf/issues/1105), which
7+
has yet to be addressed.
8+
9+
Triage done by **@simulacrum**.
10+
Revision range: [22c2d9ddbf356bcdb718e88ca6ee3665e1e42690..1c0287830e0fb3c4007afea2819ba03766da6e9c](https://perf.rust-lang.org/?start=22c2d9ddbf356bcdb718e88ca6ee3665e1e42690&end=1c0287830e0fb3c4007afea2819ba03766da6e9c&absolute=false&stat=instructions%3Au)
11+
12+
4 Regressions, 4 Improvements, 9 Mixed; 5 of them in rollups
13+
41 comparisons made in total
14+
15+
#### Regressions
16+
17+
Mark places as initialized when mutably borrowed [#90788](https://github.com/rust-lang/rust/issues/90788)
18+
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=311fa1f14dd8ffbbe83b229a94b17f7f1ecaf33b&end=7b3cd075bbe309031b418650a9c32baf0b4a3276&stat=instructions:u) (up to 0.6% on `full` builds of `match-stress-enum`)
19+
- Fix for a miscompilation, so necessary regression.
20+
21+
Visit `param_env` field in Obligation's `TypeFoldable` impl [#91205](https://github.com/rust-lang/rust/issues/91205)
22+
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a7836bf885e70aaf1a2e0d4669406b183a79acaa&end=1e79d79dac11ce121b972fbaa0db9b0d1756b991&stat=instructions:u) (up to 6.6% on `full` builds of `hyper-2`)
23+
- Fix for incorrect code, regressions unfortunately unavoidable.
24+
25+
#### Improvements
26+
27+
Rollup of 6 pull requests [#91159](https://github.com/rust-lang/rust/issues/91159)
28+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=7b3cd075bbe309031b418650a9c32baf0b4a3276&end=65c55bf931a55e6b1e5ed14ad8623814a7386424&stat=instructions:u) (up to -0.6% on `full` builds of `match-stress-enum`)
29+
- Presumably due to [#91140](https://github.com/rust-lang/rust/pull/91140).
30+
Otherwise not clear what the cause is, but as a small improvement, unlikely to
31+
devote significant time to it.
32+
33+
Optimize live point computation [#90491](https://github.com/rust-lang/rust/issues/90491)
34+
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=c6a7ca196a707acd65e6cce1d337cd11786c59a5&end=8a48b376d559f26a9b8fc1f1d597acb0bc0a51f9&stat=instructions:u) (up to -29.2% on `full` builds of `issue-58319`)
35+
- Expected per PR benchmarking, benefitting both stress tests and some
36+
real-world code.
37+
38+
Remove eval_always from upvars. [#90580](https://github.com/rust-lang/rust/issues/90580)
39+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=37a49713cb256f4033a3c2fab4810c5a61e89dd9&end=dd549dcab404ec4c7d07b5a83aca5bdd7171138f&stat=instructions:u) (up to -0.7% on `incr-unchanged` builds of `style-servo`)
40+
- Small optimization to query system.
41+
42+
Rollup of 8 pull requests [#91388](https://github.com/rust-lang/rust/issues/91388)
43+
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=90912e68ab0b9e7ba4f91ef9654e8b41c203a95d&end=1c0287830e0fb3c4007afea2819ba03766da6e9c&stat=instructions:u) (up to -1.5% on `full` builds of `futures`)
44+
- Unclear cause for the improvement, but as an improvement, unlikely to
45+
devote significant time to it.
46+
47+
#### Mixed
48+
49+
Avoid generating empty closures for fieldless enum variants [#89881](https://github.com/rust-lang/rust/issues/89881)
50+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=22c2d9ddbf356bcdb718e88ca6ee3665e1e42690&end=311fa1f14dd8ffbbe83b229a94b17f7f1ecaf33b&stat=instructions:u) (up to -1.6% on `incr-patched: add static arr item` builds of `coercions`)
51+
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=22c2d9ddbf356bcdb718e88ca6ee3665e1e42690&end=311fa1f14dd8ffbbe83b229a94b17f7f1ecaf33b&stat=instructions:u) (up to 0.6% on `incr-unchanged` builds of `clap-rs`)
52+
- Primarily benefits bootstrap time (-5.4 seconds, -0.7%), instruction count
53+
changes largely real but not avoidable (differences in LLVM decision making).
54+
55+
Remove eval_always for inherent_impls. [#90579](https://github.com/rust-lang/rust/issues/90579)
56+
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=982c552c908d179eaa38b6ef152ad3fa30268778&end=c6a7ca196a707acd65e6cce1d337cd11786c59a5&stat=instructions:u) (up to -5.6% on `incr-unchanged` builds of `stm32f4`)
57+
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=982c552c908d179eaa38b6ef152ad3fa30268778&end=c6a7ca196a707acd65e6cce1d337cd11786c59a5&stat=instructions:u) (up to 0.2% on `incr-full` builds of `stm32f4`)
58+
59+
Faster `Layout::array` [#91246](https://github.com/rust-lang/rust/issues/91246)
60+
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=6d246f0c8d3063fea86abbb65a824362709541ba&end=ccce98535bd51687554be8a209b3a529ef84f7e1&stat=instructions:u) (up to -4.2% on `incr-unchanged` builds of `deep-vector`)
61+
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=6d246f0c8d3063fea86abbb65a824362709541ba&end=ccce98535bd51687554be8a209b3a529ef84f7e1&stat=instructions:u) (up to 5.0% on `incr-unchanged` builds of `inflate`)
62+
- Most prominent regression is spurious, and overall this looks like
63+
improvements outweighing regressions.
64+
65+
Rollup of 7 pull requests [#91269](https://github.com/rust-lang/rust/issues/91269)
66+
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=ccce98535bd51687554be8a209b3a529ef84f7e1&end=bbad745a688c933a43d1bd977756bd6fc7f034f2&stat=instructions:u) (up to -5.1% on `incr-unchanged` builds of `inflate`)
67+
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=ccce98535bd51687554be8a209b3a529ef84f7e1&end=bbad745a688c933a43d1bd977756bd6fc7f034f2&stat=instructions:u) (up to 18.3% on `incr-unchanged` builds of `clap-rs`)
68+
- Regressions seem potentially real, but may also be related to
69+
[rustc-perf#1105](https://github.com/rust-lang/rustc-perf/issues/1105).
70+
Locally this seems to not be the case, though, so it seems probable that the
71+
regression is real.
72+
73+
Rollup of 6 pull requests [#91288](https://github.com/rust-lang/rust/issues/91288)
74+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=5fd3a5c7c175f228afaf5fc6ff00c177b83d8055&end=686e313a9aa14107c8631ffe48fa09110a7692db&stat=instructions:u) (up to -1.0% on `incr-patched: b9b3e592dd cherry picked` builds of `style-servo`)
75+
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=5fd3a5c7c175f228afaf5fc6ff00c177b83d8055&end=686e313a9aa14107c8631ffe48fa09110a7692db&stat=instructions:u) (up to 1.7% on `full` builds of `externs`)
76+
- Seems to be a genuine regression. Unclear what the cause is.
77+
78+
Make `TypeFolder::fold_*` return `Result` [#91230](https://github.com/rust-lang/rust/issues/91230)
79+
- Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=58f9efd36de5669ab731ec7ebf565999ff17b159&end=e6d2de9483a27f846f003fc745713339a9122473&stat=instructions:u) (up to -1.0% on `incr-full` builds of `deeply-nested-async`)
80+
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=58f9efd36de5669ab731ec7ebf565999ff17b159&end=e6d2de9483a27f846f003fc745713339a9122473&stat=instructions:u) (up to 4.0% on `incr-unchanged` builds of `deep-vector`)
81+
- Regressions seem genuine, but are likely to be shuffling of instruction
82+
sequences rather than something directly addressable.
83+
84+
Update libc to 0.2.108 [#90681](https://github.com/rust-lang/rust/issues/90681)
85+
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=db9d361a4731ca0bb48533fab6297a8fea75696f&end=350158dd6d7ba840666999efa9a19c6ae403eed1&stat=instructions:u) (up to -15.3% on `incr-unchanged` builds of `clap-rs`)
86+
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=db9d361a4731ca0bb48533fab6297a8fea75696f&end=350158dd6d7ba840666999efa9a19c6ae403eed1&stat=instructions:u) (up to 3.0% on `incr-unchanged` builds of `deeply-nested-async`)
87+
- Looks like a genuine regression, potentially slightly more work at crate loading time.
88+
89+
Tokenize emoji as if they were valid identifiers [#88781](https://github.com/rust-lang/rust/issues/88781)
90+
- Small improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=c6eda7d8a7af3ef51311d3106874a7d8de994edc&end=23a436606b118bd2fbb12f64fce21e7f9d355349&stat=instructions:u) (up to -0.8% on `full` builds of `deeply-nested`)
91+
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=c6eda7d8a7af3ef51311d3106874a7d8de994edc&end=23a436606b118bd2fbb12f64fce21e7f9d355349&stat=instructions:u) (up to 0.3% on `incr-full` builds of `deeply-nested-async`)
92+
- Genuine regression; more expensive logic in tokenization.
93+
94+
Rollup of 6 pull requests [#91221](https://github.com/rust-lang/rust/issues/91221)
95+
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=862962b90e59c5c1e217df74de80d3a81eee42f4&end=37a49713cb256f4033a3c2fab4810c5a61e89dd9&stat=instructions:u) (up to -1.3% on `incr-unchanged` builds of `wg-grammar`)
96+
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=862962b90e59c5c1e217df74de80d3a81eee42f4&end=37a49713cb256f4033a3c2fab4810c5a61e89dd9&stat=instructions:u) (up to 0.6% on `full` builds of `ctfe-stress-4`)
97+
- Regression seems genuine, though cause is unclear.
98+
99+
#### Untriaged Pull Requests
100+
101+
[60 untriaged pull requests](https://github.com/rust-lang/rust/issues?q=is%3Amerged+label%3Aperf-regression+-label%3Aperf-regression-triaged+sort%3Acreated-asc).

0 commit comments

Comments
 (0)