You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3 Regressions, 5 Improvements, 5 Mixed; ??? of them in rollups
23
+
3 Regressions, 5 Improvements, 5 Mixed; 3 of them in rollups
20
24
55 artifact comparisons made in total
21
25
22
26
#### Regressions
@@ -31,6 +35,9 @@ Rollup of 10 pull requests [#119754](https://github.com/rust-lang/rust/pull/1197
31
35
| Improvements ✅ <br /> (secondary) | - | - | 0 |
32
36
| All ❌✅ (primary) | - | - | 0 |
33
37
38
+
* The 2 regressing (and secondary) benchmarks are tt-muncher debug {incr-full, full}. Its not transient.
39
+
* I've skimmed over the list of PR's in the rollup. None of them are obvious culprits here. I looked at the ones related to debuginfo (#118903) and to code-coverage (#119033 and #119681), but none of those seem likely to be to blame here
40
+
* Since this only affects a secondary benchmark, and only the instruction count (e.g. not cpu-clock:u nor wall-time for these two benchmarks), I do not think its worth further investigation and I'm going to mark it as triaged.
34
41
35
42
Exhaustiveness: use an `Option` instead of allocating fictitious patterns [#119688](https://github.com/rust-lang/rust/pull/119688)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2d9d73e608f1b24eba840c4fd2d68dbe3b65e01&end=0a8923361ec2a37fa341292c029ef7c6d0405d4b&stat=instructions:u)
36
43
@@ -42,6 +49,10 @@ Exhaustiveness: use an `Option` instead of allocating fictitious patterns [#1196
42
49
| Improvements ✅ <br /> (secondary) | - | - | 0 |
43
50
| All ❌✅ (primary) | - | - | 0 |
44
51
52
+
* This impacted the 6 variants of match-stress {incr-full,full} x {check,debug,opt}
53
+
* I think the impact on match-stress was probably well-anticipated, and within a reasonable range for a stress-test benchmark.
54
+
* Note that #119688 was a precursor to some further cleanup code (namely to remove the use of a local-arena within exhaustiveness checking).
55
+
* Marking as triaged.
45
56
46
57
never patterns: Check bindings wrt never patterns [#119610](https://github.com/rust-lang/rust/pull/119610)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bfcc027a751595ba290c554f47907eaa3779f798&end=714b29a17ff5fa727c794bbb60bfd335f8e75d42&stat=instructions:u)
47
58
@@ -53,6 +64,10 @@ never patterns: Check bindings wrt never patterns [#119610](https://github.com/r
53
64
| Improvements ✅ <br /> (secondary) | - | - | 0 |
54
65
| All ❌✅ (primary) | 0.3% |[0.3%, 0.4%]| 3 |
55
66
67
+
* This impacted 3 variants of unicode-normalization-0.1.19: debug incr-unchanged and check {incr-unchanged, incr-patched:println}.
68
+
* Interestingly, during two different try runs, those three variants were found to have improved by similar amounts by this PR.
69
+
* there's some weird interaction between that benchmark and the code paths impacted by this PR, and I do not think its worth investing effort in further investigation.
70
+
* marking as triaged.
56
71
57
72
#### Improvements
58
73
@@ -66,6 +81,7 @@ macro_rules: Add an expansion-local cache to span marker [#119693](https://githu
* the bitmaps changes (-20.5%, -17.9%, -13.1%) are all artifacts of returning to normal after a blip in the previous PR.
69
85
70
86
A more efficient slice comparison implementation for T: !BytewiseEq [#116846](https://github.com/rust-lang/rust/pull/116846)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ae9d24de80b00b4158d1a29a212a6b02aeda0e75&end=190f4c96116a3b59b7de4881cfec544be0246d84&stat=instructions:u)
71
87
@@ -77,6 +93,7 @@ A more efficient slice comparison implementation for T: !BytewiseEq [#116846](ht
Remove a large amount of leb128-coded integers [#119791](https://github.com/rust-lang/rust/pull/119791)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d73bd3fb3ba312f3e6b5af4d56d1161d37b71620&end=68acb393c5d2cff049b41981e35217a7e630f63a&stat=instructions:u)
82
99
@@ -88,6 +105,8 @@ Remove a large amount of leb128-coded integers [#119791](https://github.com/rust
* the 1.1% hit is to deep-vector debug full. It may be transient; the history is pretty up-and-down at the time of this PR, and has settled at a lower level than where it was when this PR landed.
109
+
* in any case, the gains elsewhere, especially bootstrap, outweigh the loss to that one secondary benchmark. (Which ... I guess is what the rustc-perf bot now computes as well, since it categorized this as an Improvement rather than Mixed?)
@@ -123,6 +142,10 @@ Support async recursive calls (as long as they have indirection) [#117703](https
123
142
| Improvements ✅ <br /> (secondary) | - | - | 0 |
124
143
| All ❌✅ (primary) | -0.3% |[-0.4%, -0.3%]| 3 |
125
144
145
+
* this is weird, it looks like an inverse blip occurred on the preceding PR, where tt-muncher check incr-unchanged had a single point with -0.2% instruction-count, and then it preceding to "return to normal" on the succeeding PRs.
146
+
* (Its harder for me to explain away "inverse blips" ...)
147
+
* but at the same time, this does not seem like a significant regression by our usual metrics.
148
+
* marking as triaged.
126
149
127
150
Rollup of 9 pull requests [#119767](https://github.com/rust-lang/rust/pull/119767)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=be00c5a9b89161b7f45ba80340f709e8e41122f9&end=5876c8cdfd3df742c334d6447d44d760c77103b6&stat=instructions:u)
128
151
@@ -134,6 +157,9 @@ Rollup of 9 pull requests [#119767](https://github.com/rust-lang/rust/pull/11976
* primary regressions: syn opt-full regressed by 2.3%, bitmaps check-incr-full by 0.35%. secondary regressions: coercions debug-full by 1.23%, ctfe-stress check-full by 0.51%
161
+
* from the overall history, it seems like syn opt-full returned to "normal" with later PRs that don't necessarily seem like they would have affected syn (e.g. PR #117449). bitmap check-incr-full's trend is likewise downward after this point.
162
+
* marking as triaged
137
163
138
164
Add assume into `NonZeroIntX::get`[#119452](https://github.com/rust-lang/rust/pull/119452)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ce1f2ccf5a5ac9343623bd115a05e4151d93af0d&end=2319be8e265dd19973574eb581d28297baf44b11&stat=instructions:u)
139
165
@@ -145,6 +171,8 @@ Add assume into `NonZeroIntX::get` [#119452](https://github.com/rust-lang/rust/p
145
171
| Improvements ✅ <br /> (secondary) | - | - | 0 |
146
172
| All ❌✅ (primary) | 0.3% |[-0.7%, 0.9%]| 5 |
147
173
174
+
* scottmcm writes: "Instructions have a couple red in instruction counts for opt, but that's entirely reasonable for something intended to enable optimizations. Notably, the cycles are green, with no regressions. So I think this is fine."
175
+
* marking as triaged
148
176
149
177
Avoid some redundant work in GVN [#119439](https://github.com/rust-lang/rust/pull/119439)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=714b29a17ff5fa727c794bbb60bfd335f8e75d42&end=f9c2421a2a6e34f3756900dd7d600704c08bfccb&stat=instructions:u)
150
178
@@ -156,6 +184,9 @@ Avoid some redundant work in GVN [#119439](https://github.com/rust-lang/rust/pul
* primary regressions are regex-1.5.5 debug-full, opt-incr-patched:Job, incr-full, and exa opt-full.
188
+
* the exa regression looks like a blip. The regex ones were predicted during a try run for the PR. I assume they were deemed acceptable as they are offset improvements elsewhere (or dismissed as noise?)
189
+
* marking as triaged.
159
190
160
191
Sandwich MIR optimizations between DSE. [#119672](https://github.com/rust-lang/rust/pull/119672)[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f9c2421a2a6e34f3756900dd7d600704c08bfccb&end=fa0dc208d0a34027c1d3cca7d47975d8238bcfde&stat=instructions:u)
161
192
@@ -167,41 +198,5 @@ Sandwich MIR optimizations between DSE. [#119672](https://github.com/rust-lang/r
-[#118473 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/118473)
184
-
-[#118420 Introduce support for `async gen` blocks](https://github.com/rust-lang/rust/pull/118420)
185
-
-[#118405 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/118405)
186
-
-[#118319 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/118319)
187
-
-[#118308 Don't warn an empty pattern unreachable if we're not sure the data is valid](https://github.com/rust-lang/rust/pull/118308)
188
-
-[#117769 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/117769)
189
-
-[#117736 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/117736)
190
-
-[#117703 Support async recursive calls (as long as they have indirection)](https://github.com/rust-lang/rust/pull/117703)
191
-
-[#117213 Reorder check_item_type diagnostics so they occur next to the corresponding `check_well_formed` diagnostics](https://github.com/rust-lang/rust/pull/117213)
192
-
-[#117180 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/117180)
193
-
-[#116940 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/116940)
194
-
-[#116915 Add an assume that the index is inbounds to slice::get_unchecked](https://github.com/rust-lang/rust/pull/116915)
195
-
-[#116889 Eat close paren if capture_cfg to avoid unbalanced parens](https://github.com/rust-lang/rust/pull/116889)
196
-
-[#116492 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/116492)
-[#116183 Always preserve DebugInfo in DeadStoreElimination.](https://github.com/rust-lang/rust/pull/116183)
199
-
-[#116033 report `unused_import` for empty reexports even it is pub](https://github.com/rust-lang/rust/pull/116033)
200
-
-[#115762 Explain revealing of opaque types in layout_of ParamEnv](https://github.com/rust-lang/rust/pull/115762)
201
-
-[#115751 some inspect improvements](https://github.com/rust-lang/rust/pull/115751)
202
-
-[#115740 Cache reachable_set on disk](https://github.com/rust-lang/rust/pull/115740)
203
-
204
-
#### Nags requiring follow up
205
-
206
-
TODO: Nags
201
+
* already marked as triaged by @lqd with the comment "As seen in the previous runs: some nice wins on bigger benchmarks, and overall gains outweigh the few losses."
0 commit comments