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
- Types Team: ITE (Impl Trait Everywhere) Triage Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-22T22:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Dist rustc with overflow checks” compiler-team#724 (Zulip)
- MCPs blocked on unresolved concerns
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 36 days ago)
- concern: added-complexity-to-frontend (Zulip)
- concern: option-name
- concern: other-existing-options
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- concern: single-point-of-failure-via-stream-archival
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 36 days ago)
- Old MCPs (not seconded, take a look)
- “Introduce perma-unstable
wasm-c-abi
flag” compiler-team#703 (Zulip) (last review activity: 2 months ago) - “Support patchable-function-entry” compiler-team#704 (Zulip) (last review activity: 2 months ago)
- “Target families for executable format” compiler-team#716 (Zulip) (last review activity: about 20 days ago)
- “Promote tier 3 arm64e-apple-darwin target to tier 2” compiler-team#717 (Zulip) (last review activity: about 20 days ago)
- “Add
--emit=
to emit nothing” compiler-team#718 (Zulip) (last review activity: about 20 days ago)
- “Introduce perma-unstable
- Pending FCP requests (check your boxes!)
- “Add a new
--build-id
flag to rustc” compiler-team#635 - “Update Windows platform support” rust#115141
- “Stabilize Wasm target features that are in phase 4 and 5” rust#117457
- “Stabilize
--env-set
option” rust#119926 - “debuginfo: Stabilize
-Z debug-macros
,-Z collapse-macro-debuginfo
and#[collapse_debuginfo]
” rust#120845
- “Add a new
- Things in FCP (make sure you’re good with it)
- “Support debug fission using -Csplit-debuginfo=post-link” compiler-team#721 (Zulip)
- Accepted MCPs
- “Remove fake
rust-intrinsic
ABI” compiler-team#720 (Zulip) - “Overhaul
Diagnostic
andDiagnosticBuilder
" compiler-team#722 (Zulip) - “Rename
astconv::AstConv
and related items” compiler-team#723 (Zulip)
- “Remove fake
- Finalized FCPs (disposition merge)
- “Make unsafe_op_in_unsafe_fn warn-by-default starting in 2024 edition” rust#120535
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_ref
” rust#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.
- No beta nominations for
T-types
this time. - No stable nominations for
T-types
this time.
PRs S-waiting-on-team
- Other issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 61 T-compiler P-high issues
- 1 P-critical, 1 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 4 P-medium, 2 P-low regression-from-stable-to-nightly
- 0 P-critical, 36 P-high, 100 P-medium, 15 P-low regression-from-stable-to-stable
P-critical
- “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
- No
P-critical
issues forT-types
this time.
P-high 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
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
- “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)
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “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