T Compiler Meeting Agenda 2023 08 24

T-compiler Meeting Agenda 2023-08-24

Announcements

Other WG meetings (calendar link)

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (stale MCP might be closed as per MCP procedure)
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
      • no discussion or seconding
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 53 days ago)
      • Felix suggested to close until LLVM adds support for this target, no counter-argument
  • Old MCPs (not seconded, take a look)
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 4 months ago) (Zulip)
      • Unsure if we want to second this (Felix raised a mild concern)
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 2 months ago) (Zulip)
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 2 months ago) (Zulip)
      • proposal received mixed comments
    • “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 28 days ago) (Zulip)
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (last review activity: about 46 days ago) (Zulip)
      • some bits merged without t-compiler seconding (comment)
      • the scope will be clarified and split into a follow-up MCP replacing this one (comment)
    • “Add builtin:$path option to the -L flag” compiler-team#659 (last review activity: about 18 days ago) (Zulip)
    • “Allow anonymous constants to be folded across crates (weak linkage + COMDAT)” compiler-team#662 (last review activity: about 4 days ago) (Zulip)
    • “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664 (last review activity: about 4 days ago) (Zulip)
  • Pending FCP requests (check your boxes!)
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • “Support overriding warnings level for a specific lint via command line” rust#113307
    • “Stabilize PATH option for --print KIND=PATHrust#114183
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • “Lower Or pattern without allocating place” rust#111752
    • “style-guide: Add section on bugs, and resolving bugs” rust#113383

WG checkins

  • @_WG-llvm by @nagisa and @Nikita Popov (previous checkin):

    Nikita reports:

    • Main news is that we upgraded to LLVM 17 (https://github.com/rust-lang/rust/pull/114048), with very nice perf results. Smoothest LLVM upgrade in a while.
    • We also bumped the minimum LLVM version to 15 recently, which mainly means that we only support opaque pointers now. That cleans up various stuff in codegen and especially codegen tests.
  • @_WG-mir-opt by @oli (previous checkin):

    No updates, oli is on vacation.

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.73.0-beta.1] “Add projection obligations when comparing impl too” rust#115039
    • Fixes #115033 and #115051, reported breaking compilations in 2 crates. Seems good to backport this.
  • :beta: [1.73.0-beta.1] “Contents of reachable statics is reachable” rust#115114
    • fixes #115052, ICE when compiling, possibly leading also to linking errors
    • nominated by @pnkfelix (comment)
  • No stable nominations for T-compiler this time.

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “ICE: broken mir while building rustc” rust#114375
    • on stable since #109075 (comment) but only triggers with -Zvalidate-mir. Taken care of by @Michael Goulet (compiler-errors) in #115005 (comment)
    • issue is now closed, can remove the I-compiler-nominated? anything to discuss cc @Wesley Wiser?
  • “ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)” rust#115113

T-types

  • “RPIT hidden types can be ill-formed” rust#114728
    • taken care of by @aliemjay in #114933

T-rustdoc

  • No P-critical issues for T-rustdoc 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 2023-08-22

A week with very few real regressions and some good improvements through work done by @cjgillot who found a few spots where the compiler was doing unnecessary work.

Triage done by @rylev. Revision range: e845910..d4a881

Summary:

(instructions:u) mean range count
Regressions (primary) 1.4% [0.5%, 2.6%] 13
Regressions (secondary) 0.6% [0.3%, 0.8%] 8
Improvements (primary) -0.7% [-1.4%, -0.3%] 59
Improvements (secondary) -0.8% [-1.3%, -0.3%] 38
All (primary) -0.3% [-1.4%, 2.6%] 72

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

Regressions

Warn on inductive cycle in coherence leading to impls being considered not overlapping #114023 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.3% [0.6%, 2.5%] 10
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 1.3% [0.6%, 2.5%] 10
  • The author is investigating whether this is due to the use of a temporary lint or if there is some more fundamental change happening here.

Rollup of 7 pull requests #114879 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.3%, 0.3%] 2
Regressions (secondary) 0.5% [0.4%, 0.6%] 8
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.3%, 0.3%] 2
  • The perf result seems to just be noise.

Remove conditional use of Sharded from query caches #114892 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.2%, 0.5%] 3
Regressions (secondary) 0.5% [0.4%, 0.6%] 8
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.2%, 0.5%] 3
  • Perf results are small and worth the simplification in code.

Improvements

Do not mark shallow_lint_levels_on as eval_always. #114536 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.4% [0.4%, 0.4%] 1
Improvements (primary) -0.7% [-1.3%, -0.3%] 30
Improvements (secondary) -0.5% [-1.0%, -0.3%] 15
All (primary) -0.7% [-1.3%, -0.3%] 30

Only run MaybeInitializedPlaces dataflow once to elaborate drops #111555 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.6% [0.6%, 0.6%] 1
Improvements (primary) -0.8% [-1.3%, -0.3%] 27
Improvements (secondary) -0.7% [-1.1%, -0.4%] 32
All (primary) -0.8% [-1.3%, -0.3%] 27

Mixed

add a csky-unknown-linux-gnuabiv2 target #113658 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.3% [0.3%, 1.9%] 3
Regressions (secondary) 0.3% [0.3%, 0.3%] 1
Improvements (primary) -0.3% [-0.3%, -0.2%] 4
Improvements (secondary) -0.3% [-0.4%, -0.2%] 4
All (primary) 0.4% [-0.3%, 1.9%] 7
  • Noise

Rollup of 10 pull requests #114852 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.5%, 0.6%] 4
Regressions (secondary) 1.0% [1.0%, 1.0%] 3
Improvements (primary) - - 0
Improvements (secondary) -0.3% [-0.3%, -0.3%] 1
All (primary) 0.5% [0.5%, 0.6%] 4
  • Noise

Nominated Issues

T-compiler

  • No I-compiler-nominated issues at this time.

RFC

  • No I-compiler-nominated RFCs at this time.

Oldest PRs waiting for review

T-compiler

  • “compiler: be more clear about transparent layout violations” rust#114015(last review activity: about 28 days ago)
    • Another one circling around, now autorolled to @_Michael Goulet (compiler-errors) but maybe up for grabs
  • “Ignore host C++ runtime in a cross build scenario” rust#114078(last review activity: about 27 days ago)
    • cc: @Josh Stone (cuviper) (or reroll)

Next week’s WG checkins

  • @_T-rust-analyzer by @Lukas Wirth

Next meetings' agenda draft: https://hackmd.io/0WLg3ph5Rkqmvv692KMhLA