diff --git a/triage/2023-12-26.md b/triage/2023-12-26.md new file mode 100644 index 000000000..8d82409c1 --- /dev/null +++ b/triage/2023-12-26.md @@ -0,0 +1,207 @@ +# 2023-12-26 Triage Log + +Some of the recent noise swings have been appearing again this week, but luckily +less often than before. There were a few actual regressions, but most of them +were localized to a single stress test. On the other hand, there were a few very +nice wins across the board, especially for check and incremental builds, primarily +thanks to [#118824](https://github.com/rust-lang/rust/pull/118824) and +[#119265](https://github.com/rust-lang/rust/pull/119265). + +Triage done by **@kobzol**. +Revision range: [bf9229a2e366b4c311f059014a4aa08af16de5d8..1ab783112ab4e4807304dbd249b39771246013ef](https://perf.rust-lang.org/?start=bf9229a2e366b4c311f059014a4aa08af16de5d8&end=1ab783112ab4e4807304dbd249b39771246013ef&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.6% | [0.6%, 0.6%] | 1 | +| Regressions ❌
(secondary) | 2.5% | [0.3%, 4.2%] | 10 | +| Improvements ✅
(primary) | -0.8% | [-3.3%, -0.1%] | 180 | +| Improvements ✅
(secondary) | -1.2% | [-5.5%, -0.2%] | 109 | +| All ❌✅ (primary) | -0.8% | [-3.3%, 0.6%] | 181 | + + +5 Regressions, 7 Improvements, 2 Mixed; 1 of them in rollups +58 artifact comparisons made in total + +#### Regressions + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.9% | [0.9%, 1.0%] | 6 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.4% | [-0.4%, -0.4%] | 1 | +| All ❌✅ (primary) | - | - | 0 | + +* This PR enables the use of exhaustiveness checking e.g. in rust-analyzer, which is part of the +"librarification effort". The small regression in a single stress-test benchmark is worth it. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:----:|:------------:|:-----:| +| Regressions ❌
(primary) | 0.7% | [0.6%, 0.7%] | 4 | +| Regressions ❌
(secondary) | 0.4% | [0.2%, 0.6%] | 19 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | 0.7% | [0.6%, 0.7%] | 4 | + +* This PR only added a test, so this has to be noise. +* Already marked as triaged by @jackh726 + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 2.9% | [2.6%, 3.1%] | 6 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -1.3% | [-1.3%, -1.3%] | 1 | +| All ❌✅ (primary) | - | - | 0 | + +* This PR fixed a potential hang in the compiler, the regression of the match checking stress-test +is unfortunate, but it's more important to avoid the pathological case. +* Already marked as triaged by @apiraino + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:----:|:------------:|:-----:| +| Regressions ❌
(primary) | 0.9% | [0.8%, 0.9%] | 3 | +| Regressions ❌
(secondary) | 0.5% | [0.3%, 0.7%] | 20 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | 0.9% | [0.8%, 0.9%] | 3 | + +* Noise + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:----:|:------------:|:-----:| +| Regressions ❌
(primary) | 0.7% | [0.7%, 0.7%] | 1 | +| Regressions ❌
(secondary) | 0.4% | [0.3%, 0.5%] | 6 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 1 | + +* Noise + +#### Improvements + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -1.9% | [-2.9%, -0.2%] | 8 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | -1.9% | [-2.9%, -0.2%] | 8 | + +* Very nice improvement to diesel. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.5% | [-1.3%, -0.2%] | 39 | +| Improvements ✅
(secondary) | -0.7% | [-1.7%, -0.2%] | 29 | +| All ❌✅ (primary) | -0.5% | [-1.3%, -0.2%] | 39 | + +* Nice improvements to check builds across the board. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.5% | [-0.8%, -0.3%] | 17 | +| Improvements ✅
(secondary) | -0.4% | [-0.6%, -0.2%] | 10 | +| All ❌✅ (primary) | -0.5% | [-0.8%, -0.3%] | 17 | + +* Nice win for type checking across several benchmarks. It's unclear which PR from the rollup +has caused the wins though. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.9% | [-0.9%, -0.8%] | 4 | +| Improvements ✅
(secondary) | -0.5% | [-0.8%, -0.2%] | 21 | +| All ❌✅ (primary) | -0.9% | [-0.9%, -0.8%] | 4 | + +* This is just noise returning back to steady state. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.2%, -0.1%] | 3 | +| Improvements ✅
(secondary) | -0.8% | [-0.9%, -0.6%] | 3 | +| All ❌✅ (primary) | -0.2% | [-0.2%, -0.1%] | 3 | + +* A few small wins for incremental benchmarks. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.7% | [-0.7%, -0.7%] | 2 | +| Improvements ✅
(secondary) | -0.4% | [-0.6%, -0.3%] | 5 | +| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 2 | + +* This PR only modified the UI and tests of rustdoc, so this is just noise. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -1.1% | [-1.1%, -1.1%] | 1 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | -1.1% | [-1.1%, -1.1%] | 1 | + +* This is probably just noise. + +#### Mixed + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.4% | [0.1%, 0.7%] | 20 | +| Regressions ❌
(secondary) | 0.6% | [0.2%, 1.0%] | 2 | +| Improvements ✅
(primary) | -0.4% | [-2.0%, -0.1%] | 27 | +| Improvements ✅
(secondary) | -0.9% | [-5.3%, -0.2%] | 16 | +| All ❌✅ (primary) | -0.1% | [-2.0%, 0.7%] | 47 | + +* This PR enabled more optimization opportunities for LLVM, which could in theory help with +program optimization, but it also caused some binary size increases and compile-time regressions. +* Not marking as triaged yet. + +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) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.9% | [0.9%, 0.9%] | 1 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.6% | [-2.1%, -0.2%] | 101 | +| Improvements ✅
(secondary) | -1.2% | [-3.2%, -0.2%] | 65 | +| All ❌✅ (primary) | -0.6% | [-2.1%, 0.9%] | 102 | + +* Very nice check and incremental wins across the board. +* The single regression is probably just noise returning back to steady state.