owned this note changed a year ago
Published Linked with GitHub

T-compiler Meeting Agenda 2024-03-21

Announcements

  • Today release of rustc 1.77 stable
  • "Enable frame pointers for the standard library" rust#122646
    • suggested by @_nils (Nilstrieb) (comment): FIY to T-compiler as it's a perhaps impacting change
  • 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).

MCPs/FCPs

WG checkins

  • @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081

    Checkin text

  • Impl Trait initiative by @oli

    Checkin text

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: [1.78] "Make #[diagnostic::on_unimplemented] format string parsing more robust" rust#122402
    • Fixes #122391, a few diagnostic errors
    • Nominated by @Michael Goulet (compiler-errors) (comment) to stabilize it at the same time as diagnostic::on_unimplemented
  • :beta: [1.78] "Do not eat nested expressions' results in MayContainYieldPoint format args visitor" rust#122680
    • authored by @lqd, fixes #122674, a nightly miscompilation. Due to release timeline the issue is on beta right now
  • 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

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

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

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2023-03-19

Even though the summary might not look like it, this was actually a relatively quiet week,
with a few small regressions. The large regression that is also shown in the summary table was
caused by extending the verification of incremental compilation results.
However, this verification is not actually fully enabled by default, so these regressions are mostly
only visible in our benchmarking suite, which enables the verification to achieve more deterministic
benchmarking results. One small regression was also caused by enabling frame pointers for the Rust
standard library, which should improve profiling of Rust programs.

Triage done by @kobzol.
Revision
range: e919669d..21d94a3d

Summary:

(instructions:u) mean range count
Regressions (primary) 2.5% [0.4%, 7.8%] 207
Regressions (secondary) 2.9% [0.2%, 8.3%] 128
Improvements (primary) - - 0
Improvements (secondary) -1.0% [-1.3%, -0.4%] 4
All (primary) 2.5% [0.4%, 7.8%] 207

4 Regressions, 1 Improvements, 6 Mixed; 4 of them in rollups
67 artifact comparisons made in total

Regressions

Make DefiningAnchor::Bind only store the opaque types that may be constrained, instead of the
current infcx root
item. #121796 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.2%, 1.8%] 112
Regressions (secondary) 0.7% [0.2%, 1.8%] 27
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.6% [0.2%, 1.8%] 112
  • This is a refactoring of the "old" trait solver that was necessary for follow-up compiler changes.

Rollup of 12 pull
requests #122389 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.7%, 0.7%] 3
Regressions (secondary) 1.1% [0.5%, 2.1%] 3
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.7% [0.7%, 0.7%] 3
  • Noise, marked as triaged.

Verify that query keys result in unique dep
nodes #122227 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 2.0% [0.2%, 7.8%] 193
Regressions (secondary) 2.4% [0.3%, 7.8%] 153
Improvements (primary) - - 0
Improvements (secondary) -1.3% [-1.3%, -1.3%] 1
All (primary) 2.0% [0.2%, 7.8%] 193
  • This PR adds additional verification to the compiler that checks if incremental compilation didn't
    encounter problems.
  • This result looks quite bad, but that is mostly caused by the configuration of our benchmark
    suite, which fully enables this verification to make benchmarking more deterministic.
  • Normal builds of user code should not be affected by this change.

Enable frame pointers for the standard
library #122646 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.6%] 70
Regressions (secondary) 0.3% [0.2%, 0.5%] 22
Improvements (primary) - - 0
Improvements (secondary) -2.0% [-2.0%, -2.0%] 1
All (primary) 0.3% [0.2%, 0.6%] 70
  • This PR has a small instruction count cost across the board, but cycles and walltime were affected
    much less.
  • It enables frame pointers for the Rust standard library, which should make profiling of Rust code
    more robust and accurate, which should be worth this small perf. hit.
  • Marked as triaged.

Improvements

Rollup of 15 pull
requests #122338 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -1.2% [-1.2%, -1.1%] 4
Improvements (secondary) -0.8% [-1.2%, -0.4%] 13
All (primary) -1.2% [-1.2%, -1.1%] 4

Mixed

Update
cargo #122394 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 1.1% [1.1%, 1.1%] 1
Improvements (primary) -0.7% [-0.7%, -0.7%] 3
Improvements (secondary) -0.5% [-0.6%, -0.3%] 5
All (primary) -0.7% [-0.7%, -0.7%] 3
  • Most likely noise.

more eagerly instantiate
binders #119849 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.7% [0.2%, 1.1%] 14
Regressions (secondary) 0.5% [0.4%, 1.0%] 7
Improvements (primary) - - 0
Improvements (secondary) -1.2% [-1.4%, -1.1%] 6
All (primary) 0.7% [0.2%, 1.1%] 14
  • A small regression for trait-heavy crates, caused by a fix to the trait solver.
  • Marked as triaged.

Rollup of 9 pull
requests #122607 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.7% [1.7%, 1.7%] 1
Regressions (secondary) 2.7% [2.7%, 2.7%] 1
Improvements (primary) - - 0
Improvements (secondary) -5.3% [-5.3%, -5.3%] 1
All (primary) 1.7% [1.7%, 1.7%] 1
  • The largest regression was caused by #122601,
    which should enable more LLVM optimizations, so some regressions to opt benchmarks is expected.
  • Marked as triaged.

Move generic NonZero rustc_layout_scalar_valid_range_start attribute to inner
type. #121885 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.6%] 9
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) - - 0
Improvements (secondary) -2.8% [-2.8%, -2.8%] 1
All (primary) 0.4% [0.3%, 0.6%] 9
  • A small regression caused by internal refactoring in the compiler. Marked as triaged.

Rollup of 8 pull
requests #122690 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 2.7% [0.2%, 5.3%] 2
Improvements (primary) -0.2% [-0.3%, -0.2%] 7
Improvements (secondary) -0.4% [-0.5%, -0.3%] 9
All (primary) -0.2% [-0.3%, -0.2%] 7
  • Most likely noise, marked as triaged.

Rollup of 11 pull
requests #122713 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.0% [0.5%, 1.4%] 3
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -0.5% [-0.9%, -0.4%] 7
All (primary) 1.0% [0.5%, 1.4%] 3
  • Small regression in match checking caused
    by #121823,
    which improves compiler diagnostics.
  • Marked as triaged.

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

  • "Enable DestinationPropagation by default." rust#115105 (last review activity: 2 months ago)
    • cc: @tm|352985
  • "Suggest ref mut for pattern matching assignment" rust#119650 (last review activity: about 54 days ago)
    • cc: @Wesley Wiser
  • "Small improvements to internal documentation" rust#120388 (last review activity: about 54 days ago)
    • cc: @Esteban Küber
  • "Update rustc_codegen_cranelift's dependencies" rust#119741 (last review activity: about 53 days ago)
    • cc @bjorn3

Next week's WG checkins

  • @_WG-llvm by @nagisa and @Nikita Popov
  • @_WG-mir-opt by @oli

Next meetings' agenda draft: hackmd link

Select a repo