T Compiler Meeting Agenda 2026 09 03

T-compiler Meeting Agenda 2026-09-03

Announcements

  • Today releasing rust 1.98.1
    • Fixes P-critical “rustc: fix miscompilation in generating vtables” rust#161441
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Boxy so we can pass it along).

MCPs/FCPs

Backport nominations

Note: All approved but one

T-compiler beta / T-compiler stable

  • :beta: “Check to ensure we’re running against the correct LLVM version” rust#161788
  • :beta: “Revert “Add rustc_test_entrypoint_marker”” rust#161931
  • :beta: “Make the LLVM version mismatch ICE a fatal error” rust#162034
  • :beta: “Update LLVM submodule” rust#162133
  • :beta: “Revert “Implement Debug for C-like enums with a concatenated string”” rust#162164
  • :beta: “Fix ICE of getting item name from RPITIT” rust#162071
    • Authored by chenyukang
    • Fixes #161915 a P-medium beta regression, seems safe to backport
    • Voting Zulip topic
  • No stable nominations for T-compiler this time.

PRs S-waiting-on-t-compiler

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • No P-critical issues for T-compiler this time.

T-types

  • No P-critical issues for T-types this time.

P-high regressions

P-high beta regressions

  • “1.99 beta crater regression: “type annotations needed”” rust#161913
  • “1.99 beta crater regression: overflow evaluating the requirement” rust#161916

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-08-31 Triage Log

This week continues a steady stream of compile time improvements. Most of the impact this week comes from type system micro-optimization in #160473 and dead_code lint propagation fix in #161571. We’ve also hit unexpected regression in a standard library refactor, but we expect that to be addressed soon.

Triage done by @panstromek. Revision range: 9a4ad59a..5321a4f4

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.6%[0.2%, 1.8%]27
Regressions (secondary)0.6%[0.2%, 1.8%]27
Improvements (primary)-0.7%[-2.4%, -0.1%]135
Improvements (secondary)-0.7%[-2.2%, -0.1%]120
All (primary)-0.5%[-2.4%, 1.8%]162

5 Regressions, 4 Improvements, 4 Mixed; 9 of them in rollups 39 artifact comparisons made in total

Regressions

Rollup of 9 pull requests #161706 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.5%, 0.6%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.5%, 0.6%]2

Caused by https://github.com/rust-lang/rust/pull/159583, already triaged by @JonathanBrouwer: “Caused the perf regression in the rollup. This does more work because it’s a new lint, and the regression is quite minor, so we probably just have to accept this”

Rollup of 5 pull requests #161731 (Comparison Link)

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

Noise, already triaged by @JonathanBrouwer

Rollup of 5 pull requests #161783 (Comparison Link)

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

Caused by https://github.com/rust-lang/rust/pull/161684, somehow rustdoc is sensitive to this trait bound. This is arguably a problem in rustdoc and not in the PR, marked as triaged and opened a thread in T-rustdoc. I think it’s also ok to ignore this, the regression is quite minor.

Rollup of 7 pull requests #161801 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.3%]3

Caused by https://github.com/rust-lang/rust/pull/161718, we couldn’t figure out why, seems spurious.

Investigated further by @nnethercote (author):

“I think the regression isn’t real.

This PR did some very minor rearrangement of startup code that only runs once.

  • It’s a 0.2% regression on three of the libc runs, i.e. very small.
  • I can’t reproduce it on my machine with a local build.
  • I can’t even reproduce it on my machine using the downloaded artifacts. (I got a 0.007% icount increase, not a 0.2% increase.) I don’t remember ever seeing that before.

I’m out of ideas! I don’t think it’s worth investigating any further.”

Rollup of 11 pull requests #162028 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.1%, 1.9%]53
Regressions (secondary)0.6%[0.2%, 1.9%]30
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.5%[0.1%, 1.9%]53

Caused by https://github.com/rust-lang/rust/pull/161702, regression mostly in debug/opt builds, mostly in codegen related queries. Binary size also regressed, so this is probably from more code in the standard library. Investigations in progress, it will probably be addressed in a followup (or revert).

Improvements

Mixed

Rollup of 7 pull requests #161672 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.1%, 0.4%]10
Improvements (primary)-0.2%[-0.3%, -0.2%]7
Improvements (secondary)-0.2%[-0.4%, -0.1%]13
All (primary)-0.2%[-0.3%, -0.2%]7

Already triaged by @JonathanBrouwer: “Improvements caused by #160705, regressions are noise”

stabilize never type #155499 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.1%[0.1%, 0.1%]2
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.4%, -0.1%]10
All (primary)--0

include-blob regressions are noise, tt-muncher regression looks real, but it’s small, so this is probably fine for a PR like this.

Rollup of 21 pull requests #161906 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.1%]1
Regressions (secondary)0.5%[0.5%, 0.5%]1
Improvements (primary)-0.4%[-0.5%, -0.4%]6
Improvements (secondary)-0.5%[-0.6%, -0.3%]2
All (primary)-0.4%[-0.5%, 0.1%]7

The improvement is from https://github.com/rust-lang/rust/pull/161456, which addresses previously triaged regression. include-blob regression is noise. html5ever doc regression looks like it might be real, but it’s tiny, so I don’t think it’s worth investigating further.

Add intrinsics for integer minimum and maximum #161081 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.1%[0.1%, 0.2%]4
Regressions (secondary)0.2%[0.2%, 0.2%]1
Improvements (primary)-0.9%[-0.9%, -0.9%]1
Improvements (secondary)--0
All (primary)-0.1%[-0.9%, 0.2%]5

Some compile time impact was expected and justified in https://github.com/rust-lang/rust/pull/161081#issuecomment-5319412891 by the author (@scottmcm): “Perf changes look mostly like the kind of thing that makes sense from better inlining: reduced is_mir_available calls, and permuted codegen schedules from different CGU partitioning that sometimes is better, sometimes worse.

Overall perf seems perhaps slightly better, and the bootstrap being green in both runs is also promising.”

The post-merge result doesn’t match the pre-merge run, but I assume that’s also somewhat expected based on that comment justification.

Nominated Issues

T-compiler

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

  • Skipping

Next meeting’s agenda draft: hackmd link