T Compiler Meeting Agenda 2024 02 22

T-compiler Meeting Agenda 2024-02-22

Announcements

  • Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).

Other WG meetings

MCPs/FCPs

WG checkins

  • @_WG-diagnostics by @Esteban Küber and @oli (previous checkin):

    Checkin text

  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081 (prev checkin):

    Checkin text

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: [1.77] “Improve wording of static_mut_refrust#121034
    • postponed from last week (comment), waiting for the patch to be r+‘ed
    • which now happened (thanks @RalfJ!)
  • :beta: [1.77] “Solaris linker does not support –strip-debug” rust#121399
    • @_Eric Huss nominated since issue reporter asks for a backport (comment).
    • fixes #121381, linkage broke on Solaris in a recent beta (Tier 2 without host tools)
  • No stable nominations for T-compiler this time.

T-types stable / T-types beta

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

PRs S-waiting-on-team

T-compiler

Issues of Note

Short Summary

P-critical

T-compiler

  • “rust-1.75.0 fails to compile with ICE on aarch64 and various ppc arches with LTO enabled - error: could not compile memchr” rust#121124
    • Reported from a Gentoo user (in their issue tracker)
    • Waiting for a feedback on a question whether it also happen on LLVM 18 (comment)
    • @nils (Nilstrieb) suggests whether to disable LTO=fat altogether (comment)

T-types

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

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • “Severe perf regression in optimized debug builds due to extra UB checks” rust#121245
    • @apiraino assigned P-high given it’s reported as a /severe/ perf. regression in Miri built with optimized and debug assertions. Open to re-assess priority.
    • reported that disabling one of the UB checks introduced in #120594 gives a speedup of the same ballpark as that slowdown
    • last perf. run on #120594 were mostly positive :thinking:

Performance logs

triage logs for 2022-02-20

Relatively few PRs affecting performance, but massive improvements thanks to the update to LLVM 18 (PR #12005), as well as the merging of two related compiler queries (PR #120919) and other small improvements from a rollup (PR #121055).

Triage done by @pnkfelix. Revision range: 74c3f5a1..5af21304

Summary:

(instructions:u) mean range count
Regressions (primary) 0.5% [0.5%, 0.5%] 1
Regressions (secondary) 7.1% [0.5%, 78.5%] 17
Improvements (primary) -2.4% [-13.9%, -0.4%] 222
Improvements (secondary) -2.0% [-9.8%, -0.3%] 155
All (primary) -2.4% [-13.9%, 0.5%] 223

3 Regressions, 1 Improvements, 6 Mixed; 1 of them in rollups 65 artifact comparisons made in total

Regressions

Tracking import use types for more accurate redundant import checking #117772 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.2%, 1.0%] 44
Regressions (secondary) 0.7% [0.4%, 1.1%] 13
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.2%, 1.0%] 44
  • regressions are explained by petrochenkov: This lint is newly firing against benchmark code, which means that lint reporting machinery is being exercised that was previously not being exercised.
  • marked as triaged and filed rust-lang/rustc-perf#1819 to follow up with potential counter-action in benchmark tooling.

macro_rules: Preserve all metavariable spans in a global side table #119673 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.1%, 1.3%] 26
Regressions (secondary) 0.5% [0.1%, 3.3%] 12
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.4% [0.1%, 1.3%] 26
  • Instruction count regressions flagged against serde_derive, diesel, serde, html5ever, syn
  • Most of these were anticipated in the final perf runs against the try builds.
  • Marking as triaged under assumption that the reviewers deemed this change to be worth the predicted cost.

Always evaluate free constants and statics, even if previous errors occurred #121087 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.8% [0.4%, 2.0%] 4
Regressions (secondary) 1.0% [0.3%, 5.2%] 11
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.8% [0.4%, 2.0%] 4

Improvements

pattern_analysis: Move constructor selection logic to PlaceInfo #120692 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -1.8% [-1.9%, -1.7%] 6
All (primary) - - 0

Mixed

Merge impl_polarity and impl_trait_ref queries #120919 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.5%, 0.7%] 3
Regressions (secondary) 1.5% [1.5%, 1.5%] 1
Improvements (primary) -0.3% [-0.7%, -0.2%] 43
Improvements (secondary) -0.4% [-0.5%, -0.2%] 5
All (primary) -0.3% [-0.7%, 0.7%] 46
  • already marked as triaged (more wins than losses)

Update to LLVM 18 #120055 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 1.1% [0.7%, 3.5%] 7
Improvements (primary) -2.4% [-14.1%, -0.5%] 233
Improvements (secondary) -1.6% [-8.0%, -0.3%] 160
All (primary) -2.4% [-14.1%, -0.5%] 233
  • already marked as triaged (more wins than losses)

Rollup of 8 pull requests #121055 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.2% [0.2%, 0.2%] 2
Regressions (secondary) 0.9% [0.8%, 0.9%] 2
Improvements (primary) -0.9% [-1.8%, -0.2%] 9
Improvements (secondary) -0.6% [-1.1%, -0.3%] 21
All (primary) -0.7% [-1.8%, 0.2%] 11
  • already marked as triaged (more wins than losses)

cargo update #120454 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 1.4% [0.8%, 1.9%] 10
Improvements (primary) - - 0
Improvements (secondary) -0.9% [-3.4%, -0.2%] 15
All (primary) - - 0
  • already marked as triaged (improvements and regressions balanced out, and the binary size regressions were deemed due to upstream dependencies)

Store static initializers in metadata instead of the MIR of statics. #116564 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 15.9% [0.4%, 81.2%] 8
Improvements (primary) -0.4% [-0.5%, -0.2%] 8
Improvements (secondary) -2.5% [-8.9%, -0.4%] 18
All (primary) -0.4% [-0.5%, -0.2%] 8
  • already marked as triaged: the benchmark stress test is now writing an 8MB constant to metadata instead of a tiny bit of MIR

Clean up potential_query_instability with FxIndexMap and UnordMap #120931 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.2% [0.2%, 0.2%] 4
Improvements (primary) -0.2% [-0.2%, -0.2%] 2
Improvements (secondary) -6.6% [-6.6%, -6.6%] 1
All (primary) -0.2% [-0.2%, -0.2%] 2
  • regressions are solely to the secondary many-assoc-items benchmark (check full, check/debug/opt incr-full), and was anticipated.
  • marking as triaged

Nominated Issues

T-compiler

  • “debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]rust#120845
    • Nominated by @Vadim Petrochenkov (see Stabilization report), opened FCP (link)
    • mentioned quickly last week (unsure got some attention)

RFC

  • No I-compiler-nominated RFCs this time.

Oldest PRs waiting for review

T-compiler

  • “compiler: allow transmute of ZST arrays with generics” rust#114009 (last review activity: 7 months ago)
    • cc @Wesley Wiser (or are you ok with passing this to someone else?)
  • “Create the previous dep graph index on a background thread” rust#116375 (last review activity: 4 months ago)
    • cc: cjgillot
  • “Fix ICE from zero-length span when suggesting to remove trailing semi-colon from final statement in block” rust#118953 (last review activity: 2 months ago)
    • cc @cjgillot

Next week’s WG checkins

  • Impl Trait initiative by @oli
  • @_WG-llvm by @nagisa and @Nikita Popov

Next meetings’ agenda draft: hackmd link