---
tags: weekly, rustc
---
# T-compiler Meeting Agenda 2023-05-25
## Announcements
- [Types team meeting: mir formality deep dive](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA1MjlUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-29T10:00:00-04:00>
- Next week June 1st, Rust 1.70 will be unleashed :loudspeaker:
- 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).
### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com))
- [wg-rls-2.0 weekly sync-up](https://www.google.com/calendar/event?eid=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA1MjlUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-29T11:00:00-04:00>
- [wg-async weekly](https://www.google.com/calendar/event?eid=ZDYzaGYwYnM4bWs2cHA3ZGRmazhvOGVjOXJfMjAyMzA2MDFUMjAzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-01T16:30:00-04:00>
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624)
- "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629)
- "Add `mips64r6` option to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632)
- "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634)
- "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635)
- 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 13 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 34 days ago)
- "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 41 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 34 days ago)
- "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 41 days ago)
- "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: about 34 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)
- "Unimplement `unsized_locals`" [compiler-team#630](https://github.com/rust-lang/compiler-team/issues/630)
- "Experimental feature gate for `extern "crabi"` ABI" [compiler-team#631](https://github.com/rust-lang/compiler-team/issues/631)
- "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633)
- "[mir-opt] SimplifyLocals should also clean up debuginfo" [rust#110702](https://github.com/rust-lang/rust/pull/110702)
- Accepted MCPs
- "Integrate Enzyme into nightly rustc" [compiler-team#611](https://github.com/rust-lang/compiler-team/issues/611)
- "Add a `--print=unmap-path-prefixes` flag" [compiler-team#612](https://github.com/rust-lang/compiler-team/issues/612)
- "move constructors from `TyCtxt` to the constructed types" [compiler-team#616](https://github.com/rust-lang/compiler-team/issues/616)
- "Rename `NEEDS_SUBST` and `NEEDS_INFER`" [compiler-team#617](https://github.com/rust-lang/compiler-team/issues/617)
- "Enable the LLVM option `NoTrapAfterNoreturn` when `TrapUnreachable` is enabled." [compiler-team#618](https://github.com/rust-lang/compiler-team/issues/618)
- "Redesign bootstrap stages" [compiler-team#619](https://github.com/rust-lang/compiler-team/issues/619)
- "Policy for ICEs on incorrect usage of internal-only features" [compiler-team#620](https://github.com/rust-lang/compiler-team/issues/620)
- "Remove multi-field `repr(simd)`" [compiler-team#621](https://github.com/rust-lang/compiler-team/issues/621)
- "Stronger typing for `DefId`s" [compiler-team#623](https://github.com/rust-lang/compiler-team/issues/623)
- Finalized FCPs (disposition merge)
- "Tracking Issue for `debugger_visualizer`" [rust#95939](https://github.com/rust-lang/rust/issues/95939)
- "Evaluate place expression in `PlaceMention`" [rust#104844](https://github.com/rust-lang/rust/pull/104844)
- "Add deployment-target --print flag for Apple targets" [rust#105354](https://github.com/rust-lang/rust/pull/105354)
- "Update the version of musl used on `*-linux-musl` targets to 1.2.3" [rust#107129](https://github.com/rust-lang/rust/pull/107129)
- "Remove misleading target feature aliases" [rust#107707](https://github.com/rust-lang/rust/pull/107707)
- "Only check outlives goals on impl compared to trait" [rust#109356](https://github.com/rust-lang/rust/pull/109356)
- "Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool" [rust#109677](https://github.com/rust-lang/rust/pull/109677)
- "do not allow inference in `predicate_must_hold` (alternative approach)" [rust#110100](https://github.com/rust-lang/rust/pull/110100)
- "expand: Change how `#![cfg(FALSE)]` behaves on crate root" [rust#110141](https://github.com/rust-lang/rust/pull/110141)
- "rustdoc: restructure type search engine to pick-and-use IDs" [rust#110371](https://github.com/rust-lang/rust/pull/110371)
- "Use fulfillment to check `Drop` impl compatibility" [rust#110577](https://github.com/rust-lang/rust/pull/110577)
### WG checkins
- Impl Trait initiative by @**oli** ([previous checkin](https://hackmd.io/XSIWiDBHTyyb33sarCfpEg#WG-checkins)):
> We had a types team meeting about the implementation and have found consensus on the current and future impl
> There will be a lang team meeting next week about the language design around defining scopes.
- @_*WG-llvm* by @**nagisa** and @**Nikita Popov** ([previous checkin](https://hackmd.io/8Wy81OhVQ06VG2px9R1eSA#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)
- [1.70.0] :beta: "Dont check `must_use` on nested `impl Future` from fn" [rust#111491](https://github.com/rust-lang/rust/pull/111491)
- Closes P-medium #111484, an ICE from in one crate raised in a crater run
<!--
/poll Approve beta backport of #111491?
approve
decline
don't know
-->
- [1.70.0] :beta: "fix recursion depth handling after confirmation" [rust#111754](https://github.com/rust-lang/rust/pull/111754)
- Closes P-medium #111729, an OOM on trait resolution
<!--
/poll Approve beta backport of #111754?
approve
decline
don't know
-->
- 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 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)
- Older issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)
### 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)
- "Support #[global_allocator] without the allocator shim" [rust#86844](https://github.com/rust-lang/rust/pull/86844) (last review activity: 2 months ago)
- @**pnkfelix** this seems good to merge (PR author rebased and commented the MSVC test as requested)
- "Detect Python-like slicing and suggest how to fix" [rust#111133](https://github.com/rust-lang/rust/pull/111133) (last review activity: about 19 days ago)
- @**Michael Goulet (compiler-errors)** anything else here to do?
- "add a Callable trait that is implemented for unsafe functions, too" [rust#107123](https://github.com/rust-lang/rust/pull/107123) (last review activity: about 19 days ago)
- @**Michael Goulet (compiler-errors)** reminder about triaging the crater report
## 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)
- [29 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, 1 P-high, 5 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, 0 P-high, 2 P-medium, 3 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [0 P-critical, 35 P-high, 95 P-medium, 16 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)
- No `P-critical` issues for `T-types` at this time.
[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)
- "const-propagated `arithmetic_overflow` in unreachable code" [rust#109731](https://github.com/rust-lang/rust/issues/109731)
- As per last meeting, decided to let this ride the train ([comment](https://github.com/rust-lang/rust/issues/109731#issuecomment-1553521897))
[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-23](https://github.com/rust-lang/rustc-perf/blob/512571ddefcaeb65cdd0c382de0131c0668ba449/triage/2023-05-23.md)
There were a few regressions, but most were expected, and one in particular (PR
#111807) is expected yield gains in object code performance at the expense of a
slight compile-time hit. There are a couple PR's that need future followup,
namely PRs #111364 and #111524.
Triage done by **@pnkfelix**.
Revision range: [3ea9ad53..cda5becc](https://perf.rust-lang.org/?start=3ea9ad532474343426e564b997891e459cda89a6&end=cda5becc27cbc7106646fbc40aacea5e7896d954&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 2.3%] | 28 |
| Regressions (secondary) | 0.4% | [0.2%, 0.7%] | 19 |
| Improvements (primary) | -0.9% | [-4.4%, -0.3%] | 11 |
| Improvements (secondary) | -0.8% | [-2.2%, -0.4%] | 11 |
| All (primary) | 0.1% | [-4.4%, 2.3%] | 39 |
3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups
51 artifact comparisons made in total
30 Untriaged Pull Requests
#### Regressions
Remove the ThinLTO CU hack [#111364](https://github.com/rust-lang/rust/pull/111364) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=24c180c438b5ee9a150d20b9822bd7712bef8f62&end=77fb0cd3aa276919e00397f526616c5036562ea1&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 1.6% | [1.1%, 2.2%] | 2 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 1.6% | [1.1%, 2.2%] | 2 |
* This is being discussed on the comment thread for PR #111364.
* what is worrisome is not instructions:u, but rather the regressions to size:linked_artifact (aka binary sizes).
* the PR author is going to try to replicate locally and investigate further if so.
Add creation time support to `FileTimes` on apple and windows [#109773](https://github.com/rust-lang/rust/pull/109773) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8a281f9c796ee8cbebb07bbeec04ef2f2dd8db45&end=521f4dae1bdf7fe9cf9436ecef9ee7c7442708bf&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.8% | [0.7%, 0.8%] | 4 |
| Regressions (secondary) | 0.6% | [0.3%, 0.7%] | 6 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.8% | [0.7%, 0.8%] | 4 |
* already marked as triaged.
[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 |
* This change emits more attributes; it is expected to slow down the compiler, and that is compensated by the fact that it enables better code-generation from what we emit out of the compiler
* marking as triaged.
#### Improvements
Rollup of 7 pull requests [#111650](https://github.com/rust-lang/rust/pull/111650) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b652d9a0fd5c5a7eeacd1ae8299166941c221230&end=e77366b57b799dfa3ce1fcb850c068723a3213ee&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -2.3% | [-4.4%, -0.6%] | 3 |
| Improvements (secondary) | -2.2% | [-2.5%, -2.0%] | 2 |
| All (primary) | -2.3% | [-4.4%, -0.6%] | 3 |
* solely improvements to rustdoc benchmarks
Rollup of 7 pull requests [#111721](https://github.com/rust-lang/rust/pull/111721) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ba6f5e3b4d60ea5a847cd4402cca594cd40b218f&end=fdd030127cc68afec44a8d3f6341525dd34e50ae&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 3 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 6 |
| All (primary) | -0.2% | [-0.3%, -0.2%] | 3 |
* minor improvement to primary regex and secondary externs.
#### Mixed
Specialize query execution for incremental and non-incremental [#108062](https://github.com/rust-lang/rust/pull/108062) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9239760da89cd8e9a51536beeb0a23762064037d&end=b652d9a0fd5c5a7eeacd1ae8299166941c221230&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 9 |
| Regressions (secondary) | 0.8% | [0.2%, 2.9%] | 5 |
| Improvements (primary) | -0.6% | [-1.1%, -0.3%] | 17 |
| Improvements (secondary) | -0.8% | [-1.2%, -0.2%] | 31 |
| All (primary) | -0.3% | [-1.1%, 0.3%] | 26 |
* the sea of green improvements to scenario=full outweighs the occasional (and minor) red regressions to incr cases.
* marking as triaged.
Merge return place with other locals in CopyProp. [#111556](https://github.com/rust-lang/rust/pull/111556) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e77366b57b799dfa3ce1fcb850c068723a3213ee&end=5c3a3362f86f9748b4a6cb18b147893774a189ac&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 2 |
| Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 17 |
| Improvements (secondary) | -0.8% | [-0.9%, -0.7%] | 4 |
| All (primary) | -0.4% | [-0.7%, -0.2%] | 17 |
* already marked as triaged.
Shorten backtraces for queries in ICEs [#108938](https://github.com/rust-lang/rust/pull/108938) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=77fb0cd3aa276919e00397f526616c5036562ea1&end=77c836e1ae582661924d3b6ec4d57a2de120f59f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 3 |
| Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 10 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.3%, -0.2%] | 3 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 3 |
* already marked as triaged.
do not allow inference in `predicate_must_hold` (alternative approach) [#110100](https://github.com/rust-lang/rust/pull/110100) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=92f5dea0ebe2e34ad8411e8cd8a0c97dd45b3400&end=19ca5692f69d20643656bf501fd171f1907ef875&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.1% | [0.9%, 1.4%] | 6 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
| All (primary) | 1.1% | [0.9%, 1.4%] | 6 |
* diesel took a 1% regression in various scenarios.
* there are indications from T-types that this is fixing a bug
* therefore, the performance regression is acceptable; marking as triaged.
`ascii::Char`-ify the escaping code in `core` [#111524](https://github.com/rust-lang/rust/pull/111524) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7047d97e012d5ed90cf2837c361150bc149837b4&end=e86fd62b6b198584a47798eb271d4b54c4dc96ec&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.7%] | 6 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.6% | [-0.7%, -0.6%] | 3 |
| Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 3 |
| All (primary) | 0.1% | [-0.7%, 0.7%] | 9 |
* lqd identified most of this as noise.
* however, there was a bump on the compile-time for html5ever that has not yet receded as of 2023-05-23; i.e. that might not be noise.
* therefore, not yet marking as triaged...
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No issues nominated for discussion
[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
- Types team by @**nikomatsakis** and @**Jack Huey**
- @_*WG-mir-opt* by @**oli**
Agenda draft: https://hackmd.io/lemUh_8HTHCYaAs_H8ZDHw