|
| 1 | +# 2024-03-19 Triage Log |
| 2 | + |
| 3 | +Even though the summary might not look like it, this was actually a relatively quiet week, |
| 4 | +with a few small regressions. The large regression that is also shown in the summary table was |
| 5 | +caused by extending the verification of incremental compilation results. |
| 6 | +However, this verification is not actually fully enabled by default, so these regressions are mostly |
| 7 | +only visible in our benchmarking suite, which enables the verification to achieve more deterministic |
| 8 | +benchmarking results. One small regression was also caused by enabling frame pointers for the Rust |
| 9 | +standard library, which should improve profiling of Rust programs. |
| 10 | + |
| 11 | +Triage done by **@kobzol**. |
| 12 | +Revision |
| 13 | +range: [e919669d..21d94a3d](https://perf.rust-lang.org/?start=e919669d42dfb8950866d4cb268c5359eb3f7c54&end=21d94a3d2c63cacf8eaf9d0ca770c0b450c558d4&absolute=false&stat=instructions%3Au) |
| 14 | + |
| 15 | +**Summary**: |
| 16 | + |
| 17 | +| (instructions:u) | mean | range | count | |
| 18 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 19 | +| Regressions ❌ <br /> (primary) | 2.5% | [0.4%, 7.8%] | 207 | |
| 20 | +| Regressions ❌ <br /> (secondary) | 2.9% | [0.2%, 8.3%] | 128 | |
| 21 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 22 | +| Improvements ✅ <br /> (secondary) | -1.0% | [-1.3%, -0.4%] | 4 | |
| 23 | +| All ❌✅ (primary) | 2.5% | [0.4%, 7.8%] | 207 | |
| 24 | + |
| 25 | +4 Regressions, 1 Improvements, 6 Mixed; 4 of them in rollups |
| 26 | +67 artifact comparisons made in total |
| 27 | + |
| 28 | +#### Regressions |
| 29 | + |
| 30 | +Make `DefiningAnchor::Bind` only store the opaque types that may be constrained, instead of the |
| 31 | +current infcx root |
| 32 | +item. [#121796](https://github.com/rust-lang/rust/pull/121796) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6554a5645a13e4d9331fd028960d69be91d7492d&end=4ccbb7dc95596c7fc0c5756fdc47a17a56c085d3&stat=instructions:u) |
| 33 | + |
| 34 | +| (instructions:u) | mean | range | count | |
| 35 | +|:---------------------------------:|:----:|:------------:|:-----:| |
| 36 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 1.8%] | 112 | |
| 37 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.8%] | 27 | |
| 38 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 39 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 40 | +| All ❌✅ (primary) | 0.6% | [0.2%, 1.8%] | 112 | |
| 41 | + |
| 42 | +* This is a refactoring of the "old" trait solver that was necessary for follow-up compiler changes. |
| 43 | + |
| 44 | +Rollup of 12 pull |
| 45 | +requests [#122389](https://github.com/rust-lang/rust/pull/122389) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7de1a1f6db26cf7af43cca74819118428e6317ee&end=6b1e5d9db3b0d569bd847fdcb98c85ee8f7a8ef1&stat=instructions:u) |
| 46 | + |
| 47 | +| (instructions:u) | mean | range | count | |
| 48 | +|:---------------------------------:|:----:|:------------:|:-----:| |
| 49 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 3 | |
| 50 | +| Regressions ❌ <br /> (secondary) | 1.1% | [0.5%, 2.1%] | 3 | |
| 51 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 52 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 53 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 3 | |
| 54 | + |
| 55 | +* Noise, marked as triaged. |
| 56 | + |
| 57 | +Verify that query keys result in unique dep |
| 58 | +nodes [#122227](https://github.com/rust-lang/rust/pull/122227) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e61dcc7a0ac33ef054d76453307124233edcf545&end=d3555f3d8e555ce488bbf8eee5eccdb66a464e14&stat=instructions:u) |
| 59 | + |
| 60 | +| (instructions:u) | mean | range | count | |
| 61 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 62 | +| Regressions ❌ <br /> (primary) | 2.0% | [0.2%, 7.8%] | 193 | |
| 63 | +| Regressions ❌ <br /> (secondary) | 2.4% | [0.3%, 7.8%] | 153 | |
| 64 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 65 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | |
| 66 | +| All ❌✅ (primary) | 2.0% | [0.2%, 7.8%] | 193 | |
| 67 | + |
| 68 | +* This PR adds additional verification to the compiler that checks if incremental compilation didn't |
| 69 | + encounter problems. |
| 70 | +* This result looks quite bad, but that is mostly caused by the configuration of our benchmark |
| 71 | + suite, which fully enables this verification to make benchmarking more deterministic. |
| 72 | +* Normal builds of user code should not be affected by this change. |
| 73 | + |
| 74 | +Enable frame pointers for the standard |
| 75 | +library [#122646](https://github.com/rust-lang/rust/pull/122646) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=13abc0ac9b2b77299cf02d634fc409e26a180ef3&end=3cdcdaf31b45f8045164aae9604573d23091970b&stat=instructions:u) |
| 76 | + |
| 77 | +| (instructions:u) | mean | range | count | |
| 78 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 79 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.6%] | 70 | |
| 80 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.5%] | 22 | |
| 81 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 82 | +| Improvements ✅ <br /> (secondary) | -2.0% | [-2.0%, -2.0%] | 1 | |
| 83 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.6%] | 70 | |
| 84 | + |
| 85 | +* This PR has a small instruction count cost across the board, but cycles and walltime were affected |
| 86 | + much less. |
| 87 | +* It enables frame pointers for the Rust standard library, which should make profiling of Rust code |
| 88 | + more robust and accurate, which should be worth this small perf. hit. |
| 89 | +* Marked as triaged. |
| 90 | + |
| 91 | +#### Improvements |
| 92 | + |
| 93 | +Rollup of 15 pull |
| 94 | +requests [#122338](https://github.com/rust-lang/rust/pull/122338) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=65cd843ae06ad00123c131a431ed5304e4cd577a&end=6554a5645a13e4d9331fd028960d69be91d7492d&stat=instructions:u) |
| 95 | + |
| 96 | +| (instructions:u) | mean | range | count | |
| 97 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 98 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 99 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 100 | +| Improvements ✅ <br /> (primary) | -1.2% | [-1.2%, -1.1%] | 4 | |
| 101 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-1.2%, -0.4%] | 13 | |
| 102 | +| All ❌✅ (primary) | -1.2% | [-1.2%, -1.1%] | 4 | |
| 103 | + |
| 104 | +#### Mixed |
| 105 | + |
| 106 | +Update |
| 107 | +cargo [#122394](https://github.com/rust-lang/rust/pull/122394) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6b1e5d9db3b0d569bd847fdcb98c85ee8f7a8ef1&end=a165f1f65015b1bd4afd2ec50700aaacf2e0c485&stat=instructions:u) |
| 108 | + |
| 109 | +| (instructions:u) | mean | range | count | |
| 110 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 111 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 112 | +| Regressions ❌ <br /> (secondary) | 1.1% | [1.1%, 1.1%] | 1 | |
| 113 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 3 | |
| 114 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.3%] | 5 | |
| 115 | +| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 3 | |
| 116 | + |
| 117 | +* Most likely noise. |
| 118 | + |
| 119 | +more eagerly instantiate |
| 120 | +binders [#119849](https://github.com/rust-lang/rust/pull/119849) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=30f74ff0dc4d66debc8b50724c446f817e5f75f4&end=fd27e8745f0f04dc7c289893ef54a618c7c9e1da&stat=instructions:u) |
| 121 | + |
| 122 | +| (instructions:u) | mean | range | count | |
| 123 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 124 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.2%, 1.1%] | 14 | |
| 125 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.4%, 1.0%] | 7 | |
| 126 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 127 | +| Improvements ✅ <br /> (secondary) | -1.2% | [-1.4%, -1.1%] | 6 | |
| 128 | +| All ❌✅ (primary) | 0.7% | [0.2%, 1.1%] | 14 | |
| 129 | + |
| 130 | +* A small regression for trait-heavy crates, caused by a fix to the trait solver. |
| 131 | +* Marked as triaged. |
| 132 | + |
| 133 | +Rollup of 9 pull |
| 134 | +requests [#122607](https://github.com/rust-lang/rust/pull/122607) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4c1b9c3e2f402efe27a24e424c9b59aa2fa5c83f&end=c8813ddd6d2602ae5473752031fd16ba70a6e4a7&stat=instructions:u) |
| 135 | + |
| 136 | +| (instructions:u) | mean | range | count | |
| 137 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 138 | +| Regressions ❌ <br /> (primary) | 1.7% | [1.7%, 1.7%] | 1 | |
| 139 | +| Regressions ❌ <br /> (secondary) | 2.7% | [2.7%, 2.7%] | 1 | |
| 140 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 141 | +| Improvements ✅ <br /> (secondary) | -5.3% | [-5.3%, -5.3%] | 1 | |
| 142 | +| All ❌✅ (primary) | 1.7% | [1.7%, 1.7%] | 1 | |
| 143 | + |
| 144 | +* The largest regression was caused by [#122601](https://github.com/rust-lang/rust/pull/122601), |
| 145 | + which should enable more LLVM optimizations, so some regressions to `opt` benchmarks is expected. |
| 146 | +* Marked as triaged. |
| 147 | + |
| 148 | +Move generic `NonZero` `rustc_layout_scalar_valid_range_start` attribute to inner |
| 149 | +type. [#121885](https://github.com/rust-lang/rust/pull/121885) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c8813ddd6d2602ae5473752031fd16ba70a6e4a7&end=a615cea3339046c7ab2d75cd253727d1fd42dd0b&stat=instructions:u) |
| 150 | + |
| 151 | +| (instructions:u) | mean | range | count | |
| 152 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 153 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.6%] | 9 | |
| 154 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 155 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 156 | +| Improvements ✅ <br /> (secondary) | -2.8% | [-2.8%, -2.8%] | 1 | |
| 157 | +| All ❌✅ (primary) | 0.4% | [0.3%, 0.6%] | 9 | |
| 158 | + |
| 159 | +* A small regression caused by internal refactoring in the compiler. Marked as triaged. |
| 160 | + |
| 161 | +Rollup of 8 pull |
| 162 | +requests [#122690](https://github.com/rust-lang/rust/pull/122690) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3cdcdaf31b45f8045164aae9604573d23091970b&end=d31b6fb8c06b43536ac5be38462d2a55784e2199&stat=instructions:u) |
| 163 | + |
| 164 | +| (instructions:u) | mean | range | count | |
| 165 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 166 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 167 | +| Regressions ❌ <br /> (secondary) | 2.7% | [0.2%, 5.3%] | 2 | |
| 168 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.2%] | 7 | |
| 169 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.3%] | 9 | |
| 170 | +| All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 7 | |
| 171 | + |
| 172 | +* Most likely noise, marked as triaged. |
| 173 | + |
| 174 | +Rollup of 11 pull |
| 175 | +requests [#122713](https://github.com/rust-lang/rust/pull/122713) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d31b6fb8c06b43536ac5be38462d2a55784e2199&end=3c85e56249b0b1942339a6a989a971bf6f1c9e0f&stat=instructions:u) |
| 176 | + |
| 177 | +| (instructions:u) | mean | range | count | |
| 178 | +|:---------------------------------:|:-----:|:--------------:|:-----:| |
| 179 | +| Regressions ❌ <br /> (primary) | 1.0% | [0.5%, 1.4%] | 3 | |
| 180 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 181 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 182 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.4%] | 7 | |
| 183 | +| All ❌✅ (primary) | 1.0% | [0.5%, 1.4%] | 3 | |
| 184 | + |
| 185 | +* Small regression in match checking caused |
| 186 | + by [#121823](https://github.com/rust-lang/rust/pull/121823), |
| 187 | + which improves compiler diagnostics. |
| 188 | +* Marked as triaged. |
0 commit comments