T Compiler Meeting Agenda 2024 03 28

T-compiler Meeting Agenda 2024-03-28

Announcements

  • A dot release 1.77.1 is out today to fix #122857 (Zulip discussion)
    • Immediate fix provided by cargo, rustc fix will take a bit longer (comment)
    • Will also backport #122693 (less critical)
    • 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 (calendar link)

MCPs/FCPs

WG checkins

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: [1.78] “Encode implied predicates for traits” rust#122891
    • patch authored by @Michael Goulet (compiler-errors) (thanks!)
    • Fixes #122859, regressed on nightly: super_predicates and implied_predicates queries differ for regular traits. In cross-crate positions this means that we used to forget the implied predicates from associated type bounds. (explaination)
  • 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 backtrace on windows with current rustc stable” rust#122857
    • Quick fix in cargo, in release 1.77.1 out today

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 2024-03-26

An overall fairly quiet week with the unfortunate one exception of large instruction count and binary size regressions caused by changes in const evaluation. This was largely balanced out (at least in instruction count) by a group of small improvements, but the compiler did end up 0.2% slower on average across 97 benchmarks.

Triage done by @rylev. Revision range: 21d94a3..73476d

Summary:

(instructions:u) mean range count
Regressions (primary) 1.0% [0.2%, 3.2%] 56
Regressions (secondary) 0.6% [0.1%, 1.9%] 38
Improvements (primary) -0.8% [-1.5%, -0.2%] 41
Improvements (secondary) -1.2% [-5.2%, -0.4%] 13
All (primary) 0.2% [-1.5%, 3.2%] 97

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

Regressions

recursively evaluate the constants in everything that is ‘mentioned’ #122568 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.0% [0.3%, 2.2%] 67
Regressions (secondary) 0.8% [0.2%, 2.9%] 24
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 1.0% [0.3%, 2.2%] 67
  • An unfortunately large regression in instruction count that has to happen for correctness reasons.
  • Additional regressions in binary size and an issue has been opened for it: #122936

Rollup of 8 pull requests #122900 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.5% [0.4%, 0.6%] 11
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) - - 0
  • Seems that #122784 is the cause. Author and reviewer were pinged.

Replace visibility test with reachability test in dead code detection #119552 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 2.1% [1.0%, 3.2%] 4
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 2.1% [1.0%, 3.2%] 4
  • More warnings are now emitted from ripgrep so this is to be expected

Rollup of 9 pull requests #122966 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.3%, 0.3%] 1
Regressions (secondary) 0.3% [0.2%, 0.4%] 6
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.3%, 0.3%] 1
  • The regressions are probably too small here for us to need to dig much deeper.

Improvements

clean up Sized checking #122493 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.4% [-0.6%, -0.3%] 2
Improvements (secondary) -0.7% [-3.2%, -0.3%] 11
All (primary) -0.4% [-0.6%, -0.3%] 2

Move more intrinsics to rustc_intrinsic #122037 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.3% [-0.3%, -0.2%] 4
Improvements (secondary) - - 0
All (primary) -0.3% [-0.3%, -0.2%] 4

Update cargo #122753 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.8% [-0.9%, -0.5%] 5
Improvements (secondary) -0.6% [-0.8%, -0.4%] 8
All (primary) -0.8% [-0.9%, -0.5%] 5

select Vec::from_iter impls in a const block to optimize compile times #122785 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.6% [-1.5%, -0.3%] 10
Improvements (secondary) - - 0
All (primary) -0.6% [-1.5%, -0.3%] 10

Replace mir_built query with a hook and use mir_const everywhere instead #122721 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.5%, 0.5%] 1
Regressions (secondary) - - 0
Improvements (primary) -0.4% [-0.9%, -0.2%] 17
Improvements (secondary) -0.5% [-0.8%, -0.2%] 11
All (primary) -0.3% [-0.9%, 0.5%] 18

Don’t emit load metadata in debug mode #122849 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.7% [-1.1%, -0.4%] 13
Improvements (secondary) - - 0
All (primary) -0.7% [-1.1%, -0.4%] 13

Mixed

Rollup of 10 pull requests #122735 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.3% [0.1%, 0.6%] 5
Improvements (primary) -0.7% [-0.8%, -0.3%] 11
Improvements (secondary) -0.3% [-0.3%, -0.3%] 1
All (primary) -0.7% [-0.8%, -0.3%] 11
  • The improvements outweigh the regressions so there’s not a huge incentive to investigate further.

Rollup of 8 pull requests #122830 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.1% [0.1%, 0.1%] 2
Improvements (primary) -0.3% [-0.4%, -0.2%] 2
Improvements (secondary) -1.2% [-1.7%, -0.8%] 8
All (primary) -0.3% [-0.4%, -0.2%] 2
  • With only small regressions on stress tests, I think it’s fine if we don’t investigate this too deeply.

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

  • “tidy watcher” rust#114209
    • cc: @Wesley Wiser
  • “Fix gce ICE when encountering ill-formed consts” rust#119060
    • cc: @Michael Goulet (compiler-errors)
  • “Remove suffix from MetaItemLitrust#120705 (last review activity: about 48 days ago)
    • cc: @davidtwco
  • “Remove unnecessary impl sorting in queries and metadata” rust#120812 (last review activity: about 48 days ago)
    • @cjgillot
  • “Suggest a borrow when using dbg” rust#120990 (last review activity: about 44 days ago)
    • cc: @Esteban Küber (o reroll?)

Next week’s WG checkins

  • Skipping next week

Next meetings' agenda draft: hackmd link