|
| 1 | +# 2024-02-13 Triage Log |
| 2 | + |
| 3 | +Relatively balanced results this week, with more improvements than regressions. Some of the |
| 4 | +larger regressions are not relevant, however there was a real large regression on `doc` builds, that was |
| 5 | +caused by a correctness fix (`rustdoc` was doing the wrong thing before). |
| 6 | + |
| 7 | +Triage done by **@kobzol**. |
| 8 | +Revision range: [0984becf..74c3f5a1](https://perf.rust-lang.org/?start=0984becf01112cbd3583c796541760b65340c8db&end=74c3f5a146860c94ff4d179fc3bfa34f879adf41&absolute=false&stat=instructions%3Au) |
| 9 | + |
| 10 | +**Summary**: |
| 11 | + |
| 12 | +| (instructions:u) | mean | range | count | |
| 13 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 14 | +| Regressions ❌ <br /> (primary) | 2.1% | [0.2%, 12.0%] | 44 | |
| 15 | +| Regressions ❌ <br /> (secondary) | 5.2% | [0.2%, 20.1%] | 76 | |
| 16 | +| Improvements ✅ <br /> (primary) | -0.7% | [-2.4%, -0.2%] | 139 | |
| 17 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-3.3%, -0.3%] | 86 | |
| 18 | +| All ❌✅ (primary) | -0.1% | [-2.4%, 12.0%] | 183 | |
| 19 | + |
| 20 | + |
| 21 | +6 Regressions, 5 Improvements, 8 Mixed; 5 of them in rollups |
| 22 | +53 artifact comparisons made in total |
| 23 | + |
| 24 | +#### Regressions |
| 25 | + |
| 26 | +pattern_analysis: Gracefully abort on type incompatibility [#120313](https://github.com/rust-lang/rust/pull/120313) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ea37e8091fe87ae0a7e204c034e7d55061e56790&end=f067fd6084d750f3797f54b71771c5dbc149726f&stat=instructions:u) |
| 27 | + |
| 28 | +| (instructions:u) | mean | range | count | |
| 29 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 30 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 31 | +| Regressions ❌ <br /> (secondary) | 1.9% | [1.8%, 2.0%] | 6 | |
| 32 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 33 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 34 | +| All ❌✅ (primary) | - | - | 0 | |
| 35 | + |
| 36 | +* The pattern matching machinery is now receiving a lot of updates, and the `match-stress` stress test |
| 37 | +is swinging back and forth. Marked as triaged. |
| 38 | + |
| 39 | +Rework support for async closures; allow them to return futures that borrow from the closure's captures [#120361](https://github.com/rust-lang/rust/pull/120361) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=037f515caf46846d2bffae55883eebc6c1ccb861&end=4a2fe4491ea616983a0cf0cbbd145a39768f4e7a&stat=instructions:u) |
| 40 | + |
| 41 | +| (instructions:u) | mean | range | count | |
| 42 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 43 | +| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 0.7%] | 11 | |
| 44 | +| Regressions ❌ <br /> (secondary) | 0.6% | [0.4%, 0.7%] | 11 | |
| 45 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 46 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 47 | +| All ❌✅ (primary) | 0.5% | [0.2%, 0.7%] | 11 | |
| 48 | + |
| 49 | +* This is probably just codegen noise, the changes were reverted in followup commits. Marked as triaged. |
| 50 | + |
| 51 | +Make traits / trait methods detected by the dead code lint [#118257](https://github.com/rust-lang/rust/pull/118257) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=586893c7b0adabf5f0a4c155fd86e13cf470e74b&end=d4f6f9ee6a3b24f2cb97b1a5b82963609b93aa33&stat=instructions:u) |
| 52 | + |
| 53 | +| (instructions:u) | mean | range | count | |
| 54 | +|:----------------------------------:|:----:|:-------------:|:-----:| |
| 55 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.1%, 1.8%] | 18 | |
| 56 | +| Regressions ❌ <br /> (secondary) | 9.4% | [0.2%, 16.0%] | 10 | |
| 57 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 59 | +| All ❌✅ (primary) | 0.7% | [0.1%, 1.8%] | 18 | |
| 60 | + |
| 61 | +* This PR implements a new lint for unused traits, so the compiler does more work. |
| 62 | +The large regression is a red herring, it is a small stress test that didn't produce any warnings before, |
| 63 | +but it does now, which causes it to initialize the diagnostics machinery, which is a one-time cost. |
| 64 | +Marked as triaged. |
| 65 | + |
| 66 | +Stop bailing out from compilation just because there were incoherent traits [#120558](https://github.com/rust-lang/rust/pull/120558) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=384b02c0825cefa59f2e8a99a33d9a5344959079&end=870a01a30e45d73b8e922a91850919e03f772636&stat=instructions:u) |
| 67 | + |
| 68 | +| (instructions:u) | mean | range | count | |
| 69 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 70 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 14 | |
| 71 | +| Regressions ❌ <br /> (secondary) | 1.2% | [0.1%, 3.5%] | 23 | |
| 72 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 73 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 74 | +| All ❌✅ (primary) | 0.4% | [0.2%, 1.0%] | 14 | |
| 75 | + |
| 76 | +* The regression was resolved in [#120835](https://github.com/rust-lang/rust/pull/120835). |
| 77 | + |
| 78 | +Rollup of 6 pull requests [#120862](https://github.com/rust-lang/rust/pull/120862) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d44e3b95cb9d410d89cb8ab3233906a33f43756a&end=b5c46dc5426038a49c95398bce30eeb20ec421e2&stat=instructions:u) |
| 79 | + |
| 80 | +| (instructions:u) | mean | range | count | |
| 81 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 82 | +| Regressions ❌ <br /> (primary) | 0.5% | [0.3%, 0.7%] | 7 | |
| 83 | +| Regressions ❌ <br /> (secondary) | 4.0% | [1.2%, 7.7%] | 13 | |
| 84 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 85 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 86 | +| All ❌✅ (primary) | 0.5% | [0.3%, 0.7%] | 7 | |
| 87 | + |
| 88 | +* Regression is expected to be partially resolved by [#120942](https://github.com/rust-lang/rust/pull/120942). |
| 89 | + |
| 90 | +Assert that params with the same *index* have the same *name* [#120619](https://github.com/rust-lang/rust/pull/120619) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1a648b397dedc98ada3dd3360f6d661ec2436c56&end=520b0b20aa8c218f84cefc6260f52406b84fa55f&stat=instructions:u) |
| 91 | + |
| 92 | +| (instructions:u) | mean | range | count | |
| 93 | +|:----------------------------------:|:-----:|:-------------:|:-----:| |
| 94 | +| Regressions ❌ <br /> (primary) | 6.0% | [1.6%, 19.0%] | 18 | |
| 95 | +| Regressions ❌ <br /> (secondary) | 12.2% | [0.8%, 19.1%] | 22 | |
| 96 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 97 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 98 | +| All ❌✅ (primary) | 6.0% | [1.6%, 19.0%] | 18 | |
| 99 | + |
| 100 | +* The `doc` regressions are unfortunately real, however this is a bugfix, `rustdoc` was doing incorrect work. |
| 101 | + |
| 102 | +#### Improvements |
| 103 | + |
| 104 | +Rollup of 13 pull requests [#120748](https://github.com/rust-lang/rust/pull/120748) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cfb42e5d7f6d5fc39f532ec251e1cea4bbafc746&end=8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6&stat=instructions:u) |
| 105 | + |
| 106 | +| (instructions:u) | mean | range | count | |
| 107 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 108 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 109 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 110 | +| Improvements ✅ <br /> (primary) | -1.1% | [-2.3%, -0.2%] | 27 | |
| 111 | +| Improvements ✅ <br /> (secondary) | -1.7% | [-2.2%, -1.4%] | 11 | |
| 112 | +| All ❌✅ (primary) | -1.1% | [-2.3%, -0.2%] | 27 | |
| 113 | + |
| 114 | +* Nice win caused by [#120733](https://github.com/rust-lang/rust/pull/120733). |
| 115 | + |
| 116 | +Prevent running some code if it is already in the map [#120579](https://github.com/rust-lang/rust/pull/120579) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=870a01a30e45d73b8e922a91850919e03f772636&end=81bef0b0ba78f9b7bb08beb0575e245fbe18674a&stat=instructions:u) |
| 117 | + |
| 118 | +| (instructions:u) | mean | range | count | |
| 119 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 120 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 121 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 122 | +| Improvements ✅ <br /> (primary) | -2.3% | [-5.9%, -0.8%] | 19 | |
| 123 | +| Improvements ✅ <br /> (secondary) | -4.0% | [-6.4%, -0.6%] | 22 | |
| 124 | +| All ❌✅ (primary) | -2.3% | [-5.9%, -0.8%] | 19 | |
| 125 | + |
| 126 | +* A nice win for `doc` benchmarks. |
| 127 | + |
| 128 | +Continue to borrowck even if there were previous errors [#120550](https://github.com/rust-lang/rust/pull/120550) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=81bef0b0ba78f9b7bb08beb0575e245fbe18674a&end=af88f7db51f6f2a1472f9279d7c7e7c822afff77&stat=instructions:u) |
| 129 | + |
| 130 | +| (instructions:u) | mean | range | count | |
| 131 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 132 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 133 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 134 | +| Improvements ✅ <br /> (primary) | -0.9% | [-1.0%, -0.8%] | 4 | |
| 135 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.7%, -0.3%] | 17 | |
| 136 | +| All ❌✅ (primary) | -0.9% | [-1.0%, -0.8%] | 4 | |
| 137 | + |
| 138 | +Harmonize `AsyncFn` implementations, make async closures conditionally impl `Fn*` traits [#120712](https://github.com/rust-lang/rust/pull/120712) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=68125c72d389060fe9aaee8d87ebd834f417c9fc&end=757b8efed44eacbbc6baf4a393f77d23d5be90c8&stat=instructions:u) |
| 139 | + |
| 140 | +| (instructions:u) | mean | range | count | |
| 141 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 142 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 143 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 144 | +| Improvements ✅ <br /> (primary) | -0.5% | [-0.8%, -0.2%] | 5 | |
| 145 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-0.7%, -0.5%] | 2 | |
| 146 | +| All ❌✅ (primary) | -0.5% | [-0.8%, -0.2%] | 5 | |
| 147 | + |
| 148 | + |
| 149 | +A trait's local impls are trivially coherent if there are no impls. [#120834](https://github.com/rust-lang/rust/pull/120834) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=084ce5bdb5f7dc1c725f6770a8de281165ba3b0a&end=de4d615e6b86f7ef6deacd24610b0678230b8af3&stat=instructions:u) |
| 150 | + |
| 151 | +| (instructions:u) | mean | range | count | |
| 152 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 153 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 154 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 155 | +| Improvements ✅ <br /> (primary) | -0.4% | [-1.0%, -0.2%] | 10 | |
| 156 | +| Improvements ✅ <br /> (secondary) | -1.4% | [-3.5%, -0.3%] | 24 | |
| 157 | +| All ❌✅ (primary) | -0.4% | [-1.0%, -0.2%] | 10 | |
| 158 | + |
| 159 | + |
| 160 | +#### Mixed |
| 161 | + |
| 162 | +Rollup of 9 pull requests [#120660](https://github.com/rust-lang/rust/pull/120660) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0984becf01112cbd3583c796541760b65340c8db&end=8c0b4f67c9b4bf477df38c16669fd576d46a2b3d&stat=instructions:u) |
| 163 | + |
| 164 | +| (instructions:u) | mean | range | count | |
| 165 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 166 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.2%, 1.4%] | 2 | |
| 167 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 168 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 169 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.2%] | 2 | |
| 170 | +| All ❌✅ (primary) | 0.8% | [0.2%, 1.4%] | 2 | |
| 171 | + |
| 172 | +* The regression was small and looks like noise, marking as triaged. |
| 173 | + |
| 174 | +Make `NonZero` constructors generic. [#120521](https://github.com/rust-lang/rust/pull/120521) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6894f435d35d3d540dcefbc51390158ca5954861&end=384b02c0825cefa59f2e8a99a33d9a5344959079&stat=instructions:u) |
| 175 | + |
| 176 | +| (instructions:u) | mean | range | count | |
| 177 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 178 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.4%, 1.7%] | 9 | |
| 179 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 180 | +| Improvements ✅ <br /> (primary) | -1.0% | [-1.0%, -1.0%] | 1 | |
| 181 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | |
| 182 | +| All ❌✅ (primary) | 0.5% | [-1.0%, 1.7%] | 10 | |
| 183 | + |
| 184 | +* Regression later resolved in [#120809](https://github.com/rust-lang/rust/pull/120809). |
| 185 | + |
| 186 | +Rollup of 9 pull requests [#120767](https://github.com/rust-lang/rust/pull/120767) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=af88f7db51f6f2a1472f9279d7c7e7c822afff77&end=1280928a99ad3ef2c5735b42dc8852456ae3b974&stat=instructions:u) |
| 187 | + |
| 188 | +| (instructions:u) | mean | range | count | |
| 189 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 190 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 | |
| 191 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 | |
| 192 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.2%] | 13 | |
| 193 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.8%, -0.2%] | 25 | |
| 194 | +| All ❌✅ (primary) | -0.2% | [-0.3%, 0.4%] | 15 | |
| 195 | + |
| 196 | +* The improvements outweight the regressions. Marked as triaged. |
| 197 | + |
| 198 | +Toggle assert_unsafe_precondition in codegen instead of expansion [#120594](https://github.com/rust-lang/rust/pull/120594) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=972452c4473b2d8f6f6415614f915296bfc34f12&end=8fb67fb37fed736cb04f307473af7c863be224fb&stat=instructions:u) |
| 199 | + |
| 200 | +| (instructions:u) | mean | range | count | |
| 201 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 202 | +| Regressions ❌ <br /> (primary) | 0.5% | [0.3%, 1.0%] | 13 | |
| 203 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 2.1%] | 8 | |
| 204 | +| Improvements ✅ <br /> (primary) | -0.6% | [-1.4%, -0.2%] | 15 | |
| 205 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-1.4%, -0.2%] | 15 | |
| 206 | +| All ❌✅ (primary) | -0.1% | [-1.4%, 1.0%] | 28 | |
| 207 | + |
| 208 | +* The wins and regressions are more or less balanced out. |
| 209 | + |
| 210 | +Rollup of 8 pull requests [#120843](https://github.com/rust-lang/rust/pull/120843) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8fb67fb37fed736cb04f307473af7c863be224fb&end=e28fae52d99d7c14bf0890d1f2b13c2c34fa8932&stat=instructions:u) |
| 211 | + |
| 212 | +| (instructions:u) | mean | range | count | |
| 213 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 214 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 215 | +| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 1.0%] | 11 | |
| 216 | +| Improvements ✅ <br /> (primary) | -0.5% | [-1.0%, -0.2%] | 41 | |
| 217 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-2.4%, -0.2%] | 17 | |
| 218 | +| All ❌✅ (primary) | -0.5% | [-1.0%, 0.2%] | 42 | |
| 219 | + |
| 220 | +* More wins than losses. Marked as triaged. |
| 221 | + |
| 222 | +Enable MIR JumpThreading by default [#117206](https://github.com/rust-lang/rust/pull/117206) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6cc4843512d613f51ec81aba689180c31b0b28b6&end=42752cbe095b9ad9941f20f22f80788d95f4ab06&stat=instructions:u) |
| 223 | + |
| 224 | +| (instructions:u) | mean | range | count | |
| 225 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 226 | +| Regressions ❌ <br /> (primary) | 1.8% | [0.4%, 7.1%] | 10 | |
| 227 | +| Regressions ❌ <br /> (secondary) | 1.0% | [0.4%, 3.3%] | 18 | |
| 228 | +| Improvements ✅ <br /> (primary) | -0.5% | [-1.6%, -0.2%] | 130 | |
| 229 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-2.5%, -0.3%] | 74 | |
| 230 | +| All ❌✅ (primary) | -0.4% | [-1.6%, 7.1%] | 140 | |
| 231 | + |
| 232 | +* Wins outweight the losses here, and this PR should also hopefully improve runtime performance slightly, |
| 233 | +which seems to be confirmed by our runtime `hashmap` benchmarks. Marked as triaged. |
| 234 | + |
| 235 | +Fold pointer operations in GVN [#120405](https://github.com/rust-lang/rust/pull/120405) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0cbef48150e1fab161b5fd147b57ceb3f9272a52&end=9aa232ecc7bb006a1fad404f437b049482021a3a&stat=instructions:u) |
| 236 | + |
| 237 | +| (instructions:u) | mean | range | count | |
| 238 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 239 | +| Regressions ❌ <br /> (primary) | 0.9% | [0.7%, 1.1%] | 2 | |
| 240 | +| Regressions ❌ <br /> (secondary) | 2.7% | [2.7%, 2.7%] | 1 | |
| 241 | +| Improvements ✅ <br /> (primary) | -0.5% | [-0.8%, -0.3%] | 4 | |
| 242 | +| Improvements ✅ <br /> (secondary) | -1.8% | [-1.8%, -1.8%] | 1 | |
| 243 | +| All ❌✅ (primary) | 0.0% | [-0.8%, 1.1%] | 6 | |
| 244 | + |
| 245 | +* There are a few regressions, but nothing too large. This change should eventually help the compiler |
| 246 | +optimize Rust code better. Marked as triaged. |
| 247 | + |
| 248 | +Lowering unnamed fields and anonymous adt [#115367](https://github.com/rust-lang/rust/pull/115367) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ed195328689e052b5270b25d0e410b491914fc71&end=bdc15928c8119a86d15e2946cb54851264607842&stat=instructions:u) |
| 249 | + |
| 250 | +| (instructions:u) | mean | range | count | |
| 251 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 252 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 253 | +| Regressions ❌ <br /> (secondary) | 6.1% | [0.3%, 20.7%] | 9 | |
| 254 | +| Improvements ✅ <br /> (primary) | -1.1% | [-1.1%, -1.1%] | 1 | |
| 255 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | |
| 256 | +| All ❌✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 | |
| 257 | + |
| 258 | +* A large regression on a stress test. Not marking as triaged yet. |
0 commit comments