Skip to content

Commit d5894fc

Browse files
authored
Merge pull request #1928 from rylev/perf-triage-2024-06-18
Add perf triage for 2024-06-18
2 parents c64bb60 + 243922f commit d5894fc

File tree

1 file changed

+193
-0
lines changed

1 file changed

+193
-0
lines changed

triage/2024-06-18.md

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
# 2024-06-18 Triage Log
2+
3+
Regressions outnumbered the improvements this week, but most of the regressions were deemed worth it for one reason or another. Overall, compiler performance didn't end up changing very much.
4+
5+
Triage done by **@rylev**.
6+
Revision range: [b5b13568..c2932aaf](https://perf.rust-lang.org/?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
| (instructions:u) | mean | range | count |
11+
|:----------------------------------:|:-----:|:--------------:|:-----:|
12+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 63 |
13+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 2.4%] | 70 |
14+
| Improvements ✅ <br /> (primary) | -0.6% | [-1.2%, -0.2%] | 8 |
15+
| Improvements ✅ <br /> (secondary) | -1.1% | [-5.2%, -0.2%] | 7 |
16+
| All ❌✅ (primary) | 0.3% | [-1.2%, 1.0%] | 71 |
17+
18+
19+
5 Regressions, 2 Improvements, 7 Mixed; 2 of them in rollups
20+
58 artifact comparisons made in total
21+
22+
#### Regressions
23+
24+
Print `token::Interpolated` with token stream pretty printing. [#125174](https://github.com/rust-lang/rust/pull/125174) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3ea5e236ecb4c5f22437059f82d3915d311e4ec0&end=d0227c6a19c2d6e8dceb87c7a2776dc2b10d2a04&stat=instructions:u)
25+
26+
| (instructions:u) | mean | range | count |
27+
|:----------------------------------:|:----:|:------------:|:-----:|
28+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 9 |
29+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
30+
| Improvements ✅ <br /> (primary) | - | - | 0 |
31+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
32+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 9 |
33+
- No discussion of the perf run done before merging, so I asked the author/reviewer for their thoughts.
34+
- It seems like most libc benchmarks were negatively impacted while no other benchmarks were. I'm not quite sure why that would be.
35+
36+
37+
Add `TyCtxt::is_lang_item`, use it in the compiler [#126491](https://github.com/rust-lang/rust/pull/126491) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9239d3eb2b08bfdff30c86cdd9ce32687e488f5d&end=8217b412a235407243f2516ebc859e7b3af8345a&stat=instructions:u)
38+
39+
| (instructions:u) | mean | range | count |
40+
|:----------------------------------:|:----:|:------------:|:-----:|
41+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 10 |
42+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
43+
| Improvements ✅ <br /> (primary) | - | - | 0 |
44+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
45+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 10 |
46+
- The change was deemed worth it despite the perf regression.
47+
48+
49+
Indicate in `non_local_defs` lint that the macro needs to change [#125722](https://github.com/rust-lang/rust/pull/125722) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8217b412a235407243f2516ebc859e7b3af8345a&end=1d1356d0f67131f97b4f1631a24cd10d7dbcca42&stat=instructions:u)
50+
51+
| (instructions:u) | mean | range | count |
52+
|:----------------------------------:|:----:|:------------:|:-----:|
53+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 6 |
54+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
55+
| Improvements ✅ <br /> (primary) | - | - | 0 |
56+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
57+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 6 |
58+
- Only the diesel benchmark is affected, which is somewhat expected as it triggers the lint many many times (over 150 times).
59+
60+
61+
Rollup of 6 pull requests [#126605](https://github.com/rust-lang/rust/pull/126605) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=11380368dc53d0b2fc3a627408818eff1973ce9a&end=04ab7b2be0db3e6787f5303285c6b2ee6279868d&stat=instructions:u)
62+
63+
| (instructions:u) | mean | range | count |
64+
|:----------------------------------:|:----:|:------------:|:-----:|
65+
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.4%] | 6 |
66+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
67+
| Improvements ✅ <br /> (primary) | - | - | 0 |
68+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
69+
| All ❌✅ (primary) | 0.3% | [0.3%, 0.4%] | 6 |
70+
- The benchmarks impacted seem to now swing wildly back and forth with every run so this isn't a perf regression per say.
71+
72+
73+
Migrate `inaccessible-temp-dir`, `output-with-hyphens` and `issue-10971-temps-dir` `run-make` tests to `rmake` [#126279](https://github.com/rust-lang/rust/pull/126279) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&stat=instructions:u)
74+
75+
| (instructions:u) | mean | range | count |
76+
|:----------------------------------:|:----:|:------------:|:-----:|
77+
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 6 |
78+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
79+
| Improvements ✅ <br /> (primary) | - | - | 0 |
80+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
81+
| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 6 |
82+
- This has to be noise, this PR only modified tests.
83+
84+
85+
#### Improvements
86+
87+
Migrate `link-arg`, `link-dedup` and `issue-26092` `run-make` tests to `rmake` format [#125500](https://github.com/rust-lang/rust/pull/125500) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=04ab7b2be0db3e6787f5303285c6b2ee6279868d&end=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&stat=instructions:u)
88+
89+
| (instructions:u) | mean | range | count |
90+
|:----------------------------------:|:-----:|:--------------:|:-----:|
91+
| Regressions ❌ <br /> (primary) | - | - | 0 |
92+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
93+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.3%] | 6 |
94+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
95+
| All ❌✅ (primary) | -0.4% | [-0.4%, -0.3%] | 6 |
96+
97+
98+
Migrate `extern-flag-fun`, `incremental-debugger-visualiser` and `incremental-session-fail` `run-make` tests to `rmake.rs` [#126490](https://github.com/rust-lang/rust/pull/126490) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&end=67cfc3a558a54e351d14120099bf3158812b4130&stat=instructions:u)
99+
100+
| (instructions:u) | mean | range | count |
101+
|:----------------------------------:|:-----:|:--------------:|:-----:|
102+
| Regressions ❌ <br /> (primary) | - | - | 0 |
103+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
104+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.3%] | 6 |
105+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
106+
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.3%] | 6 |
107+
108+
109+
#### Mixed
110+
111+
Add `SingleUseConsts` mir-opt pass [#125910](https://github.com/rust-lang/rust/pull/125910) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=fa1681c9f6a66f0240c46c98bfef6209c9d6df23&stat=instructions:u)
112+
113+
| (instructions:u) | mean | range | count |
114+
|:----------------------------------:|:-----:|:--------------:|:-----:|
115+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 |
116+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
117+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 4 |
118+
| Improvements ✅ <br /> (secondary) | -2.3% | [-2.9%, -1.7%] | 2 |
119+
| All ❌✅ (primary) | -0.1% | [-0.4%, 0.4%] | 6 |
120+
- Wash on instruction counts, but nice binary size wins. The cycles improvements on tt-muncher is noise returning back to normal.
121+
122+
123+
Make `ObligationEmittingRelation`s emit `Goal` rather than `Obligation` [#126130](https://github.com/rust-lang/rust/pull/126130) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9a7bf4ae947feddac27007cbe26d161f4ff5a910&end=76c73827dcd0b363e60b22c3cef64bde4171bf17&stat=instructions:u)
124+
125+
| (instructions:u) | mean | range | count |
126+
|:----------------------------------:|:-----:|:--------------:|:-----:|
127+
| Regressions ❌ <br /> (primary) | - | - | 0 |
128+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.6%] | 14 |
129+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
130+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
131+
| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
132+
- I'm asssuming the perf regression was deemed acceptable since these only occurred in stress tests?
133+
134+
135+
Tait must be constrained if in sig [#113169](https://github.com/rust-lang/rust/pull/113169) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bdb1b7f5d9715cc96cb437134eff93fa229defd1&end=02c7a5921e3de5c2b3ecb2e0082c1dafce0729a1&stat=instructions:u)
136+
137+
| (instructions:u) | mean | range | count |
138+
|:----------------------------------:|:-----:|:--------------:|:-----:|
139+
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 |
140+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
141+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.3%] | 2 |
142+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
143+
| All ❌✅ (primary) | -0.0% | [-0.4%, 0.7%] | 3 |
144+
- Probably noise + we need the fix
145+
146+
147+
Extend SCC construction to enable extra functionality [#125069](https://github.com/rust-lang/rust/pull/125069) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8337ba9189de188e2ed417018af2bf17a57d51ac&end=8cf5101d77cd9eeb12751c563d8098aba2c604d0&stat=instructions:u)
148+
149+
| (instructions:u) | mean | range | count |
150+
|:----------------------------------:|:-----:|:--------------:|:-----:|
151+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.3%] | 6 |
152+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.0%] | 10 |
153+
| Improvements ✅ <br /> (primary) | - | - | 0 |
154+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 2 |
155+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.3%] | 6 |
156+
- The perf regressions were brought down since the first perf run, but there's still instruction count regressions in primary benchmarks here (albeit not large ones). I asked the author/reviewer for thoughts.
157+
158+
159+
Remove superfluous UbChecks from `SliceIndex` methods [#126299](https://github.com/rust-lang/rust/pull/126299) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bc3618f31ea3866e6abea6995ec3979d12ffc65d&end=cd0c944b0750db887291bc25f20a05f8f31a8195&stat=instructions:u)
160+
161+
| (instructions:u) | mean | range | count |
162+
|:----------------------------------:|:-----:|:--------------:|:-----:|
163+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.6%] | 4 |
164+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.5%, 1.3%] | 5 |
165+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.6%, -0.2%] | 3 |
166+
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.8%, -0.4%] | 7 |
167+
| All ❌✅ (primary) | 0.1% | [-0.6%, 0.6%] | 7 |
168+
- Perf is largely a wash and was expected to have far reach consequences since it changes how slices are codegened.
169+
170+
171+
rustc_span: Optimize more hygiene operations using `Span::map_ctxt` [#126543](https://github.com/rust-lang/rust/pull/126543) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7f6ebacee13b6c03623c4b74197280454ede8de&end=6b65c30f8e0f6c18aa5f32cbad869b1d036c7851&stat=instructions:u)
172+
173+
| (instructions:u) | mean | range | count |
174+
|:----------------------------------:|:-----:|:--------------:|:-----:|
175+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
176+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 3 |
177+
| Improvements ✅ <br /> (primary) | -1.1% | [-1.4%, -0.3%] | 4 |
178+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.2%] | 3 |
179+
| All ❌✅ (primary) | -0.8% | [-1.4%, 0.2%] | 5 |
180+
- Improvements outweigh the regressions which all seemed to be reversed sometime soon after this landed.
181+
182+
183+
Rollup of 3 pull requests [#126581](https://github.com/rust-lang/rust/pull/126581) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e23ae72ac7a393961886ea62df065ebb6def7d51&end=3baa20b783474330adb7ba7b3ddb02ac9facdf49&stat=instructions:u)
184+
185+
| (instructions:u) | mean | range | count |
186+
|:----------------------------------:|:-----:|:--------------:|:-----:|
187+
| Regressions ❌ <br /> (primary) | - | - | 0 |
188+
| Regressions ❌ <br /> (secondary) | 1.3% | [1.3%, 1.3%] | 1 |
189+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
190+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
191+
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
192+
- Regression might be noise (and isn't big enough to care about even if it isn't)
193+

0 commit comments

Comments
 (0)