Skip to content

Commit fe8e8e2

Browse files
Merge pull request #1663 from pnkfelix/triage-2023-07-18
triage for 2023 07 18
2 parents f8cc0b2 + 677549e commit fe8e8e2

File tree

1 file changed

+256
-0
lines changed

1 file changed

+256
-0
lines changed

triage/2023-07-18.md

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
# 2023-07-18 Triage Log
2+
3+
A lot of spurious results in the regressions this week. However, we did see some
4+
real gains with PR #113609, with nearly 40 real-world benchmarks improving their
5+
check-build performance by >=1%.
6+
7+
Triage done by **@pnkfelix**.
8+
Revision range: [1d4f5aff..6b9236ed](https://perf.rust-lang.org/?start=1d4f5affbdee00c816f961c227c6b28a3e725ce6&end=6b9236ed5a58879969ddcf4c35a6a24f6260e979&absolute=false&stat=instructions%3Au)
9+
10+
**Summary**:
11+
12+
| (instructions:u) | mean | range | count |
13+
|:----------------------------------:|:-----:|:--------------:|:-----:|
14+
| Regressions ❌ <br /> (primary) | 1.5% | [0.6%, 3.0%] | 11 |
15+
| Regressions ❌ <br /> (secondary) | 1.4% | [0.6%, 1.8%] | 11 |
16+
| Improvements ✅ <br /> (primary) | -1.6% | [-3.7%, -0.6%] | 46 |
17+
| Improvements ✅ <br /> (secondary) | -1.9% | [-4.2%, -0.4%] | 46 |
18+
| All ❌✅ (primary) | -1.0% | [-3.7%, 3.0%] | 57 |
19+
20+
21+
5 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups
22+
57 artifact comparisons made in total
23+
24+
#### Regressions
25+
26+
miri: protect Move() function arguments during the call [#113569](https://github.com/rust-lang/rust/pull/113569) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=910be1b3e83d8876a144441695b7a5077967296e&end=136dab66142115d9de16b4cfe2d8395d71a8ab6d&stat=instructions:u)
27+
28+
| (instructions:u) | mean | range | count |
29+
|:----------------------------------:|:----:|:------------:|:-----:|
30+
| Regressions ❌ <br /> (primary) | 0.8% | [0.5%, 1.1%] | 13 |
31+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.4%, 1.4%] | 11 |
32+
| Improvements ✅ <br /> (primary) | - | - | 0 |
33+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
34+
| All ❌✅ (primary) | 0.8% | [0.5%, 1.1%] | 13 |
35+
36+
* RalfJ is investigating; has potential fix up in [PR #113630](https://github.com/rust-lang/rust/pull/113630), ...
37+
* ... but its not totally certain that PR is a real fix (i.e. the regression may already have been masked or otherwise resolved independently).
38+
* But meanwhile, I am hypothesizing that the regression reported here is spurious ([discussion](https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/perf.20triage.202023-07-18/near/376402031))
39+
* marking as triaged
40+
41+
Ignore flaky clippy tests. [#113621](https://github.com/rust-lang/rust/pull/113621) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1e6db3486da0f6474920477c01fca90453b7c428&end=33a2c2487ac5d9927830ea4c1844335c6b9f77db&stat=instructions:u)
42+
43+
| (instructions:u) | mean | range | count |
44+
|:----------------------------------:|:----:|:------------:|:-----:|
45+
| Regressions ❌ <br /> (primary) | 1.0% | [0.6%, 1.2%] | 7 |
46+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
47+
| Improvements ✅ <br /> (primary) | - | - | 0 |
48+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
49+
| All ❌✅ (primary) | 1.0% | [0.6%, 1.2%] | 7 |
50+
51+
* already marked as triaged (its noise)
52+
53+
Rollup of 6 pull requests [#113673](https://github.com/rust-lang/rust/pull/113673) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a161ab00dbf660dd587ee42a8c855bac94047ddb&end=7bd81ee1902c049691d0a1f03be5558bee51d100&stat=instructions:u)
54+
55+
| (instructions:u) | mean | range | count |
56+
|:----------------------------------:|:----:|:------------:|:-----:|
57+
| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 |
58+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
59+
| Improvements ✅ <br /> (primary) | - | - | 0 |
60+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
61+
| All ❌✅ (primary) | 1.2% | [1.2%, 1.2%] | 1 |
62+
63+
* addressed by PR #113697, already marked as triaged.
64+
65+
Add even more GHA log groups [#113514](https://github.com/rust-lang/rust/pull/113514) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad963232d9b987d66a6f8e6ec4141f672b8b9900&end=4d6e4260b2de66a356a2536320f339467dff0d2b&stat=instructions:u)
66+
67+
| (instructions:u) | mean | range | count |
68+
|:----------------------------------:|:----:|:------------:|:-----:|
69+
| Regressions ❌ <br /> (primary) | - | - | 0 |
70+
| Regressions ❌ <br /> (secondary) | 2.9% | [2.7%, 3.0%] | 6 |
71+
| Improvements ✅ <br /> (primary) | - | - | 0 |
72+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
73+
| All ❌✅ (primary) | - | - | 0 |
74+
75+
* PR author says "this doesn't affect how the compiler was built at all, the perf regression must be spurious."
76+
* I agree, marking as triaged
77+
78+
Rollup of 3 pull requests [#113738](https://github.com/rust-lang/rust/pull/113738) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4124617c6ebe6b5b4df2c8c8400e87389c377dcc&end=2c718d12599ca00dc3957ec604cb3e87fe437124&stat=instructions:u)
79+
80+
| (instructions:u) | mean | range | count |
81+
|:----------------------------------:|:----:|:------------:|:-----:|
82+
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 |
83+
| Regressions ❌ <br /> (secondary) | 3.1% | [2.7%, 3.5%] | 6 |
84+
| Improvements ✅ <br /> (primary) | - | - | 0 |
85+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
86+
| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 |
87+
88+
89+
#### Improvements
90+
91+
Rewrite `UnDerefer`, again [#113316](https://github.com/rust-lang/rust/pull/113316) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fcaf04e715bf74ddcbba4c6b0f9adfa00bae1af6&end=5b733e2bcaf784e6a8c523a6d5e74d7263ec7915&stat=instructions:u)
92+
93+
| (instructions:u) | mean | range | count |
94+
|:----------------------------------:|:-----:|:--------------:|:-----:|
95+
| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 |
96+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
97+
| Improvements ✅ <br /> (primary) | -0.9% | [-1.7%, -0.4%] | 14 |
98+
| Improvements ✅ <br /> (secondary) | -1.2% | [-2.0%, -0.2%] | 21 |
99+
| All ❌✅ (primary) | -0.8% | [-1.7%, 1.2%] | 15 |
100+
101+
102+
(re-)tighten sourceinfo span of adjustments in MIR [#112945](https://github.com/rust-lang/rust/pull/112945) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=136dab66142115d9de16b4cfe2d8395d71a8ab6d&end=da1d099f91ea387a2814a6244dd875a2048b486f&stat=instructions:u)
103+
104+
| (instructions:u) | mean | range | count |
105+
|:----------------------------------:|:-----:|:--------------:|:-----:|
106+
| Regressions ❌ <br /> (primary) | - | - | 0 |
107+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
108+
| Improvements ✅ <br /> (primary) | -0.7% | [-1.1%, -0.4%] | 18 |
109+
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.5%] | 5 |
110+
| All ❌✅ (primary) | -0.7% | [-1.1%, -0.4%] | 18 |
111+
112+
113+
Bump bootstrap to 1.72 beta [#113637](https://github.com/rust-lang/rust/pull/113637) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1b3e68692592d71938df8e7fd8e53fbe5e7ef58c&end=a161ab00dbf660dd587ee42a8c855bac94047ddb&stat=instructions:u)
114+
115+
| (instructions:u) | mean | range | count |
116+
|:----------------------------------:|:-----:|:--------------:|:-----:|
117+
| Regressions ❌ <br /> (primary) | - | - | 0 |
118+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
119+
| Improvements ✅ <br /> (primary) | -0.9% | [-1.2%, -0.6%] | 12 |
120+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
121+
| All ❌✅ (primary) | -0.9% | [-1.2%, -0.6%] | 12 |
122+
123+
124+
Add a cache for `maybe_lint_level_root_bounded` [#113609](https://github.com/rust-lang/rust/pull/113609) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7d60819bfd0d66bdc300713101bd285350407038&end=fe03b46ee4688a99d7155b4f9dcd875b6903952d&stat=instructions:u)
125+
126+
| (instructions:u) | mean | range | count |
127+
|:----------------------------------:|:-----:|:--------------:|:-----:|
128+
| Regressions ❌ <br /> (primary) | - | - | 0 |
129+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
130+
| Improvements ✅ <br /> (primary) | -1.4% | [-3.4%, -0.5%] | 29 |
131+
| Improvements ✅ <br /> (secondary) | -1.9% | [-5.9%, -0.2%] | 33 |
132+
| All ❌✅ (primary) | -1.4% | [-3.4%, -0.5%] | 29 |
133+
134+
135+
Remove `LLVMRustCoverageHashCString` [#113430](https://github.com/rust-lang/rust/pull/113430) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2c718d12599ca00dc3957ec604cb3e87fe437124&end=ffb9b61294b96c389d343a4c55b15400249d74e6&stat=instructions:u)
136+
137+
| (instructions:u) | mean | range | count |
138+
|:----------------------------------:|:-----:|:--------------:|:-----:|
139+
| Regressions ❌ <br /> (primary) | - | - | 0 |
140+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
141+
| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 2 |
142+
| Improvements ✅ <br /> (secondary) | -2.8% | [-3.2%, -2.4%] | 6 |
143+
| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 2 |
144+
145+
146+
#### Mixed
147+
148+
Eliminate ZST allocations in `Box` and `Vec` [#113113](https://github.com/rust-lang/rust/pull/113113) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7a5814f922f85370e773f2001886b8f57002811c&end=cca3373706b8f5fa12a1b7f18222dde4c3ed6e32&stat=instructions:u)
149+
150+
| (instructions:u) | mean | range | count |
151+
|:----------------------------------:|:-----:|:--------------:|:-----:|
152+
| Regressions ❌ <br /> (primary) | 1.7% | [0.5%, 3.5%] | 3 |
153+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
154+
| Improvements ✅ <br /> (primary) | -1.0% | [-1.7%, -0.4%] | 2 |
155+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
156+
| All ❌✅ (primary) | 0.6% | [-1.7%, 3.5%] | 5 |
157+
158+
* regressions here were anticipated and unavoidable. This is a bug fix.
159+
* Marking as triaged.
160+
161+
162+
Enable MIR reference propagation by default [#109025](https://github.com/rust-lang/rust/pull/109025) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5767cad9b8b58a5c0521c5ddd652a24d0c65f466&end=079e544174b79c372b4b4b473a01d699f128c2de&stat=instructions:u)
163+
164+
| (instructions:u) | mean | range | count |
165+
|:----------------------------------:|:-----:|:--------------:|:-----:|
166+
| Regressions ❌ <br /> (primary) | 1.2% | [0.5%, 2.5%] | 15 |
167+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 1.3%] | 7 |
168+
| Improvements ✅ <br /> (primary) | -0.9% | [-1.0%, -0.8%] | 3 |
169+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.1%, -0.4%] | 6 |
170+
| All ❌✅ (primary) | 0.8% | [-1.0%, 2.5%] | 18 |
171+
172+
* This is turning on a MIR pass at lower optimizations levels, so its expected that it would cause the compiler to do more work.
173+
* its clear from the perf runs on the PR itself that the PR author already put in much effort to make the pass faster than it had started out.
174+
* marking as triaged.
175+
176+
Resurrect: rustc_target: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the process. [#112157](https://github.com/rust-lang/rust/pull/112157) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4d6e4260b2de66a356a2536320f339467dff0d2b&end=7a17f577b3d437179cad254e299b2ace972487c5&stat=instructions:u)
177+
178+
| (instructions:u) | mean | range | count |
179+
|:----------------------------------:|:-----:|:--------------:|:-----:|
180+
| Regressions ❌ <br /> (primary) | 1.7% | [1.5%, 2.0%] | 6 |
181+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
182+
| Improvements ✅ <br /> (primary) | - | - | 0 |
183+
| Improvements ✅ <br /> (secondary) | -2.8% | [-2.9%, -2.8%] | 6 |
184+
| All ❌✅ (primary) | 1.7% | [1.5%, 2.0%] | 6 |
185+
186+
* The six primary regressions were all to variants of diesel (all of check/debug/opt) for variious full and incr-full scenarios.
187+
* It isn't noise, there seems to be a clear cliff that starts with this PR when looking at the graph starting from 2023-0702.
188+
* not marking as triaged yet, but was tempted to do so, because this PR is a prerequiste for unlocking various memcpy optimizations added by pcwalton to LLVM
189+
190+
Remove unneeded handling for `ExternalLocation::Unknown` in rustdoc render context [#113697](https://github.com/rust-lang/rust/pull/113697) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=425726d46b637f94995ca1c95f4f16cdb903d30e&end=4c8bb79d9f565115637cc6da739f8389e79f3a29&stat=instructions:u)
191+
192+
| (instructions:u) | mean | range | count |
193+
|:----------------------------------:|:-----:|:--------------:|:-----:|
194+
| Regressions ❌ <br /> (primary) | - | - | 0 |
195+
| Regressions ❌ <br /> (secondary) | 3.0% | [2.5%, 3.4%] | 6 |
196+
| Improvements ✅ <br /> (primary) | -1.1% | [-1.1%, -1.1%] | 1 |
197+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
198+
| All ❌✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 |
199+
200+
* this was mentioned up above when I was talking about PR #113673
201+
* the secondary regressions are all to ctfe-stress-5, which lqd says was noisy at this time.
202+
* marked as triaged.
203+
204+
Add support for allocators in `Rc` & `Arc` [#89132](https://github.com/rust-lang/rust/pull/89132) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1787f312907eee9a4a9ac010985d725ad9a03ab6&end=da6b55cc5eaf76ed6acb7dc2f7d611e32af7c9a7&stat=instructions:u)
205+
206+
| (instructions:u) | mean | range | count |
207+
|:----------------------------------:|:-----:|:--------------:|:-----:|
208+
| Regressions ❌ <br /> (primary) | 0.8% | [0.8%, 0.8%] | 1 |
209+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
210+
| Improvements ✅ <br /> (primary) | -1.3% | [-1.3%, -1.3%] | 1 |
211+
| Improvements ✅ <br /> (secondary) | -0.7% | [-0.8%, -0.5%] | 4 |
212+
| All ❌✅ (primary) | -0.3% | [-1.3%, 0.8%] | 2 |
213+
214+
Visiting for perf-triage
215+
216+
* primary regression was to image-0.24.1 opt full by 0.79%
217+
* I think this is just noise. From the [graph](https://perf.rust-lang.org/index.html?start=2023-06-17&end=2023-07-18&benchmark=image-0.24.1&profile=opt&scenario=full&stat=instructions%3Au&kind=raw), it seems like image has unpredictably jumped up and down between two plateaus since PR #113113 (a PR discussed up above that changed low level allocation procotol code in Box and Vec, and thus might be expected to have some weird follow-on effects).
218+
* marked as triaged
219+
220+
#### Untriaged Pull Requests
221+
222+
- [#113738 Rollup of 3 pull requests](https://github.com/rust-lang/rust/pull/113738)
223+
- [#113697 Remove unneeded handling for `ExternalLocation::Unknown` in rustdoc render context](https://github.com/rust-lang/rust/pull/113697)
224+
- [#113569 miri: protect Move() function arguments during the call](https://github.com/rust-lang/rust/pull/113569)
225+
- [#113514 Add even more GHA log groups](https://github.com/rust-lang/rust/pull/113514)
226+
- [#113485 Bump version to 1.73](https://github.com/rust-lang/rust/pull/113485)
227+
- [#113370 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/113370)
228+
- [#113320 Add some extra information to opaque type cycle errors](https://github.com/rust-lang/rust/pull/113320)
229+
- [#113306 Update debuginfo test runner to provide more useful output](https://github.com/rust-lang/rust/pull/113306)
230+
- [#113304 Upgrade to indexmap 2.0.0](https://github.com/rust-lang/rust/pull/113304)
231+
- [#113270 perform TokenStream replacement in-place when possible in expand_macro](https://github.com/rust-lang/rust/pull/113270)
232+
- [#113113 Eliminate ZST allocations in `Box` and `Vec`](https://github.com/rust-lang/rust/pull/113113)
233+
- [#113057 Rollup of 2 pull requests](https://github.com/rust-lang/rust/pull/113057)
234+
- [#112963 Stop bubbling out hidden types from the eval obligation queries](https://github.com/rust-lang/rust/pull/112963)
235+
- [#112882 Rewrite `UnDerefer`](https://github.com/rust-lang/rust/pull/112882)
236+
- [#112420 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/112420)
237+
- [#112157 Resurrect: rustc_target: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the process.](https://github.com/rust-lang/rust/pull/112157)
238+
- [#112083 Make `TrustedStep` require `Copy`](https://github.com/rust-lang/rust/pull/112083)
239+
- [#112016 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/112016)
240+
- [#112001 Enable MatchBranchSimplification](https://github.com/rust-lang/rust/pull/112001)
241+
- [#111869 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/111869)
242+
- [#111850 Specialize `StepBy<Range<{integer}>>`](https://github.com/rust-lang/rust/pull/111850)
243+
- [#111813 MIR: opt-in normalization of `BasicBlock` and `Local` numbering](https://github.com/rust-lang/rust/pull/111813)
244+
- [#111623 move `super_relate_consts` hack to `normalize_param_env_or_error`](https://github.com/rust-lang/rust/pull/111623)
245+
- [#111524 `ascii::Char`-ify the escaping code in `core`](https://github.com/rust-lang/rust/pull/111524)
246+
- [#111425 Populate effective visibilities in `rustc_privacy` (take 2)](https://github.com/rust-lang/rust/pull/111425)
247+
- [#111364 Remove the ThinLTO CU hack](https://github.com/rust-lang/rust/pull/111364)
248+
- [#111311 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/111311)
249+
- [#111306 Update hashbrown from 0.12.3 to 0.13.1 for std](https://github.com/rust-lang/rust/pull/111306)
250+
- [#111221 Combine three generalizer implementations](https://github.com/rust-lang/rust/pull/111221)
251+
- [#111007 Disable nrvo mir opt](https://github.com/rust-lang/rust/pull/111007)
252+
253+
#### Nags requiring follow up
254+
255+
TODO: Nags
256+

0 commit comments

Comments
 (0)