Skip to content

Commit cf502a0

Browse files
authored
Triage 2023 07 26 (#1667)
1 parent 9468231 commit cf502a0

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

triage/2023-07-26.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# 2023-07-26 Triage Log
2+
3+
A relatively light week with respect to performance changes. The one major
4+
regressing PR was reverted (for other reasons), and we saw some very nice gains
5+
on compile-times from (1.) changes to our codegen-unit merging logic and from
6+
(2.) changes to the stdlib slice iterators encoding its non-null guarantees
7+
directly, allowing the removal of a call to the `assume` intrinsic.
8+
9+
Triage done by **@pnkfelix**.
10+
Revision range: [6b9236ed..0308df23](https://perf.rust-lang.org/?start=6b9236ed5a58879969ddcf4c35a6a24f6260e979&end=0308df23e621e783e31a27ca5beaa01b9df60d4a&absolute=false&stat=instructions%3Au)
11+
12+
**Summary**:
13+
14+
| (instructions:u) | mean | range | count |
15+
|:----------------------------------:|:-----:|:--------------:|:-----:|
16+
| Regressions ❌ <br /> (primary) | 1.4% | [0.6%, 10.2%] | 27 |
17+
| Regressions ❌ <br /> (secondary) | 1.1% | [0.3%, 2.9%] | 19 |
18+
| Improvements ✅ <br /> (primary) | -2.2% | [-8.3%, -0.4%] | 21 |
19+
| Improvements ✅ <br /> (secondary) | -1.6% | [-2.0%, -1.2%] | 2 |
20+
| All ❌✅ (primary) | -0.2% | [-8.3%, 10.2%] | 48 |
21+
22+
23+
1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups
24+
35 artifact comparisons made in total
25+
26+
#### Regressions
27+
28+
Prototype: Add unstable `-Z reference-niches` option [#113166](https://github.com/rust-lang/rust/pull/113166) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1e6c09a803fd543a98bfbe1624d697a55300a786&end=557359f92512ca88b62a602ebda291f17a953002&stat=instructions:u)
29+
30+
| (instructions:u) | mean | range | count |
31+
|:----------------------------------:|:----:|:------------:|:-----:|
32+
| Regressions ❌ <br /> (primary) | 0.7% | [0.3%, 1.1%] | 19 |
33+
| Regressions ❌ <br /> (secondary) | 1.0% | [0.3%, 1.2%] | 4 |
34+
| Improvements ✅ <br /> (primary) | - | - | 0 |
35+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
36+
| All ❌✅ (primary) | 0.7% | [0.3%, 1.1%] | 19 |
37+
38+
* reverted in PR #113946
39+
* marked as triaged
40+
41+
#### Improvements
42+
43+
Inline overlap based CGU merging [#113777](https://github.com/rust-lang/rust/pull/113777) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=903e279f468590fa3425f8aff7f3d61a5a873dbb&end=0d6a9b2bf7f823ed563ca3a75392ba9bf9ff1566&stat=instructions:u)
44+
45+
| (instructions:u) | mean | range | count |
46+
|:----------------------------------:|:-----:|:--------------:|:-----:|
47+
| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 |
48+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
49+
| Improvements ✅ <br /> (primary) | -1.8% | [-4.5%, -0.3%] | 11 |
50+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
51+
| All ❌✅ (primary) | -1.6% | [-4.5%, 1.2%] | 12 |
52+
53+
this improved instruction-counts for 9 opt-full primary benchmarks. (The one regression was to regex-1.5.5 opt-full, by -1.15%; but the wins elsewhere pay for this.)
54+
55+
As noted by @nnethercote , this results in nearly 10second reduction in bootstrap time (i.e. -1.495%, no small feat at all!)
56+
57+
#### Mixed
58+
59+
Turn copy into moves during DSE. [#113758](https://github.com/rust-lang/rust/pull/113758) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6b53175b5d8558b69f5f46ce969fe42fb457e01b&end=06a53ddc0bd3a50f9bcf2f7c373011dc7869f59f&stat=instructions:u)
60+
61+
| (instructions:u) | mean | range | count |
62+
|:----------------------------------:|:-----:|:--------------:|:-----:|
63+
| Regressions ❌ <br /> (primary) | 9.4% | [9.4%, 9.4%] | 1 |
64+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.6%, 0.6%] | 1 |
65+
| Improvements ✅ <br /> (primary) | -1.0% | [-2.1%, -0.2%] | 14 |
66+
| Improvements ✅ <br /> (secondary) | -0.8% | [-1.3%, -0.2%] | 2 |
67+
| All ❌✅ (primary) | -0.3% | [-2.1%, 9.4%] | 15 |
68+
69+
* regression is to webrender-2022 opt incr-patched, (by 9.4%, as you can see from the above)
70+
* from the flamegraphs, seems like `codegen_module_perform_lto` went from 8.6 seconds to 9.6 seconds, with half of the growth in `LLVM_lto_optimize`, and half in `LLVM_module_codegen_emit_obj`.
71+
* not marking as triaged for now.
72+
73+
Rollup of 7 pull requests [#113890](https://github.com/rust-lang/rust/pull/113890) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=06a53ddc0bd3a50f9bcf2f7c373011dc7869f59f&end=092e4f46be168ab24d53e4141086b2cf04822b8e&stat=instructions:u)
74+
75+
| (instructions:u) | mean | range | count |
76+
|:----------------------------------:|:-----:|:--------------:|:-----:|
77+
| Regressions ❌ <br /> (primary) | - | - | 0 |
78+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
79+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
80+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
81+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
82+
83+
* that doesn't seem worth dissecting
84+
* marking as triaged
85+
* (the specific secondary is tt-muncher check incr-unchanged 0.23%)
86+
87+
Always const-prop scalars and scalar pairs [#113858](https://github.com/rust-lang/rust/pull/113858) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=399b068235ceea440540539b3bfd1aeb82214a28&end=e2a7ba2771a70439cd546fdae676abe11dacf6f9&stat=instructions:u)
88+
89+
| (instructions:u) | mean | range | count |
90+
|:----------------------------------:|:-----:|:--------------:|:-----:|
91+
| Regressions ❌ <br /> (primary) | 0.8% | [0.3%, 3.3%] | 42 |
92+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.1%] | 19 |
93+
| Improvements ✅ <br /> (primary) | -0.6% | [-1.3%, -0.2%] | 6 |
94+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
95+
| All ❌✅ (primary) | 0.6% | [-1.3%, 3.3%] | 48 |
96+
97+
* we didn't anticipate such a high impact to the instruction-counts; the trial run said there were two primary regressions here, not 42.
98+
* exa-0.10.1 opt-full regressed by 3.34%
99+
* five various bitmaps-3.1.0 profiles/scenarios regressed by 1.01% to 1.21%
100+
* ripgrep-13.0.0 check-incr-unchanged regressed by 1.01%
101+
* bunch of others that regressed by a little less than 1%... seems not great.
102+
* not marking as triaged.
103+
104+
Get `!nonnull` metadata on slice iterators, without `assume`s [#113344](https://github.com/rust-lang/rust/pull/113344) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e2a7ba2771a70439cd546fdae676abe11dacf6f9&end=c720a9cd1280d24838d0f649538dcd0e4352692c&stat=instructions:u)
105+
106+
| (instructions:u) | mean | range | count |
107+
|:----------------------------------:|:-----:|:--------------:|:-----:|
108+
| Regressions ❌ <br /> (primary) | 8.3% | [8.3%, 8.3%] | 1 |
109+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
110+
| Improvements ✅ <br /> (primary) | -1.1% | [-8.3%, -0.5%] | 63 |
111+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.1%, -0.3%] | 15 |
112+
| All ❌✅ (primary) | -1.0% | [-8.3%, 8.3%] | 64 |
113+
114+
* cranelift-codegen-0.82.1 opt-full regressed by 8.31%
115+
* a slew of other benchmarks improved (regex-1.5.5 incr-patched by -8.28%, bitmaps incr by 1.2-1.4%, the rest by -1% or less)
116+
* overall, a nice win. That's enough to let me mark this as triaged.
117+
118+
119+
#### Untriaged Pull Requests
120+
121+
- [#114011 interpret: Unify projections for MPlaceTy, PlaceTy, OpTy](https://github.com/rust-lang/rust/pull/114011)
122+
- [#114004 Add `riscv64gc-unknown-hermit` target](https://github.com/rust-lang/rust/pull/114004)
123+
- [#113973 match on chars instead of &strs for .split() or .strip_prefix()](https://github.com/rust-lang/rust/pull/113973)
124+
- [#113965 Fix test panics for submodule of book is not updated](https://github.com/rust-lang/rust/pull/113965)
125+
- [#113890 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/113890)
126+
- [#113858 Always const-prop scalars and scalar pairs](https://github.com/rust-lang/rust/pull/113858)
127+
- [#113758 Turn copy into moves during DSE.](https://github.com/rust-lang/rust/pull/113758)
128+
- [#113485 Bump version to 1.73](https://github.com/rust-lang/rust/pull/113485)
129+
- [#113476 Reimplement C-str literals](https://github.com/rust-lang/rust/pull/113476)
130+
- [#113370 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/113370)
131+
- [#113344 Get `!nonnull` metadata on slice iterators, without `assume`s](https://github.com/rust-lang/rust/pull/113344)
132+
- [#113320 Add some extra information to opaque type cycle errors](https://github.com/rust-lang/rust/pull/113320)
133+
- [#113306 Update debuginfo test runner to provide more useful output](https://github.com/rust-lang/rust/pull/113306)
134+
- [#113304 Upgrade to indexmap 2.0.0](https://github.com/rust-lang/rust/pull/113304)
135+
- [#113270 perform TokenStream replacement in-place when possible in expand_macro](https://github.com/rust-lang/rust/pull/113270)
136+
- [#113166 Prototype: Add unstable `-Z reference-niches` option](https://github.com/rust-lang/rust/pull/113166)
137+
- [#113057 Rollup of 2 pull requests](https://github.com/rust-lang/rust/pull/113057)
138+
- [#112963 Stop bubbling out hidden types from the eval obligation queries](https://github.com/rust-lang/rust/pull/112963)
139+
- [#112882 Rewrite `UnDerefer`](https://github.com/rust-lang/rust/pull/112882)
140+
- [#112420 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/112420)
141+
- [#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)
142+
- [#112083 Make `TrustedStep` require `Copy`](https://github.com/rust-lang/rust/pull/112083)
143+
- [#112016 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/112016)
144+
- [#112001 Enable MatchBranchSimplification](https://github.com/rust-lang/rust/pull/112001)
145+
- [#111869 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/111869)
146+
- [#111850 Specialize `StepBy<Range<{integer}>>`](https://github.com/rust-lang/rust/pull/111850)
147+
- [#111813 MIR: opt-in normalization of `BasicBlock` and `Local` numbering](https://github.com/rust-lang/rust/pull/111813)
148+
- [#111623 move `super_relate_consts` hack to `normalize_param_env_or_error`](https://github.com/rust-lang/rust/pull/111623)
149+
- [#111524 `ascii::Char`-ify the escaping code in `core`](https://github.com/rust-lang/rust/pull/111524)
150+
- [#111425 Populate effective visibilities in `rustc_privacy` (take 2)](https://github.com/rust-lang/rust/pull/111425)

0 commit comments

Comments
 (0)