Skip to content

Commit 87d471c

Browse files
committed
Add 2025-07-15 triage
1 parent d3c010b commit 87d471c

File tree

1 file changed

+243
-0
lines changed

1 file changed

+243
-0
lines changed

triage/2025/2025-07-15.md

Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
# 2025-07-15 Triage Log
2+
3+
A busy week with a lot of rollups containing perf. regressions and mixed results. Overall, regressions won slightly, but there were also a few impressive wins on a few primary and secondary benchmarks. A lot of perf. effects are caused by the current rework of attribute parsing, which will hopefully result in slightly improved performance once it's finished.
4+
5+
Triage done by **@kobzol**.
6+
Revision range: [0d11be5a..a9fb6103](https://perf.rust-lang.org/?start=0d11be5aabe0cd49609fff5fce57c4691a22fe55&end=a9fb6103b05c6ad6eee6bed4c0bb5a2e8e1024c6&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
| (instructions:u) | mean | range | count |
11+
|:----------------------------------:|:-----:|:---------------:|:-----:|
12+
| Regressions ❌ <br /> (primary) | 0.5% | [0.1%, 1.5%] | 62 |
13+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.8%] | 78 |
14+
| Improvements ✅ <br /> (primary) | -0.4% | [-3.9%, -0.1%] | 40 |
15+
| Improvements ✅ <br /> (secondary) | -1.4% | [-11.6%, -0.0%] | 74 |
16+
| All ❌✅ (primary) | 0.1% | [-3.9%, 1.5%] | 102 |
17+
18+
19+
5 Regressions, 4 Improvements, 8 Mixed; 5 of them in rollups
20+
47 artifact comparisons made in total
21+
22+
#### Regressions
23+
24+
Rollup of 7 pull requests [#143645](https://github.com/rust-lang/rust/pull/143645) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f838cbc06de60819faff3413f374706b74824ca2&end=ab68b0fb26485ab1fa6977b2d8b59cc8a171c4aa&stat=instructions:u)
25+
26+
| (instructions:u) | mean | range | count |
27+
|:----------------------------------:|:----:|:------------:|:-----:|
28+
| Regressions ❌ <br /> (primary) | - | - | 0 |
29+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.5%] | 16 |
30+
| Improvements ✅ <br /> (primary) | - | - | 0 |
31+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
32+
| All ❌✅ (primary) | - | - | 0 |
33+
34+
- Most regressions come from [#143402](https://github.com/rust-lang/rust/pull/143402), which refactors attribute parsing to the new system. It does more validations now, so slight regressions are expected.
35+
- Marked as triaged.
36+
37+
Instantiate auto trait/`Copy`/`Clone`/`Sized` before computing constituent types binder [#143538](https://github.com/rust-lang/rust/pull/143538) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e3fccdd4a16bf3aa223749efef1fa981589e43ae&end=e43d139a82620a268d3828a73e12a8679339e8f8&stat=instructions:u)
38+
39+
| (instructions:u) | mean | range | count |
40+
|:----------------------------------:|:----:|:------------:|:-----:|
41+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.3%] | 3 |
42+
| Regressions ❌ <br /> (secondary) | 0.0% | [0.0%, 0.0%] | 1 |
43+
| Improvements ✅ <br /> (primary) | - | - | 0 |
44+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
45+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.3%] | 3 |
46+
47+
- The tiny regression was deemed to be [acceptable](https://github.com/rust-lang/rust/pull/143538#issuecomment-3047103921).
48+
- Marked as triaged.
49+
50+
Rollup of 12 pull requests [#143731](https://github.com/rust-lang/rust/pull/143731) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=119574f83576dc1f3ae067f9a97986d4e2b0826c&end=78a6e132984dba0303ebad7dcfd1305c93ad5835&stat=instructions:u)
51+
52+
| (instructions:u) | mean | range | count |
53+
|:----------------------------------:|:----:|:------------:|:-----:|
54+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.4%] | 12 |
55+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.9%] | 14 |
56+
| Improvements ✅ <br /> (primary) | - | - | 0 |
57+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
58+
| All ❌✅ (primary) | 0.2% | [0.1%, 0.4%] | 12 |
59+
60+
- The regression was caused by [#136906](https://github.com/rust-lang/rust/pull/136906), continuing discussion on that PR.
61+
- Marked as triaged.
62+
63+
Rollup of 11 pull requests [#143888](https://github.com/rust-lang/rust/pull/143888) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7e310f4b9a3f166d833ed09cf1d1ff96ab84b72c&end=56835d7ac14da9f966e1ff39fd9ffd2e29b764d1&stat=instructions:u)
64+
65+
| (instructions:u) | mean | range | count |
66+
|:----------------------------------:|:----:|:------------:|:-----:|
67+
| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 0.8%] | 15 |
68+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.8%, 0.8%] | 1 |
69+
| Improvements ✅ <br /> (primary) | - | - | 0 |
70+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
71+
| All ❌✅ (primary) | 0.4% | [0.1%, 0.8%] | 15 |
72+
73+
- Regression caused by [#143519](https://github.com/rust-lang/rust/pull/143519).
74+
- The regession was expected due to rustc doing more work. Created an [issue](https://github.com/rust-lang/rust/issues/143945) for tracking a potential improvement.
75+
- Marked as triaged.
76+
77+
Port `#[cfg]` to the new attribute parsing infrastructure [#143460](https://github.com/rust-lang/rust/pull/143460) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7f2065a4bae1faed5bab928c670964eafbf43b55&end=a9fb6103b05c6ad6eee6bed4c0bb5a2e8e1024c6&stat=instructions:u)
78+
79+
| (instructions:u) | mean | range | count |
80+
|:----------------------------------:|:----:|:------------:|:-----:|
81+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.3%] | 6 |
82+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.5%, 1.3%] | 3 |
83+
| Improvements ✅ <br /> (primary) | - | - | 0 |
84+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
85+
| All ❌✅ (primary) | 0.4% | [0.2%, 1.3%] | 6 |
86+
87+
- The `syn` regressions are noise.
88+
- The rest of the regressions are real, but tiny, and we expect to improve them soon, with the rest of the attribute parsing rework (https://github.com/rust-lang/rust/pull/143963).
89+
- Marked as triaged.
90+
91+
#### Improvements
92+
93+
Use `join_with_double_colon` in `write_shared.rs`. [#142869](https://github.com/rust-lang/rust/pull/142869) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2783fc43fd13a669f314742890acd64200ad0bbf&end=45b80ac21a454d343833aad763ef604510c88375&stat=instructions:u)
94+
95+
| (instructions:u) | mean | range | count |
96+
|:----------------------------------:|:-----:|:--------------:|:-----:|
97+
| Regressions ❌ <br /> (primary) | - | - | 0 |
98+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
99+
| Improvements ✅ <br /> (primary) | -2.3% | [-4.0%, -0.6%] | 2 |
100+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
101+
| All ❌✅ (primary) | -2.3% | [-4.0%, -0.6%] | 2 |
102+
103+
104+
`rustc_pattern_analysis`: always check that deref patterns don't match on the same place as normal constructors [#143472](https://github.com/rust-lang/rust/pull/143472) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=558d25371fe1cc3d907ebcfc4e12d3c27acbe2b7&end=6b3ae3f6e45a33c2d95fa0362c9b2593e567fd34&stat=instructions:u)
105+
106+
| (instructions:u) | mean | range | count |
107+
|:----------------------------------:|:-----:|:--------------:|:-----:|
108+
| Regressions ❌ <br /> (primary) | - | - | 0 |
109+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
110+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
111+
| Improvements ✅ <br /> (secondary) | -2.7% | [-2.9%, -2.6%] | 6 |
112+
| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
113+
114+
115+
Add opaque TypeId handles for CTFE [#143696](https://github.com/rust-lang/rust/pull/143696) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=32cd9114712a24010b0583624dc52ac302194128&end=cf3fb768db439825e3c8d327f6d9f46e02965668&stat=instructions:u)
116+
117+
| (instructions:u) | mean | range | count |
118+
|:----------------------------------:|:-----:|:--------------:|:-----:|
119+
| Regressions ❌ <br /> (primary) | 0.4% | [0.4%, 0.4%] | 1 |
120+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.2%] | 6 |
121+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.1%] | 20 |
122+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.6%, -0.1%] | 37 |
123+
| All ❌✅ (primary) | -0.1% | [-0.3%, 0.4%] | 21 |
124+
125+
126+
Propagate from borrowed locals in CopyProp [#143624](https://github.com/rust-lang/rust/pull/143624) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=915e5352448afb3c24f89117468935283bc7d2cf&end=bfc046a4b8d6b57db02540182466e989a9b0fb40&stat=instructions:u)
127+
128+
| (instructions:u) | mean | range | count |
129+
|:----------------------------------:|:-----:|:--------------:|:-----:|
130+
| Regressions ❌ <br /> (primary) | 0.5% | [0.5%, 0.5%] | 1 |
131+
| Regressions ❌ <br /> (secondary) | 0.0% | [0.0%, 0.0%] | 1 |
132+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.6%, -0.1%] | 27 |
133+
| Improvements ✅ <br /> (secondary) | -0.3% | [-1.0%, -0.0%] | 33 |
134+
| All ❌✅ (primary) | -0.1% | [-0.6%, 0.5%] | 28 |
135+
136+
137+
#### Mixed
138+
139+
Add `ty_span` query [#143433](https://github.com/rust-lang/rust/pull/143433) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2d45f73c70d9dec57140c9412f83586eda895f8&end=688ea65df6a47866d0f72a00f1e18b47a7edf83b&stat=instructions:u)
140+
141+
| (instructions:u) | mean | range | count |
142+
|:----------------------------------:|:-----:|:--------------:|:-----:|
143+
| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 0.9%] | 11 |
144+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.0%, 0.2%] | 2 |
145+
| Improvements ✅ <br /> (primary) | - | - | 0 |
146+
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 2 |
147+
| All ❌✅ (primary) | 0.6% | [0.2%, 0.9%] | 11 |
148+
149+
- Small expected regression in libc, as rustc now stores more information per item in the dep graph.
150+
- Marked as triaged.
151+
152+
Use lld by default on `x86_64-unknown-linux-gnu` stable [#140525](https://github.com/rust-lang/rust/pull/140525) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ab68b0fb26485ab1fa6977b2d8b59cc8a171c4aa&end=34097a38afc9efdedf776d3f1c84a190ff334886&stat=instructions:u)
153+
154+
| (instructions:u) | mean | range | count |
155+
|:----------------------------------:|:-----:|:--------------:|:-----:|
156+
| Regressions ❌ <br /> (primary) | - | - | 0 |
157+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
158+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
159+
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 2 |
160+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
161+
162+
- This should be noise, as there should be no observable perf. changes in this PR.
163+
- Marked as triaged.
164+
165+
Apply effects to `otherwise` edge in dataflow analysis [#142707](https://github.com/rust-lang/rust/pull/142707) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=34097a38afc9efdedf776d3f1c84a190ff334886&end=d350797b7e1a5b6952f5035cbad2a21613b32f6c&stat=instructions:u)
166+
167+
| (instructions:u) | mean | range | count |
168+
|:----------------------------------:|:-----:|:--------------:|:-----:|
169+
| Regressions ❌ <br /> (primary) | 0.5% | [0.4%, 0.7%] | 2 |
170+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.1%, 1.0%] | 15 |
171+
| Improvements ✅ <br /> (primary) | -0.4% | [-1.3%, -0.1%] | 18 |
172+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.0%] | 10 |
173+
| All ❌✅ (primary) | -0.3% | [-1.3%, 0.7%] | 20 |
174+
175+
- More improvements than regressions, and improvements are mostly in primary benchmarks, while regressions are in secondary benchmarks. [This comment](https://github.com/rust-lang/rust/pull/142707#issuecomment-3050525801) mentions a plan for possible future improvements.
176+
- Marked as triaged.
177+
178+
Rollup of 9 pull requests [#143667](https://github.com/rust-lang/rust/pull/143667) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d350797b7e1a5b6952f5035cbad2a21613b32f6c&end=558d25371fe1cc3d907ebcfc4e12d3c27acbe2b7&stat=instructions:u)
179+
180+
| (instructions:u) | mean | range | count |
181+
|:----------------------------------:|:-----:|:--------------:|:-----:|
182+
| Regressions ❌ <br /> (primary) | - | - | 0 |
183+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.0%, 0.3%] | 20 |
184+
| Improvements ✅ <br /> (primary) | - | - | 0 |
185+
| Improvements ✅ <br /> (secondary) | -0.8% | [-1.1%, -0.0%] | 8 |
186+
| All ❌✅ (primary) | - | - | 0 |
187+
188+
- The small regressions are caused by [#143520](https://github.com/rust-lang/rust/pull/143520).
189+
- The regressions are only on secondary benchmarks, and this produces a larger win for CTFE benchmarks.
190+
- Marked as triaged.
191+
192+
Rollup of 9 pull requests [#143810](https://github.com/rust-lang/rust/pull/143810) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2f9c9cede68be26774ea44efc79d0391f1c58af2&end=915e5352448afb3c24f89117468935283bc7d2cf&stat=instructions:u)
193+
194+
| (instructions:u) | mean | range | count |
195+
|:----------------------------------:|:-----:|:--------------:|:-----:|
196+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 34 |
197+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.0%, 1.0%] | 33 |
198+
| Improvements ✅ <br /> (primary) | - | - | 0 |
199+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.3%, -0.0%] | 3 |
200+
| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 34 |
201+
202+
- The regression comes from [#143403](https://github.com/rust-lang/rust/pull/143403).
203+
- Continuing discussion on the PR.
204+
- Marked as triaged.
205+
206+
compute all rpitit of a trait [#143783](https://github.com/rust-lang/rust/pull/143783) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bfc046a4b8d6b57db02540182466e989a9b0fb40&end=288e94c4ba406d612a556520442683d0f1ef5dbb&stat=instructions:u)
207+
208+
| (instructions:u) | mean | range | count |
209+
|:----------------------------------:|:-----:|:--------------:|:-----:|
210+
| Regressions ❌ <br /> (primary) | - | - | 0 |
211+
| Regressions ❌ <br /> (secondary) | 1.1% | [1.1%, 1.1%] | 1 |
212+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.2%] | 9 |
213+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 4 |
214+
| All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 9 |
215+
216+
- Improvements outweigh regressions.
217+
- Marked as triaged.
218+
219+
de-duplicate condition scoping logic between AST→HIR lowering and `ScopeTree` construction [#143213](https://github.com/rust-lang/rust/pull/143213) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b1d2f2c64c6254b2a935d6a2d29b68f4511cf500&end=d2baa49a106fad06fbf6202fb6ea8a0b3d2767cc&stat=instructions:u)
220+
221+
| (instructions:u) | mean | range | count |
222+
|:----------------------------------:|:-----:|:--------------:|:-----:|
223+
| Regressions ❌ <br /> (primary) | - | - | 0 |
224+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 5 |
225+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
226+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
227+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
228+
229+
- Kind of a wash, a few small wins on a primary benchmark and a few small losses on secondary benchmarks.
230+
- Marked as triaged.
231+
232+
Retire hir::*ItemRef. [#143357](https://github.com/rust-lang/rust/pull/143357) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e9182f195b8505c87c4bd055b9f6e114ccda0981&end=9c3064e131f4939cc95a29bb11413c49bbda1491&stat=instructions:u)
233+
234+
| (instructions:u) | mean | range | count |
235+
|:----------------------------------:|:-----:|:---------------:|:-----:|
236+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
237+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.3%] | 6 |
238+
| Improvements ✅ <br /> (primary) | -0.1% | [-0.1%, -0.1%] | 1 |
239+
| Improvements ✅ <br /> (secondary) | -4.8% | [-11.6%, -0.2%] | 14 |
240+
| All ❌✅ (primary) | 0.0% | [-0.1%, 0.2%] | 2 |
241+
242+
- More improvements than regressions, in particular an impressive win on `many-assoc-items`.
243+
- Marked as triaged.

0 commit comments

Comments
 (0)