T Compiler Meeting Agenda 2025 09 25

T-compiler Meeting Agenda 2025-09-25

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: “Add attributes for #[global_allocator] functions” rust#146766
    • Authored by nikic
    • Should help with #145995 (P-high nightly regression)
    • Merge was blocked because …
    • … voting Zulip topic prefers to revert #144086 in beta
  • :beta: “remove incorrect fast path” rust#146919
    • Authored by lcnr
    • Fixes #146813 (a P-high stable regression) and perf. run is neutral
    • Approved but not yet merged (so probably that’s for the next week)
    • Voting Zulip topic, in favor
  • :beta: “Update LLVM to 21.1.2” rust#146953
    • Authored by dianqk
    • Fixes a number of LLVM-related issues (comment, almost fully mitigate a perf. regression #146512)
    • Voting Zulip topic, in favor
  • :stable: “remove incorrect fast path” rust#146919
    • Authored by lcnr
    • Fixes #146813 (a P-high stable regression) and perf. run is neutral
    • Approved but not yet merged (so probably that’s for the next week)
    • Voting Zulip topic, “approve but does not justify a dot release”

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

  • “Rustc failed to locate rc.exe on VS2022 Command Prompt, causing panic” rust#146693
    • Resolved by #146784
    • reverted in beta with #146687, so nightly-only) for now

T-types

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

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • alloc-variant-zeroed causing issues with LTO” rust#145995
    • handled by #146766 (thanks @Nikita Popov)

Performance logs

triage logs 2025-09-23

Moving command-line argument quoting from C++ to Rust (#146700) resulted in a nice performance win when dealing with many dependencies and large workspaces. A somewhat costly destination propagation compiler pass was enabled by default (#142915), which resulted in some build time regressions, but should result in improved runtime performance. The rest of changes were small.

Triage done by @kobzol. Revision range: 52618eb3..ce4beebe

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 1.9%]61
Regressions (secondary)0.6%[0.1%, 3.4%]90
Improvements (primary)-0.5%[-1.9%, -0.2%]29
Improvements (secondary)-1.3%[-22.8%, -0.1%]71
All (primary)0.0%[-1.9%, 1.9%]90

1 Regression, 4 Improvements, 4 Mixed; 4 of them in rollups 37 artifact comparisons made in total

Regressions

Rollup of 5 pull requests #146698 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)0.2%[0.1%, 0.2%]16
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.2%[0.2%, 0.2%]2
  • From the perf. runs it looks like the tiny regressions are distributed amongst multiple PRs. Given that most of them are in secondary benchmarks, and those benchmarks were going a bit up and down recently, I don’t think it’s worth to dig deeper here.
  • Marked as triaged.

Improvements

Prevent ABI changes affect EnzymeAD #142544 (Comparison Link)

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

Clippy subtree update #146728 (Comparison Link)

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

GVN: stop hashing opaque values #145737 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-1.7%[-1.9%, -1.5%]2
Improvements (secondary)-1.4%[-1.4%, -1.4%]1
All (primary)-1.7%[-1.9%, -1.5%]2

cg_llvm: Move target machine command-line quoting from C++ to Rust #146700 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.4%[-0.6%, -0.2%]4
Improvements (secondary)-3.0%[-23.4%, -0.2%]16
All (primary)-0.4%[-0.6%, -0.2%]4

Mixed

Rollup of 9 pull requests #146614 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]2
Regressions (secondary)3.7%[3.0%, 4.2%]6
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.0%]6
All (primary)0.2%[0.2%, 0.2%]2
  • The regression in compile-time function evaluation was caused by #146402, which is a fix.
  • Marked as triaged.

Enable DestinationPropagation by default #142915 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.1%, 1.1%]62
Regressions (secondary)0.4%[0.1%, 1.6%]98
Improvements (primary)-0.4%[-1.7%, -0.1%]31
Improvements (secondary)-0.7%[-2.5%, -0.1%]60
All (primary)0.0%[-1.7%, 1.1%]93
  • The compile-time effects seem to be a wash, while this nicely reduced the binary size of the compiler itself, and is expected to improve runtime performance.
  • Marked as triaged.

Rollup of 8 pull requests #146830 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.2%[0.1%, 0.2%]4
Improvements (primary)--0
Improvements (secondary)-0.2%[-0.3%, -0.1%]2
All (primary)0.2%[0.2%, 0.2%]1
  • There’s one tiny regression on a primary check benchmark, it doesn’t seem worth it to investigate further.
  • Marked as triaged.

Rollup of 9 pull requests #146879 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.3%[0.1%, 0.5%]2
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)-0.2%[-0.2%, -0.2%]7
All (primary)-0.2%[-0.2%, -0.2%]1
  • Seems like noise returning back, similar results to other rollups, just in the other direction.
  • Marked as triaged.

Nominated Issues

T-compiler

  • “Regression: geoarrow crate does not compile in release mode on 1.82” rust#131960
    • Two questions:
      1. What do you think about tweaking the hack in #129714 to make the crate geoarrow compile?
      • issue is caused by the old trait solver (details at this comment)
      • A few months ago, geoarrow-rs worked around this bug (they removed -Zinline-mir=no (geoarrow-rs#956))
      • The next trait solver is coming (it’s in the project goals 2H2025) but not exactly behind the corner
      • It probably makes sense to fix the geoarrow issue as best as we can, even if with “hacks”
      1. Should we be devoting similar attention to the other crates encountering this issue?
      • At the time of #128887 the crater run reported 4 crates (one pinned Rust 1.89). The only active project affected (that we know of) seems to be geoarrow-rs
      • I (@_apiraino) could not find any other; seems the impact is quite low, see comment

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “[Debug Info] Generate typedef nodes for ptr/ref types (and msvc arrays)” rust#144394 (last review activity: 2 months ago)
    • cc @Wesley Wiser (was suggested by Michael) or reassign. maybe cc: @Nikita Popov since it’s LLVM
  • “Provide additional context to errors involving const traits” rust#144194 (last review activity: 2 months ago)
    • probably cc @oli or reassign (Michael is not reviewing AFAIK)
  • “Impls and impl items inherit lint levels of the corresponding traits and trait items” rust#144113 (last review activity: 2 months ago)
    • cc @cjgillot (unsure if they’re reviewing rn)
  • “Impls and impl items inherit lint levels of the corresponding traits and trait items” rust#144113 (last review activity: 2 months ago)
    • cc @cjgillot
  • “Make named asm_labels lint not trigger on hexagon register spans” rust#143037 (last review activity: 2 months ago)
    • maybe @Amanieu d’Antras (have you LLVM review rights now?) or @Nikita Popov ?

Next meetings’ agenda draft: hackmd link