T-compiler Meeting Agenda 2024-12-26
Backport nominations
T-compiler beta / T-compiler stable
- :beta:“Do not call
extern_crate
on current trait on crate mismatch errors” rust#133585- Authored by estebank
- Fixes a recent crater run regression #133585 p-high/p-critical (and #133563, reported on nightly)
- :beta:“Handle
DropKind::ForLint
in coroutines correctly” rust#134575- Authored by compiler-errors
- Fixes 2 recent ICEs (#134566 and #134541)
- No stable nominations for
T-compiler
this time.
Performance logs
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 |
---|---|---|---|
https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-12-23.md | Regressions (primary) | 0.5% | [0.3%, 0.8%] |
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
Regressions
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.
Improvements
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 https://github.com/rust-lang/cc-rs/pull/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 |
Mixed
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.