owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
type: docs
---
# T-compiler Meeting Agenda 2022-01-20
[Tracking Issue](https://github.com/rust-lang/rust/issues/54818)
## Announcements
- 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).
- New template for rustc targets (see [rust#90498](https://github.com/rust-lang/rust/pull/90498)), new targets should use this to document their requirements.
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- "Dealing with type/const ambiguities" [compiler-team#480](https://github.com/rust-lang/compiler-team/issues/480)
- Old MCPs (not seconded, take a look)
- "Accept `pc` in place of `unknown` and `unknown` in place of `pc` for `x86_64` and `i?86` targets" [compiler-team#441](https://github.com/rust-lang/compiler-team/issues/441) (last review activity: 6 months ago)
- "Make `-Z binary-dep-depinfo` the default behavior" [compiler-team#464](https://github.com/rust-lang/compiler-team/issues/464) (last review activity: 3 months ago)
- "Tier 3 target proposal: riscv64gc-linux-android (Android target for `riscv64gc`)" [compiler-team#472](https://github.com/rust-lang/compiler-team/issues/472) (last review activity: about 41 days ago)
- "`-Dwarnings` to cover all warnings" [compiler-team#473](https://github.com/rust-lang/compiler-team/issues/473) (last review activity: about 41 days ago)
- "Build-time execution sandboxing" [compiler-team#475](https://github.com/rust-lang/compiler-team/issues/475) (last review activity: about 23 days ago)
- Pending FCP requests (check your boxes!)
- No pending FCP requests this time.
- Things in FCP (make sure you're good with it)
- "CI should exercise (subset of) tests under --stage 1" [compiler-team#439](https://github.com/rust-lang/compiler-team/issues/439)
- "Adding known bugs to test cases" [compiler-team#476](https://github.com/rust-lang/compiler-team/issues/476)
- "Introduce a new linter for diagnostic meesages" [compiler-team#478](https://github.com/rust-lang/compiler-team/issues/478)
- "Change location of where clause on GATs" [rust#90076](https://github.com/rust-lang/rust/pull/90076)
- "Stabilize `-Z instrument-coverage` as `-C instrument-coverage`" [rust#90132](https://github.com/rust-lang/rust/pull/90132)
- "Stabilize `-Z print-link-args` as `--print link-args`" [rust#91606](https://github.com/rust-lang/rust/pull/91606)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- No new finished FCP (disposition merge) this time.
### WG checkins
@_*WG-mir-opt* by @**oli** ([previous checkin](https://hackmd.io/kDUJQbY8SGqPMTTecCl9hg#WG-checkins))
* We may finally have a fix for the `early_otherwise_branch` mir optimization. [rust#91840]
* We now have much better infrastructure for ordering and managing all our mir opts [rust#91475]
@_WG-polymorphization_ checkin by @**davidtwco** ([previous checkin](https://hackmd.io/kDUJQbY8SGqPMTTecCl9hg#WG-checkins))
> from @**lcnr**: wg-polymorphization isn't doing too much rn, I am still - since 2 updates ago iirc - working on a change which should fix the remaining blocker to reenable it and have to fix some last remaining issues, and then do a lot of perf work. I think that [rust#89514](https://github.com/rust-lang/rust/pull/89514) is the last polymorphization pr that's gotten merged
## Backport nominations
[T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler)
- :beta: "Revert "Do not hash leading zero bytes of i64 numbers in Sip128 hasher"" [rust#93014](https://github.com/rust-lang/rust/pull/93014)
- PR reverts [92103](https://github.com/rust-lang/rust/pull/92103)
- not yet merged
- reviewer @**The 8472|330154** nominated for backport
- mentions that perf regressions are expected and triaged (see [comment](https://github.com/rust-lang/rust/pull/93014#issuecomment-1014867654)) and that should a fairly low impact backport
- No stable nominations for `T-compiler` this time.
[T-rustdoc stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc) / [T-rustdoc beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-rustdoc)
- :beta: "Fix rust logo style" [rust#92764](https://github.com/rust-lang/rust/pull/92764)
- a nice fix for the Rust logo when setting a dark theme
- :beta: "rustdoc: fix intra-link for generic trait impls" [rust#92792](https://github.com/rust-lang/rust/pull/92792)
- fixes [rust#92662](https://github.com/rust-lang/rust/issues/92662) a `P-high` regression that breaks compiling documentation
- no concerns, seems fine for backport
- No stable nominations for `T-rustdoc` this time.
:back: / :shrug: / :hand:
## PRs S-waiting-on-team
[T-compiler](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)
- "Stabilize `-Z print-link-args` as `--print link-args`" [rust#91606](https://github.com/rust-lang/rust/pull/91606)
- Entered last week in `final-comment-period`
- Can `S-waiting-on-team` label be removed now?
### Oldest PRs waiting for review
[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler)
- "Automatically implement AsRepr and allow deriving FromRepr for fieldless enums" [rust#81642](https://github.com/rust-lang/rust/pull/81642) (last review activity: 3 months ago)
- assigned to @**estebank**
- "Support #[global_allocator] without the allocator shim" [rust#86844](https://github.com/rust-lang/rust/pull/86844) (last review activity: 2 months ago)
- @**pnkfelix** self-assigned
- "make memcmp return a value of c_int_width instead of i32" [rust#90791](https://github.com/rust-lang/rust/pull/90791) (last activity: 24 days ago)
- assigned to @**joshtriplett**
- "Fix variant index / discriminant confusion in uninhabited enum branching" [rust#89764](https://github.com/rust-lang/rust/pull/89764) (last review activity: 2 months ago)
- assigned to @**wesley wiser**, also reviewed from @**RalfJ**
- "remove some indirection from proc_macro_server" [rust#90876](https://github.com/rust-lang/rust/pull/90876) (last review activity: 2 months ago)
- assigned to @**oli**
- perf improvements are the goal for this PR, results [are mixed](https://github.com/rust-lang/rust/pull/90876#issuecomment-971479243), is the author waiting for a feedback?
## Issues of Note
### Short Summary
- [3 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical)
- [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [79 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
- [52 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [0 P-critical, 0 P-high, 0 P-medium, 1 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [0 P-critical, 1 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [3 P-critical, 51 P-high, 81 P-medium, 12 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable)
### P-critical
[T-compiler](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-compiler)
- "Miscompilation in unoptimized builds on aarch64 with 1.57.0" [rust#92786](https://github.com/rust-lang/rust/issues/92786)
- opened by @**Ben Kimock (Saethlin)**
- @**Nikita Popov** filed the issue on LLVM (https://github.com/llvm/llvm-project/issues/53162)
- Opened PR [rust#93081](https://github.com/rust-lang/rust/pull/93081) with the LLVM patch
[T-rustdoc](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc)
- No `P-critical` issues for `T-rustdoc` this time.
### P-high regressions
[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- No `P-high` beta regressions this time.
[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- No unassigned `P-high` nightly regressions this time.
## Performance logs
> [triage logs](https://github.com/rust-lang/rustc-perf/blob/master/triage/2022-01-18.md)
Quiet week for regular rustc performance; incremental builds
(particularly ones with little recompilation to do) saw an average 1.5%
improvement. rustdoc also saw several notable optimizations land which improve
performance, particularly on larger benchmarks.
Triage done by **@simulacrum**.
Revision range: [72e74d7b9cf1a7901650227e74650f1fcc797600..7bc7be860f99f4a40d45b0f74e2d01b02e072357](https://perf.rust-lang.org/?start=72e74d7b9cf1a7901650227e74650f1fcc797600&end=7bc7be860f99f4a40d45b0f74e2d01b02e072357&absolute=false&stat=instructions%3Au)
3 Regressions, 5 Improvements, 2 Mixed; 2 of them in rollups
30 comparisons made in total
#### Regressions
Rollup of 9 pull requests [#92844](https://github.com/rust-lang/rust/issues/92844)
- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=22e491ac7ed454d34669151a8b6464cb643c9b41&end=f312a5e610d47601e9a3da828002f5e1ffeb272a&stat=instructions:u) (up to 8.2% on `full` builds of `keccak check`)
- Unknown cause, though suspected to be [#92006](https://github.com/rust-lang/rust/pull/92006).
This may also be due to sensitivity in keccak and similar benchmarks to
a particularly hot loop in the compiler, which sometimes is less nicely
compiled by LLVM. (See [#92816 (comment)](https://github.com/rust-lang/rust/pull/92816#issuecomment-1014938273)
for details).
Add {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}{,Assign}<$t> to Saturat… [#92356](https://github.com/rust-lang/rust/issues/92356)
- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a0984b4e4c908d714cebd0f0786c00645ea4d79a&end=26c06cf8e27e5fa06b4894f14588c187510bae47&stat=instructions:u) (up to 2.8% on `full` builds of `helloworld doc`)
- Expected regression in documentation builds; there's just more to document.
Rollup of 10 pull requests [#92970](https://github.com/rust-lang/rust/issues/92970)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=48e89b00caa94829a5f07e0f1ecb33bf37431244&end=bd3cb52565faab2755ff1bdb54d88bc91f47b4b9&stat=instructions:u) (up to 0.9% on `incr-unchanged` builds of `externs opt`)
- Unclear cause, but regression is relatively small and limited to just one
benchmark.
#### Improvements
- Migrate rustdoc from Tera to Askama [#92526](https://github.com/rust-lang/rust/issues/92526)
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=124555a69e5f65173ec7840000eb8e953d046740&end=e916815d21e37af5cd85f9eb67cda155d7129fff&stat=instructions:u) (up to -30.7% on `full` builds of `externs doc`)
- Major improvement in instruction counts for rustdoc; a less significant win on wall time for most benchmarks, though particularly heavy ones (e.g., stm32f4) do see a sizeable improvement of around 10% less wall time.
- Introduce new `TaskDepsRef` enum to track allow/ignore/forbid status [#92681](https://github.com/rust-lang/rust/issues/92681)
- rustdoc: avoid many `Symbol` to `String` conversions. [#91948](https://github.com/rust-lang/rust/issues/91948)
- Optimize `impl_read_unsigned_leb128` [#92604](https://github.com/rust-lang/rust/issues/92604)
- Reduce use of LocalDefId <-> HirId maps [#90146](https://github.com/rust-lang/rust/issues/90146)
- rustc_metadata: Switch all decoder methods from vectors to iterators [#92245](https://github.com/rust-lang/rust/issues/92245)
#### Mixed
partially revertish `lazily "compute" anon const default substs` [#92805](https://github.com/rust-lang/rust/issues/92805)
- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=42852d7857d2955f19ec333bec1ed107964db200&end=7be8693984d32d2f65ce9ded4f65b6b7340bddce&stat=instructions:u) (up to -1.4% on `full` builds of `deeply-nested-async check`)
- Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=42852d7857d2955f19ec333bec1ed107964db200&end=7be8693984d32d2f65ce9ded4f65b6b7340bddce&stat=instructions:u) (up to 0.9% on `incr-unchanged` builds of `clap-rs check`)
Remove deprecated LLVM-style inline assembly [#92816](https://github.com/rust-lang/rust/issues/92816)
- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=128417f40f80ce585414bf5a017540447e6be775&end=a34c0797528172ede89480e3033f7a5e71ea4735&stat=instructions:u) (up to -7.5% on `full` builds of `keccak check`)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=128417f40f80ce585414bf5a017540447e6be775&end=a34c0797528172ede89480e3033f7a5e71ea4735&stat=instructions:u) (up to 1.0% on `incr-unchanged` builds of `ctfe-stress-4 check`)
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- No nominated issues for `T-compiler` this time.
[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- No nominated RFCs for `T-compiler` this time.