Skip to content

Commit 8b37cc8

Browse files
authored
Merge pull request #1317 from Mark-Simulacrum/triage
Add triage for this week
2 parents 3fd967e + c067518 commit 8b37cc8

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed

β€Žtriage/2022-05-03.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# 2022-05-03 Triage Log
2+
3+
Performance overall improved in the last week, but some of this is due to fixing
4+
regressions from prior weeks. This week also brings an average of 4% improvement
5+
in memory usage across all profiles due to
6+
[#95171](https://github.com/rust-lang/rust/pull/95171) bumping the LLVM/clang
7+
used on x86_64-unknown-linux-gnu to compile C and C++ code linked into rustc.
8+
9+
Triage done by **@simulacrum**.
10+
Revision range: [1c988cfa0b7f4d3bc5b1cb40dc5002f5adbfb9ad..468492c2af3993f18b1fe98052200575c4a2e678](https://perf.rust-lang.org/?start=1c988cfa0b7f4d3bc5b1cb40dc5002f5adbfb9ad&end=468492c2af3993f18b1fe98052200575c4a2e678&absolute=false&stat=instructions%3Au)
11+
12+
**Summary**:
13+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
14+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
15+
| count | 13 | 1 | 78 | 29 | 91 |
16+
| mean | 0.8% | 0.3% | -0.9% | -0.8% | -0.7% |
17+
| max | 1.5% | 0.3% | -2.7% | -2.1% | -2.7% |
18+
19+
20+
4 Regressions, 3 Improvements, 1 Mixed; 1 of them in rollups
21+
52 artifact comparisons made in total
22+
23+
#### Regressions
24+
25+
Rollup of 8 pull requests [#96428](https://github.com/rust-lang/rust/pull/96428)
26+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3d237ab52920924694f6fc3e47ee8588514bfa70&end=082e4ca49770ebc9cb0ee616f3726a67471be8cb&stat=instructions:u)
27+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
28+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
29+
| count | 7 | 2 | 1 | 0 | 8 |
30+
| mean | 1.3% | 0.3% | -0.4% | N/A | 1.1% |
31+
| max | 1.8% | 0.3% | -0.4% | N/A | 1.8% |
32+
33+
Looks likely to be related to the new [`impl Default for
34+
AssertUnwindSafe`](https://github.com/rust-lang/rust/pull/95949), though
35+
detailed query pages do not reflect the regressions. Marking the regression as
36+
triaged, because it's unlikely we would want to revert the impl at this point.
37+
However, it's probably the case that impls for public standard library types may
38+
want to avoid being rolled up, as they can influence downstream performance
39+
across both rustdoc and regular compilation.
40+
41+
Enforce Copy bounds for repeat elements while considering lifetimes [#95819](https://github.com/rust-lang/rust/pull/95819)
42+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1c8966e5e9dc099b55206f34af81242d03bdb413&end=a707f401074bc769bab4efb2bfdde7f6c5a4068d&stat=instructions:u)
43+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
44+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
45+
| count | 2 | 0 | 0 | 0 | 2 |
46+
| mean | 0.8% | N/A | N/A | N/A | 0.8% |
47+
| max | 1.0% | N/A | N/A | N/A | 1.0% |
48+
49+
Incremental-only regressions in a single benchmark. Looks likely to be a
50+
somewhat real change, but not one we can do much about: the extra enforcement
51+
naturally adds dependency edges which require re-computing.
52+
53+
Handle generic bounds in a uniform way in HIR [#93803](https://github.com/rust-lang/rust/pull/93803)
54+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=76d4862fdd131b6f79dc0a31857f888d26bcdb27&end=d201c812d40932509b2b5307c0b20c1ce78d21da&stat=instructions:u)
55+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
56+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
57+
| count | 11 | 4 | 0 | 0 | 11 |
58+
| mean | 0.3% | 0.3% | N/A | N/A | 0.3% |
59+
| max | 0.5% | 0.3% | N/A | N/A | 0.5% |
60+
61+
A regression primarily to diesel (quite common this week), but relatively slight
62+
and with a relatively good tradeoff to code maintenance. Earlier PR runs had
63+
some slight improvements which were used as a justification for regresions on
64+
benchmarks; this doesn't seem to be the case anymore, so asked for an updated
65+
justification on the regression.
66+
67+
Inline core::panic::Location methods [#96348](https://github.com/rust-lang/rust/pull/96348)
68+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d201c812d40932509b2b5307c0b20c1ce78d21da&end=579d26876ddc5426be32cca1a026b6fd7fc5be24&stat=instructions:u)
69+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
70+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
71+
| count | 0 | 11 | 0 | 0 | 0 |
72+
| mean | N/A | 0.5% | N/A | N/A | N/A |
73+
| max | N/A | 0.8% | N/A | N/A | N/A |
74+
75+
Secondary-only regressions, most likely due to slightly different codegen in
76+
relatively hot code (e.g., due to increased or decreased register pressure). Not
77+
likely to be an important change.
78+
79+
#### Improvements
80+
81+
Fix incremental perf regression unsafety checking [#96425](https://github.com/rust-lang/rust/pull/96425)
82+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=082e4ca49770ebc9cb0ee616f3726a67471be8cb&end=a7197189cd0e3a86d1b661d1dceb8bdff021d0b8&stat=instructions:u)
83+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
84+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
85+
| count | 0 | 0 | 48 | 0 | 48 |
86+
| mean | N/A | N/A | -1.2% | N/A | -1.2% |
87+
| max | N/A | N/A | -2.8% | N/A | -2.8% |
88+
89+
Reduce duplication of RPO calculation of mir [#96500](https://github.com/rust-lang/rust/pull/96500)
90+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c8e520b3e0d9fbdafb8311f1b18a1f847531051&end=9a98c63b30bd8419be662b8fb3f3b22ba33d72c5&stat=instructions:u)
91+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
92+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
93+
| count | 0 | 0 | 43 | 17 | 43 |
94+
| mean | N/A | N/A | -0.5% | -0.7% | -0.5% |
95+
| max | N/A | N/A | -0.9% | -1.4% | -0.9% |
96+
97+
Move Derefer before Retag [#96549](https://github.com/rust-lang/rust/pull/96549)
98+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=508e0584e384556b7e66f57b62e4feeba864b6da&end=6eda7642bd284d3d2bc6a1d57b68e2ef2b65e062&stat=instructions:u)
99+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
100+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
101+
| count | 0 | 0 | 20 | 18 | 20 |
102+
| mean | N/A | N/A | -0.4% | -0.4% | -0.4% |
103+
| max | N/A | N/A | -0.4% | -0.6% | -0.4% |
104+
105+
106+
#### Mixed
107+
108+
Inline `__iterator_get_unchecked` for some iterator adapters. [#92566](https://github.com/rust-lang/rust/pull/92566)
109+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bed05e996e37e44b1a3980b84754af621fd3c4ce&end=3d0ac7ea23888438752957eeeb5aa2b73b4fda72&stat=instructions:u)
110+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
111+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
112+
| count | 1 | 2 | 3 | 1 | 4 |
113+
| mean | 0.2% | 0.3% | -0.4% | -0.2% | -0.2% |
114+
| max | 0.2% | 0.3% | -0.4% | -0.2% | -0.4% |
115+
116+
Update LLVM used for building rustc in CI for x64 [#95171](https://github.com/rust-lang/rust/pull/95171)
117+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b2c2a32870e15af02eb89de434c36535439dbf5a&end=1388b38c52d1ca9fbc80bf42fa007504fb0b1b41)
118+
| | Regressions 😿 <br />(primary) | Regressions 😿 <br />(secondary) | Improvements πŸŽ‰ <br />(primary) | Improvements πŸŽ‰ <br />(secondary) | All 😿 πŸŽ‰ <br />(primary) |
119+
|:----------:|:------------------------------:|:--------------------------------:|:-------------------------------:|:---------------------------------:|:------------------------:|
120+
| count | 0 | 0 | 1 | 0 | 1 |
121+
| mean | N/A | N/A | -0.5% | N/A | -0.5% |
122+
| max | N/A | N/A | -0.5% | N/A | -0.5% |
123+
124+
A solid improvement in memory usage, with a rough average of 4% less memory used
125+
across many check, debug, and opt builds, presumably due to better
126+
optimizations when compiling C and C++ code linked into rustc.
127+

0 commit comments

Comments
Β (0)