T-compiler Meeting Agenda 2023-06-22
Announcements
- Types team meeting at time:2023-06-26T10:00:00-04:00
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
Other WG meetings (calendar link)
- wg-async: Open discussion at time:2023-06-22T12:00:00-04:00
- [Types] Rotating new solver / formality / polonius deep dive at time:2023-06-26T11:00:00-04:00
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)
- “2024: Decrease debuginfo generated by
-Cdebuginfo=1
” compiler-team#613 (last review activity: 2 months ago) - “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 2 months ago)
- “Revise error code documentation standard” compiler-team#615 (last review activity: 2 months ago)
- “Add support for Zephyr OS” compiler-team#629 (last review activity: about 0 days ago)
- “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: about 27 days ago)
- “Add a new
--build-id
flag to rustc” compiler-team#635 (last review activity: about 27 days ago) - “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (last review activity: about 8 days ago)
- “[MCP] proposing a macros working group” compiler-team#637 (last review activity: about 6 days ago)
- “2024: Decrease debuginfo generated by
- Pending FCP requests (check your boxes!)
- No pending FCP requests this time.
- Things in FCP (make sure you’re good with it)
- “Disallow incoherent cfgs” compiler-team#610
- “Runtime checks for occupied niches” compiler-team#624
- “Add a blanket flag to enable/disable codegen UB checks” compiler-team#625
- “Add
mips64r6
andmips32r6
options totarget_arch
” compiler-team#632 - “Report all lints, even if other errors already occurred.” compiler-team#633
- “Assign maintainers for MIPS R6 targets” compiler-team#638
- “Use
FieldIdx
all the way down” compiler-team#639
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “resolve: Remove artificial import ambiguity errors” rust#112086
WG checkins
-
Generic Associated Types initiative by @Jack Huey (previous checkin):
Nothing new
-
@_WG-diagnostics by @Esteban Küber and @oli (previous checkin):
nothing to report
Backport nominations
T-compiler stable / T-compiler beta
- :beta: [1.71.0] “Disable alignment checks on i686-pc-windows-msvc” rust#112684
- first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on
i686-pc-windows-msvc
) - discussed last week (Zulip link)
- also nominated for stable backport
- first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on
- :beta: [1.71.0] “Fix linker failures when #[global_allocator] is used in a dependency” rust#112794
- fixes P-high unsoundness #112715
- :stable: [1.70.1] “Disable alignment checks on i686-pc-windows-msvc” rust#112684
T-rustdoc stable / T-rustdoc beta
- No beta nominations for
T-rustdoc
this time. - No stable nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 65 T-compiler P-high issues
- 1 P-critical, 1 P-high, 0 P-medium, 1 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 2 P-low regression-from-stable-to-nightly
- 0 P-critical, 36 P-high, 100 P-medium, 20 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
at this time.
- No
P-critical
issues forT-types
at this time.
- No
P-critical
issues forT-rustdoc
at this time.
P-high regressions
- “const-propagated
arithmetic_overflow
in unreachable code” rust#109731- “based on further discussion in today’s triage meeting and follow-up … we’re going to let this ride the trains” (comment)
- It’s now on stable, so close it?
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.
Triage done by @rylev. Revision range: 4bd4e2e..b9d608c
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.4% | [0.5%, 3.6%] | 16 |
Regressions (secondary) | 1.0% | [0.2%, 3.5%] | 29 |
Improvements (primary) | -0.8% | [-7.8%, -0.2%] | 157 |
Improvements (secondary) | -2.9% | [-48.3%, -0.3%] | 84 |
All (primary) | -0.6% | [-7.8%, 3.6%] | 173 |
3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 51 artifact comparisons made in total
Regressions
Rollup of 7 pull requests #112625 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.4%] | 4 |
Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.3% | [0.2%, 0.4%] | 4 |
- Seems like this was a blip in the bitmaps test which corrected itself in the next run.
Add AliasKind::Weak
for type aliases. #108860 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.5%] | 8 |
Regressions (secondary) | 0.4% | [0.2%, 0.8%] | 7 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.3% | [0.2%, 0.5%] | 8 |
- Poked author and reviewer for thoughts on small regressions
CI: merge mingw
test CI jobs #112645 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.8% | [0.7%, 0.8%] | 3 |
Regressions (secondary) | 0.7% | [0.6%, 0.7%] | 2 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.8% | [0.7%, 0.8%] | 3 |
- Noise as Linux was impacted
Improvements
Introduce a minimum CGU size in non-incremental builds. #112448 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
Improvements (secondary) | -8.5% | [-45.9%, -0.4%] | 22 |
All (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
Don’t drain-on-drop in DrainFilter impls of various collections. #104455 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.2%, 1.2%] | 3 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.5% | [-1.8%, -0.1%] | 35 |
Improvements (secondary) | -0.5% | [-1.1%, -0.2%] | 14 |
All (primary) | -0.4% | [-1.8%, 1.2%] | 38 |
optimize slice::Iter::fold #106343 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.4%, 1.1%] | 5 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.2% | [-0.4%, -0.2%] | 87 |
Improvements (secondary) | -0.3% | [-1.2%, -0.1%] | 24 |
All (primary) | -0.2% | [-0.4%, 1.1%] | 92 |
Rollup of 7 pull requests #112716 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
Improvements (secondary) | -0.4% | [-0.4%, -0.2%] | 4 |
All (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
Rollup of 5 pull requests #112755 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
Rollup of 6 pull requests #112774 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
Improvements (secondary) | -0.7% | [-0.7%, -0.7%] | 2 |
All (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
new solver proof tree generation #112351 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
Improvements (secondary) | -1.2% | [-1.6%, -0.5%] | 8 |
All (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
Mixed
Add support for targets without unwinding in mir-opt
, and improve --bless
for it #112418 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.3%] | 3 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -1.3% | [-1.3%, -1.3%] | 1 |
All (primary) | 0.3% | [0.2%, 0.3%] | 3 |
- Noise returning to a steady state
Ignore the always part of #[inline(always)] in MIR inlining #112294 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.7% | [1.2%, 2.5%] | 8 |
Regressions (secondary) | 0.6% | [0.2%, 1.4%] | 7 |
Improvements (primary) | -0.4% | [-3.0%, -0.2%] | 61 |
Improvements (secondary) | -0.4% | [-1.0%, -0.2%] | 18 |
All (primary) | -0.1% | [-3.0%, 2.5%] | 69 |
- From the author: “There are some notable regressions, and I think we might be able to claw those back by turning
#[inline(always)]
into a stronger hint. But I think this PR stands decently on its own as a tidy simplification.”
Remove box_free
lang item #100036 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.2% | [1.0%, 1.7%] | 4 |
Regressions (secondary) | 1.7% | [1.1%, 3.4%] | 5 |
Improvements (primary) | -0.6% | [-0.6%, -0.6%] | 2 |
Improvements (secondary) | -2.5% | [-4.4%, -1.4%] | 4 |
All (primary) | 0.6% | [-0.6%, 1.7%] | 6 |
- Waiting on the author and reviewer to give their thoughts.
make mir dataflow graphviz dumps opt-in #112617 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.6% | [0.6%, 0.7%] | 3 |
Regressions (secondary) | 0.6% | [0.6%, 0.6%] | 1 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 6 |
All (primary) | 0.6% | [0.6%, 0.7%] | 3 |
- Regressions are noise
PRs S-waiting-on-team
Oldest PRs waiting for review
- “Fixes LTO + build-std + Oz failed to resolve undefined symbols” rust#109821
- discussed here cc: @pnkfelix, switch over to you if it’s fine?
- “Add armv8r-none-eabihf target for the Cortex-R52.” rust#110482
- cc: @Wesley Wiser
- “Add support for NetBSD/aarch64-be (big-endian arm64).” rust#111326 (last review activity: about 44 days ago)
- cc @oli
- “suggest
slice::swap
formem::swap(&mut x[0], &mut x[1])
borrowck error” rust#111403- cc: @Matthew Jasper (did last review)
Nominated Issues
- No I-compiler-nominated issues
- No I-compiler-nominated RFCs this time.
Next week’s WG checkins
- @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
- Impl Trait initiative by @oli
Agenda draft: https://hackmd.io/0I_xYjKMSc6lYT655FpWbg