|
| 1 | +# 2023-12-26 Triage Log |
| 2 | + |
| 3 | +Some of the recent noise swings have been appearing again this week, but luckily |
| 4 | +less often than before. There were a few actual regressions, but most of them |
| 5 | +were localized to a single stress test. On the other hand, there were a few very |
| 6 | +nice wins across the board, especially for check and incremental builds, primarily |
| 7 | +thanks to [#118824](https://github.com/rust-lang/rust/pull/118824) and |
| 8 | +[#119265](https://github.com/rust-lang/rust/pull/119265). |
| 9 | + |
| 10 | +Triage done by **@kobzol**. |
| 11 | +Revision range: [bf9229a2e366b4c311f059014a4aa08af16de5d8..1ab783112ab4e4807304dbd249b39771246013ef](https://perf.rust-lang.org/?start=bf9229a2e366b4c311f059014a4aa08af16de5d8&end=1ab783112ab4e4807304dbd249b39771246013ef&absolute=false&stat=instructions%3Au) |
| 12 | + |
| 13 | +**Summary**: |
| 14 | + |
| 15 | +| (instructions:u) | mean | range | count | |
| 16 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 17 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.6%, 0.6%] | 1 | |
| 18 | +| Regressions ❌ <br /> (secondary) | 2.5% | [0.3%, 4.2%] | 10 | |
| 19 | +| Improvements ✅ <br /> (primary) | -0.8% | [-3.3%, -0.1%] | 180 | |
| 20 | +| Improvements ✅ <br /> (secondary) | -1.2% | [-5.5%, -0.2%] | 109 | |
| 21 | +| All ❌✅ (primary) | -0.8% | [-3.3%, 0.6%] | 181 | |
| 22 | + |
| 23 | + |
| 24 | +5 Regressions, 7 Improvements, 2 Mixed; 1 of them in rollups |
| 25 | +58 artifact comparisons made in total |
| 26 | + |
| 27 | +#### Regressions |
| 28 | + |
| 29 | +Make exhaustiveness usable outside of rustc [#118842](https://github.com/rust-lang/rust/pull/118842) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c9c9f527e373efbb755e88661aaf012ad6a2d17c&end=3a539c08891a422d34beb32d2556a08ea0357b7d&stat=instructions:u) |
| 30 | + |
| 31 | +| (instructions:u) | mean | range | count | |
| 32 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 33 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 34 | +| Regressions ❌ <br /> (secondary) | 0.9% | [0.9%, 1.0%] | 6 | |
| 35 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 36 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 1 | |
| 37 | +| All ❌✅ (primary) | - | - | 0 | |
| 38 | + |
| 39 | +* This PR enables the use of exhaustiveness checking e.g. in rust-analyzer, which is part of the |
| 40 | +"librarification effort". The small regression in a single stress-test benchmark is worth it. |
| 41 | + |
| 42 | +mark ty::Const::Error when meet unsupport ty for const generic params [#117176](https://github.com/rust-lang/rust/pull/117176) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cf6427373b8b6d4b8efed2087fb9df5149e69e67&end=08cc634f1a26f30801daa1cbe7b866b12aaf1edd&stat=instructions:u) |
| 43 | + |
| 44 | +| (instructions:u) | mean | range | count | |
| 45 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 46 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.6%, 0.7%] | 4 | |
| 47 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.2%, 0.6%] | 19 | |
| 48 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 49 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 50 | +| All ❌✅ (primary) | 0.7% | [0.6%, 0.7%] | 4 | |
| 51 | + |
| 52 | +* This PR only added a test, so this has to be noise. |
| 53 | +* Already marked as triaged by @jackh726 |
| 54 | + |
| 55 | +Exhaustiveness: Improve complexity on some wide matches [#118796](https://github.com/rust-lang/rust/pull/118796) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ebb821f625db3cbc77c675326165b8dfc3d7a2be&end=1a086e49f14dd019a6ee147b6a9a72b32ac3fe2b&stat=instructions:u) |
| 56 | + |
| 57 | +| (instructions:u) | mean | range | count | |
| 58 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 59 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 60 | +| Regressions ❌ <br /> (secondary) | 2.9% | [2.6%, 3.1%] | 6 | |
| 61 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 62 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | |
| 63 | +| All ❌✅ (primary) | - | - | 0 | |
| 64 | + |
| 65 | +* This PR fixed a potential hang in the compiler, the regression of the match checking stress-test |
| 66 | +is unfortunate, but it's more important to avoid the pathological case. |
| 67 | +* Already marked as triaged by @apiraino |
| 68 | + |
| 69 | +Subtree sync for rustc_codegen_cranelift [#119278](https://github.com/rust-lang/rust/pull/119278) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1a086e49f14dd019a6ee147b6a9a72b32ac3fe2b&end=f736079c3caceca1adfd75822c754e1e31bddc3d&stat=instructions:u) |
| 70 | + |
| 71 | +| (instructions:u) | mean | range | count | |
| 72 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 73 | +| Regressions ❌ <br /> (primary) | 0.9% | [0.8%, 0.9%] | 3 | |
| 74 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.3%, 0.7%] | 20 | |
| 75 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 76 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 77 | +| All ❌✅ (primary) | 0.9% | [0.8%, 0.9%] | 3 | |
| 78 | + |
| 79 | +* Noise |
| 80 | + |
| 81 | +fix ICE when using raw ptr in a pattern [#119274](https://github.com/rust-lang/rust/pull/119274) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bf8716f1cd6416266807706bcae0ecb2e51c9d4a&end=471dcbdb0910bcacbef6732e5ec1dab0dcd6b999&stat=instructions:u) |
| 82 | + |
| 83 | +| (instructions:u) | mean | range | count | |
| 84 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 85 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 86 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.5%] | 6 | |
| 87 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 88 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 89 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 90 | + |
| 91 | +* Noise |
| 92 | + |
| 93 | +#### Improvements |
| 94 | + |
| 95 | +fast path for declared_generic_bounds_from_env [#119084](https://github.com/rust-lang/rust/pull/119084) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3a539c08891a422d34beb32d2556a08ea0357b7d&end=57ad5058d643d06c0e76bb85442ff9244d966f34&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) | -1.9% | [-2.9%, -0.2%] | 8 | |
| 102 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 103 | +| All ❌✅ (primary) | -1.9% | [-2.9%, -0.2%] | 8 | |
| 104 | + |
| 105 | +* Very nice improvement to diesel. |
| 106 | + |
| 107 | +use Vec for region constraints instead of BTreeMap [#118824](https://github.com/rust-lang/rust/pull/118824) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=398fd92e177cd1a47ae1bb146506953e87e73d30&end=d6d7a93866f2ffcfb51828b8859bdad760b54ce0&stat=instructions:u) |
| 108 | + |
| 109 | +| (instructions:u) | mean | range | count | |
| 110 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 111 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 112 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 113 | +| Improvements ✅ <br /> (primary) | -0.5% | [-1.3%, -0.2%] | 39 | |
| 114 | +| Improvements ✅ <br /> (secondary) | -0.7% | [-1.7%, -0.2%] | 29 | |
| 115 | +| All ❌✅ (primary) | -0.5% | [-1.3%, -0.2%] | 39 | |
| 116 | + |
| 117 | +* Nice improvements to check builds across the board. |
| 118 | + |
| 119 | +Rollup of 6 pull requests [#119237](https://github.com/rust-lang/rust/pull/119237) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=495203bf61efabecc2c460be38e1eb0f9952601b&end=c03d978a4bcb7c01d8cdf80bd7600b27e2d21588&stat=instructions:u) |
| 120 | + |
| 121 | +| (instructions:u) | mean | range | count | |
| 122 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 123 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 124 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 125 | +| Improvements ✅ <br /> (primary) | -0.5% | [-0.8%, -0.3%] | 17 | |
| 126 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.6%, -0.2%] | 10 | |
| 127 | +| All ❌✅ (primary) | -0.5% | [-0.8%, -0.3%] | 17 | |
| 128 | + |
| 129 | +* Nice win for type checking across several benchmarks. It's unclear which PR from the rollup |
| 130 | +has caused the wins though. |
| 131 | + |
| 132 | +Stabilize ip_in_core feature [#119276](https://github.com/rust-lang/rust/pull/119276) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f736079c3caceca1adfd75822c754e1e31bddc3d&end=e87ccb8676be9ab641849a2539b215d0c9027237&stat=instructions:u) |
| 133 | + |
| 134 | +| (instructions:u) | mean | range | count | |
| 135 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 136 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 137 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 138 | +| Improvements ✅ <br /> (primary) | -0.9% | [-0.9%, -0.8%] | 4 | |
| 139 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.8%, -0.2%] | 21 | |
| 140 | +| All ❌✅ (primary) | -0.9% | [-0.9%, -0.8%] | 4 | |
| 141 | + |
| 142 | +* This is just noise returning back to steady state. |
| 143 | + |
| 144 | +Unify SourceFile::name_hash and StableSourceFileId [#119139](https://github.com/rust-lang/rust/pull/119139) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e87ccb8676be9ab641849a2539b215d0c9027237&end=bf8716f1cd6416266807706bcae0ecb2e51c9d4a&stat=instructions:u) |
| 145 | + |
| 146 | +| (instructions:u) | mean | range | count | |
| 147 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 148 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 149 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 150 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.1%] | 3 | |
| 151 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-0.9%, -0.6%] | 3 | |
| 152 | +| All ❌✅ (primary) | -0.2% | [-0.2%, -0.1%] | 3 | |
| 153 | + |
| 154 | +* A few small wins for incremental benchmarks. |
| 155 | + |
| 156 | +Fix display of warning block if it is first element of the top doc block [#119283](https://github.com/rust-lang/rust/pull/119283) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=471dcbdb0910bcacbef6732e5ec1dab0dcd6b999&end=b87f649a5de8496df7be2fd272da5f1d42d82087&stat=instructions:u) |
| 157 | + |
| 158 | +| (instructions:u) | mean | range | count | |
| 159 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 160 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 161 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 162 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 2 | |
| 163 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.6%, -0.3%] | 5 | |
| 164 | +| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 2 | |
| 165 | + |
| 166 | +* This PR only modified the UI and tests of rustdoc, so this is just noise. |
| 167 | + |
| 168 | +Make closures carry their own ClosureKind [#119258](https://github.com/rust-lang/rust/pull/119258) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2271c26e4a8e062bb00d709d0ccb5846e0c341b9&end=1ab783112ab4e4807304dbd249b39771246013ef&stat=instructions:u) |
| 169 | + |
| 170 | +| (instructions:u) | mean | range | count | |
| 171 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 172 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 173 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 174 | +| Improvements ✅ <br /> (primary) | -1.1% | [-1.1%, -1.1%] | 1 | |
| 175 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 176 | +| All ❌✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 | |
| 177 | + |
| 178 | +* This is probably just noise. |
| 179 | + |
| 180 | +#### Mixed |
| 181 | + |
| 182 | +add more niches to rawvec [#106790](https://github.com/rust-lang/rust/pull/106790) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f704f3b93b1543cf504ecca0052f9f8531b1f61f&end=51c0db6a9118735190466d15432b5d8890bb09ee&stat=instructions:u) |
| 183 | + |
| 184 | +| (instructions:u) | mean | range | count | |
| 185 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 186 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 0.7%] | 20 | |
| 187 | +| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 1.0%] | 2 | |
| 188 | +| Improvements ✅ <br /> (primary) | -0.4% | [-2.0%, -0.1%] | 27 | |
| 189 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-5.3%, -0.2%] | 16 | |
| 190 | +| All ❌✅ (primary) | -0.1% | [-2.0%, 0.7%] | 47 | |
| 191 | + |
| 192 | +* This PR enabled more optimization opportunities for LLVM, which could in theory help with |
| 193 | +program optimization, but it also caused some binary size increases and compile-time regressions. |
| 194 | +* Not marking as triaged yet. |
| 195 | + |
| 196 | +Remove metadata decoding DefPathHash cache [#119265](https://github.com/rust-lang/rust/pull/119265) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=08cc634f1a26f30801daa1cbe7b866b12aaf1edd&end=ebb821f625db3cbc77c675326165b8dfc3d7a2be&stat=instructions:u) |
| 197 | + |
| 198 | +| (instructions:u) | mean | range | count | |
| 199 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 200 | +| Regressions ❌ <br /> (primary) | 0.9% | [0.9%, 0.9%] | 1 | |
| 201 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 202 | +| Improvements ✅ <br /> (primary) | -0.6% | [-2.1%, -0.2%] | 101 | |
| 203 | +| Improvements ✅ <br /> (secondary) | -1.2% | [-3.2%, -0.2%] | 65 | |
| 204 | +| All ❌✅ (primary) | -0.6% | [-2.1%, 0.9%] | 102 | |
| 205 | + |
| 206 | +* Very nice check and incremental wins across the board. |
| 207 | +* The single regression is probably just noise returning back to steady state. |
0 commit comments