T Compiler Meeting Agenda 2022 03 03

T-compiler Meeting Agenda 2022-03-03

Tracking Issue

Announcements

  • Tomorrow we have our monthly planning meeting at time:2022-03-04T15:00:00+01:00 (Zulip topic)
  • 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).
  • Signal boost: Niko’s proposal to create a team for traits, polonius, etc. (see Zulip Topic)

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: 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: 2 months ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: 2 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: about 41 days ago)
  • Pending FCP requests (check your boxes!)
    • “Stabilize native library modifier syntax and the whole-archive modifier specifically” rust#93901
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Check if enum from foreign crate has any non exhaustive variants when attempting a cast” rust#92744
    • “Stabilize #[cfg(panic = "...")]rust#93658
    • “Remove the everybody loops pass” rust#93913

WG checkins

Checkin text

nothing new since last report

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Check method input expressions once” rust#94438
    • PR opened by @Michael Goulet (compiler-errors)
    • PR is merged
    • nominated for backport by @Noah Lev
    • backport pending resolution of rust#94516
  • :beta: “backport fix for #94502” rust#94552
    • @lcnr authored PR, merge is in beta branch
    • @oli nominated for beta 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 S-waiting-on-team for T-compiler

Oldest PRs waiting for review

T-compiler

  • “Support #[global_allocator] without the allocator shim” rust#86844 (last review activity: 4 months ago)
  • “remove obligation dedup from impl_or_trait_obligationsrust#84944 (last review activity: 2 months ago)
    • cc: @Aaron Hill
  • “Fix late-bound ICE” rust#92289 (last review activity: about 51 days ago)
    • reviewed by @Wesley Wiser
    • asking @Esteban Küber for a second look (see review)
  • “add #[must_use] to functions of slice and its iterators.” rust#92853 (last review activity: about 48 days ago)
    • rustbot assigned reviewer @Josh Triplett and label T-compiler
    • However: PR author references issue rust#89692, which is T-libs-api
    • reroll assignee? Change team?

Issues of Note

Short Summary

P-critical

T-compiler

  • “optimized i686 fails primal-sieve tests” rust#94032
    • mentioned last week (see message)
    • decision to demote priority pushed to this meeting

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

perf triage logs for 2022-03-01

A relatively noisy week in performance measurements, particularly on the externs incremental benchmark. Based on the timing of the first noise, this seems to be due to #93839, which makes me suspect this is related to PGO or inlining decisions of some kind. #94373 might help.

Overall a relatively unchanged to slightly good week, with no outright regressions and most changes relatively small.

Triage done by @simulacrum. Revision range: 1204400ab8da9830f6f77a5e40e7ad3ea459676a..f0c4da49983aa699f715caf681e3154b445fb60b

0 Regressions, 5 Improvements, 6 Mixed; 2 of them in rollups 43 comparisons made in total

Regressions

  • No regressions this week.

Improvements

  • At opt-level=0, apply only ABI-affecting attributes to functions #94127
  • Make TLS __getit #[inline(always)] on non-Windows #94373
  • Avoid query cache sharding code in single-threaded mode #94084
  • Apply noundef attribute to all scalar types which do not permit raw init #94157
  • rustc_errors: let DiagnosticBuilder::emit return a “guarantee of emission”. #93368

Mixed

Back more metadata using per-query tables #94129

  • Arithmetic mean of relevant regressions: 0.8%
  • Arithmetic mean of relevant improvements: -0.6%
  • Arithmetic mean of all relevant changes: -0.5%
  • Largest improvement in instruction counts: -1.0% on full builds of wf-projection-stress-65510 doc
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt

Rollup of 9 pull requests #94333

  • Arithmetic mean of relevant regressions: 0.8%
  • Arithmetic mean of relevant improvements: -5.9%
  • Arithmetic mean of all relevant changes: -3.3%
  • Largest improvement in instruction counts: -14.4% on incr-unchanged builds of encoding check
  • Largest regression in instruction counts: 1.1% on incr-patched: println builds of cargo opt

Use undef for (some) partially-uninit constants #94130

  • Arithmetic mean of relevant regressions: 0.7%
  • Arithmetic mean of relevant improvements: -1.9%
  • Arithmetic mean of all relevant changes: -0.1%
  • Largest improvement in instruction counts: -2.9% on full builds of ctfe-stress-4 opt
  • Largest regression in instruction counts: 0.9% on incr-unchanged builds of externs opt

Caching the stable hash of Ty within itself #94299

  • Arithmetic mean of relevant regressions: 0.9%
  • Arithmetic mean of relevant improvements: -1.2%
  • Arithmetic mean of all relevant changes: -1.0%
  • Largest improvement in instruction counts: -9.6% on incr-unchanged builds of clap-rs check
  • Largest regression in instruction counts: 1.3% on incr-full builds of deeply-nested check

Revert “Auto merge of #92419 - erikdesjardins:coldland, r=nagisa” #94402

  • Arithmetic mean of relevant regressions: 0.7%
  • Arithmetic mean of relevant improvements: -1.7%
  • Arithmetic mean of all relevant changes: 0.5%
  • Largest improvement in instruction counts: -3.8% on full builds of ripgrep opt
  • Largest regression in instruction counts: 3.3% on full builds of syn opt

Rollup of 7 pull requests #94469

  • Arithmetic mean of relevant regressions: 0.3%
  • Arithmetic mean of relevant improvements: -0.8%
  • Arithmetic mean of all relevant changes: 0.0%
  • Largest improvement in instruction counts: -0.9% on incr-unchanged builds of externs debug
  • Largest regression in instruction counts: 0.3% on full builds of await-call-tree doc
  • Regression across multiple doc benchmarks.

Nominated Issues

T-compiler

RFC

  • “New Cargo and Rust options to support embedding Natvis into a PDB” rfcs#3191