diff --git a/triage/2025/2025-10-13.md b/triage/2025/2025-10-13.md new file mode 100644 index 000000000..b916a9e9f --- /dev/null +++ b/triage/2025/2025-10-13.md @@ -0,0 +1,173 @@ +# 2025-10-13 Triage Log + +This week saw small wins across the board from some microoptimizations of the incremental query +system ([#147423](https://github.com/rust-lang/rust/pull/147423)). There have also been a couple of +regressions. [#142390](https://github.com/rust-lang/rust/pull/142390) introduced regressions of `check` +builds across the board. The largest regression (18%) is from an incremental opt build of a secondary +artificial stress test, so we deemed it acceptable. + +Triage done by **@kobzol**. +Revision range: [1a3cdd34..956f47c3](https://perf.rust-lang.org/?start=1a3cdd34629306fa67624eaa60d73687e7fcf855&end=956f47c32f1bd97b22cd702d7ccf78f0f0d42c34&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.7% | [0.1%, 2.0%] | 65 | +| Regressions ❌
(secondary) | 0.8% | [0.1%, 18.6%] | 65 | +| Improvements ✅
(primary) | -0.6% | [-1.6%, -0.1%] | 119 | +| Improvements ✅
(secondary) | -0.4% | [-1.6%, -0.1%] | 76 | +| All ❌✅ (primary) | -0.1% | [-1.6%, 2.0%] | 184 | + + +2 Regressions, 7 Improvements, 3 Mixed; 3 of them in rollups +35 artifact comparisons made in total + +#### Regressions + +Rollup of 12 pull requests [#147512](https://github.com/rust-lang/rust/pull/147512) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bd3487101ff9397ca8a54dd83aa360d93342b82e&end=acf243778e6c54cb7d54bee4be88e510e4be123e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:----:|:------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.4% | [0.0%, 0.8%] | 10 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | - | - | 0 | + +- Noise, the secondary benchmarks have rebounded in [#147519](https://github.com/rust-lang/rust/pull/147519). +- Marked as triaged. + +Fix normalization overflow ICEs in monomorphization [#146096](https://github.com/rust-lang/rust/pull/146096) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2300c2aef7dbc2a7bbbeaa9894d07d459abd9bc6&end=36e4f5d1fe1d63953a5bf1758ce2b64172623e2e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:----:|:-------------:|:-----:| +| Regressions ❌
(primary) | 0.4% | [0.2%, 0.6%] | 5 | +| Regressions ❌
(secondary) | 9.7% | [0.7%, 18.7%] | 2 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | 0.4% | [0.2%, 0.6%] | 5 | + +- The perf. hit was expected and deemed worth it, as this PR fixes a couple of issues. +- Apart from some tiny regressions, the single large regression is in a secondary stress test, and also in full incremental opt build. +- Marked as triaged. + +#### Improvements + +Rollup of 7 pull requests [#147449](https://github.com/rust-lang/rust/pull/147449) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fed46ffd5059e11669df1bd9406b02914c3fb73f&end=d62f33a7c684473bf6efa2f3ff57093bb8986141&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.3%, -0.1%] | 8 | +| Improvements ✅
(secondary) | -0.5% | [-0.5%, -0.5%] | 1 | +| All ❌✅ (primary) | -0.2% | [-0.3%, -0.1%] | 8 | + + +`DepNodeColor` tweaks [#147423](https://github.com/rust-lang/rust/pull/147423) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4fd31815524baba0bf368f151f757101f432e3de&end=5767910cbcc9d199bf261a468574d45aa3857599&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.6% | [-1.5%, -0.2%] | 98 | +| Improvements ✅
(secondary) | -0.6% | [-1.2%, -0.1%] | 47 | +| All ❌✅ (primary) | -0.6% | [-1.5%, -0.2%] | 98 | + + +[rustdoc] a small performance improvement: only allocate new string if there are DOS backlines in highlight.rs [#147443](https://github.com/rust-lang/rust/pull/147443) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=82224f6891c7e7aa0c6c865aa825100b3ea2d0fb&end=910617d84d611e9ba508fd57a058c59b8a767697&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.3%, -0.1%] | 4 | +| Improvements ✅
(secondary) | -0.2% | [-0.5%, -0.0%] | 5 | +| All ❌✅ (primary) | -0.2% | [-0.3%, -0.1%] | 4 | + + +Refactor AddCallGuards in two loops. [#147477](https://github.com/rust-lang/rust/pull/147477) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b6f0945e4681bc4d2faa7c22c5f61dc36abf7dd2&end=61efd190243db101d1e47c82c7ec543565c25f62&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.3%, -0.1%] | 8 | +| Improvements ✅
(secondary) | -0.3% | [-0.6%, -0.1%] | 9 | +| All ❌✅ (primary) | -0.2% | [-0.3%, -0.1%] | 8 | + + +Move more code to `RawVec::finish_grow` [#147124](https://github.com/rust-lang/rust/pull/147124) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=360a3a4e65cb70ea6e9da69cbb15f460dee516fd&end=be0ade2b602bdfe37a3cc259fcc79e8624dcba94&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.4%, -0.1%] | 5 | +| Improvements ✅
(secondary) | -0.1% | [-0.2%, -0.0%] | 7 | +| All ❌✅ (primary) | -0.2% | [-0.4%, -0.1%] | 5 | + + +Rollup of 8 pull requests [#147603](https://github.com/rust-lang/rust/pull/147603) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3be68033b67dfc2aa3ae4cfe735aa5805aebae43&end=89276493d3c3f85691e76b27a9dde7ec82e79cdb&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.0% | [0.0%, 0.0%] | 1 | +| Improvements ✅
(primary) | -0.2% | [-0.2%, -0.1%] | 3 | +| Improvements ✅
(secondary) | -0.1% | [-0.1%, -0.0%] | 13 | +| All ❌✅ (primary) | -0.2% | [-0.2%, -0.1%] | 3 | + + +Split overlapping_{inherent,trait}_impls [#147502](https://github.com/rust-lang/rust/pull/147502) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=35456985fab3419baf4bf111b8bbbd5e8565615d&end=956f47c32f1bd97b22cd702d7ccf78f0f0d42c34&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.4%, -0.1%] | 15 | +| Improvements ✅
(secondary) | -0.2% | [-0.2%, -0.1%] | 4 | +| All ❌✅ (primary) | -0.2% | [-0.4%, -0.1%] | 15 | + + +#### Mixed + +Prevent downstream `impl DerefMut for Pin` [#145608](https://github.com/rust-lang/rust/pull/145608) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4a54b26d30dac43778afb0e503524b763fce0eee&end=fed46ffd5059e11669df1bd9406b02914c3fb73f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.3% | [0.3%, 0.3%] | 2 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.0% | [-0.0%, -0.0%] | 1 | +| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 2 | + +- Tiny regression on hyper, otherwise netural. This PR fixes soundness anyway. +- Marked as triaged. + +Perform InstSimplify before ReferencePropagation. [#147483](https://github.com/rust-lang/rust/pull/147483) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b57d8154a6a74d2514cd3a674c1f29a588f224a&end=0b278a539440be291466ea463a9b6310eaf4d7bb&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.2% | [0.1%, 0.7%] | 6 | +| Improvements ✅
(primary) | -0.3% | [-0.5%, -0.1%] | 6 | +| Improvements ✅
(secondary) | -0.3% | [-0.6%, -0.1%] | 6 | +| All ❌✅ (primary) | -0.3% | [-0.5%, -0.1%] | 6 | + +- Some tiny wins on primary benchmarks, but overall it's a wash. +- Marked as triaged. + +Perform unused assignment and unused variables lints on MIR. [#142390](https://github.com/rust-lang/rust/pull/142390) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=89276493d3c3f85691e76b27a9dde7ec82e79cdb&end=ff6dc928c5e33ce8e65c6911a790b9efcb5ef53a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.6% | [0.1%, 2.0%] | 75 | +| Regressions ❌
(secondary) | 0.7% | [0.0%, 3.7%] | 76 | +| Improvements ✅
(primary) | -0.3% | [-0.3%, -0.3%] | 1 | +| Improvements ✅
(secondary) | -0.4% | [-0.5%, -0.4%] | 6 | +| All ❌✅ (primary) | 0.6% | [-0.3%, 2.0%] | 76 | + +- The regressions on the check builds are real, but they mostly didn't carry over to debug and opt builds. This is a big compiler change that took years to land, so I think that we just eat the cost. +- Marked as triaged.