T Compiler Meeting Agenda 2022 03 24

T-compiler Meeting Agenda 2022-03-24



  • 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: 8 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 5 months ago)
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: 3 months ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 3 months ago)
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
    • “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
    • “Removing codegen logic for nvptx-nvidia-cuda (32-bit target)” compiler-team#496 (last review activity: about 6 days ago)
  • Pending FCP requests (check your boxes!)
    • “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
  • Things in FCP (make sure you’re good with it)
    • “Implement Clone for generators” compiler-team#494
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Tracking issue for const extern fn and const unsafe extern fnrust#64926
    • “Always evaluate all cfg predicate in all() and any()” rust#94295

WG checkins

  • @_WG-traits (impl trait) by @nikomatsakis (no previous checkin):

Checkin text

@nikita popov writes: From the LLVM side (though possibly I’m du):

  • Rust (including the beta branch) is on LLVM 14 now. I don’t think we had any interesting problems with this release.
  • The large increases in compile-time with the new pass manager due to catastrophic inlining have been fixed (part of the final LLVM 14 release).
  • noundef metadata is now applied to loads as well (for types with invalid values – the larger question of whether we can make everything apart from MaybeUninit undef remains open)
  • I’m mostly doing opaque pointers work upstream, and we’re close to enabling them by default. https://github.com/rust-lang/rust/pull/94214#issuecomment-1051946207 has some promising initial numbers for rust + opaque pointers.
  • The allocalign attribute has landed, but the allocator attribute patches are still outstanding. Once everything is in place we can switch rust allocator functions to use the new attributes and drop the LLVM patch we carry for this.

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: “relax suspicious_auto_trait_impls lint wrt lifetimes” rust#94925
    • PR authored by @lcnr, (pr is merged)
    • fixes a warning caused by rust#84857
    • nominated by @_lcnr to remove all incorrect warnings before rust#93367 lands on stable (comment)
  • 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


  • No PRs waiting on t-compiler

Oldest PRs waiting for review


  • “Fix stack overflows when compiling high-recursion_limit programs” rust#93056 (last review activity: 2 months ago)
    • PR author has been keeping up with upstream changes
    • Seems a reviewer is needed
  • “Better method call error messages” rust#92364 (last review activity: about 57 days ago)
    • PR author @Jack Huey suggests a review from @Esteban Küber
  • “Add [f32]::sort_floats and [f64]::sort_floatsrust#93397 (last review activity: about 54 days ago)
    • left a comment for @Josh Triplett to be sure PR is actually ready for review
  • “parallel_compiler: hide dependencies behind feature” rust#93787 (last review activity: about 39 days ago)
    • bot assigned to @Wesley Wiser
    • some comments left by @cuviper and @cjgillot
    • PR needs a rebase (maybe not blocking review)
  • “Only add codegen backend to dep info if -Zbinary-dep-depinfo is used” rust#93969 (last review activity: about 38 days ago)
    • rustbot rolled the dice a few times but PR probably needs a reviewer, maybe re-assign?
  • “Fix incorrect suggestion for trait bounds involving binary operators” rust#94034 (last review activity: about 35 days ago)
    • first round of review by @oli and @Esteban Küber
    • PR needs a rebase (maybe not blocking review?)
  • “Only compile #[used] as llvm.compiler.used for ELF targets” rust#93718 (last review activity: about 34 days ago)
    • can now be reviewed from T-compiler
  • “Introduce enhanced_binary_op feature” rust#93049
    • assigned to @Matthew Jasper, comments indicate a conversation here
    • (author also suggests closing it)

Issues of Note

Short Summary



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


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

P-high regressions

P-high beta regressions

  • No new unassigned P-high

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2022-03-22

Very quiet week for performance, with just one statistically significant change landing in the last week. This change was a regression, though primarily in stress tests, and was a result of a soundness fix.

Triage done by @simulacrum. Revision range: 3ba1ebea122238d1a5c613deb1bf60ce24bd8fd8..3ea44938e21f0de8ae7d4f6399a8a30f97867c70

1 Regressions, 0 Improvements, 0 Mixed; 0 of them in rollups 37 comparisons made in total


Disable almost certainly unsound early otherwise branch MIR opt #95161

  • Arithmetic mean of relevant regressions: 3.1%
  • Largest regression in instruction counts: 8.5% on full builds of deeply-nested-multi check
  • Minimal impact on primary benchmarks, and as a soundness fix naturally pretty justified.


  • No improvements.


  • No mixed results.

Nominated Issues


  • No nominated issues for T-compiler this time.


  • No nominated RFCs for T-compiler this time.