---
# System prepended metadata

title: T-compiler Meeting Agenda 2023-06-01
tags: [' rustc', weekly]

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2023-06-01

## Announcements

- Today Rust stable 1.70 release!
- [Compiler Team Planning meeting](https://www.google.com/calendar/event?eid=MDJyYnJ1cGFtdWR1c2lnNjFmcHJ2b3JlODFfMjAyMzA2MDJUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-02T10:00:00-04:00>
- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA2MDVUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-05T10:00:00-04:00>
- Last minute backport to 1.70-stable (and 1.71-beta): https://github.com/rust-lang/rust/pull/112070
- 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).
- T-compiler members: check your emails for a message from Felix.

### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com))
- [wg-async weekly](https://www.google.com/calendar/event?eid=ZDYzaGYwYnM4bWs2cHA3ZGRmazhvOGVjOXJfMjAyMzA2MDFUMjAzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-01T16:30:00-04:00>
- [wg-rls-2.0 weekly sync-up](https://www.google.com/calendar/event?eid=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA2MDVUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-05T11:00:00-04:00>

## MCPs/FCPs

- New MCPs (take a look, see if you like them!)
  - "Simplify and improve explicitness of the check-cfg syntax" [compiler-team#636](https://github.com/rust-lang/compiler-team/issues/636) 
- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed))
  - None at this time
- Old MCPs (not seconded, take a look)
  - "Rustc Contributor Program Major Change Proposal" [compiler-team#557](https://github.com/rust-lang/compiler-team/issues/557) (last review activity: 4 months ago)
  - "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: 2 months ago)
  - "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: 2 months ago)
  - "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604) (last review activity: about 20 days ago)
  - "Increase `TypeId`'s hash from 64 bits to 128 bits." [compiler-team#608](https://github.com/rust-lang/compiler-team/issues/608) (last review activity: about 41 days ago)
  - "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 48 days ago)
  - "2024: Decrease debuginfo generated by  `-Cdebuginfo=1`" [compiler-team#613](https://github.com/rust-lang/compiler-team/issues/613) (last review activity: about 41 days ago)
  - "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 48 days ago)
  - "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: about 41 days ago)
  - "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624) (last review activity: about 6 days ago)
  - "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) (last review activity: about 6 days ago)
  - "Add `mips64r6` option to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632) (last review activity: about 6 days ago)
  - "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634) (last review activity: about 6 days ago)
  - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
  - No pending FCP requests this time.
- Things in FCP (make sure you're good with it)
  - "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625) 
  - "Tier 3 target proposal: bare-metal loongarch64" [compiler-team#628](https://github.com/rust-lang/compiler-team/issues/628) 
  - "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633) 
- Accepted MCPs
  - No new accepted proposals this time.
- Finalized FCPs (disposition merge)
  - "Make pointer_structural_match normal and warn" [rust#110166](https://github.com/rust-lang/rust/pull/110166) 
  - "[mir-opt] SimplifyLocals should also clean up debuginfo" [rust#110702](https://github.com/rust-lang/rust/pull/110702) 
  - "Stabilize inline asm for LoongArch64" [rust#111235](https://github.com/rust-lang/rust/pull/111235) 
  - "Uplift `clippy::undropped_manually_drops` lint" [rust#111530](https://github.com/rust-lang/rust/pull/111530) 
  - "Uplift `clippy::invalid_utf8_in_unchecked` lint" [rust#111543](https://github.com/rust-lang/rust/pull/111543) 
  - "Uplift `clippy::cast_ref_to_mut` lint" [rust#111567](https://github.com/rust-lang/rust/pull/111567) 

### WG checkins

- Types team by @**nikomatsakis** and @**Jack Huey** ([previous checkin](https://hackmd.io/8Wy81OhVQ06VG2px9R1eSA#WG-checkins)):
  > Checkin text

- @_*WG-mir-opt* by @**oli** ([previous checkin](https://hackmd.io/auk0MATiScWFokXL6RlO-w#WG-checkins)):
  > Checkin text

## 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: [1.71.0] "Load only the crate header for `locator::crate_matches`" [rust#111329](https://github.com/rust-lang/rust/pull/111329)
  - nominated and authored by @**jyn**
  - improves the logic the bootstrap uses to load a crate
<!--
/poll Approve beta backport of #111329?
approve
decline
don't know
-->
- :beta: [1.71.0] "Make struct layout not depend on unsizeable tail" [rust#112062](https://github.com/rust-lang/rust/pull/112062)
  - nominated and authored by @**Lukas (lukas-code)**, patch still being in review 
  - fixes #11048, P-critical unsound regression
<!--
/poll Approve beta backport of #112062?
approve
decline
don't know
-->
- :stable: "change `BorrowKind::Unique` to be a mutating `PlaceContext`" [rust#112070](https://github.com/rust-lang/rust/pull/112070)
  - FIY: nominated and approved for beta+stable backport with expedite procedure (see [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/last.20minute.20PR.20.2E.2E.2E.20for.201.2E70.2E0.20.2E.2E.2E.3F/near/362522771))
  - fixes #112056, a P-critical unsoundness in the borrowck

[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 beta nominations for `T-rustdoc` this time.
- 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?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)
- Issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)


### Oldest PRs waiting for review

- "avoid deadlock when reporting ice" [rust#111352](https://github.com/rust-lang/rust/pull/111352) (last review activity: about 23 days ago)
  - cc: @**Zoxc** (I think)
- "Do not substitute nonexistent lifetime in RPIT in recursive function" [rust#110844](https://github.com/rust-lang/rust/pull/110844) (last review activity: about 21 days ago)
  - cc: @**oli** (though this PR seems not so straightforward to review)
- "Extra context for unreachable_pub lint" [rust#111496](https://github.com/rust-lang/rust/pull/111496) (last review activity: about 20 days ago)
  - cc: @**davidtwco**

## Issues of Note

### Short Summary

- [0 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)
- [63 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
  - [28 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, 2 P-high, 0 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [1 P-critical, 0 P-high, 1 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [1 P-critical, 35 P-high, 96 P-medium, 17 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?q=is%3Aopen+label%3AP-critical+label%3AT-compiler)
- No `P-critical` issues for `T-compiler` at this time.

[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types)
- "Evade borrowck by wrapping your lifetime crimes in a simple closure" [rust#112056](https://github.com/rust-lang/rust/issues/112056)
  - Fixed by #112070 and #112073

[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc)
- No `P-critical` issues for `T-rustdoc` at 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-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- "regression - nightly 2023-03-30 -> 2023-03-31 causes linker error when importing wasm_bindgen::JsValue in a proc_macro" [rust#111888](https://github.com/rust-lang/rust/issues/111888)
  - @**Ben Kimock (Saethlin)** found a mitigation (see [comment](https://github.com/rust-lang/rust/issues/111888#issuecomment-1567416478))
  - who has some more context on wasm bindgens?
  - is it P-high?

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

## Performance logs

> [triage logs for 2023-05-30](https://github.com/rust-lang/rustc-perf/blob/dd296e1d57e277a09cec2110f018d429fc19c41d/triage/2023-05-30.md)

A good week overall, with a broad set of improvements to many primary benchmarks.
The main single source of primary regressions is from rollup PR #111869; we are
in the process of narrowing that down to see if there is a root cause.

Triage done by **@pnkfelix**.
Revision range: [cda5becc..1221e43b](https://perf.rust-lang.org/?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=1221e43bdf413f7c405e9b17ef19d76c88222098&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.4%  | [0.3%, 0.5%]   | 19    |
| Regressions (secondary)  | 0.5%  | [0.2%, 2.7%]   | 35    |
| Improvements (primary)   | -0.6% | [-1.2%, -0.1%] | 84    |
| Improvements (secondary) | -0.5% | [-1.1%, -0.1%] | 15    |
| All  (primary)           | -0.4% | [-1.2%, 0.5%]  | 103   |


3 Regressions, 3 Improvements, 3 Mixed; 4 of them in rollups
30 Untriaged Pull Requests
26 artifact comparisons made in total

#### Regressions

[rustc_ty_utils] Treat `drop_in_place`'s *mut argument like &mut when adding LLVM attributes [#111807](https://github.com/rust-lang/rust/pull/111807) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=f3d597b31c0f101a02c230798afa31a36bdacbc6&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.4%  | [0.2%, 0.7%]   | 17    |
| Regressions (secondary)  | 1.3%  | [0.2%, 2.9%]   | 6     |
| Improvements (primary)   | -0.2% | [-0.2%, -0.2%] | 1     |
| Improvements (secondary) | -     | -              | 0     |
| All  (primary)           | 0.4%  | [-0.2%, 0.7%]  | 18    |

* already triaged last week

Rollup of 6 pull requests [#111869](https://github.com/rust-lang/rust/pull/111869) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f3d597b31c0f101a02c230798afa31a36bdacbc6&end=b08148f6a76010ea3d4e91d61245aa7aac59e4b4&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 0.4% | [0.2%, 0.6%] | 12    |
| Regressions (secondary)  | 0.2% | [0.2%, 0.2%] | 2     |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 0.4% | [0.2%, 0.6%] | 12    |

* The five primary regressions over 0.4% are to diesel full and incr-full scenarios.
* It is not clear what caused these regressions; pnkfelix started requesting individual rust-timer runs, but has not yet identified any root cause.

Support #[global_allocator] without the allocator shim [#86844](https://github.com/rust-lang/rust/pull/86844) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cade26637fe1c23965ce644299ed5200db7c92dd&end=a2b1646c597329d0a25efa3889b66650f65de1de&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 0.2% | [0.2%, 0.2%] | 1     |
| Regressions (secondary)  | 0.5% | [0.3%, 0.7%] | 10    |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 0.2% | [0.2%, 0.2%] | 1     |

* The 0.2% hit to primary benchmark serde_derive check-incr_unchanged is easily justified by the feature addition here.
* The more interesting question is 44 primary benchmarks saw a regression to their binary size. However, the only one of those of note, in my opinion, is ripgrep, which suffered a 0.43% increase to binary size on various opt scenarios.
* marked as triaged.

#### Improvements

Rollup of 6 pull requests [#111919](https://github.com/rust-lang/rust/pull/111919) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c373194cb6d882dc455a588bcc29c92a96b50252&end=096309e6dc4378e175e524e963332d1a3830ed63&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.7% | [-0.7%, -0.6%] | 2     |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 2     |
| All  (primary)           | -0.7% | [-0.7%, -0.6%] | 2     |

* a small improvement to serde_derive check-{full, incr-full} that seems like its not noise, not completely.

fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy error [#110906](https://github.com/rust-lang/rust/pull/110906) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eb9da7bfa375ad58bcb946115f3191a2756785e5&end=d300bffa4f0036e9138ef752610d08fc63f87a77&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.8% | [-0.8%, -0.7%] | 2     |
| Improvements (secondary) | -0.5% | [-0.6%, -0.3%] | 6     |
| All  (primary)           | -0.8% | [-0.8%, -0.7%] | 2     |

* lol helloworld check-{full, incr-unchanged} improved by [-0.80%, -0.74%].
* based on the PR itself, we should consider this to be some confounding factor, not meaningful.

Rollup of 7 pull requests [#111960](https://github.com/rust-lang/rust/pull/111960) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2b1646c597329d0a25efa3889b66650f65de1de&end=0004b3b984b19646c1f78b09ba497b7bd6e882c1&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.5% | [-1.3%, -0.2%] | 65    |
| Improvements (secondary) | -0.6% | [-1.2%, -0.2%] | 18    |
| All  (primary)           | -0.5% | [-1.3%, -0.2%] | 65    |

* a lot of primary improvements here, mostly to incr-{unchanged, patched} scenarios
* fired off rust-timer run on specific PR just to see if it was root cause of improvement.


#### Mixed

Rollup of 7 pull requests [#111882](https://github.com/rust-lang/rust/pull/111882) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=52dd1cde59ee86e5d61469ee1befe09c132c777d&end=d5699874dc07d2dfb262d007293853f73c171f7e&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.2%  | [0.2%, 0.3%]   | 5     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.4% | [-0.7%, -0.2%] | 18    |
| Improvements (secondary) | -0.3% | [-0.5%, -0.2%] | 9     |
| All  (primary)           | -0.2% | [-0.7%, 0.3%]  | 23    |

* regressions are to bitmaps {{check, debug}-full, {check, debug, opt}-incr-full}.
* improvements clearly outweigh regressions here
* marked as triaged

Preprocess and cache dominator tree [#111673](https://github.com/rust-lang/rust/pull/111673) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b3cbf7c8351dd48dc2e07a1cdc69620f8e40dd2f&end=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.3%  | [0.2%, 0.4%]   | 3     |
| Regressions (secondary)  | 0.3%  | [0.2%, 0.4%]   | 7     |
| Improvements (primary)   | -     | -              | 0     |
| Improvements (secondary) | -1.2% | [-1.2%, -1.2%] | 3     |
| All  (primary)           | 0.3%  | [0.2%, 0.4%]   | 3     |

* primary benchmarks libc {check, debug}-full and bitmaps check-full regressed a little.
* this pays a bit of upfront cost to avoid a O(n^2) pathology in other planned code.
* marked as triaged.

rustc_privacy: Cleanups and perf improvements to `EmbargoVisitor` [#111260](https://github.com/rust-lang/rust/pull/111260) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&end=c373194cb6d882dc455a588bcc29c92a96b50252&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | 0.4%  | [0.3%, 0.6%]   | 9     |
| Improvements (primary)   | -0.4% | [-1.3%, -0.1%] | 67    |
| Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 15    |
| All  (primary)           | -0.4% | [-1.3%, -0.1%] | 67    |

* already marked as triaged

## Nominated Issues

[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated issues this time.

[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated RFCs this time.

## Next week's WG checkins

- @_*WG-polymorphization* by @**davidtwco**
- @_*WG-rls2.0* by @**Lukas Wirth**

Agenda draft: https://hackmd.io/LBCwQjC6QFCfan1AHHFVVQ
