---
# System prepended metadata

title: T-compiler Meeting Agenda 2021-07-15
tags: [' rustc', weekly]

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2021-07-15

[Tracking Issue](https://github.com/rust-lang/rust/issues/54818)

## Announcements

- Tomorrow July 16th at 10:00 ET steering meeting to discuss extensions to the review policy for Rust Compiler Pull Requests ([policy](https://github.com/rust-lang/compiler-team/issues/444))

## MCPs/FCPs

- New MCPs (take a look, see if you like them!)
  - "Non exhaustive reachable patterns lint" [compiler-team#445](https://github.com/rust-lang/compiler-team/issues/445) 
- Old MCPs (not seconded, take a look)
  - "Add different entry points for x.py" [compiler-team#396](https://github.com/rust-lang/compiler-team/issues/396) (last comment: 6 months ago)
  - "rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat "stable"?" [compiler-team#403](https://github.com/rust-lang/compiler-team/issues/403) (last comment: 5 months ago)
  - "Don't steal the resolver when lowering HIR; instead store an immutable resolver in TyCtxt" [compiler-team#437](https://github.com/rust-lang/compiler-team/issues/437) (last comment: about 34 days ago)
  - "CI should exercise (subset of) tests under --stage 1" [compiler-team#439](https://github.com/rust-lang/compiler-team/issues/439) (last comment: about 13 days ago)
  - "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 comment: about 13 days ago)
  - "Encode spans relative to the enclosing item" [compiler-team#443](https://github.com/rust-lang/compiler-team/issues/443) (last comment: about 13 days ago)
- Pending FCP requests (check your boxes!)
  - "Write text output files to stdout if options like `-o -` or `--emit asm=-` are provided" [compiler-team#431](https://github.com/rust-lang/compiler-team/issues/431) 
  - "Preserve, clarify, and extend debug information" [rust#83947](https://github.com/rust-lang/rust/pull/83947) 
- Things in FCP (make sure you're good with it)
  - No FCP requests this time.
- Accepted MCPs
  - No new accepted proposals this time.
- Finalized FCPs (disposition merge)
  - "Tracking issue for `#![feature(maybe_uninit_extra,const_maybe_uninit_write)]`" [rust#63567](https://github.com/rust-lang/rust/issues/63567) 
  - "Tracking Issue for `array_map`" [rust#75243](https://github.com/rust-lang/rust/issues/75243) 
  - "Stabilize `impl From<[(K, V); N]> for HashMap` (and friends)" [rust#84111](https://github.com/rust-lang/rust/pull/84111) 
  - "Stabilize bindings_after_at" [rust#85305](https://github.com/rust-lang/rust/pull/85305)

### WG checkins

@*WG-async-foundations* by @**nikomatsakis** and @**tmandry** :
> Checkin text

@*WG-traits* by @**nikomatsakis** and @**Jack Huey** 
> We recently (last week) had an organizational meeting and reviewed various initiatives/projects that WG-traits is working on. These include: GATs, TAIT, rustc_type_ir, trait upcasting, salsa, Chalk, and fixing trait-related incremental bugs.
> We decided to no longer have a single weekly meeting, in favor of more targeted "1:1" meetings (as needed for each initiative). We will still be having a steering/organizational meeting once a month. We haven't decided if that'll take the same timeslot as the weekly meeting or change.
> Updates of individual initiatives:
> **GATs**
> We realized that in [#85499] (normalization under binders), we run into problems when we want to project but can't yet (i.e. `<T as Trait>::Foo<'a>`) and the associated type will *eventually* contain a bound var. So, for now, the plan is to fall back to no normalization when we don't have enough information to project. This still fixes the ICEs in [#62529], but results in some errors where we want to pass. Also split out [#86993] as a more minimal GATs-only change (which can be landed before, or skipped).
> **TAIT**
> We had a meeting and found that the implementation is still a bit wrong. There's a bit more work to do before stabilization of `min_type_alias_impl_trait`, including fixing a number of issues.
> **rustc_type_ir**
> There is an open PR [#86435] to begin moving major types (like `TyKind`) into `rustc_type_ir` and out of `rustc_middle`. Blocked on some lifetime variance (probably) issues that need to be looked into.
> **trait upcasting**
> There is an open PR [#86461] to refactor the vtable format and a bigger PR [#86264] that is being split out into smaller PRs.
> **salsa, Chalk**
> [chalk#708] got merged, which reworks the recursive solver to be prepare to use salsa for fixed-point iteration.
> **incremental ICEs trait work**
> There are [3 approaches](https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/subobligations.20and.20ICEs.20.2385868/near/245066992) open to solve the `evaluate_obligation` incremental issue, but each have a moderate perf impact. They need to be reviewed to pick the best solution.

[#62529]: https://github.com/rust-lang/rust/issues/62529
[#85499]: https://github.com/rust-lang/rust/pull/85499
[#86264]: https://github.com/rust-lang/rust/pull/86264
[#86435]: https://github.com/rust-lang/rust/pull/86435
[#86461]: https://github.com/rust-lang/rust/pull/86461
[#86993]: https://github.com/rust-lang/rust/pull/86993
[chalk#708]: https://github.com/rust-lang/chalk/pull/708

## 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: "Don't use gc-sections with profile-generate." [rust#87004](https://github.com/rust-lang/rust/pull/87004) 
  - opened by @**Jamie Cunliffe** 
  - nomination proposed by @**simulacrum** as this should fix [rust#78226](https://github.com/rust-lang/rust/issues/78226), preferably to be shipped in 1.54 a `P-critical` regression on AArch64 target
  - Some PGO tests are failing on Windows (see [comment](https://github.com/rust-lang/rust/pull/87004#issuecomment-879157185))
- 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)
- No backport 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)
- "Encode spans relative to the enclosing item" [rust#84373](https://github.com/rust-lang/rust/pull/84373) 
  - opened by @**cjgillot** 
  - @**Vadim Petrochenkov** called on team review as it may be interesting to be merged to move forward [rust#35148](https://github.com/rust-lang/rust/issues/35148#issuecomment-879839839)
- "Wrap libraries in linker groups, allowing backwards/circular references" [rust#85805](https://github.com/rust-lang/rust/pull/85805) 
  - opened by @**Josh Triplett** 
  - reviewed by @**bjorn3** 
  - @**Vadim Petrochenkov** self-assigned for review, expressed idea to reconsider this PR [in 6-12 months](https://github.com/rust-lang/rust/pull/85805#issuecomment-868825690)

## Issues of Note

### Short Summary

- [4 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical)
  - [3 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [80 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
  - [54 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [2 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [0 P-critical, 3 P-high, 2 P-medium, 0 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [2 P-critical, 45 P-high, 83 P-medium, 11 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)
- "run-make-fulldeps/pgo-branch-weights fails on AArch64 Linux" [rust#78226](https://github.com/rust-lang/rust/issues/78226) 
  - only fails on aarch64 arm
  - discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-07-08.20.2354818/near/245320262)
  - @**simulacrum** [comments](https://github.com/rust-lang/rust/issues/78226#issuecomment-866299280) that tests for this are disabled but a fix for 1.54 would be good
  - being investigated by @**Jamie Cunliffe** [see comment](https://github.com/rust-lang/rust/issues/78226#issuecomment-868570487) 
  - @**simulacrum**has beta-nominated [rust#87004](https://github.com/rust-lang/rust/pull/87004) to fix this
- "Unstable fingerprints - what to do on beta (and stable)" [rust#84970](https://github.com/rust-lang/rust/issues/84970)
  - discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-07-08.20.2354818/near/245321885)
  - general feeling is to re-enable incr-comp again in 1.54
  - @**Aaron Hill** is working on some performance improvements to handling of projection predicates
  - @**nagisa** reported that errors are looking useful enough

[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-libs+-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-libs+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- No unassigned `P-high` nightly regressions this time.

## Performance logs

> [triage logs for 2021-07-13](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-07-13.md)

Mostly quiet week; improvements outweighed regressions.

Triage done by **@simulacrum**.
Revision range: [9a27044f42ace9eb652781b53f598e25d4e7e918..5aff6dd07a562a2cba3c57fc3460a72acb6bef46](https://perf.rust-lang.org/?start=9a27044f42ace9eb652781b53f598e25d4e7e918&end=5aff6dd07a562a2cba3c57fc3460a72acb6bef46&absolute=false&stat=instructions%3Au)

1 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups

#### Regressions

Support forwarding caller location through trait object method call [#81360](https://github.com/rust-lang/rust/issues/81360)
- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a84d1b21aea9863f0fc5f436b4982d145dade646&end=3982eb35cabe3a99194d768d34a92347967c3fa2&stat=instructions:u) (up to 1.5% on `incr-full` builds of `unused-warnings-check`)
- Largely due to increased number of calls to the newly-made query
  should_inherit_track_caller. Mostly higher regressions on smaller benchmarks.

#### Improvements

- Reland "Merge CrateDisambiguator into StableCrateId" [#86143](https://github.com/rust-lang/rust/issues/86143)
- Stop generating `alloca`s & `memcmp` for simple short array equality [#85828](https://github.com/rust-lang/rust/issues/85828)
- Add support for raw-dylib with stdcall, fastcall functions [#86419](https://github.com/rust-lang/rust/issues/86419)
- Use clang 12.0.1 on dist-x86_64/i686-linux [#87019](https://github.com/rust-lang/rust/issues/87019)

#### Nags requiring follow up

- There are a number of [untriaged regressions](https://github.com/rust-lang/rust/issues?q=is%3Amerged+label%3Aperf-regression+-label%3Aperf-regression-triaged); as of this writing:
  - Include terminators in instance size estimate [#86777](https://github.com/rust-lang/rust/issues/86777)
  - Rollup of 8 pull requests [#86588](https://github.com/rust-lang/rust/issues/86588)
  - Change entry point to 🛡️ against 💥 💥-payloads [#86034](https://github.com/rust-lang/rust/issues/86034)
  - Inline Iterator as IntoIterator. [#84560](https://github.com/rust-lang/rust/issues/84560)

## Nominated Issues

T-rustdoc
- Generate links to definition in rustdoc source code pages [#84176](https://github.com/rust-lang/rust/pull/84176)
  - Authored by @**GuillaumeGomez**
  - approved by T-rustdoc, reviewed by @**Joshua Nelson** 
  - [mentioned last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202021-07-08.20.2354818/near/245326203)
  - needs a final look by T-compiler for merge (@**GuillaumeGomez** can't merge own PR)

[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler)
- "`match` an `std::cmp::Ordering` generates less optimized code in nightly" [rust#86511](https://github.com/rust-lang/rust/issues/86511)
  - comment mentions these issues [#86391](https://github.com/rust-lang/rust/issues/86391) and [#86354](https://github.com/rust-lang/rust/issues/86354)
  - issue nominated for help in finding someone giving some context for an accurate priority to track the issue
- "Binary size is significant increased from `1.46.0` to `1.51.0`" [rust#86610](https://github.com/rust-lang/rust/issues/86610)
  - perhaps related to one or more issues about the same theme (see mentioned issues, ex. [rust#86431](https://github.com/rust-lang/rust/issues/86431) was mentioned)
  - issue nominated as FIY for T-compiler. Can this be tracked in perf?
[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.
