| 
 | 1 | +# 2025-04-08 Triage Log  | 
 | 2 | + | 
 | 3 | +A busy week with lots of performance improvements. The largest performance improvement was from a revert of a previous week's regression just in time for the beta release. Another large improvement came to small tweaks in the query system showing that there still are opportunities for small, targeted performance improvements in the compiler.  | 
 | 4 | + | 
 | 5 | +Triage done by **@rylev**.  | 
 | 6 | +Revision range: [2ea33b59..e643f59f](https://perf.rust-lang.org/?start=2ea33b591050c4ca1a3752830b29112638faecf6&end=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&absolute=false&stat=instructions%3Au)  | 
 | 7 | + | 
 | 8 | +**Summary**:  | 
 | 9 | + | 
 | 10 | +| (instructions:u)                   | mean  | range           | count |  | 
 | 11 | +|:----------------------------------:|:-----:|:---------------:|:-----:|  | 
 | 12 | +| Regressions ❌ <br /> (primary)    | 0.8%  | [0.2%, 1.9%]    | 11    |  | 
 | 13 | +| Regressions ❌ <br /> (secondary)  | 8.4%  | [0.2%, 38.5%]   | 16    |  | 
 | 14 | +| Improvements ✅ <br /> (primary)   | -1.0% | [-35.1%, -0.2%] | 206   |  | 
 | 15 | +| Improvements ✅ <br /> (secondary) | -1.8% | [-8.6%, -0.1%]  | 155   |  | 
 | 16 | +| All ❌✅ (primary)                 | -0.9% | [-35.1%, 1.9%]  | 217   |  | 
 | 17 | + | 
 | 18 | + | 
 | 19 | +2 Regressions, 9 Improvements, 5 Mixed; 4 of them in rollups  | 
 | 20 | +48 artifact comparisons made in total  | 
 | 21 | + | 
 | 22 | +#### Regressions  | 
 | 23 | + | 
 | 24 | +Initial support for auto traits with default bounds [#120706](https://github.com/rust-lang/rust/pull/120706) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4fd8c04da0674af2c51310c9982370bfadfa1b98&end=9e14530c7c27123484658c88c2148a552b01e73b&stat=instructions:u)  | 
 | 25 | + | 
 | 26 | +| (instructions:u)                   | mean | range        | count |  | 
 | 27 | +|:----------------------------------:|:----:|:------------:|:-----:|  | 
 | 28 | +| Regressions ❌ <br /> (primary)    | 0.8% | [0.2%, 1.3%] | 7     |  | 
 | 29 | +| Regressions ❌ <br /> (secondary)  | 0.4% | [0.2%, 1.1%] | 21    |  | 
 | 30 | +| Improvements ✅ <br /> (primary)   | -    | -            | 0     |  | 
 | 31 | +| Improvements ✅ <br /> (secondary) | -    | -            | 0     |  | 
 | 32 | +| All ❌✅ (primary)                 | 0.8% | [0.2%, 1.3%] | 7     |  | 
 | 33 | +- A potential perf fix was tried in https://github.com/rust-lang/rust/pull/139365, but it did not work.  | 
 | 34 | +- Asked the author and reviewer if there was anything else to try.  | 
 | 35 | + | 
 | 36 | + | 
 | 37 | +Do not visit whole crate to compute `lints_that_dont_need_to_run`. [#133781](https://github.com/rust-lang/rust/pull/133781) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&end=c6c179662d5a6fc0520e05b5c0682dcfc7333f77&stat=instructions:u)  | 
 | 38 | + | 
 | 39 | +| (instructions:u)                   | mean | range        | count |  | 
 | 40 | +|:----------------------------------:|:----:|:------------:|:-----:|  | 
 | 41 | +| Regressions ❌ <br /> (primary)    | 0.3% | [0.2%, 0.4%] | 7     |  | 
 | 42 | +| Regressions ❌ <br /> (secondary)  | 0.3% | [0.1%, 0.6%] | 25    |  | 
 | 43 | +| Improvements ✅ <br /> (primary)   | -    | -            | 0     |  | 
 | 44 | +| Improvements ✅ <br /> (secondary) | -    | -            | 0     |  | 
 | 45 | +| All ❌✅ (primary)                 | 0.3% | [0.2%, 0.4%] | 7     |  | 
 | 46 | +- Seems like the perf regressions are a revert back to the mean after https://github.com/rust-lang/rust/pull/139482 which looks like a fluke run.  | 
 | 47 | + | 
 | 48 | + | 
 | 49 | +#### Improvements  | 
 | 50 | + | 
 | 51 | +Revert "Rollup merge of #136127 - WaffleLapkin:dyn_ptr_unwrap_cast, r=compiler-errors" [#138892](https://github.com/rust-lang/rust/pull/138892) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=10a76d634781180b4f5402c519f0c237d3be6ee6&end=ab5b1be771e63ea3736d8830e7b661decc6b1abc&stat=instructions:u)  | 
 | 52 | + | 
 | 53 | +| (instructions:u)                   | mean  | range           | count |  | 
 | 54 | +|:----------------------------------:|:-----:|:---------------:|:-----:|  | 
 | 55 | +| Regressions ❌ <br /> (primary)    | -     | -               | 0     |  | 
 | 56 | +| Regressions ❌ <br /> (secondary)  | 0.1%  | [0.0%, 0.2%]    | 2     |  | 
 | 57 | +| Improvements ✅ <br /> (primary)   | -0.7% | [-1.5%, -0.2%]  | 99    |  | 
 | 58 | +| Improvements ✅ <br /> (secondary) | -3.0% | [-11.3%, -0.1%] | 105   |  | 
 | 59 | +| All ❌✅ (primary)                 | -0.7% | [-1.5%, -0.2%]  | 99    |  | 
 | 60 | + | 
 | 61 | + | 
 | 62 | +Move `ast::Item::ident` into `ast::ItemKind` [#138740](https://github.com/rust-lang/rust/pull/138740) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97ea17b71aba0badfe9c8295f57a434bf79bdb72&end=ed201574c5d6117fb4a491db545c96fa4289ea9c&stat=instructions:u)  | 
 | 63 | + | 
 | 64 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 65 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 66 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 67 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 68 | +| Improvements ✅ <br /> (primary)   | -0.2% | [-0.3%, -0.1%] | 3     |  | 
 | 69 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.8%, -0.3%] | 2     |  | 
 | 70 | +| All ❌✅ (primary)                 | -0.2% | [-0.3%, -0.1%] | 3     |  | 
 | 71 | + | 
 | 72 | + | 
 | 73 | +Misc query tweaks [#139234](https://github.com/rust-lang/rust/pull/139234) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d5b4c2e4f19b6d7037371cdaecc3cc2c701c68df&end=365806089020f60a50391133a1430c40bc86963c&stat=instructions:u)  | 
 | 74 | + | 
 | 75 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 76 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 77 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 78 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 79 | +| Improvements ✅ <br /> (primary)   | -0.6% | [-1.4%, -0.2%] | 71    |  | 
 | 80 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-2.2%, -0.6%] | 9     |  | 
 | 81 | +| All ❌✅ (primary)                 | -0.6% | [-1.4%, -0.2%] | 71    |  | 
 | 82 | + | 
 | 83 | + | 
 | 84 | +Rollup of 7 pull requests [#139301](https://github.com/rust-lang/rust/pull/139301) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=946aea0b3d9f43e57953ce5094d8e4a2a244ce71&end=82eb03ec6220ee435e0e07fdaf3f0a68a79aab17&stat=instructions:u)  | 
 | 85 | + | 
 | 86 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 87 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 88 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 89 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 90 | +| Improvements ✅ <br /> (primary)   | -0.3% | [-0.5%, -0.2%] | 8     |  | 
 | 91 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.1%] | 35    |  | 
 | 92 | +| All ❌✅ (primary)                 | -0.3% | [-0.5%, -0.2%] | 8     |  | 
 | 93 | + | 
 | 94 | + | 
 | 95 | +Rollup of 9 pull requests [#139336](https://github.com/rust-lang/rust/pull/139336) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=00095b3da4f23d9b3e7a809ac6a4e2b2530df84c&end=4fd8c04da0674af2c51310c9982370bfadfa1b98&stat=instructions:u)  | 
 | 96 | + | 
 | 97 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 98 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 99 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 100 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 101 | +| Improvements ✅ <br /> (primary)   | -0.3% | [-0.3%, -0.2%] | 6     |  | 
 | 102 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.6%, -0.1%] | 21    |  | 
 | 103 | +| All ❌✅ (primary)                 | -0.3% | [-0.3%, -0.2%] | 6     |  | 
 | 104 | + | 
 | 105 | + | 
 | 106 | +Folder experiment: Monomorphize region resolver [#139287](https://github.com/rust-lang/rust/pull/139287) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9e14530c7c27123484658c88c2148a552b01e73b&end=f174fd716a429fa17eb1e98ba4e382f09312f8ad&stat=instructions:u)  | 
 | 107 | + | 
 | 108 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 109 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 110 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 111 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 112 | +| Improvements ✅ <br /> (primary)   | -0.3% | [-0.7%, -0.2%] | 34    |  | 
 | 113 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-1.6%, -0.2%] | 19    |  | 
 | 114 | +| All ❌✅ (primary)                 | -0.3% | [-0.7%, -0.2%] | 34    |  | 
 | 115 | + | 
 | 116 | + | 
 | 117 | +hygiene: Avoid recursion in syntax context decoding [#139281](https://github.com/rust-lang/rust/pull/139281) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1e008dd5d83e782ad37fc9cf6824733f824cc8cd&end=da8321773a5c3306e1ff159cf0560c9f89f016b9&stat=instructions:u)  | 
 | 118 | + | 
 | 119 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 120 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 121 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 122 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 123 | +| Improvements ✅ <br /> (primary)   | -0.5% | [-0.7%, -0.4%] | 3     |  | 
 | 124 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-0.7%, -0.3%] | 14    |  | 
 | 125 | +| All ❌✅ (primary)                 | -0.5% | [-0.7%, -0.4%] | 3     |  | 
 | 126 | + | 
 | 127 | + | 
 | 128 | +Folder experiment: Micro-optimize RegionEraserVisitor [#139292](https://github.com/rust-lang/rust/pull/139292) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0e9c3e52e492c9edacae96feb8deeb1695731273&end=0c478fdfe138a8b09744798c85fe2be657768b00&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)   | -4.7% | [-34.9%, -0.4%] | 9     |  | 
 | 135 | +| Improvements ✅ <br /> (secondary) | -     | -               | 0     |  | 
 | 136 | +| All ❌✅ (primary)                 | -4.7% | [-34.9%, -0.4%] | 9     |  | 
 | 137 | + | 
 | 138 | + | 
 | 139 | +Rollup of 9 pull requests [#139482](https://github.com/rust-lang/rust/pull/139482) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8fb32ab8e563124fe0968a2878b7f5b5d0e8d722&end=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&stat=instructions:u)  | 
 | 140 | + | 
 | 141 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 142 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 143 | +| Regressions ❌ <br /> (primary)    | -     | -              | 0     |  | 
 | 144 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 145 | +| Improvements ✅ <br /> (primary)   | -0.3% | [-0.4%, -0.2%] | 8     |  | 
 | 146 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.7%, -0.2%] | 22    |  | 
 | 147 | +| All ❌✅ (primary)                 | -0.3% | [-0.4%, -0.2%] | 8     |  | 
 | 148 | + | 
 | 149 | + | 
 | 150 | +#### Mixed  | 
 | 151 | + | 
 | 152 | +Remove `NtExpr` and `NtLiteral` [#138478](https://github.com/rust-lang/rust/pull/138478) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9b7d5ac8180f70110e94f92ccbf8fa2263d24c73&end=70dab5a27c03a5637cc1d4ba36a5139760d25e38&stat=instructions:u)  | 
 | 153 | + | 
 | 154 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 155 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 156 | +| Regressions ❌ <br /> (primary)    | 0.5%  | [0.1%, 2.6%]   | 80    |  | 
 | 157 | +| Regressions ❌ <br /> (secondary)  | 6.8%  | [0.2%, 38.2%]  | 41    |  | 
 | 158 | +| Improvements ✅ <br /> (primary)   | -     | -              | 0     |  | 
 | 159 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.2%] | 9     |  | 
 | 160 | +| All ❌✅ (primary)                 | 0.5%  | [0.1%, 2.6%]   | 80    |  | 
 | 161 | +- Performance impact was expected by the [author](https://github.com/rust-lang/rust/pull/138478#issuecomment-2771495885).  | 
 | 162 | + | 
 | 163 | + | 
 | 164 | +Update dependencies [#138848](https://github.com/rust-lang/rust/pull/138848) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c9cd7078450abc15f6b8c969b1021934fb36c2a6&end=79de6c0bbe76904ac7086b05327ee5756fb302b1&stat=instructions:u)  | 
 | 165 | + | 
 | 166 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 167 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 168 | +| Regressions ❌ <br /> (primary)    | 0.4%  | [0.4%, 0.4%]   | 1     |  | 
 | 169 | +| Regressions ❌ <br /> (secondary)  | 0.3%  | [0.1%, 0.5%]   | 5     |  | 
 | 170 | +| Improvements ✅ <br /> (primary)   | -0.2% | [-0.4%, -0.1%] | 14    |  | 
 | 171 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 15    |  | 
 | 172 | +| All ❌✅ (primary)                 | -0.2% | [-0.4%, 0.4%]  | 15    |  | 
 | 173 | +- Improvements outweigh the regressions and the number of regressions is small.  | 
 | 174 | + | 
 | 175 | + | 
 | 176 | +Various local trait item iteration cleanups [#139018](https://github.com/rust-lang/rust/pull/139018) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=79de6c0bbe76904ac7086b05327ee5756fb302b1&end=ae9173d7dd4a31806c950c90dcc331f1508b4d17&stat=instructions:u)  | 
 | 177 | + | 
 | 178 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 179 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 180 | +| Regressions ❌ <br /> (primary)    | 0.2%  | [0.2%, 0.2%]   | 2     |  | 
 | 181 | +| Regressions ❌ <br /> (secondary)  | -     | -              | 0     |  | 
 | 182 | +| Improvements ✅ <br /> (primary)   | -0.2% | [-0.3%, -0.2%] | 6     |  | 
 | 183 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.6%, -0.1%] | 40    |  | 
 | 184 | +| All ❌✅ (primary)                 | -0.1% | [-0.3%, 0.2%]  | 8     |  | 
 | 185 | +- Perf regressions outweighed by the perf improvements.  | 
 | 186 | + | 
 | 187 | + | 
 | 188 | +Rollup of 5 pull requests [#139257](https://github.com/rust-lang/rust/pull/139257) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ae9173d7dd4a31806c950c90dcc331f1508b4d17&end=4f0de4c81d80121ac7b576bc68d8016064f4d261&stat=instructions:u)  | 
 | 189 | + | 
 | 190 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 191 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 192 | +| Regressions ❌ <br /> (primary)    | 0.3%  | [0.2%, 0.4%]   | 13    |  | 
 | 193 | +| Regressions ❌ <br /> (secondary)  | 0.2%  | [0.1%, 0.6%]   | 32    |  | 
 | 194 | +| Improvements ✅ <br /> (primary)   | -0.7% | [-0.7%, -0.6%] | 4     |  | 
 | 195 | +| Improvements ✅ <br /> (secondary) | -1.0% | [-1.0%, -1.0%] | 1     |  | 
 | 196 | +| All ❌✅ (primary)                 | 0.1%  | [-0.7%, 0.4%]  | 17    |  | 
 | 197 | +- Found the cause in https://github.com/rust-lang/rust/pull/139232#issuecomment-2774701657  | 
 | 198 | + | 
 | 199 | + | 
 | 200 | +gvn: Invalid dereferences for all non-local mutations [#132527](https://github.com/rust-lang/rust/pull/132527) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=82eb03ec6220ee435e0e07fdaf3f0a68a79aab17&end=00095b3da4f23d9b3e7a809ac6a4e2b2530df84c&stat=instructions:u)  | 
 | 201 | + | 
 | 202 | +| (instructions:u)                   | mean  | range          | count |  | 
 | 203 | +|:----------------------------------:|:-----:|:--------------:|:-----:|  | 
 | 204 | +| Regressions ❌ <br /> (primary)    | 0.3%  | [0.1%, 0.9%]   | 37    |  | 
 | 205 | +| Regressions ❌ <br /> (secondary)  | 0.5%  | [0.1%, 1.3%]   | 29    |  | 
 | 206 | +| Improvements ✅ <br /> (primary)   | -0.9% | [-1.7%, -0.6%] | 6     |  | 
 | 207 | +| Improvements ✅ <br /> (secondary) | -1.7% | [-1.8%, -1.5%] | 6     |  | 
 | 208 | +| All ❌✅ (primary)                 | 0.2%  | [-1.7%, 0.9%]  | 43    |  | 
 | 209 | +- This PR seems to have brought about a decent number of perf regressions.   | 
 | 210 | +- Asked the author and reviewer  | 
 | 211 | + | 
0 commit comments