T Compiler Meeting Agenda 2022 04 07

T-compiler Meeting Agenda 2022-04-07

Tracking Issue

Announcements

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
  • 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: 9 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 6 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: 3 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 19 days ago)
    • “Add yeet experimentally” compiler-team#501 (last review activity: about 6 days ago)
  • Pending FCP requests (check your boxes!)
    • “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
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Fix constants not getting dropped if part of a diverging expression” rust#94775

WG checkins

No major updates from polymorphization this cycle - team members are prioritizing other projects. Fixing the primary bug related to TypeId is still the current priority, lcnr has a fix but we’re working out some complications with that fix.

We have switched from our decorator hacks to VSCode’s native inlay hints in the client. Aside from that we started talking to the relevant teams to move the rust-analyzer repo into the rust-lang org and figure out what to do about the VSCode extensions.

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Check that all hidden types are the same and then deduplicate them.” rust#95731
    • Fixes rust#95538, a regression in a recent nightly (labeled P-medium)
    • patch authored and beta-backport nominated by @oli
  • 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: about 33 days ago)
    • did @pnkfelix @Wesley Wiser had a chance to discuss about this issue? zulip comment from past meeting.
  • “Suggest dereferencing non-lval mutable reference on assignment” rust#94639 (last review activity: about 32 days ago)
    • PR author recently pinged for a review
    • then rustbot assigned to @Wesley Wiser
  • “Imrpove E0617” rust#94637 (last review activity: about 32 days ago)
    • rustbot assigned to @Matthew Jasper, reroll dice?
  • “Parse inner attributes on inline const block” rust#94985 (last review activity: about 21 days ago)
    • @mw suggested @pnkfelix as reviewer
  • “Reject #[thread_local] attribute on non-static items” rust#95006 (last review activity: about 21 days ago)
    • rustbot assigned to @Wesley Wiser, reroll dice?
  • “Fix codegen bug in “ptx-kernel” abi related to arg passing” rust#94703 (last review activity: about 19 days ago)
    • @davidtwco approved the changes (comment)
    • previous review also by @bjorn3
    • PR needs another reviewer
  • “Make AST->HIR lowering incremental” rust#88186 (last review activity: about 16 days ago)
    • This depends now on rust#95573
    • Author of #95573, asked @mw for a review
  • “Add known-bug for #95034” rust#95102 (last review activity: about 13 days ago)
    • This just adds some tests for regression rust#95034
    • @Jack Huey already contributed some thoughts
    • maybe worth an expedit review?

Issues of Note

Short Summary

P-critical

T-compiler

  • No new 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 for 2022-04-05

A somewhat quiet week with only a few improvements and regressions, but with improvements ever so slightly edging out regressions. The biggest regression was in a rollup which makes investigation difficult though it looks like its in trait resolution which impacts crates that do a lot of that such as diesel. The biggest improvement comes from work done by the performance team (more specifically @nnethercote) to improve macro_rules parsing which can lead to sizeable performance gains for crates using the “token munching” pattern in macro_rules.

Triage done by @rylev. Revision range: 3e7514670db841a7f0d7656f3b13b1c8b2c11599..949b98cab8a186b98bf87e64374b8d0848c55271

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

Regressions

Make lowering pull-based #90204 (Comparison Link)

Regressions 😿 (primary) Regressions 😿 (secondary) Improvements 🎉 (primary) Improvements 🎉 (secondary) All 😿 🎉 (primary)
count 2 33 0 0 2
mean 0.3% 0.7% N/A N/A 0.3%
max 0.4% 1.7% N/A N/A 0.4%
  • This is necessary for unlocking incremental lowering. It was justified as acceptable since the performance will hopefully be won back (in the incremental case) when lowering is made incremental and the impact on real world crates is pretty small (only 2 regressions at an average of 0.3%).

Rollup of 7 pull requests #95662 (Comparison Link)

Regressions 😿 (primary) Regressions 😿 (secondary) Improvements 🎉 (primary) Improvements 🎉 (secondary) All 😿 🎉 (primary)
count 20 13 0 6 20
mean 0.8% 0.4% N/A -0.4% 0.8%
max 2.0% 0.7% N/A -0.5% 2.0%
  • It’s not clear what the underlying cause could be as it seems that the issues are coming in trait selection and there are several PRs that touch trait selection (albeit for diagnostics purposes). I’ve left a comment to see if we can investigate further.

Improvements

Yet more parse_tt improvements #95425 (Comparison Link)

Regressions 😿 (primary) Regressions 😿 (secondary) Improvements 🎉 (primary) Improvements 🎉 (secondary) All 😿 🎉 (primary)
count 1 0 30 23 31
mean 0.3% N/A -0.9% -2.0% -0.9%
max 0.3% N/A -2.3% -6.2% -2.3%

Add debug assertions to some unsafe functions #92686 (Comparison Link)

Regressions 😿 (primary) Regressions 😿 (secondary) Improvements 🎉 (primary) Improvements 🎉 (secondary) All 😿 🎉 (primary)
count 1 0 17 19 18
mean 0.6% N/A -0.5% -0.4% -0.4%
max 0.6% N/A -1.4% -0.8% -1.4%

Mixed

A new matcher representation for use in parse_tt #95555 (Comparison Link)

Regressions 😿 (primary) Regressions 😿 (secondary) Improvements 🎉 (primary) Improvements 🎉 (secondary) All 😿 🎉 (primary)
count 3 10 18 11 21
mean 0.4% 1.0% -1.0% -2.4% -0.8%
max 0.4% 2.8% -2.0% -4.6% -2.0%
  • This was already justified as being acceptable since the real world crates that suffer from regressions are exercising some of the worst case scenario execution paths. There is an attempt to address this in a follow up (#95669). In any case, the improvements outweigh the regressions in both magnitude and number.

Nominated Issues

T-compiler

  • “Cache more queries on disk” rust#95418
    • PR authored by @cjgillot
    • Nominated by @davidtwco (comment)

RFC

  • No nominated RFCs for T-compiler this time.