T-compiler Meeting Agenda 2023-08-24
Announcements
- Today 1.72 stable release (blog post draft)
- Compiler Team Planning meeting at time:2023-08-25T10: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 us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
Other WG meetings (calendar link)
- wg-async open discussion at time:2023-08-24T12:00:00-04:00
- AFIT/RPITIT Impl Triage at time:2023-08-24T16:00:00-04:00
- Types team meeting at time:2023-08-28T10:00:00-04:00
- [Types] Rotating new solver / formality / polonius deep dive at time:2023-08-28T11: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)
- “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
- no discussion or seconding
- “Add support for visionOS targets” compiler-team#642 (last review activity: about 53 days ago)
- Felix suggested to close until LLVM adds support for this target, no counter-argument
- “Simplify and improve explicitness of the check-cfg syntax” compiler-team#636 (Zulip) (last review activity: 2 months ago)
- Old MCPs (not seconded, take a look)
- “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 4 months ago) (Zulip)
- Unsure if we want to second this (Felix raised a mild concern)
- “Consistently use “region” terminology in later stages of the compiler” compiler-team#634 (last review activity: 2 months ago) (Zulip)
- “Add a new
--build-id
flag to rustc” compiler-team#635 (last review activity: 2 months ago) (Zulip)- proposal received mixed comments
- “Add illumos Tier3 targets” compiler-team#644 (last review activity: about 28 days ago) (Zulip)
- rustc#112936 is waiting for the MCP to be seconded
- “Migrate away from u32 as an offset/length type” compiler-team#647 (last review activity: about 46 days ago) (Zulip)
- “Add
builtin:$path
option to the-L
flag” compiler-team#659 (last review activity: about 18 days ago) (Zulip) - “Allow anonymous constants to be folded across crates (weak linkage + COMDAT)” compiler-team#662 (last review activity: about 4 days ago) (Zulip)
- “Promote loongarch64-unknown-none* to Tier 2” compiler-team#664 (last review activity: about 4 days ago) (Zulip)
- “Cell Broadband Engine SPU support” compiler-team#614 (last review activity: 4 months ago) (Zulip)
- Pending FCP requests (check your boxes!)
- “Retire the mailing list and make all decisions on zulip” compiler-team#649
- “Tracking issue for dyn upcasting coercion” rust#65991
- “stabilize combining +bundle and +whole-archive link modifiers” rust#113301
- “Support overriding
warnings
level for a specific lint via command line” rust#113307 - “Stabilize
PATH
option for--print KIND=PATH
” rust#114183
- Things in FCP (make sure you’re good with it)
- “Add a blanket flag to enable/disable codegen UB checks” compiler-team#625
- “Add support for Zephyr OS” compiler-team#629
- “Report all lints, even if other errors already occurred.” compiler-team#633
- “Add option to pass environment variables” compiler-team#653
- “Add tidy rule against
issue-[0-9]+.rs
tests” compiler-team#658 - “Move a
wasm32-wasi-preview1-threads
target to tier 2” compiler-team#661
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Lower
Or
pattern without allocating place” rust#111752 - “style-guide: Add section on bugs, and resolving bugs” rust#113383
- “Lower
WG checkins
-
@_WG-llvm by @nagisa and @Nikita Popov (previous checkin):
Nikita reports:
- Main news is that we upgraded to LLVM 17 (https://github.com/rust-lang/rust/pull/114048), with very nice perf results. Smoothest LLVM upgrade in a while.
- We also bumped the minimum LLVM version to 15 recently, which mainly means that we only support opaque pointers now. That cleans up various stuff in codegen and especially codegen tests.
-
@_WG-mir-opt by @oli (previous checkin):
No updates, oli is on vacation.
Backport nominations
T-compiler stable / T-compiler beta
- :beta: [1.73.0-beta.1] “Add projection obligations when comparing impl too” rust#115039
- Fixes #115033 and #115051, reported breaking compilations in 2 crates. Seems good to backport this.
- :beta: [1.73.0-beta.1] “Contents of reachable statics is reachable” rust#115114
- fixes #115052, ICE when compiling, possibly leading also to linking errors
- nominated by @pnkfelix (comment)
- No stable nominations for
T-compiler
this time.
PRs S-waiting-on-team
- “More distinctive pretty-printing of function item types” rust#99927
- Other issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 54 T-compiler P-high issues
- 0 P-critical, 0 P-high, 0 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 2 P-medium, 2 P-low regression-from-stable-to-nightly
- 2 P-critical, 35 P-high, 100 P-medium, 18 P-low regression-from-stable-to-stable
P-critical
- “ICE: broken mir while building rustc” rust#114375
- “ScalarReplacementOfAggregates causes rustc to emit invalid LLVM debuginfo (and sometimes rustc segfaults)” rust#115113
- Mitigated by rust#115139 and (related) rust#115140
- missed the 1.72 train, though. @Josh Stone (cuviper) volunteered to contribute a patch after 1.72 is out (comment)
- Real world fallout so far seems this bugzilla issue and rust#115156
- “RPIT hidden types can be ill-formed” rust#114728
- taken care of by @aliemjay in #114933
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- No
P-high
beta regressions this time.
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
A week with very few real regressions and some good improvements through work done by @cjgillot who found a few spots where the compiler was doing unnecessary work.
Triage done by @rylev. Revision range: e845910..d4a881
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.4% | [0.5%, 2.6%] | 13 |
Regressions (secondary) | 0.6% | [0.3%, 0.8%] | 8 |
Improvements (primary) | -0.7% | [-1.4%, -0.3%] | 59 |
Improvements (secondary) | -0.8% | [-1.3%, -0.3%] | 38 |
All (primary) | -0.3% | [-1.4%, 2.6%] | 72 |
3 Regressions, 2 Improvements, 2 Mixed; 2 of them in rollups 28 artifact comparisons made in total
Regressions
Warn on inductive cycle in coherence leading to impls being considered not overlapping #114023 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.3% | [0.6%, 2.5%] | 10 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 1.3% | [0.6%, 2.5%] | 10 |
- The author is investigating whether this is due to the use of a temporary lint or if there is some more fundamental change happening here.
Rollup of 7 pull requests #114879 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.3%, 0.3%] | 2 |
Regressions (secondary) | 0.5% | [0.4%, 0.6%] | 8 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.3% | [0.3%, 0.3%] | 2 |
- The perf result seems to just be noise.
Remove conditional use of Sharded
from query caches #114892 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.2%, 0.5%] | 3 |
Regressions (secondary) | 0.5% | [0.4%, 0.6%] | 8 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.4% | [0.2%, 0.5%] | 3 |
- Perf results are small and worth the simplification in code.
Improvements
Do not mark shallow_lint_levels_on as eval_always. #114536 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
Improvements (primary) | -0.7% | [-1.3%, -0.3%] | 30 |
Improvements (secondary) | -0.5% | [-1.0%, -0.3%] | 15 |
All (primary) | -0.7% | [-1.3%, -0.3%] | 30 |
Only run MaybeInitializedPlaces dataflow once to elaborate drops #111555 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.6% | [0.6%, 0.6%] | 1 |
Improvements (primary) | -0.8% | [-1.3%, -0.3%] | 27 |
Improvements (secondary) | -0.7% | [-1.1%, -0.4%] | 32 |
All (primary) | -0.8% | [-1.3%, -0.3%] | 27 |
Mixed
add a csky-unknown-linux-gnuabiv2 target #113658 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.3% | [0.3%, 1.9%] | 3 |
Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 4 |
All (primary) | 0.4% | [-0.3%, 1.9%] | 7 |
- Noise
Rollup of 10 pull requests #114852 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.5%, 0.6%] | 4 |
Regressions (secondary) | 1.0% | [1.0%, 1.0%] | 3 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
All (primary) | 0.5% | [0.5%, 0.6%] | 4 |
- Noise
Nominated Issues
- No I-compiler-nominated issues at this time.
- No I-compiler-nominated RFCs at this time.
Oldest PRs waiting for review
- “compiler: be more clear about transparent layout violations” rust#114015(last review activity: about 28 days ago)
- Another one circling around, now autorolled to @_Michael Goulet (compiler-errors) but maybe up for grabs
- “Ignore host C++ runtime in a cross build scenario” rust#114078(last review activity: about 27 days ago)
- cc: @Josh Stone (cuviper) (or reroll)
Next week’s WG checkins
- @_T-rust-analyzer by @Lukas Wirth
Next meetings' agenda draft: https://hackmd.io/0WLg3ph5Rkqmvv692KMhLA