|
| 1 | +# 2022-07-05 Triage Log |
| 2 | + |
| 3 | +Overall the week is a small improvement on average, with some benchmarks |
| 4 | +(particularly in the primary category) showing significant improvements due to |
| 5 | +the enablement of MIR inlining in |
| 6 | +[#91743](https://github.com/rust-lang/rust/pull/91743). Inlining promises to |
| 7 | +improve the quality of our generated LLVM IR and make other optimizations more |
| 8 | +worthwhile, so it's great to see these early results already being quite |
| 9 | +impactful. |
| 10 | + |
| 11 | +Triage done by **@simulacrum**. |
| 12 | +Revision range: [baf382e63c023259fa1f9042f8f479f183ca6ed3..880646ca9c6dc21e04efe2f1940369a45b71ff2d](https://perf.rust-lang.org/?start=baf382e63c023259fa1f9042f8f479f183ca6ed3&end=880646ca9c6dc21e04efe2f1940369a45b71ff2d&absolute=false&stat=instructions%3Au) |
| 13 | + |
| 14 | +**Summary**: |
| 15 | + |
| 16 | +| | mean | max | count | |
| 17 | +|:----------:|:----:|:---:|:-----:| |
| 18 | +| Regressions πΏ <br /> (primary) | 1.9% | 11.9% | 111 | |
| 19 | +| Regressions πΏ <br /> (secondary) | 3.4% | 11.9% | 106 | |
| 20 | +| Improvements π <br /> (primary) | -2.8% | -9.7% | 105 | |
| 21 | +| Improvements π <br /> (secondary) | -4.4% | -16.8% | 97 | |
| 22 | +| All πΏπ (primary) | -0.4% | 11.9% | 216 | |
| 23 | + |
| 24 | + |
| 25 | +3 Regressions, 6 Improvements, 6 Mixed; 4 of them in rollups |
| 26 | +46 artifact comparisons made in total |
| 27 | + |
| 28 | +#### Regressions |
| 29 | + |
| 30 | +Fix FFI-unwind unsoundness with mixed panic mode [#97235](https://github.com/rust-lang/rust/pull/97235) |
| 31 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0075bb4fad68e64b6d1be06bf2db366c30bc75e1&end=6a1092056441652fe5fe5c5b422644951e6b99ce&stat=instructions:u) |
| 32 | + |
| 33 | +| | mean | max | count | |
| 34 | +|:----------:|:----:|:---:|:-----:| |
| 35 | +| Regressions πΏ <br /> (primary) | 0.5% | 1.2% | 86 | |
| 36 | +| Regressions πΏ <br /> (secondary) | 0.9% | 2.5% | 36 | |
| 37 | +| Improvements π <br /> (primary) | N/A | N/A | 0 | |
| 38 | +| Improvements π <br /> (secondary) | N/A | N/A | 0 | |
| 39 | +| All πΏπ (primary) | 0.5% | 1.2% | 86 | |
| 40 | + |
| 41 | +PR author notes this added a new query for each MIR body, so this is an |
| 42 | +expected regression, and given the soundness fix is not too large to need |
| 43 | +further investigation. |
| 44 | + |
| 45 | +Rollup of 5 pull requests [#98874](https://github.com/rust-lang/rust/pull/98874) |
| 46 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a5c6a48aee84215a9200dfa1c4c6ad88f5721f56&end=9c9ae85a4773be3c1e33717e4fa9759b4ce020ef&stat=instructions:u) |
| 47 | + |
| 48 | +| | mean | max | count | |
| 49 | +|:----------:|:----:|:---:|:-----:| |
| 50 | +| Regressions πΏ <br /> (primary) | 0.6% | 0.9% | 13 | |
| 51 | +| Regressions πΏ <br /> (secondary) | 1.4% | 2.4% | 12 | |
| 52 | +| Improvements π <br /> (primary) | N/A | N/A | 0 | |
| 53 | +| Improvements π <br /> (secondary) | N/A | N/A | 0 | |
| 54 | +| All πΏπ (primary) | 0.6% | 0.9% | 13 | |
| 55 | + |
| 56 | +Some possibly real, though small, regressions. Unclear cause; rollup doesn't |
| 57 | +obviously contain any sensitive PRs. |
| 58 | + |
| 59 | +Rollup of 8 pull requests [#98904](https://github.com/rust-lang/rust/pull/98904) |
| 60 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=27eb6d7018e397cf98d51c205e3576951d766323&end=e1d1848cc60a407d06f90fd16877a19bed6edd9b&stat=instructions:u) |
| 61 | + |
| 62 | +| | mean | max | count | |
| 63 | +|:----------:|:----:|:---:|:-----:| |
| 64 | +| Regressions πΏ <br /> (primary) | 0.7% | 0.9% | 8 | |
| 65 | +| Regressions πΏ <br /> (secondary) | 1.1% | 2.3% | 16 | |
| 66 | +| Improvements π <br /> (primary) | N/A | N/A | 0 | |
| 67 | +| Improvements π <br /> (secondary) | N/A | N/A | 0 | |
| 68 | +| All πΏπ (primary) | 0.7% | 0.9% | 8 | |
| 69 | + |
| 70 | +Interestingly, regressions here are remarkably similar to those in #98874 |
| 71 | +(previous rollup in this list). Not seeing an obvious connection between the PRs |
| 72 | +in the two rollups, though. |
| 73 | + |
| 74 | +#### Improvements |
| 75 | + |
| 76 | +proc_macro/bridge: stop using a remote object handle for proc_macro Punct and Group [#98188](https://github.com/rust-lang/rust/pull/98188) |
| 77 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=00ebeb87ac87a492bd59ace6bd43d6ad1629ca4e&end=94e93749ab00539a11e90426ea87382c433530a8&stat=instructions:u) |
| 78 | + |
| 79 | +| | mean | max | count | |
| 80 | +|:----------:|:----:|:---:|:-----:| |
| 81 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 82 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 83 | +| Improvements π <br /> (primary) | -0.5% | -1.4% | 15 | |
| 84 | +| Improvements π <br /> (secondary) | -1.6% | -5.0% | 16 | |
| 85 | +| All πΏπ (primary) | -0.5% | -1.4% | 15 | |
| 86 | + |
| 87 | + |
| 88 | +Update `smallvec` to 1.8.1. [#98558](https://github.com/rust-lang/rust/pull/98558) |
| 89 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=493c960a3e6cdd2e2fbe8b6ea130fadea05f1ab0&end=66c83ffca1512ed76f9445ec7f7280f768ef71c4&stat=instructions:u) |
| 90 | + |
| 91 | +| | mean | max | count | |
| 92 | +|:----------:|:----:|:---:|:-----:| |
| 93 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 94 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 95 | +| Improvements π <br /> (primary) | N/A | N/A | 0 | |
| 96 | +| Improvements π <br /> (secondary) | -1.7% | -2.4% | 9 | |
| 97 | +| All πΏπ (primary) | N/A | N/A | 0 | |
| 98 | + |
| 99 | + |
| 100 | +CTFE interning: don't walk allocations that don't need it [#97585](https://github.com/rust-lang/rust/pull/97585) |
| 101 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6a1092056441652fe5fe5c5b422644951e6b99ce&end=750d6f85459356db4838dc06db8b19406e1ed31a&stat=instructions:u) |
| 102 | + |
| 103 | +| | mean | max | count | |
| 104 | +|:----------:|:----:|:---:|:-----:| |
| 105 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 106 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 107 | +| Improvements π <br /> (primary) | -1.0% | -1.0% | 2 | |
| 108 | +| Improvements π <br /> (secondary) | -2.5% | -9.3% | 32 | |
| 109 | +| All πΏπ (primary) | -1.0% | -1.0% | 2 | |
| 110 | + |
| 111 | + |
| 112 | +Optimize `Vec::insert` for the case where `index == len`. [#98755](https://github.com/rust-lang/rust/pull/98755) |
| 113 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ada8c80bedb713b320af00aacab97d01d9cb5933&end=f99f9e48ed77a99747c6d07b42fdfe500f1a7de0&stat=instructions:u) |
| 114 | + |
| 115 | +| | mean | max | count | |
| 116 | +|:----------:|:----:|:---:|:-----:| |
| 117 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 118 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 119 | +| Improvements π <br /> (primary) | -0.4% | -1.0% | 8 | |
| 120 | +| Improvements π <br /> (secondary) | -1.2% | -2.4% | 13 | |
| 121 | +| All πΏπ (primary) | -0.4% | -1.0% | 8 | |
| 122 | + |
| 123 | + |
| 124 | +fully move dropck to mir [#98641](https://github.com/rust-lang/rust/pull/98641) |
| 125 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9c9ae85a4773be3c1e33717e4fa9759b4ce020ef&end=a3beeaa84da241f35888338ded6659938206ff13&stat=instructions:u) |
| 126 | + |
| 127 | +| | mean | max | count | |
| 128 | +|:----------:|:----:|:---:|:-----:| |
| 129 | +| Regressions πΏ <br /> (primary) | 0.5% | 0.7% | 2 | |
| 130 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 131 | +| Improvements π <br /> (primary) | -0.7% | -2.4% | 34 | |
| 132 | +| Improvements π <br /> (secondary) | -0.8% | -2.1% | 22 | |
| 133 | +| All πΏπ (primary) | -0.7% | -2.4% | 36 | |
| 134 | + |
| 135 | + |
| 136 | +interpret: track place alignment together with the type, not the value [#98846](https://github.com/rust-lang/rust/pull/98846) |
| 137 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e1d1848cc60a407d06f90fd16877a19bed6edd9b&end=4008dd8c6d92a0b81528fd138c6130d784e5958e&stat=instructions:u) |
| 138 | + |
| 139 | +| | mean | max | count | |
| 140 | +|:----------:|:----:|:---:|:-----:| |
| 141 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 142 | +| Regressions πΏ <br /> (secondary) | N/A | N/A | 0 | |
| 143 | +| Improvements π <br /> (primary) | -0.7% | -0.9% | 8 | |
| 144 | +| Improvements π <br /> (secondary) | -1.2% | -2.3% | 13 | |
| 145 | +| All πΏπ (primary) | -0.7% | -0.9% | 8 | |
| 146 | + |
| 147 | + |
| 148 | +#### Mixed |
| 149 | + |
| 150 | +Rollup of 9 pull requests [#98612](https://github.com/rust-lang/rust/pull/98612) |
| 151 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=baf382e63c023259fa1f9042f8f479f183ca6ed3&end=00ebeb87ac87a492bd59ace6bd43d6ad1629ca4e&stat=instructions:u) |
| 152 | + |
| 153 | +| | mean | max | count | |
| 154 | +|:----------:|:----:|:---:|:-----:| |
| 155 | +| Regressions πΏ <br /> (primary) | 0.7% | 1.0% | 5 | |
| 156 | +| Regressions πΏ <br /> (secondary) | 5.2% | 9.9% | 6 | |
| 157 | +| Improvements π <br /> (primary) | -1.0% | -1.1% | 2 | |
| 158 | +| Improvements π <br /> (secondary) | -0.8% | -2.4% | 22 | |
| 159 | +| All πΏπ (primary) | 0.2% | -1.1% | 7 | |
| 160 | + |
| 161 | + |
| 162 | +Rollup of 7 pull requests [#98656](https://github.com/rust-lang/rust/pull/98656) |
| 163 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=116edb6800ea1d6615578e7f65366ae65364b3d8&end=493c960a3e6cdd2e2fbe8b6ea130fadea05f1ab0&stat=instructions:u) |
| 164 | + |
| 165 | +| | mean | max | count | |
| 166 | +|:----------:|:----:|:---:|:-----:| |
| 167 | +| Regressions πΏ <br /> (primary) | 1.4% | 11.3% | 131 | |
| 168 | +| Regressions πΏ <br /> (secondary) | 3.5% | 11.2% | 73 | |
| 169 | +| Improvements π <br /> (primary) | N/A | N/A | 0 | |
| 170 | +| Improvements π <br /> (secondary) | -2.2% | -3.1% | 8 | |
| 171 | +| All πΏπ (primary) | 1.4% | 11.3% | 131 | |
| 172 | + |
| 173 | +Asked for further investigation on the PR, noting |
| 174 | +[#98277](https://github.com/rust-lang/rust/pull/98277) as a possible cause. |
| 175 | + |
| 176 | +move MIR syntax into a dedicated file and ping some people whenever it changes [#98649](https://github.com/rust-lang/rust/pull/98649) |
| 177 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5d3c6d6c83edc4ef245e77397c8e32d3ee453b67&end=a9eb9c52f3e8d8b6402e6acc69b9bcfc4f371d58&stat=instructions:u) |
| 178 | + |
| 179 | +| | mean | max | count | |
| 180 | +|:----------:|:----:|:---:|:-----:| |
| 181 | +| Regressions πΏ <br /> (primary) | 0.5% | 0.5% | 1 | |
| 182 | +| Regressions πΏ <br /> (secondary) | 1.6% | 4.3% | 20 | |
| 183 | +| Improvements π <br /> (primary) | -0.3% | -0.4% | 5 | |
| 184 | +| Improvements π <br /> (secondary) | -0.3% | -0.3% | 3 | |
| 185 | +| All πΏπ (primary) | -0.2% | 0.5% | 6 | |
| 186 | + |
| 187 | +This is *probably* noise, but it's not very clear. Regressions are minor enough |
| 188 | +that further investigation does not seem warranted. |
| 189 | + |
| 190 | +Enable MIR inlining [#91743](https://github.com/rust-lang/rust/pull/91743) |
| 191 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=aedf78e56b2279cc869962feac5153b6ba7001ed&end=0075bb4fad68e64b6d1be06bf2db366c30bc75e1&stat=instructions:u) |
| 192 | + |
| 193 | +| | mean | max | count | |
| 194 | +|:----------:|:----:|:---:|:-----:| |
| 195 | +| Regressions πΏ <br /> (primary) | 1.3% | 7.2% | 54 | |
| 196 | +| Regressions πΏ <br /> (secondary) | 1.7% | 6.1% | 68 | |
| 197 | +| Improvements π <br /> (primary) | -2.6% | -10.0% | 118 | |
| 198 | +| Improvements π <br /> (secondary) | -3.4% | -17.3% | 76 | |
| 199 | +| All πΏπ (primary) | -1.4% | -10.0% | 172 | |
| 200 | + |
| 201 | +A fairly large improvement for some benchmarks, and particularly large for |
| 202 | +bootstrap times (nearly 9% win). There are some fairly large regressions to a |
| 203 | +few select benchmarks which stress the inlining more than helping LLVM (e.g., |
| 204 | +stm32f4), but overall this is a great improvement in many cases. |
| 205 | + |
| 206 | +Avoid unnecessary work in `finalize_resolutions_in`. [#98569](https://github.com/rust-lang/rust/pull/98569) |
| 207 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f2d93935ffba3ab9d7ccb5300771a2d29b4c8bf3&end=5f98537eb7b5f42c246a52c550813c3cff336069&stat=instructions:u) |
| 208 | + |
| 209 | +| | mean | max | count | |
| 210 | +|:----------:|:----:|:---:|:-----:| |
| 211 | +| Regressions πΏ <br /> (primary) | 0.3% | 0.5% | 7 | |
| 212 | +| Regressions πΏ <br /> (secondary) | 0.5% | 0.7% | 7 | |
| 213 | +| Improvements π <br /> (primary) | -1.0% | -1.0% | 2 | |
| 214 | +| Improvements π <br /> (secondary) | -2.1% | -2.4% | 6 | |
| 215 | +| All πΏπ (primary) | 0.0% | -1.0% | 9 | |
| 216 | + |
| 217 | +Wins/losses balance out; already labeled as triaged. |
| 218 | + |
| 219 | +Don't use match-destructuring for derived ops on structs. [#98446](https://github.com/rust-lang/rust/pull/98446) |
| 220 | +[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2557603f320593be9d1c29a453c648e61e74d343&end=d46c728bcda687b1cf5f3bedca3d501e797b2a0f&stat=instructions:u) |
| 221 | + |
| 222 | +| | mean | max | count | |
| 223 | +|:----------:|:----:|:---:|:-----:| |
| 224 | +| Regressions πΏ <br /> (primary) | N/A | N/A | 0 | |
| 225 | +| Regressions πΏ <br /> (secondary) | 1.3% | 1.9% | 19 | |
| 226 | +| Improvements π <br /> (primary) | -0.6% | -1.5% | 66 | |
| 227 | +| Improvements π <br /> (secondary) | -5.4% | -12.3% | 33 | |
| 228 | +| All πΏπ (primary) | -0.6% | -1.5% | 66 | |
| 229 | + |
| 230 | +Overall an excellent, though somewhat small, improvement. Regressions are small |
| 231 | +and limited to a couple very artificial stress tests rather than real-world |
| 232 | +benchmarks. |
0 commit comments