T Compiler Meeting Agenda 2024 02 01

T-compiler Meeting Agenda 2024-02-01

Announcements

  • No T-compiler meeting according to the calendar file
  • Feb 8th, Rust 1.76 stable release
  • There’s Rustc Dev Guide reading club initiative in case you want to join, more info here
  • 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 (calendar link)

MCPs/FCPs

@T-compiler/meeting Reminder to not forget giving a glance at MCPs in the FCP phase (if there are any in your area of expertise/interest). Thanks! (@apiraino wonders if at some point we should establish a protocol to close FCPs with longstanding unresolved concerns)

WG checkins

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

    Most notable changes

    • Document unsafety checking #1847
    • Add guide for rustdoc search implementation #1846
    • Add a chapter on editions. #1835
    • Replace experts map with reviewers from triagebot #1831
    • Explain the important concepts of exhaustiveness checking #1830
    • Update how-to-build-and-run.md #1828
    • Emphasize that the experts map is not up to date #1826
    • Update documentation for coverage tests #1823
    • add a new type system invariant #1822
    • Add explanations on how to run rustc_codegen_gcc tests #1821
    • notification groups: add information about how to ping them #1818
    • Add some documentation for unsizing #1817

    Most notable WIPs

    • Add overview.drawio.svg #1725
    • rewrite bootstrapping stages #1650
    • new chapter with examples of diagnostic translation PRs #1621
    • Improve documentation of MIR queries & passes #1434
    • Document inert vs active attributes #1110
  • Impl Trait initiative by @oli

    Currently preparing an “impl trait in associated types” stabilization report along with a roadmap for type-alias-impl-trait. Targetting next month for providing the report to T-lang.

Backport nominations

T-compiler beta / T-compiler stable

  • :beta: “Fold arithmetic identities in GVN” rustc#119670
    • perf. fix from #111344

      This PR implements a few arithmetic folds for unary and binary operations. This should take care of the missed optimizations introduced by #116012.

  • :beta: “Correct paths for hexagon-unknown-none-elf platform doc” rust#120533
    • Not merged. Fixes paths in platform docs for a tier 3 target (hexagon-unknown-none-elf)
    • Maybe superseded by #117601? That could make it faster to the next beta build artifact (comment)
    • nominated after request from an interested party for this target (comment)

      “it was wrong when initially submitted”. Following the procedure from the baseline will result in confusing link errors. […] probably not critical to backport, but I’d prefer it if possible.

  • 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 2024-01-30

This was a very quiet week with only one PR having any real impact on overall compiler performance. The removal of the internal StructuralEq trait saw a roughly 0.4% improvement on average across nearly 50 real-world benchmarks.

Triage done by @rylev. Revision range: d6b151fc7..5c9c3c7

Summary:

(instructions:u) mean range count
Regressions (primary) 0.5% [0.3%, 0.7%] 5
Regressions (secondary) 0.5% [0.2%, 1.4%] 10
Improvements (primary) -0.5% [-1.5%, -0.2%] 48
Improvements (secondary) -2.3% [-7.7%, -0.4%] 36
All (primary) -0.4% [-1.5%, 0.7%] 53

0 Regressions, 4 Improvements, 4 Mixed; 3 of them in rollups 37 artifact comparisons made in total

Regressions

None? :big_smile:

Improvements

Only use dense bitsets in dataflow analyses #116152 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.4% [-0.5%, -0.2%] 5
Improvements (secondary) -0.8% [-1.1%, -0.4%] 2
All (primary) -0.4% [-0.5%, -0.2%] 5

const-eval interning: get rid of type-driven traversal #119044 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.9% [-1.1%, -0.8%] 3
Improvements (secondary) -3.8% [-8.0%, -0.6%] 14
All (primary) -0.9% [-1.1%, -0.8%] 3

Remove all ConstPropNonsense #119627 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.4% [-0.6%, -0.2%] 11
Improvements (secondary) -0.5% [-0.5%, -0.5%] 3
All (primary) -0.4% [-0.6%, -0.2%] 11

remove StructuralEq trait #116167 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.3%, 0.3%] 1
Regressions (secondary) - - 0
Improvements (primary) -0.4% [-0.6%, -0.2%] 48
Improvements (secondary) -1.3% [-3.0%, -0.3%] 23
All (primary) -0.4% [-0.6%, 0.3%] 49

Mixed

Rollup of 10 pull requests #120335 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.8%] 9
Regressions (secondary) 0.7% [0.6%, 0.9%] 2
Improvements (primary) - - 0
Improvements (secondary) -0.7% [-0.7%, -0.7%] 1
All (primary) 0.4% [0.3%, 0.8%] 9
  • Small regressions in doc benchmarks
  • Most likely caused by addings AsyncFn family of traits.
  • Author has been pinged, but it’s probably acceptable cost given that we’re documenting more.

Rollup of 9 pull requests #120375 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.3% [0.3%, 0.4%] 3
Improvements (primary) -0.2% [-0.2%, -0.2%] 6
Improvements (secondary) - - 0
All (primary) -0.2% [-0.2%, -0.2%] 6
  • Small number of improvements outweigh the small number of regressions and so it’s not really worth investigating further.

Rollup of 12 pull requests #120401 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.6% [0.5%, 1.1%] 7
Improvements (primary) - - 0
Improvements (secondary) -3.1% [-3.1%, -3.1%] 1
All (primary) - - 0
  • Very small regressions in match stress test is not worth investigating

Merge into larger interval set #120024 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.3% [0.2%, 0.4%] 14
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) - - 0
Improvements (secondary) -0.3% [-0.3%, -0.2%] 2
All (primary) 0.3% [0.2%, 0.4%] 14
  • The reviewer decided that the performance hit here was worth it given that we are now protecting against truly extreme cases that the perf benchmark suite doesn’t test against.

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

  • TODO

Next week’s WG checkins

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

Next meetings' agenda draft: hackmd link