T Compiler Meeting Agenda 2025 08 28

T-compiler Meeting Agenda 2025-08-28

Announcements

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

T-types beta / T-types stable

  • No beta nominations for T-types this time.
  • No stable nominations for T-types this time.

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • pin!() has incorrect/unexpected drop order inside if-let.” rust#145328
    • fixed by #145342
  • “SIGSEGV without unsafe when passing &dyn Trait to &dyn ParentTraitrust#145752
    • Should be solved by #145807 (being reviewed)

T-types

  • “SIGSEGV without unsafe when passing &dyn Trait to &dyn ParentTraitrust#145752

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs

Lot of regressions this week, mostly in rustdoc benchmarks from newly added features. The rest of the suite saw mostly small regressions in small benchmarks and also some improvements, notably from token tree parsing optimization in macro code, span optimization and ongoing work on new solver, which is not fully enabled, yet.

Triage done by @panstromek. Revision range: 239e8b1b..ee361e8f

Summary:

(instructions:u)meanrangecount
Regressions (primary)3.7%[0.3%, 34.5%]42
Regressions (secondary)2.3%[0.0%, 53.3%]79
Improvements (primary)-0.5%[-0.7%, -0.3%]9
Improvements (secondary)-0.9%[-2.8%, -0.0%]30
All (primary)3.0%[-0.7%, 34.5%]51

5 Regressions, 1 Improvement, 7 Mixed; 6 of them in rollups 38 artifact comparisons made in total

Regressions

Rollup of 19 pull requests #145589 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)6.2%[0.2%, 33.1%]18
Regressions (secondary)3.4%[0.3%, 50.8%]24
Improvements (primary)--0
Improvements (secondary)-0.0%[-0.0%, -0.0%]1
All (primary)6.2%[0.2%, 33.1%]18

doc regressions were expected, but not as big. Pinged @zalathar, who investigated some of the regressions.

Rollup of 15 pull requests #145600 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)4.6%[4.6%, 4.6%]1
Regressions (secondary)4.4%[4.4%, 4.4%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)4.6%[4.6%, 4.6%]1

Looks like noise, syn is just coming back from a spike from previous rollup.

Split transmute check from HIR typeck #145469 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.6%[0.6%, 0.6%]1
Regressions (secondary)0.8%[0.6%, 1.0%]6
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.6%[0.6%, 0.6%]1

Regression looks real, but small and affect mostly secondary stress test. Asked on the PR whether that’s justified.

Rollup of 28 pull requests #145773 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.5%]1
Regressions (secondary)2.1%[0.1%, 4.2%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.5%, 0.5%]1

include-blob regression looks like noise (similar bump we occasinaly see on it). Smaller doc regression was identified by @zalathar as #145731 and is somewhat expected as there’s more work to do when generating search index.

Add support for macro expansion in rustdoc source code pages #137229 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)1.5%[0.4%, 6.6%]16
Regressions (secondary)5.8%[0.6%, 16.5%]10
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.5%[0.4%, 6.6%]16

doc regression, triaged by @GuillaumeGomez: “Sadly the perf impact was to be expected since it adds more code.” Some performance improvement is likely possible by future improvements based on another commment in the thread.

Improvements

Sometimes skip over tokens in parse_token_tree. #145348 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-1.0%[-2.1%, -0.3%]16
All (primary)--0

Mixed

Update cargo #145478 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)1.1%[1.0%, 1.2%]2
Regressions (secondary)1.1%[1.1%, 1.1%]1
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.4%, -0.3%]7
All (primary)1.1%[1.0%, 1.2%]2

Regressions in syn look like noise, returning to previous state. Cargo update should have no effect on this. Already triaged by Mark.

library: Migrate from cfg_if to cfg_select #145489 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.2%, 0.4%]9
Improvements (primary)-1.2%[-1.2%, -1.2%]1
Improvements (secondary)--0
All (primary)-1.2%[-1.2%, -1.2%]1

include-blob regersion is noise (bimodality, returning to the default state).

Rollup of 15 pull requests #145599 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.2%[0.1%, 0.5%]11
Improvements (primary)-4.8%[-4.8%, -4.8%]1
Improvements (secondary)-4.6%[-4.6%, -4.6%]1
All (primary)-2.3%[-4.8%, 0.2%]2

Non doc results are noise. For doc regressions, seems like https://github.com/rust-lang/rust/pull/139345 is the most likely (based on these results? It seems plausible as it changes FxHashMap to FxIndexMap, which is bigger I believe. I’m inclined to say that it’s ok, since that’s a correctness change, too and the regressions are small (also seem a bit overshooting and slightly reduced in next PR).

Tell LLVM about read-only captures #145259 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.8%]1
Regressions (secondary)0.3%[0.2%, 0.4%]7
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)-1.3%[-1.7%, -0.2%]8
All (primary)0.3%[-0.2%, 0.8%]2

include-blob regressions are noise. serde_derive looks real but it’s tiny (adding a println statement). Seems like the biggest query differences are in LLVM, that seems to match the PR area.

Rollup of 16 pull requests #145728 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.8%[-1.2%, -0.4%]5
Improvements (secondary)--0
All (primary)-0.8%[-1.2%, -0.4%]5

Single regression is in new solver, which is not finished and not enabled by default.

Only unpack span data once to compute end_point and next_point. #145494 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.7%[0.4%, 0.8%]6
Improvements (primary)-0.3%[-0.3%, -0.2%]2
Improvements (secondary)-0.5%[-0.6%, -0.4%]9
All (primary)-0.3%[-0.3%, -0.2%]2

tt-muncher regression is noise (bimodality, returning back to previous state)

Rollup of 14 pull requests #145796 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.8%[0.8%, 0.9%]2
Regressions (secondary)1.5%[1.5%, 1.5%]1
Improvements (primary)-0.4%[-0.4%, -0.3%]2
Improvements (secondary)--0
All (primary)0.2%[-0.4%, 0.9%]4

tt-muncher regression is noise. The other two I’m not sure. They could also be noise because they have symetrical improvements from https://github.com/rust-lang/rust/pull/145728. All of this is in the backend, I don’t see anything related in the PR list, so I guess it might be codegen unit shuffling?

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Add FileCheck annotations to mir-opt/copy-prop” rust#135099 (last review activity: 4 months ago)
    • cc @Wesley Wiser
  • “error out when repr(align) exceeds COFF limit” rust#142638 (last review activity: 2 months ago)
    • cc @Jubilee
  • “Fix passing/returning structs with the 64-bit SPARC ABI” rust#142680 (last review activity: 2 months ago)
    • cc: @Jubilee
  • “Offload host2” rust#142696 (last review activity: 2 months ago)
    • cc @oli
  • “Fix unuseful span in type error in some format_args!() invocations” rust#140916 (last review activity: 2 months ago)
    • cc @Michael Goulet (compiler-errors)
  • “RDR: avoid rebuilding dependent crates after comment changes” rust#143249 (last review activity: about 58 days ago)
    • cc @Vadim Petrochenkov
  • “Update bundled musl to 1.2.5” rust#142682 (last review activity: about 49 days ago)

Next meetings’ agenda draft: hackmd link