T Compiler Meeting Agenda 2025 05 01

T-compiler Meeting Agenda 2025-05-01

Announcements

Other WG meetings

MCPs/FCPs

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “set subsections_via_symbols for ld64 helper sections” rust#139752
    • Authored by usamoi
    • (fixes a linking error on macOS), addresses #139744
    • prev. discussion
  • :beta: “Fix linking statics on Arm64EC” rust#140176
    • Authored by dpaoliello
    • Reviewed and nominated by @Wesley Wiser (thanks)
    • Fixes a serious linking regression #138541 on aarch64-pc-windows-msvc (tier 2) (comment)
  • No stable nominations for T-compiler this time.

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

  • 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

  • “ICE: expr in place where literal is expected (builtin attr parsing)rust#137687
    • Work in progress by @_Jana Dönszelmann (comment)
  • “regression: error[E0284]: type annotations needed; cannot infer type in trait declaration” rust#140019
    • Fixed by #138941 (thanks @_*Michael (compiler-errors) Goulet ) and beta backport accepted
  • “regression: error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth” rust#140221
    • Caused by #138083 which was evaluated as accepted change (comment)
    • Left a comment if this should be mentioned in release notes

Unassigned P-high nightly regressions

  • None new

Performance logs

triage logs for 2024-04-29

Strange week with lots of noise peeking through the performance runs. The only really significant change was a performance improvement that comes from allowing out of order encoding of the dep graph.

Triage done by @rylev. Revision range: 8f2819b0..25cdf1f6

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.1%, 3.0%]77
Regressions (secondary)0.6%[0.1%, 2.4%]77
Improvements (primary)-0.7%[-1.3%, -0.2%]106
Improvements (secondary)-0.7%[-1.2%, -0.2%]29
All (primary)-0.2%[-1.3%, 3.0%]183

4 Regressions, 2 Improvements, 4 Mixed; 2 of them in rollups 38 artifact comparisons made in total

Regressions

Refactor git change detection in bootstrap #138591 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.3%]13
Regressions (secondary)0.3%[0.2%, 0.6%]42
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)--0
All (primary)0.2%[-0.2%, 0.3%]14
  • Looks like noise.

Properly stall coroutine witnesses in new solver #138845 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.1%, 0.4%]25
Regressions (secondary)0.4%[0.1%, 0.6%]48
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)--0
All (primary)0.2%[-0.2%, 0.4%]26
  • The regressions are small enough that this isn’t a huge concern, and the regressions themselves might be due to some underlying perf instability.

Implement a lint for implicit autoref of raw pointer dereference - take 2 #123239 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)1.8%[0.3%, 3.6%]6
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)1.8%[0.3%, 3.6%]6

Async drop codegen #123948 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.6%]12
Regressions (secondary)1.0%[0.2%, 2.4%]28
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.6%]12
  • Ask the author and reviewer whether this is worth pursuing more after their initial perf investigation.

Improvements

Remove token::{Open,Close}Delim #139897 (Comparison Link)

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

Rollup of 8 pull requests #140165 (Comparison Link)

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

Mixed

Clippy subtree update #139983 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)-0.2%[-0.3%, -0.1%]7
Improvements (secondary)-0.3%[-0.6%, -0.2%]36
All (primary)-0.1%[-0.3%, 0.2%]8
  • The small regression is fine in light of the larger and more numerous improvements.

Rollup of 8 pull requests #140256 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.2%[0.2%, 0.2%]1
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-0.3%[-0.6%, -0.2%]23
All (primary)0.2%[0.2%, 0.2%]1
  • The single regression looks to be noise.

set subsections_via_symbols for ld64 helper sections #139752 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.3%]2
Regressions (secondary)0.3%[0.2%, 0.6%]30
Improvements (primary)-0.2%[-0.2%, -0.2%]1
Improvements (secondary)--0
All (primary)0.1%[-0.2%, 0.3%]3
  • Not sure where the regressions are coming from since this should only impact macOS.

Allow out of order dep graph node encoding #139756 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]7
Regressions (secondary)0.4%[0.2%, 0.6%]15
Improvements (primary)-0.7%[-1.3%, -0.3%]115
Improvements (secondary)-0.8%[-1.4%, -0.2%]27
All (primary)-0.7%[-1.3%, 0.3%]122
  • Perf improvements massively outweigh the regressions.

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

  • “rustc_target: RISC-V Zfinx is incompatible with {ILP32,LP64}[FD] ABIs” rust#138872 (last review activity: about 34 days ago)
    • cc @Jubilee
  • “Fix PostBorrowckAnalysis for old solver” rust#135899 (last review activity: about 35 days ago)
    • cc: @lcnr (unless it’s waiting on something)
  • “Emit warning while outputs is not exe and prints linkage info” rust#138139 (last review activity: about 52 days ago)
    • cc: @Chris Denton
  • “Fix split index calculation in check_type_alias_where_clause_locationrust#138037 (last review activity: about 53 days ago)
    • cc: @Boxy
  • “Add ignore value suggestion in closure body” rust#135562 (last review activity: 3 months ago)
    • cc: @Esteban Küber

Next meetings’ agenda draft: hackmd link