T Compiler Meeting Agenda 2025 10 16

T-compiler Meeting Agenda 2025-10-16

Announcements

  • 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 @Wesley Wiser so we can pass it along).

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Fix double warnings on #[no_mangle]rust#147467
    • Authored by JonathanBrouwer
    • Fixes 2 out of 3 cases in #147417 (P-high, confusing diagnostic)
    • Voting Zulip topic, mostly declined. Low impact issue but also small, low risk PR, as per comment
  • :beta: “Change int-to-ptr transmute lowering back to inttoptr” rust#147541
    • Authored by saethlin
    • Fixes P-high rust#147265, LLVM wrong optimization causing a miscmpile
    • Voting Zulip topic, in favor
  • :beta: “rewrite outlives placeholder constraints to outlives static when handling opaque types” rust#147566
    • Authored by BoxyUwU
    • Fixes #147529, P-critical
    • Voting Zulip topic, few votes, in favor. Reverting the original PR is not easy
  • :beta: “GVN: Invalidate derefs at loop headers” rust#147607
    • Authored and nominated by dianqk
    • Fixes P-high miscompile introduced in #132527 (no issue reported, AFAIK)
    • Voting Zulip topic, mixed opinions: on one hand this is broken since 1.88, original LLVM issue is very old, on the other this is a miscompile and in general for optimizations bugs are less visible so it is good if this patch runs in crater runs sooner. Backport would produce conflicts but not insurmountable.
  • :stable: “Change int-to-ptr transmute lowering back to inttoptr” rust#147541
    • Authored by saethlin
    • Voting Zulip topic, vibe here is ok to backport but - alone - does not justifies a dot release. Though there is a report of this affecting servo (so at least one visible project in the ecosystem)

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-t-compiler

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “hidden type for impl ... captures lifetime that does not appear in bounds” rust#147529
    • solved by #147566 (in backports)

T-types

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

P-high regressions

P-high beta regressions

  • “Duplicate warning on some attributes with wrong targets” rust#147417
    • solved by #147467 (in backports)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs

This week saw small wins across the board from some microoptimizations of the incremental query system (#147423). There have also been a couple of regressions. #142390 introduced regressions of check builds across the board. The largest regression (18%) is from an incremental opt build of a secondary artificial stress test, so we deemed it acceptable.

Triage done by @kobzol. Revision range: 1a3cdd34..956f47c3

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.7%[0.1%, 2.0%]65
Regressions (secondary)0.8%[0.1%, 18.6%]65
Improvements (primary)-0.6%[-1.6%, -0.1%]119
Improvements (secondary)-0.4%[-1.6%, -0.1%]76
All (primary)-0.1%[-1.6%, 2.0%]184

2 Regressions, 7 Improvements, 3 Mixed; 3 of them in rollups 35 artifact comparisons made in total

Regressions

Rollup of 12 pull requests #147512 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.0%, 0.8%]10
Improvements (primary)--0
Improvements (secondary)--0
All (primary)--0
  • Noise, the secondary benchmarks have rebounded in #147519.
  • Marked as triaged.

Fix normalization overflow ICEs in monomorphization #146096 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]5
Regressions (secondary)9.7%[0.7%, 18.7%]2
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.6%]5
  • The perf. hit was expected and deemed worth it, as this PR fixes a couple of issues.
  • Apart from some tiny regressions, the single large regression is in a secondary stress test, and also in full incremental opt build.
  • Marked as triaged.

Improvements

Rollup of 7 pull requests #147449 (Comparison Link)

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

DepNodeColor tweaks #147423 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.5%, -0.2%]98
Improvements (secondary)-0.6%[-1.2%, -0.1%]47
All (primary)-0.6%[-1.5%, -0.2%]98

[rustdoc] a small performance improvement: only allocate new string if there are DOS backlines in highlight.rs #147443 (Comparison Link)

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

Refactor AddCallGuards in two loops. #147477 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.1%]8
Improvements (secondary)-0.3%[-0.6%, -0.1%]9
All (primary)-0.2%[-0.3%, -0.1%]8

Move more code to RawVec::finish_grow #147124 (Comparison Link)

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

Rollup of 8 pull requests #147603 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.0%[0.0%, 0.0%]1
Improvements (primary)-0.2%[-0.2%, -0.1%]3
Improvements (secondary)-0.1%[-0.1%, -0.0%]13
All (primary)-0.2%[-0.2%, -0.1%]3

Split overlapping_{inherent,trait}_impls #147502 (Comparison Link)

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

Mixed

Prevent downstream impl DerefMut for Pin<LocalType> #145608 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]2
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.0%[-0.0%, -0.0%]1
All (primary)0.3%[0.3%, 0.3%]2
  • Tiny regression on hyper, otherwise netural. This PR fixes soundness anyway.
  • Marked as triaged.

Perform InstSimplify before ReferencePropagation. #147483 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.2%[0.1%, 0.7%]6
Improvements (primary)-0.3%[-0.5%, -0.1%]6
Improvements (secondary)-0.3%[-0.6%, -0.1%]6
All (primary)-0.3%[-0.5%, -0.1%]6
  • Some tiny wins on primary benchmarks, but overall it’s a wash.
  • Marked as triaged.

Perform unused assignment and unused variables lints on MIR. #142390 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.6%[0.1%, 2.0%]75
Regressions (secondary)0.7%[0.0%, 3.7%]76
Improvements (primary)-0.3%[-0.3%, -0.3%]1
Improvements (secondary)-0.4%[-0.5%, -0.4%]6
All (primary)0.6%[-0.3%, 2.0%]76
  • The regressions on the check builds are real, but they mostly didn’t carry over to debug and opt builds. This is a big compiler change that took years to land, so I think that we just eat the cost.
  • Marked as triaged.

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 overflow_checks intrinsic” rust#128666 (last review activity: 10 months ago)
    • There’s a conversation happening, unsure if the review is on someone else cc @Boxy (feel free to reassign to one of the commenters)
  • “Add FileCheck annotations to mir-opt/copy-prop” rust#135099 (last review activity: 6 months ago)
    • cc @Wesley Wiser (feel free to re-assign)
  • “Issue-125323: ICE non-ADT in struct pattern when long time constant evaluation is in for loop” rust#138679 (last review activity: 4 months ago)
    • cc @oli (if you have bandwidth, or maybe reassign?)
  • “hir_analysis: add missing sizedness bounds” rust#142712 (last review activity: 3 months ago)
    • cc: @lcnr

Next meetings’ agenda draft: hackmd link