T Compiler Meeting Agenda 2023 06 22

T-compiler Meeting Agenda 2023-06-22

Announcements

  • Types team meeting at time:2023-06-26T10:00:00-04:00
  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).

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)
    • None at this time
  • Old MCPs (not seconded, take a look)
    • “2024: Decrease debuginfo generated by -Cdebuginfo=1compiler-team#613 (last review activity: 2 months ago)
    • “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 2 months ago)
    • “Revise error code documentation standard” compiler-team#615 (last review activity: 2 months ago)
    • “Add support for Zephyr OS” compiler-team#629 (last review activity: about 0 days ago)
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 27 days ago)
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: about 27 days ago)
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 8 days ago)
    • “[MCP] proposing a macros working group” compiler-team#637 (last review activity: about 6 days ago)
  • Pending FCP requests (check your boxes!)
    • No pending FCP requests this time.
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • “resolve: Remove artificial import ambiguity errors” rust#112086

WG checkins

  • Generic Associated Types initiative by @Jack Huey (previous checkin):

    Nothing new

  • @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    nothing to report

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.71.0] “Disable alignment checks on i686-pc-windows-msvc” rust#112684
    • first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on i686-pc-windows-msvc)
    • discussed last week (Zulip link)
    • also nominated for stable backport
  • :beta: [1.71.0] “Fix linker failures when #[global_allocator] is used in a dependency” rust#112794
    • fixes P-high unsoundness #112715
  • :stable: [1.70.1] “Disable alignment checks on i686-pc-windows-msvc” rust#112684

T-rustdoc stable / T-rustdoc beta

  • No beta nominations for T-rustdoc this time.
  • No stable nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

Issues of Note

Short Summary

P-critical

T-compiler

  • No P-critical issues for T-compiler at this time.

T-types

  • No P-critical issues for T-types at this time.

T-rustdoc

  • No P-critical issues for T-rustdoc at this time.

P-high regressions

P-high beta regressions

  • “const-propagated arithmetic_overflow in unreachable code” rust#109731
    • “based on further discussion in today’s triage meeting and follow-up … we’re going to let this ride the trains” (comment)
    • It’s now on stable, so close it?

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2023-06-20

Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.

Triage done by @rylev. Revision range: 4bd4e2e..b9d608c

Summary:

(instructions:u) mean range count
Regressions (primary) 1.4% [0.5%, 3.6%] 16
Regressions (secondary) 1.0% [0.2%, 3.5%] 29
Improvements (primary) -0.8% [-7.8%, -0.2%] 157
Improvements (secondary) -2.9% [-48.3%, -0.3%] 84
All (primary) -0.6% [-7.8%, 3.6%] 173

3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 51 artifact comparisons made in total

Regressions

Rollup of 7 pull requests #112625 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.4%] 4
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.2%, 0.4%] 4
  • Seems like this was a blip in the bitmaps test which corrected itself in the next run.

Add AliasKind::Weak for type aliases. #108860 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.5%] 8
Regressions (secondary) 0.4% [0.2%, 0.8%] 7
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.3% [0.2%, 0.5%] 8
  • Poked author and reviewer for thoughts on small regressions

CI: merge mingw test CI jobs #112645 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.8% [0.7%, 0.8%] 3
Regressions (secondary) 0.7% [0.6%, 0.7%] 2
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.8% [0.7%, 0.8%] 3
  • Noise as Linux was impacted

Improvements

Introduce a minimum CGU size in non-incremental builds. #112448 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -2.1% [-7.8%, -0.3%] 19
Improvements (secondary) -8.5% [-45.9%, -0.4%] 22
All (primary) -2.1% [-7.8%, -0.3%] 19

Don’t drain-on-drop in DrainFilter impls of various collections. #104455 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.2%, 1.2%] 3
Regressions (secondary) - - 0
Improvements (primary) -0.5% [-1.8%, -0.1%] 35
Improvements (secondary) -0.5% [-1.1%, -0.2%] 14
All (primary) -0.4% [-1.8%, 1.2%] 38

optimize slice::Iter::fold #106343 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.4%, 1.1%] 5
Regressions (secondary) - - 0
Improvements (primary) -0.2% [-0.4%, -0.2%] 87
Improvements (secondary) -0.3% [-1.2%, -0.1%] 24
All (primary) -0.2% [-0.4%, 1.1%] 92

Rollup of 7 pull requests #112716 (Comparison Link)

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

Rollup of 5 pull requests #112755 (Comparison Link)

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

Rollup of 6 pull requests #112774 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.8% [-0.8%, -0.7%] 3
Improvements (secondary) -0.7% [-0.7%, -0.7%] 2
All (primary) -0.8% [-0.8%, -0.7%] 3

new solver proof tree generation #112351 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.5% [-0.8%, -0.2%] 9
Improvements (secondary) -1.2% [-1.6%, -0.5%] 8
All (primary) -0.5% [-0.8%, -0.2%] 9

Mixed

Add support for targets without unwinding in mir-opt, and improve --bless for it #112418 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.3%] 3
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -1.3% [-1.3%, -1.3%] 1
All (primary) 0.3% [0.2%, 0.3%] 3
  • Noise returning to a steady state

Ignore the always part of #[inline(always)] in MIR inlining #112294 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.7% [1.2%, 2.5%] 8
Regressions (secondary) 0.6% [0.2%, 1.4%] 7
Improvements (primary) -0.4% [-3.0%, -0.2%] 61
Improvements (secondary) -0.4% [-1.0%, -0.2%] 18
All (primary) -0.1% [-3.0%, 2.5%] 69
  • From the author: “There are some notable regressions, and I think we might be able to claw those back by turning #[inline(always)] into a stronger hint. But I think this PR stands decently on its own as a tidy simplification.”

Remove box_free lang item #100036 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.2% [1.0%, 1.7%] 4
Regressions (secondary) 1.7% [1.1%, 3.4%] 5
Improvements (primary) -0.6% [-0.6%, -0.6%] 2
Improvements (secondary) -2.5% [-4.4%, -1.4%] 4
All (primary) 0.6% [-0.6%, 1.7%] 6
  • Waiting on the author and reviewer to give their thoughts.

make mir dataflow graphviz dumps opt-in #112617 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.6%, 0.7%] 3
Regressions (secondary) 0.6% [0.6%, 0.6%] 1
Improvements (primary) - - 0
Improvements (secondary) -0.5% [-0.6%, -0.4%] 6
All (primary) 0.6% [0.6%, 0.7%] 3
  • Regressions are noise

PRs S-waiting-on-team

T-compiler

Oldest PRs waiting for review

T-compiler

  • “Fixes LTO + build-std + Oz failed to resolve undefined symbols” rust#109821
    • discussed here cc: @pnkfelix, switch over to you if it’s fine?
  • “Add armv8r-none-eabihf target for the Cortex-R52.” rust#110482
    • cc: @Wesley Wiser
  • “Add support for NetBSD/aarch64-be (big-endian arm64).” rust#111326 (last review activity: about 44 days ago)
    • cc @oli
  • “suggest slice::swap for mem::swap(&mut x[0], &mut x[1]) borrowck error” rust#111403
    • cc: @Matthew Jasper (did last review)

Nominated Issues

T-compiler

  • No I-compiler-nominated issues

RFC

  • No I-compiler-nominated RFCs this time.

Next week’s WG checkins

  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
  • Impl Trait initiative by @oli

Agenda draft: https://hackmd.io/0I_xYjKMSc6lYT655FpWbg