T Compiler Meeting Agenda 2023 08 17

T-compiler Meeting Agenda 2023-08-17

Announcements

Other WG meetings (calendar link)

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
  • Old MCPs (stale MCP might be closed as per MCP procedure)
    • None at this time
  • Old MCPs (not seconded, take a look)
    • “Cell Broadband Engine SPU support” compiler-team#614 (Zulip) (last review activity: 4 months ago)
    • “Add support for Zephyr OS” compiler-team#629 (Zulip) (last review activity: about 56 days ago)
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (Zulip) (last review activity: 2 months ago)
    • “Add a new --build-id flag to rustc” compiler-team#635(last review activity: 2 months ago)
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
    • “Add support for visionOS targets” compiler-team#642 (Zulip) (last review activity: about 48 days ago)
    • “Add illumos Tier3 targets” compiler-team#644 (Zulip) (last review activity: about 23 days ago)
    • “Migrate away from u32 as an offset/length type” compiler-team#647 (Zulip) (last review activity: about 41 days ago)
    • “Add builtin:$path option to the -L flag” compiler-team#659 - “Add builtin:$path option to the -L flag” compiler_team#659 (Zulip) (last review activity: about 13 days ago)
  • Pending FCP requests (check your boxes!)
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
      • Note: also I-compiler-nominated
    • “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)
    • “Document soundness of Integer -> Pointer -> Integer conversions in const contexts.” rust#113510
    • “Warn on inductive cycle in coherence leading to impls being considered not overlapping” rust#114023

WG checkins

  • @_WG-diagnostics by @Esteban Küber and @oli prev. checkin

    Esteban reports: The diagnostics namespace is now on nightly. Not useful yet for anything, but that unblocks on_type_error and on_unimplemented to be implemented for non rustc usecases

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: “Permit pre-evaluated constants in simd_shuffle” rust#113529
    • Fixes #113500 and #114844 (and a few others), can’t compile crate packed_simd_2-0

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “regex miscompiles with aggressive optimization flags” rust#114488
    • discussed last week, @Wesley Wiser self-assigned

T-types

  • “RPIT hidden types can be ill-formed” rust#114728
    • @Michael Goulet (compiler-errors) authored PR #114740 to fix
    • @lcnr proposes to merge that PR (comment) though not void of breaking changes (ref: @aliemjay comment)
    • cc: T-types

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

2023-08-14 Triage Log

A light week. Main thing to report is we got some improvements from telling LLVM that the negation in <*const T>::sub cannot overflow.

Triage done by @pnkfelix. Revision range: 443c3161..e8459109

Summary:

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.7% [-1.6%, -0.4%] 11
Improvements (secondary) -0.5% [-1.6%, -0.3%] 8
All (primary) -0.7% [-1.6%, -0.4%] 11

0 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 49 artifact comparisons made in total 30 Untriaged Pull Requests

Regressions

None

Improvements

Tell LLVM that the negation in <*const T>::sub cannot overflow #114720 (Comparison Link)

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

Mixed

Rollup of 7 pull requests #114604 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.4% [0.4%, 2.0%] 3
Regressions (secondary) 1.2% [1.1%, 1.3%] 6
Improvements (primary) -0.7% [-0.9%, -0.4%] 2
Improvements (secondary) -1.0% [-1.5%, -0.5%] 2
All (primary) 0.5% [-0.9%, 2.0%] 5
  • already marked as triaged due to follow-up PR #114648

Only resolve target type in try_coerce in new solver #114648 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.0% [1.0%, 1.0%] 1
Regressions (secondary) - - 0
Improvements (primary) -1.7% [-1.8%, -1.6%] 2
Improvements (secondary) - - 0
All (primary) -0.8% [-1.8%, 1.0%] 3
  • This was specifically added to undo regressions flagged in PR #114604
  • it did indeed undo the big changes: e.g. cranelift-codegen-0.82.1 had regressed by {2%, 1.7%}, and this improved it back by {-1.84%, -1.59%}
  • likewise cargo-0.60.0 had improved by -0.93%, and this regressed it back by 0.99%. (I.e. we returned to prior status quo.)
  • some other effects were not addressed by this PR, but they are all minor.
  • marking as triaged.

Only check outlives goals on impl compared to trait #109356 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.4% [0.4%, 0.4%] 2
Improvements (primary) -0.9% [-1.6%, -0.6%] 6
Improvements (secondary) - - 0
All (primary) -0.9% [-1.6%, -0.6%] 6
  • regression is solely to the opt and debug profiles externs secondary benchmark, by a small amount.
  • marked as triaged

Respect #[expect] the same way #[allow] is with the dead_code lint #114710 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.3%, 0.7%] 2
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -0.6% [-0.8%, -0.5%] 3
All (primary) 0.5% [0.3%, 0.7%] 2
  • seems like noise
  • marked as triaged

Nominated Issues

T-compiler

  • “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
    • Summary from author @Be
    • @Vadim Petrochenkov proposes to merge this comment
  • “Associated type constraints on super traits allowing for unsound transmutation to trait objects” rust#114389
    • nominated by @apiraino (comment)
    • discussed last week

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

  • “Preserve DebugInfo in DeadStoreElimination.” rust#106852 (last review activity: about 34 days ago)
    • cc: @Jak{e,ob} Degen
  • “Make SIGSEGV handler emit nicer backtraces” rust#113565 (last review activity: about 33 days ago)
    • seems like this PR has been jumping assignment for a bit: any takers?
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712(last review activity: about 32 days ago)
    • cc: @uwu
  • “Replace the \01__gnu_mcount_nc to LLVM intrinsic for ARM” rust#113814(last review activity: about 30 days ago)
    • needs an LLVM expert? (doesn’t seem urgent, tho)

Next week’s WG checkins

TBA

Next meetings' agenda draft: https://hackmd.io/EoH5hPsnTdaD1dcKEVbYug