T Compiler Meeting Agenda 2026 08 06

T-compiler Meeting Agenda 2026-08-06

Announcements

  • Reschedule P-high review triage (2nd run)
  • 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).

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • No beta nominations for T-compiler this time.
  • 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

  • “dist-i686-msvc hang on lint-docs” rust#158378
    • Discussion on Zulip about demoting the target

T-types

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

P-high regressions

P-high beta regressions

  • “1.98 beta regression due to name collision with splatrust#159428
    • (fyi) Solved by renaming the attribute (#159817)
  • “1.98 beta regression due to name collision with unrollrust#159429
    • (fyi) Solved by renaming the attribute (#160211)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

2026-08-03 Triage Log

A lot of optimizations landed this week. Some big improvements to rustdoc in #159854, one big improvement in control flow graph traversal for cranelift-codegen, few more improvements to next-solver benchmarks and various other micro-optimizations, bringing the total to a nice round number of 10 improvements this week.

Triage done by @panstromek. Revision range: ad0c9dce..65dd30fb

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.5%]18
Regressions (secondary)2.1%[0.1%, 16.8%]64
Improvements (primary)-3.3%[-39.8%, -0.2%]97
Improvements (secondary)-6.1%[-39.6%, -0.1%]111
All (primary)-2.7%[-39.8%, 0.5%]115

1 Regression, 5 Improvements, 11 Mixed; 6 of them in rollups 32 artifact comparisons made in total

Regressions

Rollup of 20 pull requests #160190 (Comparison Link)

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

Already triaged by @jhpratt: “caused by #158693, which is apparently needed for kernel stuff”

Looks like the depgraph size has increased on all benchmarks because the new query is called on every function. I left a comment there. @Sa4dUs (original author) opened a PR which addresses the regression https://github.com/rust-lang/rust/pull/160454.

Improvements

Mixed

Rollup of 14 pull requests #160003 (Comparison Link)

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

New solver changes are at least partially caused by https://github.com/rust-lang/rust/pull/159649. There’s a pre-merge perf run, so this is accepted for a correctness fix.

Also started perf run on https://github.com/rust-lang/rust/pull/159840 (Mark tried it before but had a typo in the command). This returned no significant results.

I don’t think we need to dig further into this. The rest are tiny secondary changes.

Rollup of 9 pull requests #160047 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]2
Regressions (secondary)0.3%[0.1%, 0.6%]8
Improvements (primary)-0.8%[-0.8%, -0.8%]1
Improvements (secondary)-0.1%[-0.1%, -0.1%]1
All (primary)0.0%[-0.8%, 0.4%]3

Already triaged by @jhpratt: “caused by #159220

#159220 fixes a miscompilation introduced by an optimization, so this is acceptable.

Avoid excessive memcpys with the new solver #160005 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)0.4%[0.1%, 0.6%]7
Improvements (primary)--0
Improvements (secondary)-1.9%[-4.9%, -0.1%]15
All (primary)--0

Already triaged before merge. Improvements outweigh regressions, affects only new solver. There are also 20-40% improvements in crates outside the of the benchmark suite, see https://github.com/rust-lang/rust/pull/160005#issuecomment-5097871218.

Rollup of 21 pull requests #160102 (Comparison Link)

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

Seems to be mostly caused by https://github.com/rust-lang/rust/pull/160057.

Left a comment there, the author will look into it. It looks like there’s an unexpected increase in query calls to def_kind (and therefore increase in depgraph size).

Update cargo submodule #159857 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]15
Regressions (secondary)37.3%[0.2%, 104.0%]18
Improvements (primary)-0.2%[-0.3%, -0.2%]3
Improvements (secondary)-0.4%[-0.4%, -0.4%]1
All (primary)0.3%[-0.3%, 0.6%]18

Triaged by Kobzol:

“The big regression on large-workspace was expected, and comes from Cargo passing in many more -L flags to rustc, which is not optimized for something like this at the moment. In absolute wall-time numbers, it was a regression of a few milliseconds on a crate with a thousand transitive dependencies, so it shouldn’t be such a big deal in practice.

#158823 should improve the performance here considerably.”

Rollup of 25 pull requests #160238 (Comparison Link)

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

Looks to be mostly noise or tiny impact. Not worth more investigation. Already triaged by @JonathanBrouwer

Unify two for_each_relevant_impl methods #159836 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]4
Regressions (secondary)0.2%[0.2%, 0.2%]9
Improvements (primary)-2.8%[-20.6%, -0.2%]16
Improvements (secondary)-0.5%[-0.8%, -0.3%]7
All (primary)-2.2%[-20.6%, 0.2%]20

Improvements outweigh regressions. The impact was measured before merge and accepted.

Flatten all -L search paths into a single list of files #158823 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)0.6%[0.6%, 0.6%]3
Improvements (primary)-0.4%[-0.6%, -0.2%]14
Improvements (secondary)-23.8%[-49.2%, -0.1%]17
All (primary)-0.3%[-0.6%, 0.2%]15

Improvements greatly outweigh tiny regressions (might as well be noise but not sure).

Improve CFG traversal #160193 (Comparison Link)

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

include-blob regressions are noise.

Rollup of 12 pull requests #160339 (Comparison Link)

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

Already triaged by @JonathanBrouwer: “Caused by #160012

Big part of the regression will be addressed by #160399.

Implement Debug for C-like enums with a concatenated string #155452 (Comparison Link)

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

cranelift-codegen regression is probably unrelated because it wasn’t present in the pre-merge results (it was actually an improvement there). Looks like a codegen unit scheduling change, based on the graph.

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

  • Skipping this week

Next meetings’ agenda draft: hackmd link