Try   HackMD

T-compiler Meeting Agenda 2025-06-26

Announcements

  • Today rust 1.88 is out (the "if-let-chains edition", blog post)
  • 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

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

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2025-06-24

A week dominated by the landing of a large patch implementing RFC#3729 which unfortunately introduced rather sizeable performance regressions (avg of ~1% instruction count on 111 primary benchmarks). This was deemed worth it so that the patch could land and performance could be won back in follow up PRs.

Triage done by @rylev.
Revision range: 45acf54e..42245d34

Summary:

(instructions:u) mean range count
Regressions (primary) 1.1% [0.2%, 9.1%] 123
Regressions (secondary) 1.0% [0.1%, 4.6%] 86
Improvements (primary) -3.8% [-7.3%, -0.3%] 2
Improvements (secondary) -2.3% [-18.5%, -0.2%] 44
All (primary) 1.0% [-7.3%, 9.1%] 125

2 Regressions, 4 Improvements, 10 Mixed; 7 of them in rollups
40 artifact comparisons made in total

Regressions

Sized Hierarchy: Part I #137944 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.3% [0.1%, 9.9%] 111
Regressions (secondary) 0.9% [0.2%, 2.9%] 101
Improvements (primary) - - 0
Improvements (secondary) -0.7% [-0.7%, -0.7%] 1
All (primary) 1.3% [0.1%, 9.9%] 111
  • As noted in this summary comment, the performance regression is expected and will be addressed in follow ups.

Rewrite inline attribute parser to use new infrastructure and improve diagnostics for all parsed attributes #138165 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.8%] 12
Regressions (secondary) 0.5% [0.2%, 0.8%] 21
Improvements (primary) -0.2% [-0.2%, -0.2%] 2
Improvements (secondary) -0.2% [-0.2%, -0.2%] 1
All (primary) 0.3% [-0.2%, 0.8%] 14

Improvements

[perf] Cache the canonical instantiation of param-envs #142316 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.7% [0.7%, 0.7%] 1
Improvements (primary) -0.7% [-0.9%, -0.6%] 12
Improvements (secondary) -5.0% [-20.3%, -0.6%] 15
All (primary) -0.7% [-0.9%, -0.6%] 12

forward the bootstrap runner to run-make #141856 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -2.8% [-2.8%, -2.8%] 1
Improvements (secondary) - - 0
All (primary) -2.8% [-2.8%, -2.8%] 1

Rollup of 10 pull requests #142878 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.1% [1.1%, 1.1%] 1
Regressions (secondary) 1.1% [1.1%, 1.1%] 1
Improvements (primary) -0.3% [-0.5%, -0.2%] 11
Improvements (secondary) -0.5% [-0.7%, -0.3%] 13
All (primary) -0.1% [-0.5%, 1.1%] 12

Let String pass #[track_caller] to its Vec calls #142728 (Comparison Link)

(instructions:u) mean range count
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

Mixed

Change __rust_no_alloc_shim_is_unstable to be a function #141061 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.5%] 3
Regressions (secondary) - - 0
Improvements (primary) -0.5% [-0.5%, -0.5%] 1
Improvements (secondary) -1.8% [-3.1%, -0.3%] 7
All (primary) 0.1% [-0.5%, 0.5%] 4
  • The performance changes are more or less a wash so I don't think it necessitates any investigation.

Rollup of 6 pull requests #142689 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.4%] 4
Regressions (secondary) 0.2% [0.2%, 0.2%] 11
Improvements (primary) -0.4% [-0.4%, -0.4%] 1
Improvements (secondary) - - 0
All (primary) 0.2% [-0.4%, 0.4%] 5
  • Primary regressions seem to be blips returning back to their previous state on the next perf run.

Rollup of 7 pull requests #142697 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.3% [0.3%, 0.3%] 1
Improvements (primary) -0.4% [-0.4%, -0.2%] 3
Improvements (secondary) - - 0
All (primary) -0.4% [-0.4%, -0.2%] 3
  • Too small of a perf regression (in only secondary benchmarks) to warrant an investigation

Allow storing format_args!() in variable #140748 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.2%, 1.0%] 24
Regressions (secondary) 1.6% [0.3%, 4.7%] 12
Improvements (primary) -3.7% [-7.1%, -0.3%] 2
Improvements (secondary) - - 0
All (primary) 0.1% [-7.1%, 1.0%] 26
  • Asked the author for ideas on causes after failing to find them in my own investigation.

Rollup of 9 pull requests #142794 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 2.9% [2.9%, 2.9%] 1
Regressions (secondary) 0.8% [0.2%, 1.2%] 10
Improvements (primary) -0.2% [-0.2%, -0.2%] 4
Improvements (secondary) - - 0
All (primary) 0.4% [-0.2%, 2.9%] 5

Rollup of 8 pull requests #142814 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.5% [0.4%, 1.0%] 7
Improvements (primary) -1.4% [-2.8%, -0.1%] 2
Improvements (secondary) -0.8% [-1.4%, -0.3%] 24
All (primary) -1.4% [-2.8%, -0.1%] 2
  • The regressions all seem to be noise.

Rollup of 3 pull requests #142826 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.3%, 0.3%] 2
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) -0.4% [-0.4%, -0.4%] 1
Improvements (secondary) - - 0
All (primary) 0.1% [-0.4%, 0.3%] 3
  • Change overall is near a wash, and the regressions are small enough that I don't think it's worth investigating the performance change here deeply.

Only traverse reachable blocks in JumpThreading. #142546 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.6% [0.3%, 2.9%] 2
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -0.3% [-0.3%, -0.3%] 2
All (primary) 1.6% [0.3%, 2.9%] 2
  • The regression in Clap is just noise and the other regression was seen before in a perf run and deemed acceptable by @compiler-errors.

Skip no-op drop glue #142508 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.7% [0.4%, 3.0%] 2
Regressions (secondary) - - 0
Improvements (primary) -0.3% [-0.4%, -0.3%] 4
Improvements (secondary) -1.8% [-3.1%, -0.4%] 6
All (primary) 0.3% [-0.4%, 3.0%] 6
  • Regression in clap is noise and the rest of the changes balance out.

Rollup of 5 pull requests #142906 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.2%] 1
Regressions (secondary) 0.2% [0.2%, 0.3%] 3
Improvements (primary) - - 0
Improvements (secondary) -0.1% [-0.1%, -0.1%] 4
All (primary) 0.2% [0.2%, 0.2%] 1
  • Regression is small enough that it's not worth investigating IMO

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

  • "Extend QueryStability to handle IntoIterator implementations" rust#139345 (last review activity: about 29 days ago)
    • cc @fmease
  • "Add FileCheck annotations to mir-opt/copy-prop" rust#135099
    • cc: @Wesley Wiser (pending question?) Otherwise mostly reviewed by @_cjgillot
  • "Allow &raw [mut | const] for union field in safe" rust#141469 (last review activity: about 30 days ago)
    • cc @Michael (compiler-errors) Goulet can the FCP be triggered here or are there other pending questions? See comment

Next meetings' agenda draft: hackmd link