T Compiler Meeting Agenda 2024 07 18

T-compiler Meeting Agenda 2024-07-18

Announcements

  • Next week release of next stable Rust 1.80
  • Is there interest/capacity to pick a topic from this list and schedule a meeting?
  • 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

WG checkins

None

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 stable / T-types beta

  • 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 new beta regressions (#127339 fixed by #127568 now beta-backport accepted and #127342 fixed downstream)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs 2024-07-16

Fairly quite week with the only pure regressions being small and coming from correctness fixes. The biggest single change came from turning off the -Zenforce-type-length-limit check which had positive impacts across many different benchmarks since the compiler is doing strictly less work.

Triage done by @rylev. Revision range: a2d58197..5572759b

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.7%]12
Regressions (secondary)0.4%[0.2%, 0.9%]45
Improvements (primary)-0.7%[-1.5%, -0.2%]37
Improvements (secondary)-3.3%[-13.5%, -0.4%]21
All (primary)-0.4%[-1.5%, 0.7%]49

2 Regressions, 3 Improvements, 2 Mixed; 1 of them in rollups 56 artifact comparisons made in total

Regressions

Fix regression in the MIR lowering of or-patterns #127028 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.7%[0.3%, 1.2%]3
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.7%[0.3%, 1.2%]3
  • Given this is a correctness fix, and the regressions seem in line with previous historical performance (i.e., it regressed back to a previous baseline), I think it’s safe to call this triaged

Avoid follow-up errors and ICEs after missing lifetime errors on data structures #127311 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.2%, 0.4%]8
Regressions (secondary)0.3%[0.2%, 0.4%]16
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.3%[0.2%, 0.4%]8
  • Instruction counts go up, cycles do not (deeply nested multi is probably just noise in mono collection). In any case, this is a correctness fix so it seems like a small perf hit would be acceptable in any case.

Improvements

Fix Parser::look_ahead #127636 (Comparison Link)

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

Gate the type length limit check behind a nightly flag #127670 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.6%[-1.4%, -0.2%]28
Improvements (secondary)-1.1%[-1.5%, -0.4%]8
All (primary)-0.6%[-1.4%, -0.2%]28

find_field does not need to be a query. #127718 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)-7.5%[-13.5%, -2.7%]9
All (primary)--0

Mixed

Rollup of 7 pull requests #127580 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)2.6%[2.6%, 2.6%]1
Improvements (primary)-0.6%[-1.0%, -0.2%]9
Improvements (secondary)--0
All (primary)-0.6%[-1.0%, -0.2%]9
  • Noise

Only track mentioned places for jump threading #127087 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.5%[0.4%, 0.6%]3
Regressions (secondary)1.1%[0.2%, 1.6%]7
Improvements (primary)-0.6%[-1.3%, -0.2%]6
Improvements (secondary)-0.6%[-2.0%, -0.3%]8
All (primary)-0.2%[-1.3%, 0.6%]9
  • The perf impact was expected given the pre-merge runs and is less severe than it was pre-merge.

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

  • “Remove unnecessary impl sorting in queries and metadata” rust#120812 (last review activity: 5 months ago)
    • cc: @cjgillot
  • “Stop using LLVM struct types for array/pointer offset GEPs” rust#122325 (last review activity: 4 months ago)
    • cc: @Nikita Popov (author replied to your comment from last March)

Next week’s WG checkins

None

Next meetings’ agenda draft: hackmd link