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) mean range count
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) mean range count
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) mean range count
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) mean range count
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) mean range count
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) mean range count
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) mean range count
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) mean range count
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