owned this note changed 2 years ago
Published Linked with GitHub

T-compiler Meeting Agenda 2023-04-27

Announcements

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)
    • "Rustc Contributor Program Major Change Proposal" compiler-team#557 (last review activity: 3 months ago)
    • "Add New Values To MIPS_ALLOWED_FEATURES" compiler-team#595 (last review activity: about 34 days ago)
    • "Take MIR Analysis by &mut" compiler-team#598 (last review activity: about 34 days ago)
    • "-C linker-flavor=clang" compiler-team#601 (last review activity: about 34 days ago)
    • "Increase TypeId's hash from 64 bits to 128 bits." compiler-team#608 (last review activity: about 6 days ago)
    • "Disallow incoherent cfgs" compiler-team#610 (last review activity: about 13 days ago)
    • "2024: Decrease debuginfo generated by -Cdebuginfo=1" compiler-team#613 (last review activity: about 6 days ago)
    • "Cell Broadband Engine SPU support" compiler-team#614 (last review activity: about 13 days ago)
    • "Revise error code documentation standard" compiler-team#615 (last review activity: about 6 days ago)
  • Pending FCP requests (check your boxes!)
    • No pending FCP requests this time.
  • Things in FCP (make sure you're good with it)
  • Accepted MCPs
  • Finalized FCPs (disposition merge)
    • "Tracking Issue for debugger_visualizer" rust#95939
    • "Evaluate place expression in PlaceMention" rust#104844
    • "Update the version of musl used on *-linux-musl targets to 1.2.3" rust#107129

WG checkins

@_WG-mir-opt by @oli (previous checkin):

Checkin text

@_WG-polymorphization by @davidtwco (previous checkin):

There's no update for polymorphization this cycle, we're waiting on the trait system refactor work to complete before continuing with it

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: [1.70] "make sysroot finding compatible with multiarch systems" rust#110281
    • From last week's meeting (we wanted to wait until merged in nightly)
    • Fixes #109994, a packaging issue raised with Debian/Ubuntu distributions
  • :beta: [1.70] "Encode lifetime param spans too" rust#110469
    • From last week's meeting, we wanted to wait for a perf. run triage, in comment
    • Fixes #110464, an ICE. Complements #110425 (beta accepted last week)
  • No stable nominations for T-compiler this time.

T-rustdoc stable / T-rustdoc beta

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

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
/
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

PRs S-waiting-on-team

T-compiler

Oldest PRs waiting for review

  • "Support linking to rust dylib with crate-type staticlib" rust#106560
    • @pnkfelix mentioned he could volunteer to review (comment)
  • "Add ConstParamTy trait" rust#108161 (last review activity: about 47 days ago)
    • cc: @Boxy [she/her]
  • "Use ControlFlow in HIR Visitor" rust#108598 (last review activity: about 47 days ago)
    • cc: @oli (self-assigned)
  • "Move the WorkerLocal type from the rustc-rayon fork into rustc_data_structures" rust#107782 (last review activity: about 46 days ago)
    • cc: @cjgillot
  • "Remove type ascription from parser and diagnostics" rust#109128 (last review activity: about 41 days ago)
    • PR has been reviewed, I think the author asked explicitly for @Esteban Küber
  • "On nightly, dump ICE backtraces to disk" rust#108714 (last review activity: about 33 days ago)
    • @oli self-assigned so assuming they want to circle back on this

Issues of Note

Short Summary

P-critical

T-compiler

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

T-types

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

T-rustdoc

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

P-high regressions

P-high beta regressions

  • "const-propagated arithmetic_overflow in unreachable code" rust#109731
    • (nominated for discussion)

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2023-04-25

A week mostly dominated by noise, in particular a persistent bimodality in
keccak and cranelift-codegen. No significant changes outside of that, a
relatively equal mix of regressions and improvements. Most of the bimodality
has been removed below as it's just noise.

Triage done by @simulacrum.
Revision range: 74864fa496997a6498e623f0d2019ccb7eb6dad0..fdeef3ed1809aa9bd4ea9ff0fad92010c6de669c

Summary:

(instructions:u) mean range count
Regressions (primary) 1.2% [0.5%, 2.2%] 11
Regressions (secondary) 2.0% [0.6%, 7.7%] 48
Improvements (primary) -1.0% [-3.6%, -0.3%] 144
Improvements (secondary) -1.6% [-6.7%, -0.3%] 89
All (primary) -0.9% [-3.6%, 2.2%] 155

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

Regressions

Support AIX-style archive type #106704 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.1% [1.0%, 1.2%] 6
Regressions (secondary) 2.5% [1.1%, 3.9%] 2
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 1.1% [1.0%, 1.2%] 6

This PR also bumped std dependencies, which likely explains the additional compile time cost in our smallest benchmarks (e.g., helloworld).

Ensure mir_drops_elaborated_and_const_checked when requiring codegen. #110107 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 2.0% [1.7%, 2.4%] 10
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) - - 0

Per comment on the PR this is enabling lints to run on dead code, expected regression.

Encode lifetime param spans too #110469 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.5% [0.2%, 0.7%] 21
Regressions (secondary) 0.7% [0.3%, 0.9%] 4
Improvements (primary) - - 0
Improvements (secondary) - - 0
All (primary) 0.5% [0.2%, 0.7%] 21

This comment justifies the regressions.

Improvements

Don't allocate on SimplifyCfg/Locals/Const on every MIR pass #110477 (Comparison Link)

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

Rm const traits in libcore #110393 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -0.9% [-2.6%, -0.4%] 15
Improvements (secondary) -1.7% [-2.8%, -0.5%] 24
All (primary) -0.9% [-2.6%, -0.4%] 15

In LexicalResolver, don't construct graph unless necessary. #110527 (Comparison Link)

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

Enable flatten-format-args by default. #109999 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) - - 0
Improvements (primary) -1.5% [-2.3%, -0.6%] 10
Improvements (secondary) - - 0
All (primary) -1.5% [-2.3%, -0.6%] 10

Allow to feed a value in another query's cache and remove WithOptConstParam #96840 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) - - 0
Regressions (secondary) 0.6% [0.6%, 0.6%] 1
Improvements (primary) -0.8% [-2.1%, -0.3%] 57
Improvements (secondary) -0.9% [-1.7%, -0.3%] 26
All (primary) -0.8% [-2.1%, -0.3%] 57

Report allocation errors as panics #109507 (Comparison Link)

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

Mixed

rustc_metadata: Remove Span from ModChild #109772 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.4% [0.3%, 0.5%] 5
Regressions (secondary) 0.2% [0.2%, 0.2%] 1
Improvements (primary) -0.4% [-0.7%, -0.2%] 15
Improvements (secondary) -1.4% [-4.2%, -0.4%] 13
All (primary) -0.2% [-0.7%, 0.5%] 20

Rollup of 10 pull requests #110546 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 1.6% [1.1%, 2.1%] 3
Regressions (secondary) - - 0
Improvements (primary) - - 0
Improvements (secondary) -3.1% [-3.1%, -3.1%] 1
All (primary) 1.6% [1.1%, 2.1%] 3

resolve: Remove module_children_untracked #110542 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.6% [0.2%, 0.9%] 11
Regressions (secondary) - - 0
Improvements (primary) -0.3% [-0.3%, -0.3%] 1
Improvements (secondary) -1.5% [-1.9%, -1.0%] 3
All (primary) 0.6% [-0.3%, 0.9%] 12

Turn on ConstDebugInfo pass. #107404 (Comparison Link)

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

Remove the size of locals heuristic in MIR inlining #110705 (Comparison Link)

(instructions:u) mean range count
Regressions (primary) 0.9% [0.3%, 2.7%] 9
Regressions (secondary) 1.9% [0.3%, 7.9%] 34
Improvements (primary) -0.6% [-1.8%, -0.2%] 59
Improvements (secondary) -0.8% [-2.5%, -0.2%] 46
All (primary) -0.4% [-1.8%, 2.7%] 68

Nominated Issues

T-compiler

  • "const-propagated arithmetic_overflow in unreachable code" rust#109731
    • briefly touched in previous meeting
    • nominated by Wesley (comment) to keep the discussion focus whether this could be considered a regression or not, possibly documenting it. Taking a decision Before it reaches stable (now in beta)
    • @jyn comments:

    I don't think we should try to warn on unreachable code, it seems ok to silence the lint there. I just don't think we should treat it as a regression and breaking change. This is a lint and not a hard error for a reason.

RFC

  • No I-compiler-nominated RFCs this time.

Next week's WG checkins

  • @_WG-rls2.0 by @Lukas Wirth
  • @_WG-self-profile by @mw and @Wesley Wiser

Agenda draft: draft: https://hackmd.io/KZoEURJsQPaQtTg0gyHnIg

Select a repo