T Compiler Meeting Agenda 2023 11 16

T-compiler Meeting Agenda 2023-11-16

Announcements

Other WG meetings (calendar link)

MCPs/FCPs

WG checkins

  • @_WG-async-foundations by @nikomatsakis and @tmandry

    Checkin text

  • @WG-diagnostics by @Esteban Küber and @oli

    Checkin text

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.75] “Update to LLVM 17.0.5” rust#117907
    • Fixes #116177 perf regression on MIPS
    • nominated by @nikic: “Mips is tier 3, but it probably still makes sense to backport this, as the target is currently completely broken.” (comment)
    • Note: backport is for the next beta

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 unassigned 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-11-14

A week dominated by one particular perf improvement that lead to huge performance gains - an avg of 5% improvement across 121 test cases! The perf improvement comes from adding an #[inline] hint to the output from #[derive(Debug)] which presumably allows the compiler to more easily do deadcode elimination reducing the binary size and the amount of code that actually needs to be code-gened.

Triage done by @rylev. Revision range: 7b97a5ca..173b6e68

Summary:

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.9%]10
Regressions (secondary)1.9%[0.2%, 3.6%]12
Improvements (primary)-5.6%[-49.2%, -0.1%]111
Improvements (secondary)-3.5%[-25.0%, -0.2%]155
All (primary)-5.1%[-49.2%, 0.9%]121

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

Regressions

Bump libc dependency #117617 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)8.3%[1.1%, 19.0%]9
Regressions (secondary)--0
Improvements (primary)--0
Improvements (secondary)--0
All (primary)8.3%[1.1%, 19.0%]9
  • A curious perf infra glitch - the regression returned to normal after a few runs.

Rollup of 6 pull requests #117736 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.2%, 0.5%]5
Regressions (secondary)0.6%[0.6%, 0.6%]1
Improvements (primary)--0
Improvements (secondary)--0
All (primary)0.4%[0.2%, 0.5%]5
  • The only PR that includes actual changes to the compiler is #117645. Kicked off a test to see if that’s the root cause.

Improvements

Rollup of 4 pull requests #117680 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-9.1%[-16.0%, -2.6%]7
Improvements (secondary)--0
All (primary)-9.1%[-16.0%, -2.6%]7
  • The flip side of #117617’s strange perf regression.

Add std::hash::{DefaultHasher, RandomState} exports (needs FCP) #115694 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)--0
Regressions (secondary)--0
Improvements (primary)-0.9%[-1.2%, -0.4%]6
Improvements (secondary)--0
All (primary)-0.9%[-1.2%, -0.4%]6

Mixed

Only use normalize_param_env when normalizing predicate in check_item_bounds #117542 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.4%[0.4%, 0.4%]1
Regressions (secondary)1.4%[0.8%, 2.3%]12
Improvements (primary)-18.4%[-49.6%, -0.2%]20
Improvements (secondary)--0
All (primary)-17.5%[-49.6%, 0.4%]21

Emit #[inline] on derive(Debug) #117727 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)3.1%[0.3%, 13.7%]5
Regressions (secondary)1.8%[0.2%, 3.4%]6
Improvements (primary)-2.3%[-10.6%, -0.1%]110
Improvements (secondary)-3.2%[-25.2%, -0.1%]177
All (primary)-2.1%[-10.6%, 13.7%]115
  • Huge wins outweigh the small losses.

Rollup of 6 pull requests #117769 (Comparison Link)

(instructions:u)meanrangecount
Regressions (primary)0.3%[0.3%, 0.3%]1
Regressions (secondary)1.0%[1.0%, 1.0%]1
Improvements (primary)-6.5%[-12.3%, -0.7%]2
Improvements (secondary)--0
All (primary)-4.2%[-12.3%, 0.3%]3
  • Noise

Nominated Issues

T-compiler

  • No I-compiler-nominated issues this time.

RFC

  • “RFC: Packages as (optional) namespaces” rfcs#3243
    • See relevant Zulip topic
    • (will now remove the nomination label, the RFC has been widely announced)

Oldest PRs waiting for review

T-compiler

  • “Require type_map::stub callers to supply file information” rust#104342 (last review activity: 5 months ago)
    • cc: @wesley wiser
    • looking closely at this comment, seems the PR author is asking for guidance on how to implement a -Z flag.
  • “Add illumos aarch64 target for rust.” rust#112936 (last review activity: 4 months ago)
    • cc: @jack huey
    • PR seems approved (comment), maybe just needs a little nudge from the assigned reviewer?
  • “fix(parse): avoid panic when cfg wrapper by bracket under capture-cfg mode” rust#113056 (last review activity: 3 months ago)
    • cc: @Aaron Hill (reviewer assigned by @_davidtwco)
  • “Add $message_type field to distinguish json diagnostic outputs” rust#115691 (last review activity: 2 months ago)
    • Waits for mcp#674 now a FCP (comment)
    • missing a few checkboxes from T-compiler
  • “Try to use approximate placeholder regions when outputting an AscribeUserType error in borrowck” rust#116097 (last review activity: about 52 days ago)
    • cc: @wesley wiser

Next triage meeting on time:2023-11-30T16:00:00+01:00