owned this note changed 3 years ago
Published Linked with GitHub

T-compiler Meeting Agenda 2021-09-09

Tracking Issue

Announcements

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Today 9/9th, release Rust stable 1.55
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (not seconded, take a look)
    • "rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat "stable"?" compiler-team#403 (last comment: GH none, Zulip: none)
    • "CI should exercise (subset of) tests under stage 1" compiler-team#439 (last comment: GH 20d ago, Zulip: 1w ago)
    • "Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets" compiler-team#441 (last comment: 2 months ago)
    • "Non exhaustive reachable patterns lint" compiler-team#445 (last comment: GH none, Zulip about a month ago)
    • "Add TyKind::Const and remove GenericArgKind::Const" compiler-team#453 (last comment: GH None, Zulip about 2 weeks ago)
    • "prefer-dynamic=subset" compiler-team#455 (last comment: GH none, Zulip 2 days ago)
  • Pending FCP requests (check your boxes!)
    • "Write text output files to stdout if options like -o - or --emit asm=- are provided" compiler-team#431
  • Things in FCP (make sure you're good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • "Stabilize "force warn" option " rust#86516
    • "Support #[track_caller] on closures and generators" rust#87064
    • "stabilize disjoint capture in closures (RFC 2229)" rust#88126
    • "Stabilize reserved prefixes" rust#88140

WG checkins

@wg-incr-comp by @pnkfelix and @Wesley Wiser (previous checkin):

On 20 Aug, wesleywiser mw and pnkfelix met with cjgillot to discuss PR #84373
It was productive in getting things unblocked, and we hope to have more meetings and progress in the future.

@WG-llvm by @nagisa (previous checkin):

There was recently a bump to LLVM 13, with all of the associated fallout and fixes. There's also an effort to enable the new pass manager by default. This pass manager takes a different tradeoff between space and time, and as a result rustc would use more memory but also optimize code faster.
In some other news:

  • we're considering using the object crate in more places to replace some artifact writing functionality we currently use from LLVM.
  • The work towards type-less pointer support has largely happened to the extent it is enabled by LLVM 13.
  • Support for LLVM 10 will likely be dropped in the near future, making LLVM 11 the oldest supported version.

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: "Preserve most sub-obligations in the projection cache" rust#85868
    • Team is inclined to r+ this, perf regressions are already triaged (necessary for correctness)
    • @Jack Huey commented last week that the code needs a comment
  • :beta: "2229: Don't move out of drop type" rust#88477
  • :beta: "Fix 2021 dyn suggestion that used code as label" rust#88657
    • opened by @Noah Lev
    • assigned for review to @Mara
  • No stable nominations for T-compiler this time.

T-rustdoc stable / T-rustdoc beta

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

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

PRs S-waiting-on-team

T-compiler

  • "Perform type inference in range pattern" rust#88090
    • opened by @Gary Guo
    • fixes rust#88074
    • @Esteban Küber left some comments
    • @Jack Huey I-nominated for T-lang

Oldest PRs waiting for review

T-compiler

  • "Replace dominators algorithm with simple Lengauer-Tarjan" rust#85013 (last comment: 3 months ago)
    • Question from @apiraino: why people from wg-triage have been removing and adding S-waiting-for-review for the last 2 months? Is it meant to emit a "ping" reminder?
  • "Refactor query forcing" rust#78780 (last comment: 3 months ago)
    • assigned to @Wesley Wiser
    • Perf run results: no runtime modification, and -8% on rustc_query_impl compile time
  • "Update the x86_64-unknown-l4re-uclibc tier 3 target" rust#85967 (last comment: 3 months ago)
    • There is a review from June from @Vadim Petrochenkov which might need some discussion
  • "Add basic checks for well-formedness of fn/fn_mut lang items" rust#86246 (last comment: 2 months ago)
  • "Emit clearer diagnostics for parens around for loop heads" rust#86422 (last comment: 2 months ago)

Issues of Note

Short Summary

P-critical

T-compiler

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 2021-09-7

A busy week, with lots of mixed changes, though in the end only a few were deemed significant enough to report here.

Triage done by @pnkfelix. 3 Regressions, 1 Improvements, 3 Mixed; 0 of them in rollups
57 comparisons made in total

Regressions

Shrink Session a bit #88530

  • Large regression in instruction counts (up to 2.6% on full builds of deeply-nested-async)

Concrete regions can show up in mir borrowck if the originated from there #88533

  • Very small regression in instruction counts (up to 1.0% on incr-patched: add static arr item builds of coercions)
  • This is a small regression to coercions and that may be noise. However, there are many others that are over 0.4% regression to instruction counts. The combination of those two factors led pnkfelix to think that we may want to take a second look at the effects of this PR.

Introduce let...else #87688

  • Small improvement in instruction counts (up to -0.3% on incr-unchanged builds of deeply-nested-closures)
  • Small regression in instruction counts (up to 0.4% on full builds of issue-46449)
  • Small regression (approximately 1%) in instruction counts on several of the *-doc tests, found via human eye.

Improvements

  • Move global analyses from lowering to resolution #88597

Mixed

Preserve most sub-obligations in the projection cache #85868

  • Very large improvement in instruction counts (up to -6.9% on incr-unchanged builds of deeply-nested)
  • Very large regression in instruction counts (up to 9.4% on full builds of deeply-nested)

BTreeMap/BTreeSet::from_iter: use bulk building to improve the performance #88448

Avoid invoking the hir_crate query to traverse the HIR #88435

  • Small improvement in instruction counts (up to -1.2% on incr-patched: add static arr item builds of coercions)
  • Small regression in instruction counts (up to 0.5% on incr-unchanged builds of helloworld)
  • pnkfelix included this one as notable largely because the expected perf changes from the actual PR largely showed slight improvements across the board, while after it landed on nightly, it is best categorized as "Mixed"

Untriaged Pull Requests

Nominated Issues

T-compiler

  • "Perform type inference in range pattern" rust#88090
    • (see S-waiting-on-team)
  • "Type called union wreaks havoc since 1.54" rust#88583
    • (see P-critical list)

RFC

  • No nominated RFCs for T-compiler this time.
Select a repo