We missed triage last week due to some process issues, so this triage includes two weeks of data. The overall result is positive, due to parser optimizations (#133793), trait solving optimizations (#134501, #132325) and bumping the cc crate (#134505), which improved the performance of C/C++ dependencies of the compiler.
Triage done by @kobzol. Revision range: 1b3fb316..0eca4dd3
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.5% | [0.3%, 0.8%] | 3 |
Regressions ❌ (secondary) |
1.0% | [1.0%, 1.0%] | 1 |
Improvements ✅ (primary) |
-1.8% | [-7.5%, -0.3%] | 254 |
Improvements ✅ (secondary) |
-1.3% | [-5.4%, -0.3%] | 224 |
All ❌✅ (primary) | -1.8% | [-7.5%, 0.8%] | 257 |
4 Regressions, 10 Improvements, 12 Mixed; 9 of them in rollups 90 artifact comparisons made in total
Rollup of 6 pull requests #134296 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.2%, 0.4%] | 7 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 7 |
- The regressions were caused by #134081.
- It was not deemed worthy to fix them, because of added maintenance burden.
- Marked as triaged.
Remove queries from the driver interface #134302 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.1%, 0.6%] | 11 |
Regressions ❌ (secondary) |
0.5% | [0.2%, 0.7%] | 18 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | 0.3% | [0.1%, 0.6%] | 11 |
- A few tiny regressions in doc builds, caused by a cleanup of the compiler driver interface.
- Marked as triaged.
Rollup of 8 pull requests #134582 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.2% | [0.2%, 0.2%] | 6 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 6 |
- Tiny regression on a single benchmark, I don't think that it's worthy to investigate further.
- Marked as triaged.
Asserts the maximum value that can be returned from Vec::len
#131193 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.2%, 1.2%] | 104 |
Regressions ❌ (secondary) |
0.3% | [0.1%, 0.8%] | 38 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | 0.3% | [0.2%, 1.2%] | 104 |
- The post-merge regression seems to be much larger than originally expected.
- Asked the PR author about this.
- Not marking as triaged yet.
Rollup of 9 pull requests #134137 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.9% | [-0.9%, -0.9%] | 1 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | -0.9% | [-0.9%, -0.9%] | 1 |
Rollup of 4 pull requests #134349 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.3% | [-0.8%, -0.1%] | 4 |
Improvements ✅ (secondary) |
-0.2% | [-0.2%, -0.2%] | 4 |
All ❌✅ (primary) | -0.3% | [-0.8%, -0.1%] | 4 |
Rollup of 9 pull requests #134395 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
-0.3% | [-0.7%, -0.2%] | 9 |
All ❌✅ (primary) | - | - | 0 |
rework winnowing to sensibly handle global where-bounds #132325 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.4% | [-1.0%, -0.2%] | 64 |
Improvements ✅ (secondary) |
-1.6% | [-2.1%, -0.7%] | 9 |
All ❌✅ (primary) | -0.4% | [-1.0%, -0.2%] | 64 |
Try to fix perf regression in rustdoc after hir attributes #134376 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.3% | [-0.6%, -0.2%] | 10 |
Improvements ✅ (secondary) |
-0.4% | [-0.6%, -0.2%] | 18 |
All ❌✅ (primary) | -0.3% | [-0.6%, -0.2%] | 10 |
Speed up Parser::expected_tokens
#133793 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.9% | [-2.5%, -0.2%] | 213 |
Improvements ✅ (secondary) |
-0.8% | [-2.5%, -0.1%] | 105 |
All ❌✅ (primary) | -0.9% | [-2.5%, -0.2%] | 213 |
Rollup of 5 pull requests #134559 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.5% | [-1.4%, -0.1%] | 17 |
Improvements ✅ (secondary) |
-3.1% | [-4.7%, -1.5%] | 3 |
All ❌✅ (primary) | -0.5% | [-1.4%, -0.1%] | 17 |
handle member constraints directly in the mir type checker #134501 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.4% | [-0.5%, -0.2%] | 65 |
Improvements ✅ (secondary) |
-0.3% | [-0.6%, -0.0%] | 58 |
All ❌✅ (primary) | -0.4% | [-0.5%, -0.2%] | 65 |
Bump compiler cc
to 1.2.5 #134505 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.7% | [-7.6%, -0.1%] | 244 |
Improvements ✅ (secondary) |
-0.7% | [-1.4%, -0.1%] | 196 |
All ❌✅ (primary) | -0.7% | [-7.6%, -0.1%] | 244 |
- The improvements were probably caused by rust-lang/cc-rs#1279.
cleanup TypeVerifier
#134465 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.3% | [-0.4%, -0.2%] | 6 |
Improvements ✅ (secondary) |
-0.4% | [-0.5%, -0.1%] | 16 |
All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
Introduce MixedBitSet
#133891 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
0.6% | [0.2%, 1.0%] | 8 |
Improvements ✅ (primary) |
-0.6% | [-1.3%, -0.2%] | 67 |
Improvements ✅ (secondary) |
-0.7% | [-2.0%, -0.2%] | 28 |
All ❌✅ (primary) | -0.6% | [-1.3%, -0.2%] | 67 |
- More improvements than regressions, especially on primary benchmarks.
- Already marked as triaged.
Rollup of 10 pull requests #134108 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.2%, 0.8%] | 9 |
Regressions ❌ (secondary) |
0.3% | [0.2%, 0.3%] | 7 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
-0.4% | [-0.7%, -0.2%] | 6 |
All ❌✅ (primary) | 0.3% | [0.2%, 0.8%] | 9 |
- Perf. runs for the most suspect PRs in the rollup haven't shown anything, but the regression is tiny, so it does not seem to be worthy of further investigation.
- Marked as triaged.
We don't need NonNull::as_ptr
debuginfo #133899 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.6% | [0.2%, 0.9%] | 2 |
Regressions ❌ (secondary) |
0.5% | [0.2%, 1.1%] | 4 |
Improvements ✅ (primary) |
-0.9% | [-2.1%, -0.3%] | 34 |
Improvements ✅ (secondary) |
-2.7% | [-3.0%, -2.5%] | 2 |
All ❌✅ (primary) | -0.9% | [-2.1%, 0.9%] | 36 |
- More improvements than regressions, and in particular very nice binary size wins.
- Marked as triaged.
Switch inline(always) in core/src/fmt/rt.rs to plain inline #134047 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
0.5% | [0.5%, 0.5%] | 1 |
Improvements ✅ (primary) |
-0.4% | [-0.5%, -0.3%] | 6 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | -0.4% | [-0.5%, -0.3%] | 6 |
- More improvements than regressions.
- Marked as triaged.
Move impl constness into impl trait header #134122 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.8% | [0.8%, 0.8%] | 1 |
Regressions ❌ (secondary) |
1.7% | [1.6%, 1.9%] | 6 |
Improvements ✅ (primary) |
-0.3% | [-1.1%, -0.1%] | 59 |
Improvements ✅ (secondary) |
-0.7% | [-2.5%, -0.2%] | 41 |
All ❌✅ (primary) | -0.3% | [-1.1%, 0.8%] | 60 |
- More improvements than regressions.
- Marked as triaged.
Bounds-check with PtrMetadata instead of Len in MIR #133734 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
0.3% | [0.2%, 0.3%] | 2 |
Improvements ✅ (primary) |
-1.4% | [-1.4%, -1.4%] | 1 |
Improvements ✅ (secondary) |
-0.6% | [-0.8%, -0.4%] | 6 |
All ❌✅ (primary) | -1.4% | [-1.4%, -1.4%] | 1 |
- Single tiny regression, otherwise tiny improvements.
- Marked as triaged.
Remove support for specializing ToString outside the standard library #134258 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.2%, 0.5%] | 3 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.4% | [-0.4%, -0.4%] | 1 |
Improvements ✅ (secondary) |
- | - | 0 |
All ❌✅ (primary) | 0.1% | [-0.4%, 0.5%] | 4 |
- Tiny regression that was deemed acceptable.
- Marked as triaged.
Modifies the index instruction from gep [0 x %Type]
to gep %Type
#134117 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.1% | [0.1%, 0.2%] | 2 |
Regressions ❌ (secondary) |
0.6% | [0.2%, 1.1%] | 17 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
-1.3% | [-1.4%, -1.2%] | 4 |
All ❌✅ (primary) | 0.1% | [0.1%, 0.2%] | 2 |
- The post-merge perf. is very similar to the previous perf. runs, which were deemed acceptable during review.
- Marked as triaged.
Hir attributes #131808 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.4% | [0.2%, 1.1%] | 9 |
Regressions ❌ (secondary) |
0.4% | [0.1%, 0.6%] | 20 |
Improvements ✅ (primary) |
-0.2% | [-0.4%, -0.2%] | 3 |
Improvements ✅ (secondary) |
-0.3% | [-0.7%, -0.2%] | 5 |
All ❌✅ (primary) | 0.3% | [-0.4%, 1.1%] | 12 |
- The regression was fixed in #134376.
- Marked as triaged.
Rollup of 11 pull requests #134470 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
- | - | 0 |
Regressions ❌ (secondary) |
0.2% | [0.1%, 0.4%] | 7 |
Improvements ✅ (primary) |
-0.2% | [-0.3%, -0.1%] | 3 |
Improvements ✅ (secondary) |
-0.5% | [-0.5%, -0.3%] | 5 |
All ❌✅ (primary) | -0.2% | [-0.3%, -0.1%] | 3 |
- Regressions seem to be balanced with improvements.
- Marked as triaged.
Rollup of 8 pull requests #134492 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.4% | [0.2%, 0.7%] | 10 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
- | - | 0 |
Improvements ✅ (secondary) |
-0.1% | [-0.1%, -0.1%] | 1 |
All ❌✅ (primary) | 0.4% | [0.2%, 0.7%] | 10 |
- The regressions seem to have blipped back soon after
- Marked as triaged.
Delete Rvalue::Len
🎉 #134330 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.3%, 0.4%] | 2 |
Regressions ❌ (secondary) |
- | - | 0 |
Improvements ✅ (primary) |
-0.3% | [-0.8%, -0.2%] | 7 |
Improvements ✅ (secondary) |
-0.3% | [-0.4%, -0.2%] | 2 |
All ❌✅ (primary) | -0.2% | [-0.8%, 0.4%] | 9 |
- More improvements than regressions.
- Marked as triaged.