T Compiler Meeting Agenda 2022 05 19

T-compiler Meeting Agenda 2022-05-19

Announcements

  • Today release of Rust stable 1.61 (blog post) :tada:
  • Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and issue
  • 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).

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (not seconded, take a look)
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 10 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 7 months ago)
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 5 months ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 5 months ago)
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: 2 months ago)
    • “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 12 days ago)
    • “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 12 days ago)
    • “Replace generic parameter list with separate lists per param kind” compiler-team#515 (last review activity: about 5 days ago)
  • Pending FCP requests (check your boxes!)
    • “Stabilize -Zgcc-ld=lld as -Clink-self-contained=linker -Clinker-flavor=gcc-lldcompiler-team#510
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
    • “Tracking Issue for -Z terminal-widthrust#84673
    • “Increase the minimum linux-gnu versions” rust#95026
    • “Stabilize the bundle native library modifier” rust#95818
    • “Remove label/lifetime shadowing warnings” rust#96296
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • “Tracking issue for explicit_generic_args_with_impl_traitrust#83701

WG checkins

no check-in text provided, but go check out the info at https://hackmd.io/gPgXC4fsTZOgOnd-Bwhoag

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Allow the unused_macro_rules lint for now” rust#97032
    • nominated for beta 1.62 backport
  • No stable nominations for T-compiler this time.

T-rustdoc beta / T-rustdoc stable

  • No backport nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

PRs S-waiting-on-team

T-compiler

  • No PRs waiting on T-compiler this time.

Oldest PRs waiting for review

T-compiler

  • “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 (last review activity: 2 months ago)
    • cc: @pnkfelix and @Wesley Wiser (which are working on it)
    • depends also on rust#96784
  • “Move various checks to typeck so them failing causes the typeck result to get tainted” rust#96046 (last review activity: about 33 days ago)
    • cc: assignee reviewer @Michael Goulet (compiler-errors)
  • “some mir typeck cleanup” rust#95763 (last review activity: about 28 days ago)
    • cc: @lcnr is the PR ready to review?
  • “reject more impossible trivial bounds (HRTBs and trivial after normalization)” rust#95611 (last review activity: about 28 days ago)
    • cc: @Michael Goulet (compiler-errors) current status s-waiting-for-review is correct?
    • cc: @nikomatsakis does this PR need a T-lang approval (comment)?
  • “Add EntryExistInstrumenterPass for -Z instrument-mcount to the pipeline manually for LLVM >= 13.” rust#96238 (last review activity: about 28 days ago)
    • @tm|352985 reviewed
    • This comment (and following) raise the question if a fix should be applied to LLVM directly

Issues of Note

Short Summary

P-critical

T-compiler

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

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 2022-05-17

It was a somewhat quiet week with real-world benchmarks showing a slight improvement on average and only one real-world crate, bitmaps, experiencing regressions. Unfortunately, the cause of the regressions don’t look straightforward though. The biggest performance win came from a change to not encode attributes in metadata that are only used within the local crate. This improved doc builds of 16 of the 18 real world crates we run in our performance suite!

Triage done by @rylev. Revision range: c51871..7355d

Summary:

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 7 9 40 43 47
mean 1.6% 2.6% -0.6% -1.3% -0.3%
max 1.9% 3.5% -2.6% -2.6% -2.6%

2 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups 51 artifact comparisons made in total

Regressions

Add EarlyBinder #96883 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 7 0 0 0 7
mean 1.7% N/A N/A N/A 1.7%
max 2.0% N/A N/A N/A 2.0%
  • Regressions are exclusively in bitmaps-3.1.0 in both full and incr-full scenarios. This benchmark stresses trait related code in the compiler.
  • Looks like specialization_graph_of is taking more time which is trait related so it makes sense.
  • Left a comment asking if anyone has any more clues.

Retire ItemLikeVisitor trait #96825 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 6 0 5 0
mean N/A 4.2% N/A -0.3% N/A
max N/A 4.8% N/A -0.4% N/A
  • This regression seems to be taking place exclusively in the externs stress test.
  • The native_library_kind query is being hit more often. Since that query is going to be used a lot in the externs crate, it makes sense it would be the one to show regressions.
  • The cachegrind diff for externs debug full shows a big regression in calls to rustc_metadata::rmeta::decoder::cstore_impl::provide which calls into native_library_kind.
  • Left a comment asking why that might be the case.

Improvements

don’t encode only locally used attrs #95562 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 22 23 22
mean N/A N/A -0.8% -1.8% -0.8%
max N/A N/A -2.7% -2.8% -2.7%

rustc: Stricter checking for #[link] attributes #96885 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 0 9 0
mean N/A N/A N/A -0.8% N/A
max N/A N/A N/A -1.2% N/A

optimize insert_range method of IntervalSet #96895 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 0 6 0
mean N/A N/A N/A -1.3% N/A
max N/A N/A N/A -2.4% N/A

Clean up derived obligation creation #96892 (Comparison Link)

Regressions (primary) Regressions (secondary) Improvements (primary) Improvements (secondary) All (primary)
count 0 0 3 1 3
mean N/A N/A -0.4% -0.4% -0.4%
max N/A N/A -0.6% -0.4% -0.6%

Nominated Issues

T-compiler

  • No nominated issues for T-compiler this time.

RFC

  • No nominated RFCs for T-compiler this time.

Next week’s WG checkins

  • @_WG-diagnostics by @Esteban K├╝ber and @oli
  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081