T Compiler Meeting Agenda 2023 09 21

T-compiler Meeting Agenda 2023-09-21

Announcements

Other WG meetings (calendar link)

MCPs/FCPs

  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (stale MCP might be closed as per MCP procedure)
    • None at this time
  • Old MCPs (not seconded, take a look)
    • “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 3 months ago)
    • “Add a new --build-id flag to rustc” compiler-team#635 (last review activity: 3 months ago)
    • “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: 3 months ago)
    • “Add support for visionOS targets” compiler-team#642 (last review activity: about 19 days ago)
    • “Match the behavior of strip and split-debuginfo across platforms” compiler-team#669 (last review activity: about 16 days ago)
    • “Add infrastructure to “compute the ABI of a Rust type, described as a C type”” compiler-team#672 (last review activity: about 13 days ago)
  • Pending FCP requests (check your boxes!)
    • “Retire the mailing list and make all decisions on zulip” compiler-team#649
    • " Add type field to distinguish json diagnostic outputs" compiler-team#673
    • “Tracking issue for dyn upcasting coercion” rust#65991
    • “Support overriding warnings level for a specific lint via command line” rust#113307
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • “Enable -Zdrop-tracking-mir by default” rust#107421
    • “Accept additional user-defined syntax classes in fenced code blocks” rust#110800
    • “rustdoc-search: add support for type parameters” rust#112725
    • “rustdoc: show inner enum and struct in type definition for concrete type” rust#114855
    • “Don’t resolve generic impls that may be shadowed by dyn built-in impls” rust#114941
    • “closure field capturing: don’t depend on alignment of packed fields” rust#115315

WG checkins

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.73.0-beta.6] “Don’t modify libstd to dump rustc ICEs” rust#115627
    • fixes regression #115610 about an increased binary size
    • Also T-libs camp (they approved the backport on Zulip)
  • :beta: [1.73.0-beta.6] “Expose try_destructure_mir_constant_for_diagnostics directly to clippy” rust#115819
    • commented briefly last week, left some comments
  • :beta: [1.73.0-beta.6] “Paper over an accidental regression” rust#115844
    • merged last week, fixes rust#115781 a p-medium regression found in a beta crater run
  • :beta: [1.73.0-beta.6] “Update to LLVM 17.0.0” rust#115959
    • fixes a p-critical miscompile (#115681)
  • :beta: [1.73.0-beta.6] “Update LLVM submodule to 17.0.0-rc4” rust#115581
    • fixes #115385 a p-critical unsoundness MIRI issue (comment)
    • goes hand in hand with the LLVM 17.0.0 upgrade (#115959)
  • No stable nominations for T-compiler this time.

PRs S-waiting-on-team

T-compiler

  • “More distinctive pretty-printing of function item types” rust#99927
    • @Frank Steffahn (PR author) left some comments, seemingly addressed to T-compiler? Not too sure about the current status
  • Other issues in progress or waiting on other teams

Issues of Note

Short Summary

P-critical

T-compiler

  • “ICE: unexpected initial operand type.” rust#114858
    • Seems to be already fixed in nightly (comment)
    • still to be fully investigated the side-effects of PR #112307 that are behind this regression (comment)

T-types

  • “RPIT hidden types can be ill-formed” rust#114728
    • Should be fixed by @aliemjay in rust#115008
    • Downgrade to P-high? Filed in August, regressed in 1.61, likely not a release blocker at this point

T-rustdoc

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

P-high regressions

P-high beta regressions

  • “regression: as_place unwrap None” rust#115778
    • found during the latest beta crater run
    • bisected to commit 34ccd04

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2023-09-19

A pretty quiet week, with relatively few statistically significant changes, though some good improvements to a number of benchmarks, particularly in cycle counts rather than instructions.

Triage done by @simulacrum. Revision range: 7e0261e7ea2085bdc0bc3d0fd6776bf343473858..af78bae565e85b9c5698ee909af0652674eca6d4

Summary:

(instructions:u) mean range count
Regressions (primary) 0.5% [0.3%, 0.8%] 14
Regressions (secondary) 0.5% [0.2%, 0.8%] 5
Improvements (primary) -1.2% [-6.4%, -0.3%] 22
Improvements (secondary) -2.1% [-8.1%, -0.2%] 37
All (primary) -0.5% [-6.4%, 0.8%] 36

3 Regressions, 3 Improvements, 2 Mixed; 2 of them in rollups 56 artifact comparisons made in total

Regressions

Accept additional user-defined syntax classes in fenced code blocks #110800 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.5%, 0.9%] 3
Regressions (secondary) 0.9% [0.5%, 1.4%] 3
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.7% [0.5%, 0.9%] 3

Some slight regressions, limited to doc benchmarks, for a new feature in rustdoc.

Store a index per dep node kind #115733 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.2%, 0.5%] 9
Regressions (secondary) 0.3% [0.2%, 0.5%] 6
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.2%, 0.5%] 9

Slight instruction regressions but overall an improvement – max-rss and cycle counts are both down in aggregate.

Improvements

Rollup of 6 pull requests #115909 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.6% [-1.0%, -0.5%] 6
Improvements (secondary) -1.1% [-1.5%, -0.4%] 19
All (primary) -0.6% [-1.0%, -0.5%] 6

Rollup of 8 pull requests #115929 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.2%] 1
Regressions (secondary) - - 0
Improvements (primary) -0.5% [-0.7%, -0.2%] 19
Improvements (secondary) -0.5% [-0.6%, -0.2%] 12
All (primary) -0.4% [-0.7%, 0.2%] 20

move required_consts check to general post-mono-check function #115748 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.5% [0.5%, 0.5%] 1
Improvements (primary) -5.0% [-6.3%, -3.6%] 2
Improvements (secondary) -6.1% [-6.6%, -5.7%] 6
All (primary) -5.0% [-6.3%, -3.6%] 2

Cache reachable_set on disk #115740 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.4%, 0.4%] 1
Regressions (secondary) 0.4% [0.4%, 0.6%] 4
Improvements (primary) -1.0% [-2.4%, -0.3%] 8
Improvements (secondary) -2.6% [-8.2%, -0.8%] 4
All (primary) -0.9% [-2.4%, 0.4%] 9

Regressions are actually just noise, so moved this to improvements.

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “Implement a global value numbering MIR optimization” rust#109597 (last review activity: 4 months ago)
    • cc: @Jack Huey
  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 3 months ago)
    • cc @Wesley Wiser
  • “Fix ICE when trying to convert ConstKind::Error to usize” rust#113712 (last review activity: about 32 days ago)
    • cc: @uwu (reassign?)
  • “Suggest pin!() instead of Pin::new() when appropriate” rust#114654 (last review activity: about 40 days ago)
    • cc @davidtwco

Next week’s WG checkins

  • @_WG-async-foundations by @nikomatsakis and @tmandry
  • @_WG-diagnostics by @Esteban Küber and @oli

Next meetings' agenda draft: hackmd link