Skip to content

Commit ecb3ad7

Browse files
Merge pull request #1263 from pnkfelix/triage-2022-03-30
triage report for 2022-03-30
2 parents 6a789a6 + d2900e2 commit ecb3ad7

File tree

1 file changed

+152
-0
lines changed

1 file changed

+152
-0
lines changed

triage/2022-03-30.md

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# 2022-03-30 Triage Log
2+
3+
A mixed week: some minor regressions, but things overall improved for instruction counts.
4+
5+
Max RSS has gone up slightly over the past
6+
[month](https://perf.rust-lang.org/?start=2022-03-01&end=2022-03-30&kind=percentfromfirst&stat=max-rss),
7+
on the order of 0.5% regression according to benchmark summary. pnkfelix is
8+
following up on that with rustc-perf team on
9+
[zulip](https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/max-rss.20over.202022-03/near/277194155)
10+
11+
Triage done by **@pnkfelix**.
12+
Revision range: [3ea44938e21f0de8ae7d4f6399a8a30f97867c70..3e7514670db841a7f0d7656f3b13b1c8b2c11599](https://perf.rust-lang.org/?start=3ea44938e21f0de8ae7d4f6399a8a30f97867c70&end=3e7514670db841a7f0d7656f3b13b1c8b2c11599&absolute=false&stat=instructions%3Au)
13+
14+
4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups
15+
63 comparisons made in total
16+
17+
#### Regressions
18+
19+
Rollup of 5 pull requests [#95250](https://github.com/rust-lang/rust/pull/95250)
20+
- Arithmetic mean of relevant regressions: 2.2%
21+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=9f4dc0b4db892271cd0dada6e072775b5b5d6b1e&end=37b55c8a0cafdb60b9168da34f904acc70157df8&stat=instructions:u): 11.1% on `full` builds of `cargo-0.60.0 doc`
22+
- [Already triaged](https://github.com/rust-lang/rust/pull/95250#issuecomment-1077821698) by oli-obk.
23+
- it is solely in rustdoc, and oli-obk has a plan to address it in the long term.
24+
25+
Properly track `ImplObligations` [#91030](https://github.com/rust-lang/rust/pull/91030)
26+
- Arithmetic mean of relevant regressions: 1.9%
27+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=600a80dedf71ce02e778e59f4884866c3030c819&end=d2df372bca13bb60979c909660e69f2451630e81&stat=instructions:u): 3.8% on `full` builds of `projection-caching check`
28+
- [triaged](https://github.com/rust-lang/rust/pull/91030#issuecomment-1083360210); this was anticipated.
29+
- The only primary regression was to diesel doc, and the regressions are justified by the improvement to the diagnostics.
30+
31+
Separate const prop lints from optimizations [#94934](https://github.com/rust-lang/rust/pull/94934)
32+
- Arithmetic mean of relevant regressions: 1.2%
33+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=4b133a7e27c32e822e9ff774e4436f184f5a9752&end=63b8f01bb5ca277e7df8d7efe094ed4244c1790c&stat=instructions:u): 2.1% on `incr-full` builds of `unicode_normalization opt`
34+
- [Already triaged](https://github.com/rust-lang/rust/pull/94934#issuecomment-1078950067) by oli-obk.
35+
- In short: this was expected, becaused we are doing const-prop twice now.
36+
- (The end-goal is stop optimizations from changing diagnostics. This PR is a step towards that goal.)
37+
38+
Rollup of 4 pull requests [#95448](https://github.com/rust-lang/rust/pull/95448)
39+
- Arithmetic mean of relevant regressions: 1.5%
40+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=5e1d19d30723c287f049662474021f2b9a9894ce&end=9c06e1ba47e1077725a950e0b5d1870a89c8b536&stat=instructions:u): 2.5% on `incr-patched: io error 6144` builds of `issue-46449 debug`
41+
- [triaged](https://github.com/rust-lang/rust/pull/95448#issuecomment-1083461959)
42+
- The only primary benchmark impacted by this was `unicode-normalization-0.1.19`, and that only saw a 0.50% regression on incr-patched: println and a 0.36% regression on full build. We can ignore that.
43+
- The only secondary benchmark impacted was issue-46449, which is trying to catch regression of quadratic blowup, not minor regressions.
44+
45+
#### Improvements
46+
47+
Introduce `TtParser` [#95159](https://github.com/rust-lang/rust/pull/95159)
48+
- Arithmetic mean of relevant regressions: 0.3%
49+
- Arithmetic mean of relevant improvements: -1.9%
50+
- Arithmetic mean of all relevant changes: -1.7%
51+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=5f37001055c29982f4c27ee9edd90449c8e07774&end=a4a5e79814fb4d1568fb0ea5ca50f810b071ae12&stat=instructions:u): -6.2% on `incr-unchanged` builds of `deep-vector check`
52+
53+
54+
Overlap inherent impls [#95082](https://github.com/rust-lang/rust/pull/95082)
55+
- Arithmetic mean of relevant improvements: -1.0%
56+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=8a0c55046c7092d9e019dad03729e8d32e38df72&end=e70e211e99b3b7a4c3d75ff56598662530828f65&stat=instructions:u): -2.0% on `full` builds of `diesel-1.4.8 check`
57+
58+
59+
resolve: Do not build expensive suggestions if they are not actually used [#95255](https://github.com/rust-lang/rust/pull/95255)
60+
- Arithmetic mean of relevant improvements: -0.6%
61+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=e70e211e99b3b7a4c3d75ff56598662530828f65&end=903427b2e807cb1292388940b3f44f3b061cfebf&stat=instructions:u): -2.1% on `full` builds of `projection-caching doc`
62+
63+
64+
Fix perf issue for auto trait selection [#95333](https://github.com/rust-lang/rust/pull/95333)
65+
- Arithmetic mean of relevant improvements: -3.1%
66+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=62523045ec681ee8c2ecb8d395fbcaccf336284b&end=3badf5c51c33f15c3934ea0e91d27f60c8605024&stat=instructions:u): -10.1% on `full` builds of `cargo-0.60.0 doc`
67+
68+
69+
Remove header field from clean::Function [#95096](https://github.com/rust-lang/rust/pull/95096)
70+
- Arithmetic mean of relevant regressions: 0.3%
71+
- Arithmetic mean of relevant improvements: -0.9%
72+
- Arithmetic mean of all relevant changes: -0.8%
73+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=e2301ca54320659835467072f37201591db959b5&end=11909e3588319235e28e99294e17cca11db1d7e2&stat=instructions:u): -1.4% on `full` builds of `await-call-tree doc`
74+
75+
76+
#### Mixed
77+
78+
Change Thir to lazily create constants [#94876](https://github.com/rust-lang/rust/pull/94876)
79+
- Arithmetic mean of relevant regressions: 1.6%
80+
- Arithmetic mean of relevant improvements: -1.0%
81+
- Arithmetic mean of all relevant changes: -0.3%
82+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=d2df372bca13bb60979c909660e69f2451630e81&end=8d8135f003b35c3e109d013b2bed9ee9496da615&stat=instructions:u): -2.8% on `full` builds of `keccak check`
83+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d2df372bca13bb60979c909660e69f2451630e81&end=8d8135f003b35c3e109d013b2bed9ee9496da615&stat=instructions:u): 3.5% on `full` builds of `tuple-stress check`
84+
- [Triaged](https://github.com/rust-lang/rust/pull/94876#issuecomment-1083486520).
85+
- The changes to the primary benchmarks are almost universally green here.
86+
- The secondary benchmarks are more of a mixed bag, but I think we can accept a 3.5% regression on tuple-stress given the overall benefits.
87+
88+
More macro expansion optimizations [#95259](https://github.com/rust-lang/rust/pull/95259)
89+
- Arithmetic mean of relevant improvements: -1.5%
90+
- Arithmetic mean of all relevant changes: -1.1%
91+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=4ce257ff198d23bdf14e956fbf2fe0fed297201f&end=8a0c55046c7092d9e019dad03729e8d32e38df72&stat=instructions:u): -2.0% on `incr-unchanged` builds of `diesel check`
92+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=4ce257ff198d23bdf14e956fbf2fe0fed297201f&end=8a0c55046c7092d9e019dad03729e8d32e38df72&stat=instructions:u): 0.4% on `incr-full` builds of `unicode-normalization-0.1.19 opt`
93+
- [Already triaged](https://github.com/rust-lang/rust/pull/95259#issuecomment-1079476641) by nnethercote
94+
- The perf wins clearly outweigh the losses here.
95+
96+
Rollup of 5 pull requests [#95382](https://github.com/rust-lang/rust/pull/95382)
97+
- Arithmetic mean of relevant regressions: 2.2%
98+
- Arithmetic mean of relevant improvements: -0.4%
99+
- Arithmetic mean of all relevant changes: 1.2%
100+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=ab0c2e18dceb7140626a158affb983ae81039bd0&end=62523045ec681ee8c2ecb8d395fbcaccf336284b&stat=instructions:u): -0.4% on `incr-unchanged` builds of `deeply-nested-multi check`
101+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=ab0c2e18dceb7140626a158affb983ae81039bd0&end=62523045ec681ee8c2ecb8d395fbcaccf336284b&stat=instructions:u): 3.2% on `full` builds of `await-call-tree check`
102+
- [Left comment](https://github.com/rust-lang/rust/pull/95382#issuecomment-1083505358)
103+
- Changes to the primary benchmarks seem like a wash and probably ignorable (0.33% worse for unicode-normalization-0.1.19, 0.33% better for ripgrep-13.0.0).
104+
- Re secondary benchmarks: 3% worse for await-call-tree (on six scenarios), which is more concerning. I assume PR #95120 is cause.
105+
- Leaving as untriaged.
106+
107+
Lazy type-alias-impl-trait take two [#94081](https://github.com/rust-lang/rust/pull/94081)
108+
- Arithmetic mean of relevant regressions: 0.5%
109+
- Arithmetic mean of relevant improvements: -0.5%
110+
- Arithmetic mean of all relevant changes: -0.3%
111+
- Largest improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=1446d17b8f4bd3ff8dbfb129a7674165e06f9f4c&end=f132bcf3bdf6d3ff9be7d02e8d0088b99007cd5e&stat=instructions:u): -1.0% on `incr-full` builds of `wg-grammar check`
112+
- Largest regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=1446d17b8f4bd3ff8dbfb129a7674165e06f9f4c&end=f132bcf3bdf6d3ff9be7d02e8d0088b99007cd5e&stat=instructions:u): 0.8% on `full` builds of `projection-caching check`
113+
- [triaged](https://github.com/rust-lang/rust/pull/94081#issuecomment-1083519743)
114+
- The actual performance changes indicate this ended up a win overall, based on the amount of green.
115+
116+
#### Untriaged Pull Requests
117+
118+
- [#95448 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/95448)
119+
- [#95382 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/95382)
120+
- [#95250 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/95250)
121+
- [#94876 Change Thir to lazily create constants](https://github.com/rust-lang/rust/pull/94876)
122+
- [#94824 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/94824)
123+
- [#94814 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/94814)
124+
- [#94402 Revert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"](https://github.com/rust-lang/rust/pull/94402)
125+
- [#94333 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/94333)
126+
- [#94295 Always evaluate all cfg predicate in all() and any()](https://github.com/rust-lang/rust/pull/94295)
127+
- [#94130 Use undef for (some) partially-uninit constants](https://github.com/rust-lang/rust/pull/94130)
128+
- [#94103 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/94103)
129+
- [#94081 Lazy type-alias-impl-trait take two](https://github.com/rust-lang/rust/pull/94081)
130+
- [#94072 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/94072)
131+
- [#93670 Apply noundef attribute to &T, &mut T, Box<T>, bool](https://github.com/rust-lang/rust/pull/93670)
132+
- [#93505 safely `transmute<&List<Ty<'tcx>>, &List<GenericArg<'tcx>>>`](https://github.com/rust-lang/rust/pull/93505)
133+
- [#93466 Make dead code check a query.](https://github.com/rust-lang/rust/pull/93466)
134+
- [#93312 Return an indexmap in `all_local_trait_impls` query](https://github.com/rust-lang/rust/pull/93312)
135+
- [#93298 make `find_similar_impl_candidates` even fuzzier](https://github.com/rust-lang/rust/pull/93298)
136+
- [#93288 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/93288)
137+
- [#93154 debuginfo: Make sure that type names for closure and generator environments are unique in debuginfo.](https://github.com/rust-lang/rust/pull/93154)
138+
- [#93148 Overhaul interning.](https://github.com/rust-lang/rust/pull/93148)
139+
- [#93138 Rollup of 17 pull requests](https://github.com/rust-lang/rust/pull/93138)
140+
- [#93095 Store a `Symbol` instead of an `Ident` in `AssocItem`](https://github.com/rust-lang/rust/pull/93095)
141+
- [#92911 Guard against unwinding in cleanup code](https://github.com/rust-lang/rust/pull/92911)
142+
- [#92896 Update some rustc dependencies to deduplicate them](https://github.com/rust-lang/rust/pull/92896)
143+
- [#92844 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/92844)
144+
- [#92816 Remove deprecated LLVM-style inline assembly](https://github.com/rust-lang/rust/pull/92816)
145+
- [#92805 partially revertish `lazily "compute" anon const default substs`](https://github.com/rust-lang/rust/pull/92805)
146+
- [#92535 Allow unwinding from OOM hooks](https://github.com/rust-lang/rust/pull/92535)
147+
- [#92534 Hash `Ident` spans in all HIR structures](https://github.com/rust-lang/rust/pull/92534)
148+
149+
#### Nags requiring follow up
150+
151+
TODO: Nags
152+

0 commit comments

Comments
 (0)