T-compiler Meeting Agenda 2022-04-14
Announcements
- Tomorrow time:2022-04-15T13:00:00+02:00 Types Team: Deep-dive on Lazy TAIT calendar link
- 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).
- pnkfelix unilaterally approved PR 94461: Create (unstable) 2024 edition. However, if any of you think that step should instead go through an MCP, let me know.
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Add attribute to run specific tests in an isolated process” compiler-team#508
- “Add a weak warning lint level” compiler-team#509
- Old MCPs (not seconded, take a look)
- “Accept
pc
in place ofunknown
andunknown
in place ofpc
forx86_64
andi?86
targets” compiler-team#441 (last review activity: 9 months ago) - “Make
-Z binary-dep-depinfo
the default behavior” compiler-team#464 (last review activity: 6 months ago) - “Tier 3 target proposal: riscv64gc-linux-android (Android target for
riscv64gc
)” compiler-team#472 (last review activity: 4 months ago) - “
-Dwarnings
to cover all warnings” compiler-team#473 (last review activity: 4 months ago) - “Build-time execution sandboxing” compiler-team#475 (last review activity: 3 months ago)
- “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 2 months ago)
- “Removing codegen logic for
nvptx-nvidia-cuda
(32-bit target)” compiler-team#496 (last review activity: about 27 days ago) - “Add
yeet
experimentally” compiler-team#501 (last review activity: about 13 days ago)
- “Accept
- Pending FCP requests (check your boxes!)
- “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
- “Tracking Issue for
-Z terminal-width
” rust#84673 - “Increase the minimum linux-gnu versions” rust#95026
- Things in FCP (make sure you’re good with it)
- “Add TyKind::Alias to keep type alias information” compiler-team#504
- “try to not rely on attributes from extern crates” compiler-team#505
- Accepted MCPs
- “Add support for MIR opt unit tests via a new
-Z
flag” compiler-team#502 - “Remove -Zast-json” compiler-team#503
- “Add support for MIR opt unit tests via a new
- Finalized FCPs (disposition merge)
- “Fix constants not getting dropped if part of a diverging expression” rust#94775
- “[
let_chains
] Forbidlet
inside parentheses” rust#95008
WG checkins
@WG-Self-Profile checkin by @mw / @Wesley Wiser (previous checkin):
@lqd is improving the way we capture arguments to self-profile data with the goal of getting much more detailed information about proc-macro expansions in profile traces. (#95689)
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Check that all hidden types are the same and then deduplicate them.” rust#95731
- beta backport postponed to this week (prev. discussion)
- cc: @oli, since patch author
T-rustdoc beta / T-rustdoc stable
- No backport nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- No PRs waiting on
T-compiler
this time.
Oldest PRs waiting for review
- “Reject
#[thread_local]
attribute on non-static items” rust#95006 (last review activity: about 21 days ago)- rustbot assigned to @Wesley Wiser, reroll dice?
- maybe PR missed the mention last week (in case sorry for the double reminder)
- “remove find_use_placement” rust#95194 (last review activity: about 22 days ago)
- PR author is looking for a reviewer (they asked @pnkfelix since this should fix #94941)
- “Check var scope if it exist” rust#94849 (last review activity: about 20 days ago)
- last review from @oli
- PR is probably ready for another review pass
- “Fix late-bound ICE” rust#92289 (last review activity: about 20 days ago)
- after last review from @Esteban KΓΌber, unsure if it’s now waiting on author
- (pending a rebase)
- “when checking pointee metadata, canonicalize the
Sized
check” rust#95315 (last review activity: about 19 days ago)- Probably needs a reviewer
- “Add
round_ties_even
tof32
andf64
” rust#95317 (last review activity: about 19 days ago)- Probably needs a reviewer (for the compiler part)
- “make unaligned_references lint deny-by-default” rust#95372 (last review activity: about 17 days ago)
- Probably needs an opinion from T-compiler about enabling the lint (comment)
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 58 T-compiler P-high issues
- 0 P-critical, 0 P-high, 2 P-medium, 1 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 1 P-critical, 38 P-high, 82 P-medium, 10 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
this time.
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- rustc 1.59/1.60 builds musl binaries that segfault, when compiling with musl-gcc wrappers, due to static-pie default rust#95926
- 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 a large amount of changes in rollups, which makes performance triage difficult. The performance team and the infra team are working on finding ways to automate marking PRs as likely a poor choice for rolling up. Otherwise, the week overall saw a ~1% improvement in incremental check builds, with smaller improvements to incremental debug and release builds. A number of benchmarks have been updated in the last few weeks, which has meant a decrease in the automated noise assessment’s algorithm performance, but that should settle out to steady state behavior on its own in the next few days.
Triage done by @simulacrum. Revision range: 949b98cab8a186b98bf87e64374b8d0848c55271..4e1927db3c399fa34dc71992bd5dbec09f945c3d
5 Regressions, 4 Improvements, 7 Mixed; 7 of them in rollups 50 artifact comparisons made in total
Regressions
Update libc to 0.2.121 #95688 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 8 | 19 | 0 | 0 | 8 |
mean | 1.2% | 0.9% | N/A | N/A | 1.2% |
max | 1.2% | 1.2% | N/A | N/A | 1.2% |
- This is pretty likely to just be natural increases in compile times when key dependencies like libc increase in size.
Rollup of 6 pull requests #95840 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 10 | 21 | 0 | 3 | 10 |
mean | 0.6% | 0.9% | N/A | -0.4% | 0.6% |
max | 1.2% | 1.3% | N/A | -0.5% | 1.2% |
- Primarily limited to doc builds, seems likely to be caused by #95769.
Rollup of 7 pull requests #95889 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 5 | 0 | 0 | 0 | 5 |
mean | 0.3% | N/A | N/A | N/A | 0.3% |
max | 0.5% | N/A | N/A | N/A | 0.5% |
- Unclear cause, and fairly small regression. Given this is a rollup likely not worth the time to investigate – benefit/cost tradeoff is not worth it.
Faster parsing for lower numbers for radix up to 16 (cont.) #95399 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 0 | 14 | 0 | 0 | 0 |
mean | N/A | 0.3% | N/A | N/A | N/A |
max | N/A | 0.5% | N/A | N/A | N/A |
- Unclear that this will be an easy regression to investigate, changes are pretty extensive, and justification slim beyond theoretical microbenchmarks.
Rollup of 7 pull requests #95855 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 0 | 9 | 5 | 1 | 5 |
mean | N/A | 1.0% | -0.8% | -1.0% | -0.8% |
max | N/A | 1.7% | -1.1% | -1.0% | -1.1% |
Improvements
- Call
compute_locs
once per rule #95669 (Comparison Link) - Shrink
Nonterminal
#95715 (Comparison Link) - rustdoc: Early doc link resolution fixes and refactorings #95706 (Comparison Link)
- CI: update
rustc-perf
version used in CI and also the corresponding PGO benchmarks #95724 (Comparison Link)
Mixed
Rollup of 5 pull requests #95667 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 17 | 39 | 14 | 0 | 31 |
mean | 6.2% | 7.9% | -0.8% | N/A | 3.1% |
max | 39.4% | 38.9% | -1.6% | N/A | 39.4% |
- Investigation shows this regression to be primarily caused by new support for diagnostic translations; investigation is ongoing, but it sounds like there are ways to claw back some of the performance hit.
Rollup of 8 pull requests #95702 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 2 | 6 | 2 | 6 | 4 |
mean | 0.3% | 1.1% | -0.2% | -0.4% | 0.1% |
max | 0.4% | 1.2% | -0.2% | -0.7% | 0.4% |
- Unclear cause. Regression might be noise, but it’s hard to say – the keccak benchmark is in line with the ~1% noise we’ve seen elsewhere this week, but the other benchmarks (particularly in the primary category) seem potentially less likely to be noise. deep-vector is also affected.
Rollup of 6 pull requests #95742 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 6 | 31 | 12 | 10 | 18 |
mean | 0.4% | 0.5% | -0.6% | -0.4% | -0.3% |
max | 0.7% | 0.8% | -2.4% | -0.6% | -2.4% |
- Fairly large number of benchmarks showing small-ish changes, both positive and negative. Cause is unclear.
Avoid accessing HIR from MIR passes #95487 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 0 | 9 | 1 | 0 | 1 |
mean | N/A | 0.5% | -0.6% | N/A | -0.6% |
max | N/A | 0.9% | -0.6% | N/A | -0.6% |
Add new Deinit
statement #95125 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 27 | 39 | 4 | 17 | 31 |
mean | 0.5% | 1.4% | -0.9% | -1.0% | 0.3% |
max | 1.6% | 4.1% | -1.4% | -2.2% | 1.6% |
Rollup of 7 pull requests #95944 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 0 | 6 | 5 | 9 | 5 |
mean | N/A | 0.4% | -0.2% | -0.5% | -0.2% |
max | N/A | 0.5% | -0.4% | -1.8% | -0.4% |
Respect -Z verify-llvm-ir and other flags that add extra passes when combined with -C no-prepopulate-passes in the new LLVM Pass Manager. #95893 (Comparison Link)
Regressions πΏ (primary) | Regressions πΏ (secondary) | Improvements π (primary) | Improvements π (secondary) | All πΏ π (primary) | |
---|---|---|---|---|---|
count | 0 | 3 | 0 | 6 | 0 |
mean | N/A | 0.5% | N/A | -0.4% | N/A |
max | N/A | 0.6% | N/A | -0.5% | N/A |
Nominated Issues
- “Allow dynamic linking on ios.” rust#95847
- nominated by @Wesley Wiser to discuss the possibility to enable dynamic linking back again
- previous discussion in pull request rust#77716
- No nominated RFCs for
T-compiler
this time.