|
| 1 | +# 2024-06-18 Triage Log |
| 2 | + |
| 3 | +Regressions outnumbered the improvements this week, but most of the regressions were deemed worth it for one reason or another. Overall, compiler performance didn't end up changing very much. |
| 4 | + |
| 5 | +Triage done by **@rylev**. |
| 6 | +Revision range: [b5b13568..c2932aaf](https://perf.rust-lang.org/?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 63 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 2.4%] | 70 | |
| 14 | +| Improvements ✅ <br /> (primary) | -0.6% | [-1.2%, -0.2%] | 8 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -1.1% | [-5.2%, -0.2%] | 7 | |
| 16 | +| All ❌✅ (primary) | 0.3% | [-1.2%, 1.0%] | 71 | |
| 17 | + |
| 18 | + |
| 19 | +5 Regressions, 2 Improvements, 7 Mixed; 2 of them in rollups |
| 20 | +58 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +Print `token::Interpolated` with token stream pretty printing. [#125174](https://github.com/rust-lang/rust/pull/125174) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3ea5e236ecb4c5f22437059f82d3915d311e4ec0&end=d0227c6a19c2d6e8dceb87c7a2776dc2b10d2a04&stat=instructions:u) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 9 | |
| 29 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 9 | |
| 33 | +- No discussion of the perf run done before merging, so I asked the author/reviewer for their thoughts. |
| 34 | +- It seems like most libc benchmarks were negatively impacted while no other benchmarks were. I'm not quite sure why that would be. |
| 35 | + |
| 36 | + |
| 37 | +Add `TyCtxt::is_lang_item`, use it in the compiler [#126491](https://github.com/rust-lang/rust/pull/126491) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9239d3eb2b08bfdff30c86cdd9ce32687e488f5d&end=8217b412a235407243f2516ebc859e7b3af8345a&stat=instructions:u) |
| 38 | + |
| 39 | +| (instructions:u) | mean | range | count | |
| 40 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 41 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 10 | |
| 42 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 43 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 44 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 45 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 10 | |
| 46 | +- The change was deemed worth it despite the perf regression. |
| 47 | + |
| 48 | + |
| 49 | +Indicate in `non_local_defs` lint that the macro needs to change [#125722](https://github.com/rust-lang/rust/pull/125722) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8217b412a235407243f2516ebc859e7b3af8345a&end=1d1356d0f67131f97b4f1631a24cd10d7dbcca42&stat=instructions:u) |
| 50 | + |
| 51 | +| (instructions:u) | mean | range | count | |
| 52 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 53 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 6 | |
| 54 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 55 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 56 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 57 | +| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 6 | |
| 58 | +- Only the diesel benchmark is affected, which is somewhat expected as it triggers the lint many many times (over 150 times). |
| 59 | + |
| 60 | + |
| 61 | +Rollup of 6 pull requests [#126605](https://github.com/rust-lang/rust/pull/126605) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=11380368dc53d0b2fc3a627408818eff1973ce9a&end=04ab7b2be0db3e6787f5303285c6b2ee6279868d&stat=instructions:u) |
| 62 | + |
| 63 | +| (instructions:u) | mean | range | count | |
| 64 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 65 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.4%] | 6 | |
| 66 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 67 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 68 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 69 | +| All ❌✅ (primary) | 0.3% | [0.3%, 0.4%] | 6 | |
| 70 | +- The benchmarks impacted seem to now swing wildly back and forth with every run so this isn't a perf regression per say. |
| 71 | + |
| 72 | + |
| 73 | +Migrate `inaccessible-temp-dir`, `output-with-hyphens` and `issue-10971-temps-dir` `run-make` tests to `rmake` [#126279](https://github.com/rust-lang/rust/pull/126279) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&stat=instructions:u) |
| 74 | + |
| 75 | +| (instructions:u) | mean | range | count | |
| 76 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 77 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 6 | |
| 78 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 79 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 80 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 81 | +| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 6 | |
| 82 | +- This has to be noise, this PR only modified tests. |
| 83 | + |
| 84 | + |
| 85 | +#### Improvements |
| 86 | + |
| 87 | +Migrate `link-arg`, `link-dedup` and `issue-26092` `run-make` tests to `rmake` format [#125500](https://github.com/rust-lang/rust/pull/125500) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=04ab7b2be0db3e6787f5303285c6b2ee6279868d&end=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&stat=instructions:u) |
| 88 | + |
| 89 | +| (instructions:u) | mean | range | count | |
| 90 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 91 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 92 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 93 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.3%] | 6 | |
| 94 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 95 | +| All ❌✅ (primary) | -0.4% | [-0.4%, -0.3%] | 6 | |
| 96 | + |
| 97 | + |
| 98 | +Migrate `extern-flag-fun`, `incremental-debugger-visualiser` and `incremental-session-fail` `run-make` tests to `rmake.rs` [#126490](https://github.com/rust-lang/rust/pull/126490) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&end=67cfc3a558a54e351d14120099bf3158812b4130&stat=instructions:u) |
| 99 | + |
| 100 | +| (instructions:u) | mean | range | count | |
| 101 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 102 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 103 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 104 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.3%] | 6 | |
| 105 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 106 | +| All ❌✅ (primary) | -0.3% | [-0.4%, -0.3%] | 6 | |
| 107 | + |
| 108 | + |
| 109 | +#### Mixed |
| 110 | + |
| 111 | +Add `SingleUseConsts` mir-opt pass [#125910](https://github.com/rust-lang/rust/pull/125910) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=fa1681c9f6a66f0240c46c98bfef6209c9d6df23&stat=instructions:u) |
| 112 | + |
| 113 | +| (instructions:u) | mean | range | count | |
| 114 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 115 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 | |
| 116 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 117 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 4 | |
| 118 | +| Improvements ✅ <br /> (secondary) | -2.3% | [-2.9%, -1.7%] | 2 | |
| 119 | +| All ❌✅ (primary) | -0.1% | [-0.4%, 0.4%] | 6 | |
| 120 | +- Wash on instruction counts, but nice binary size wins. The cycles improvements on tt-muncher is noise returning back to normal. |
| 121 | + |
| 122 | + |
| 123 | +Make `ObligationEmittingRelation`s emit `Goal` rather than `Obligation` [#126130](https://github.com/rust-lang/rust/pull/126130) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9a7bf4ae947feddac27007cbe26d161f4ff5a910&end=76c73827dcd0b363e60b22c3cef64bde4171bf17&stat=instructions:u) |
| 124 | + |
| 125 | +| (instructions:u) | mean | range | count | |
| 126 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 127 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 128 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.6%] | 14 | |
| 129 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 130 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 131 | +| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 132 | +- I'm asssuming the perf regression was deemed acceptable since these only occurred in stress tests? |
| 133 | + |
| 134 | + |
| 135 | +Tait must be constrained if in sig [#113169](https://github.com/rust-lang/rust/pull/113169) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bdb1b7f5d9715cc96cb437134eff93fa229defd1&end=02c7a5921e3de5c2b3ecb2e0082c1dafce0729a1&stat=instructions:u) |
| 136 | + |
| 137 | +| (instructions:u) | mean | range | count | |
| 138 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 139 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 140 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 141 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.3%] | 2 | |
| 142 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 143 | +| All ❌✅ (primary) | -0.0% | [-0.4%, 0.7%] | 3 | |
| 144 | +- Probably noise + we need the fix |
| 145 | + |
| 146 | + |
| 147 | +Extend SCC construction to enable extra functionality [#125069](https://github.com/rust-lang/rust/pull/125069) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8337ba9189de188e2ed417018af2bf17a57d51ac&end=8cf5101d77cd9eeb12751c563d8098aba2c604d0&stat=instructions:u) |
| 148 | + |
| 149 | +| (instructions:u) | mean | range | count | |
| 150 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 151 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.3%] | 6 | |
| 152 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.0%] | 10 | |
| 153 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 154 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 2 | |
| 155 | +| All ❌✅ (primary) | 0.2% | [0.2%, 0.3%] | 6 | |
| 156 | +- The perf regressions were brought down since the first perf run, but there's still instruction count regressions in primary benchmarks here (albeit not large ones). I asked the author/reviewer for thoughts. |
| 157 | + |
| 158 | + |
| 159 | +Remove superfluous UbChecks from `SliceIndex` methods [#126299](https://github.com/rust-lang/rust/pull/126299) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bc3618f31ea3866e6abea6995ec3979d12ffc65d&end=cd0c944b0750db887291bc25f20a05f8f31a8195&stat=instructions:u) |
| 160 | + |
| 161 | +| (instructions:u) | mean | range | count | |
| 162 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 163 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.6%] | 4 | |
| 164 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.5%, 1.3%] | 5 | |
| 165 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.6%, -0.2%] | 3 | |
| 166 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-0.8%, -0.4%] | 7 | |
| 167 | +| All ❌✅ (primary) | 0.1% | [-0.6%, 0.6%] | 7 | |
| 168 | +- Perf is largely a wash and was expected to have far reach consequences since it changes how slices are codegened. |
| 169 | + |
| 170 | + |
| 171 | +rustc_span: Optimize more hygiene operations using `Span::map_ctxt` [#126543](https://github.com/rust-lang/rust/pull/126543) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7f6ebacee13b6c03623c4b74197280454ede8de&end=6b65c30f8e0f6c18aa5f32cbad869b1d036c7851&stat=instructions:u) |
| 172 | + |
| 173 | +| (instructions:u) | mean | range | count | |
| 174 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 175 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 176 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 3 | |
| 177 | +| Improvements ✅ <br /> (primary) | -1.1% | [-1.4%, -0.3%] | 4 | |
| 178 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.2%] | 3 | |
| 179 | +| All ❌✅ (primary) | -0.8% | [-1.4%, 0.2%] | 5 | |
| 180 | +- Improvements outweigh the regressions which all seemed to be reversed sometime soon after this landed. |
| 181 | + |
| 182 | + |
| 183 | +Rollup of 3 pull requests [#126581](https://github.com/rust-lang/rust/pull/126581) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e23ae72ac7a393961886ea62df065ebb6def7d51&end=3baa20b783474330adb7ba7b3ddb02ac9facdf49&stat=instructions:u) |
| 184 | + |
| 185 | +| (instructions:u) | mean | range | count | |
| 186 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 187 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 188 | +| Regressions ❌ <br /> (secondary) | 1.3% | [1.3%, 1.3%] | 1 | |
| 189 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 6 | |
| 190 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 191 | +| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 | |
| 192 | +- Regression might be noise (and isn't big enough to care about even if it isn't) |
| 193 | + |
0 commit comments