T-compiler Meeting Agenda 2026-04-02
Announcements
- FIY blog post to be published: Changes to WebAssembly targets and handling undefined symbols
- 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
- None
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “group target modifier options under
-T” compiler-team#980 (Zulip)
- “group target modifier options under
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 7 days ago)
- “Relative VTables for Rust” compiler-team#903 (Zulip) (last review activity: 8 months ago)
- “Add flag to pass MSRV/
package.rust-versionfor use by lints” compiler-team#950 (Zulip) (last review activity: 2 months ago) - “Create a new Tier 3 target:
x86_64-nt-windows-msvc” compiler-team#952 (Zulip) (last review activity: 2 months ago) - “Add repro-check tool for build reproducibility” compiler-team#962 (Zulip) (last review activity: 2 months ago)
- “Add -Z dead-fn-elimination to skip codegen of BFS-unreachable functions” compiler-team#976 (Zulip) (last review activity: about 5 days ago)
- “Change the ABI of powerpc64-unknown-linux-gnu to ELFv2” compiler-team#977 (Zulip) (last review activity: about 13 days ago)
- Pending FCP requests (check your boxes!)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- @|124288 @|125250 @|119031 @|353056
- no pending concerns
- merge: Turn long-deprecated -C options into errors (compiler-team#978)
- @|116266 @|125250 @|116107 @|119031 @|248906 @|123856 @|116118 @|343125 @_|353056
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- no pending checkboxes
- concerns: stabilization-scope (by wesleywiser)
- merge: Make trait refs & assoc ty paths properly induce trait object lifetime defaults (rust#129543)
- @|116009 @|326176 @|216206 @|232957
- no pending concerns
- merge: Stabilize stack-protector (rust#146369)
- @|116266 @|426609 @_|444933
- concerns: mitigation-enforcement (by Noratrieb)
- merge: Stabilize the
supertrait_item_shadowingfeature (rust#148605)- @|124288 @|326176
- concerns: implementation-confidence (by BoxyUwU) inconsistent-name-res-semantics (by BoxyUwU)
- merge: Reduce
unreachable-codechurn aftertodo!()(rust#149543)- @|116009 @|116883 @_|125270
- concerns: please-rename-lint (by traviscross)
- “Implement lint for black_boxing ZSTs” rust#150037
- merge: WF checks on closure arguments. (rust#151510)
- @|124288 @|326176 @_|232957
- concerns: jobsteal crater regression fix (by lcnr)
- merge: switch to v0 mangling by default on stable (rust#151994)
- @|123586 @|353056
- concerns: late-anon-const (by petrochenkov)
- merge: Clean up crate type names to fix dylib vs staticlib confusion (rust#153863)
- @|120518 @|116266 @|424212 @|124288 @|270929 @|125250 @|248906 @|120179 @|245964 @|116118 @|415544 @|296292 @_|353056
- concerns: cargo-impact (by epage)
- merge: Promote loongarch32-unknown-none* to Tier 2 (compiler-team#968)
- Things in FCP (make sure you’re good with it)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: impl-at-mir-level
- concern: lose-debuginfo-data
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip)
- concern: documentation
- concern: continued-maintainer-interest
- “Proposal for a dedicated test suite for the parallel frontend” compiler-team#906 (Zulip)
- concern: name-a-specific-reason
- concern: can-we-just-enhance-ui-suite
- “Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants.” compiler-team#922 (Zulip) - “Emit retags in codegen” compiler-team#958 (Zulip)
- “Syntactically reject equality predicates” rust#153513
- “stabilize s390x vector registers” rust#154184
- “report the
varargs_without_patternlint in deps” rust#154599
- Accepted MCPs
- No new accepted proposals this time.
- MCPs blocked on unresolved concerns
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: 5 months ago)
- “WebAssembly for procedural macros” compiler-team#876 (Zulip) (last review activity: 8 months ago)
- concern: proposal-wording
- “Split the
-openbsd*targets by version” compiler-team#916 (Zulip) (last review activity: 5 months ago)- concern: nonsystematic-breakage
- concern: version-churn
- concern: why-not-ports-rustc
- “Stop bumping the bootstrap version on every rustc release” compiler-team#925 (Zulip) (last review activity: about 47 days ago)
- concern: we-like-using-the-features-we-ship
- concern: infra-and-bootstrap-burden
- “Doc comments and attributes on macro arms” compiler-team#935 (Zulip) (last review activity: 4 months ago)
- concern: lang
- “Publish
rustc_publiccrate v0.1 to crates.io” compiler-team#949 (Zulip) (last review activity: about 10 days ago) - “Query
gitstate to get information on a currently ongoing rebase when encountering conflict markers” compiler-team#955 (Zulip) (last review activity: 2 months ago)- concern: not worth the complexity
- “Allow crates downstream of
rustc_middleto define queries” compiler-team#966 (Zulip) (last review activity: about 48 days ago)- concern: fragmentation
- concern: complexity
- Finalized FCPs (disposition merge)
- None
- Other teams finalized FCPs
- [T-style] “Improvements to match formatting” rust#152763
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “[perf] Revert FastISel patch” rust#154511
- Authored by nikic
- Fixes a perf regression in the other approved #154344 (LLVM upgrade to 22.1.2)
- Voting Zulip topic
- :beta: “Revert “Fix: On wasm targets, call panic_in_cleanup if panic occurs in cleanup #151771"” rust#154700
- Authored by wesleywiser
- For #153948, reverts #151771 until the LLVM patch gets to us. Discussed last week: https://rust-lang.zulipchat.com/#narrow/channel/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202026-03-26/near/581957759
- Voting Zulip topic
- :beta: “Revert “
-Znext-solverRemove the forced ambiguity hack from search graph”” rust#154712- Authored by lqd
- This revert should restore a cospicous compile-time regression in Bevy (#153910)
- Has been just r’ed and release is in ~2 weeks. This revert should be rather innocuous
- Voting Zulip topic
- No stable nominations for
T-compilerthis time.
- No beta nominations for
T-typesthis time. - No stable nominations for
T-typesthis time.
PRs S-waiting-on-t-compiler
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 62 T-compiler P-high issues
- 0 P-critical, 3 P-high, 1 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 34 P-high, 100 P-medium, 32 P-low regression-from-stable-to-stable
P-critical
- No
P-criticalissues forT-compilerthis time.
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “Significant compilation time regression starting in v1.95.0-nightly (bevy)” rust#153910
- T-types will have a look into it
- “Complex EH flow miscompiled on wasm” rust#153948
- Wesley authored a revert (thanks!) in #154700 until we get the fix from the LLVM project
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
We had some infrastructure troubles this week which prevented some rollup PRs from generating their “unrolled” builds, which made rollup regression investigation more complicated, although we were able to locate and revert the largest rollup regressions in the end. #154304 brought some nice improvements by optimizing the query system.
Triage done by @kobzol. Revision range: 6f22f613..cf7da0b7
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.1%, 1.2%] | 4 |
| Regressions (secondary) | 0.3% | [0.1%, 0.5%] | 12 |
| Improvements (primary) | -0.8% | [-6.2%, -0.2%] | 58 |
| Improvements (secondary) | -0.4% | [-1.9%, -0.1%] | 28 |
| All (primary) | -0.8% | [-6.2%, 1.2%] | 62 |
3 Regressions, 4 Improvements, 2 Mixed; 2 of them in rollups 35 artifact comparisons made in total
Regressions
Rollup of 10 pull requests #154289 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.5% | [0.5%, 0.5%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 3 |
- The unicode normalization blip was noise. The rest looks real, but the regressions are tiny and only on
docbuilds, and since we don’t have unrolled builds here, I don’t think it’s worth it to go revert the individual PRs. - Marked as triaged.
Rollup of 22 pull requests #154384 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.2% | [0.1%, 3.8%] | 53 |
| Regressions (secondary) | 0.9% | [0.2%, 6.2%] | 45 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 1.2% | [0.1%, 3.8%] | 53 |
- The regressions came from several pull requests.
- #154200 caused compilation time and binary size regressions. It was reverted in #154468, and there is now an open PR (#154532) to reapply it with some modifications.
- #154344, an LLVM version update, caused the rest of the major compilation time regressions. It was reverted in #154511.
- Marked as triaged.
constify Step trait and all of its implementations #153821 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.8% | [0.4%, 1.2%] | 2 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.8% | [0.4%, 1.2%] | 2 |
- Some tiny regressions in debug and opt builds.
- Asked for a follow-up.
- Not marking as triaged yet.
Improvements
DepNode use improvements #154076 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.0%] | 12 |
| All (primary) | - | - | 0 |
Revert “Rollup merge of #154200 - resrever:enable-dwarf-call-sites, r=dingxiangfei2009” #154468 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-1.0%, -0.2%] | 34 |
| Improvements (secondary) | -0.6% | [-1.0%, -0.1%] | 25 |
| All (primary) | -0.5% | [-1.0%, -0.2%] | 34 |
resolve: Never lookup glob names in modules from other crates #154472 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.1% | [-0.2%, -0.1%] | 2 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.0%] | 11 |
| All (primary) | -0.1% | [-0.2%, -0.1%] | 2 |
[perf] Revert FastISel patch #154511 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -1.3% | [-3.2%, -0.1%] | 26 |
| Improvements (secondary) | -1.2% | [-5.1%, -0.2%] | 13 |
| All (primary) | -1.3% | [-3.2%, -0.1%] | 26 |
Mixed
rustc_expand: improve diagnostics for non-repeatable metavars #154014 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 7 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.1% | [-0.1%, -0.1%] | 1 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
| All (primary) | 0.2% | [-0.1%, 0.3%] | 8 |
- Small regression on html5ever, it was deemed to be acceptable prior to merging.
- Marked as triaged.
Make typeck a tcx method which calls typeck_root query #154304 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 3 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 6 |
| Improvements (primary) | -1.1% | [-6.1%, -0.2%] | 41 |
| Improvements (secondary) | -0.7% | [-2.0%, -0.2%] | 11 |
| All (primary) | -1.0% | [-6.1%, 0.2%] | 44 |
- Many more improvements than regressions.
- Marked as triaged.
Nominated Issues
- “Clean up crate type names to fix dylib vs staticlib confusion” rust#153863
- cargo team raised some points, I think we can wait for them to settle first (unless someone has opinions and wants to share them)
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Remove redundant information in
rustc_abi::Variants” rust#151742- It’s a cleanup PR, partially addresses 113988
- ABI/codegen reviewer likely needed, can anyone have a look?
- “Store
chunk_domain_sizeexplicitly inChunk.” rust#147802 (last review activity: 5 months ago)- cc @cjgillot
- “Fix ICE when ABI computation fails for unreachable/no-codegen instances” rust#152306 (last review activity: about 53 days ago)
- cc @Jubilee (self-assigned)
- “Use edition ranges in
tests/ui(Batch 1)” rust#151464 (last review activity: about 53 days ago) - cc @León Orell Liehr (fmease) (unsure if the reviewer agrees with the implementation, left a comment) Next meetings’ agenda draft: hackmd link