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 and #119265.

Triage done by @kobzol. Revision range: bf9229a2e366b4c311f059014a4aa08af16de5d8..1ab783112ab4e4807304dbd249b39771246013ef

Summary:

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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 (Comparison Link)

(instructions:u)meanrangecount
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.