---
# System prepended metadata

title: T-compiler Meeting Agenda 2023-04-20
tags: [' rustc', weekly]

---

---
tags: weekly, rustc
---

# T-compiler Meeting Agenda 2023-04-20

## Announcements

- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA0MjRUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-24T10:00:00-04:00>
- Today Rust stable 1.69.0 release :tada: :rocket:
- 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=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA0MjRUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-24T11:00:00-04:00>
- [Async WG triage meeting](https://www.google.com/calendar/event?eid=cXZ1NGZncDF1dXA1NnVnMnA1M2Mzb2lvdWVfMjAyMzA0MjRUMTUzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-24T11:30:00-04:00>
- [wg-async weekly](https://www.google.com/calendar/event?eid=N211N3RrYzVqcnVvNnBycGFrcW9mcjNocTNfMjAyMzA0MjdUMTYwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-04-27T12:00:00-04:00>

## MCPs/FCPs

- New MCPs (take a look, see if you like them!)
  - "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) 
- 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: 3 months ago)
  - "`needs_drop` as an auto trait" [compiler-team#575](https://github.com/rust-lang/compiler-team/issues/575) (last review activity: 3 months ago)
  - "Synthetic Partial Drop Glue" [compiler-team#585](https://github.com/rust-lang/compiler-team/issues/585) (last review activity: 2 months ago)
  - "Add New Values To MIPS_ALLOWED_FEATURES" [compiler-team#595](https://github.com/rust-lang/compiler-team/issues/595) (last review activity: about 27 days ago)
  - "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: about 27 days ago)
  - "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: about 27 days ago)
  - "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604) (last review activity: about 27 days ago)
  - "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 6 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 6 days ago)
  - "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
  - "Add deployment-target --print flag for Apple targets" [rust#105354](https://github.com/rust-lang/rust/pull/105354#issuecomment-1354546850) 
  - "Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool" [rust#109677](https://github.com/rust-lang/rust/pull/109677#issuecomment-1491574659) 
- Things in FCP (make sure you're good with it)
  - "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) 
  - "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) 
  - "Update the version of musl used on `*-linux-musl` targets to 1.2.3" [rust#107129](https://github.com/rust-lang/rust/pull/107129) 
- Accepted MCPs
  - "Add builtin# for compiler-intrinsic syntax" [compiler-team#580](https://github.com/rust-lang/compiler-team/issues/580) 
  - "Clone "copyables" using copy codegen" [compiler-team#588](https://github.com/rust-lang/compiler-team/issues/588) 
  - "New tier-2 target for `wasm32-wasi-preview2`" [compiler-team#594](https://github.com/rust-lang/compiler-team/issues/594) 
  - "Add `force` option for `--extern` flag" [compiler-team#605](https://github.com/rust-lang/compiler-team/issues/605) 
  - "Rename `wasm32-wasi` target to `wasm32-wasi-preview1`" [compiler-team#607](https://github.com/rust-lang/compiler-team/issues/607) 
  - "Increase `TypeId`'s hash from 64 bits to 128 bits." [compiler-team#608](https://github.com/rust-lang/compiler-team/issues/608) 
- Finalized FCPs (disposition merge)
  - "Uplift `clippy::{drop,forget}_{ref,copy}` lints" [rust#109732](https://github.com/rust-lang/rust/pull/109732) 
  - "rustdoc-search: add support for nested generics" [rust#109802](https://github.com/rust-lang/rust/pull/109802) 

### WG checkins

- @_*WG-llvm* by @**nagisa** and @**Nikita Popov** ([previous checkin](https://hackmd.io/Y3MpcGIXRuKpDGmYZV-TJg#WG-checkins)):
  > Upgrade to LLVM 16 and 16.0.2

- Types team by @**nikomatsakis** and @**Jack Huey** ([previous checkin](https://hackmd.io/gl1iwQGMR-qHwraZPc2c9A#WG-checkins)):
  > No significant updates. Work continues on various initiatives at a steady pace.

## 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.70.0] "make sysroot finding compatible with multiarch systems" [rust#110281](https://github.com/rust-lang/rust/pull/110281)
  - Fixes #109994, regression in the bootstrap when moving libs around (discovered by Debian/Ubuntu packaging)
<!--
/poll Approve beta backport of #110281?
approve
decline
don't know
-->
- :beta: [1.70.0] "Encode def span for `ConstParam`" [rust#110425](https://github.com/rust-lang/rust/pull/110425)
  - Fixes #110206, a ICE on nightly and #109765 (now in beta)
  - Has follow-up patch in #110469
<!--
/poll Approve beta backport of #110425?
approve
decline
don't know
-->
- :beta: [1.70.0] "Encode lifetime param spans too" [rust#110469](https://github.com/rust-lang/rust/pull/110469)
  - Fixes #110464, an ICE, complements #110425
  - Patch still needs some work (negative perf. run)
<!--
/poll Approve beta backport of #110469?
approve
decline
don't know
-->
- :beta: [1.70.0] "Update to LLVM 16.0.2" [rust#110535](https://github.com/rust-lang/rust/pull/110535)
  - beta already has LLVM 16
<!--
/poll Approve beta backport of #110535?
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)
- Other 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)
- "Run various queries from other queries instead of explicitly in phases" [rust#108118](https://github.com/rust-lang/rust/pull/108118) (last review activity: 2 months ago)
  - unsure about the status. @**oli** is it proceeding nicely with Camille? Wesley was autoassigned, perhaps reroll the review assignment?
- "Print a code snippet with the panicking expression" [rust#108108](https://github.com/rust-lang/rust/pull/108108) (last review activity: about 51 days ago)
  - needs both T-libs and T-compiler. I think T-compiler contributed already some comments 
  - @**Esteban Küber**: your thoughts on this?
- "Add support for the x86_64h-apple-darwin target" [rust#108795](https://github.com/rust-lang/rust/pull/108795) (last review activity: about 44 days ago)
  - Was waiting on [MCP #599](https://github.com/rust-lang/compiler-team/issues/599), @**oli** was autoassigned - reroll?
- "Stabilize debugger_visualizer" [rust#108668](https://github.com/rust-lang/rust/pull/108668) (last review activity: about 43 days ago)
  - cc: @**oli** (though was autoassigned)

## 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)
- [65 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
  - [33 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, 4 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, 2 P-high, 2 P-medium, 1 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [0 P-critical, 37 P-high, 92 P-medium, 15 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)
- :tada: 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)
- 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-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) 
  - quickly mentioned last week, no time to really grok about this
  - Is it *really* a P-high? @__**lqd** [provides more context](https://rust-lang.zulipchat.com/#narrow/stream/245100-t-compiler.2Fwg-prioritization.2Falerts/topic/.23109731.20const-propagated.20.60arithmetic_overflow.60.20in.20unreachab.E2.80.A6/near/345631142):
  > const prop got smarter, started noticing the overflow, and prevented compilation even if the overflow is actually unreachable
- "windows-gnu thin-lto test linking error regression" [rust#109797](https://github.com/rust-lang/rust/issues/109797)
  - Workarounds were merged in 1.68.2 (and subsequent)
  - [Comment from Felix](https://github.com/rust-lang/rust/issues/109797#issuecomment-1499205307):
  > After PR #109806 lands, we should keep this open and tag it as E-needs-test, to try to catch regressions while this linker bug persists (assuming our CI covers this case...)
  
## Performance logs

> [triage logs for 2023-04-18](https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-04-18.md)

A busy two weeks (as last week perf triage was not done). Overall improvements outweigh regressions with an average improvement of -2.6% across a large swath of the test cases. Of particular note was the move to use SipHash-1-3 instead of SipHash-2-4 for StableHasher which improved 184 benchmark tests by an average of 2.3%! 

Triage done by **@rylev**.
Revision range: [7c96e40..74864f](https://perf.rust-lang.org/?start=7c96e40da81165beef4f273f44e96eeef5a1bd30&end=74864fa496997a6498e623f0d2019ccb7eb6dad0&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | 3.1%  | [0.2%, 24.4%]   | 11    |
| Regressions (secondary)  | 4.9%  | [0.4%, 37.4%]   | 32    |
| Improvements (primary)   | -2.9% | [-20.4%, -0.3%] | 205   |
| Improvements (secondary) | -4.0% | [-43.5%, -0.3%] | 160   |
| All  (primary)           | -2.6% | [-20.4%, 24.4%] | 216   |


6 Regressions, 8 Improvements, 11 Mixed; 6 of them in rollups
119 artifact comparisons made in total

#### Regressions

Erase query cache values [#109333](https://github.com/rust-lang/rust/pull/109333) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0534655d9b5f61dbd75cf142ec8d2d3f68b550ee&end=f5b8f44e5d5dee0f60cec1729b5a107659779d94&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 0.4% | [0.2%, 0.6%] | 43    |
| Regressions (secondary)  | 0.4% | [0.3%, 0.7%] | 13    |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 0.4% | [0.2%, 0.6%] | 43    |
* Author has some ideas for how to tackle this [here](https://github.com/rust-lang/rust/pull/109333#issuecomment-1509269857) 

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

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


resolve: Preserve reexport chains in ModChildren [#109500](https://github.com/rust-lang/rust/pull/109500) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=56e0626836d92973cd12cb505179eef9795efc61&end=7201301df6afe8b68c6a8f5d2abba67bbba435ea&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 0.7% | [0.4%, 1.0%] | 17    |
| Regressions (secondary)  | 1.3% | [0.4%, 5.7%] | 22    |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 0.7% | [0.4%, 1.0%] | 17    |
* There are a few more regressions in the post merge perf run, but they seem to follow the same pattern as the regressions found pre-merge. I think we can just take this as a necessary trade off we need to make for the fixes that landed (as identified by @oli-obk [here](https://github.com/rust-lang/rust/pull/109500#issuecomment-1501119286)).


Better diagnostic when pattern matching tuple structs [#109760](https://github.com/rust-lang/rust/pull/109760) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=39bf7777aab9ac1f6b0802cd52cd91d6e021aa91&end=696aaad58c57a589f6fb2ecff5bae2eec581cb71&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 6.4% | [3.1%, 9.1%] | 3     |
| Regressions (secondary)  | -    | -            | 0     |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 6.4% | [3.1%, 9.1%] | 3     |
* Looks like the regression was a blip as [the next run reverses the regressions](https://perf.rust-lang.org/compare.html?start=696aaad58c57a589f6fb2ecff5bae2eec581cb71&end=3c2e2dd5c516acc60ababd12e5dba684d71c2315&stat=instructions:u).


Rollup of 3 pull requests [#110401](https://github.com/rust-lang/rust/pull/110401) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=18109d5032b0fd95ae81e30857a71e31e263044a&end=1b50ea9abb65b33aac7285dbe36b37f9e33381a2&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 0.3% | [0.2%, 0.3%] | 5     |
| Regressions (secondary)  | -    | -            | 0     |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 0.3% | [0.2%, 0.3%] | 5     |
* This is likely noise (bitmaps is a fairly noisy benchmark).


Bypass the varint path when encoding InitMask [#110343](https://github.com/rust-lang/rust/pull/110343) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=31656e7295ebd5f2f6597f10c011e2ac4ba3ef39&end=56e28e904d6b3404abaaeb65d33636cc35ca3f4b&stat=instructions:u)

| (instructions:u)         | mean | range        | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary)    | 1.1% | [0.2%, 2.9%] | 11    |
| Regressions (secondary)  | 3.7% | [0.2%, 8.1%] | 11    |
| Improvements (primary)   | -    | -            | 0     |
| Improvements (secondary) | -    | -            | 0     |
| All  (primary)           | 1.1% | [0.2%, 2.9%] | 11    |
* Marked as triaged since this was identified as most likely being noise. 


#### Improvements

Use SipHash-1-3 instead of SipHash-2-4 for StableHasher [#107925](https://github.com/rust-lang/rust/pull/107925) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b2b676d886ded452125712a304c524c08360f916&end=2e486be8d29d198d48bc26bfce5712a4822814f5&stat=instructions:u)

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | -     | -               | 0     |
| Regressions (secondary)  | -     | -               | 0     |
| Improvements (primary)   | -2.3% | [-4.0%, -0.2%]  | 184   |
| Improvements (secondary) | -2.6% | [-32.1%, -0.2%] | 153   |
| All  (primary)           | -2.3% | [-4.0%, -0.2%]  | 184   |


resolve: Restore some effective visibility optimizations [#109437](https://github.com/rust-lang/rust/pull/109437) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2e486be8d29d198d48bc26bfce5712a4822814f5&end=2eaeb1eee1b21772de8b935236d16ff8e03fdcf5&stat=instructions:u)

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


Rollup of 6 pull requests [#110024](https://github.com/rust-lang/rust/pull/110024) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=28a29282f6dde2e4aba6e1e4cfea5c9430a00217&end=c934ce9e0a267340920a8bef96d7c59a46910c55&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) | -1.8% | [-2.1%, -1.5%] | 6     |
| All  (primary)           | -0.7% | [-0.7%, -0.6%] | 2     |


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

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -5.9% | [-8.4%, -3.0%] | 3     |
| Improvements (secondary) | -     | -              | 0     |
| All  (primary)           | -5.9% | [-8.4%, -3.0%] | 3     |


`rustc_metadata`: Filter encoded data more aggressively using DefKind [#109765](https://github.com/rust-lang/rust/pull/109765) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8e1162f07e8b7d59f6a0e0a5576352d888defa78&end=dfe024e1041d1cba1d3191024de3b7128c6734e6&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.7%  | [0.7%, 0.7%]   | 1     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -1.0% | [-1.8%, -0.2%] | 101   |
| Improvements (secondary) | -1.2% | [-3.6%, -0.1%] | 34    |
| All  (primary)           | -0.9% | [-1.8%, 0.7%]  | 102   |


Update cargo [#110198](https://github.com/rust-lang/rust/pull/110198) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=87a2408b06e7651f078a09f627940554da6137d5&end=9df3a39fb30575d808e70800f9fad5362aac57a2&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -1.1% | [-1.1%, -1.1%] | 1     |
| Improvements (secondary) | -     | -              | 0     |
| All  (primary)           | -1.1% | [-1.1%, -1.1%] | 1     |


resolve: Pre-compute non-reexport module children [#110160](https://github.com/rust-lang/rust/pull/110160) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=367661b1fc58239fa5df5f472ad2047f97dc5465&end=7a78c4ffd56f11d3a84c99a1cc737cf7bde2660d&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.8% | [-1.5%, -0.2%] | 26    |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1     |
| All  (primary)           | -0.8% | [-1.5%, -0.2%] | 26    |


Implement StableHasher::write_u128 via write_u64 [#110410](https://github.com/rust-lang/rust/pull/110410) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e279f902f31af1e111f2a951781c9eed82f8c360&end=386025117a6b7cd9e7f7c96946793db2ec8aa24c&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.7% | [-2.8%, -0.2%] | 13    |
| Improvements (secondary) | -1.9% | [-7.5%, -0.2%] | 24    |
| All  (primary)           | -0.7% | [-2.8%, -0.2%] | 13    |


#### Mixed

Check pattern refutability on THIR [#108504](https://github.com/rust-lang/rust/pull/108504) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ce3cb03927f711f653ae2937c10ba40a5ede62c7&end=0534655d9b5f61dbd75cf142ec8d2d3f68b550ee&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | 0.3%  | [0.3%, 0.3%]   | 3     |
| Improvements (primary)   | -0.4% | [-0.5%, -0.2%] | 4     |
| Improvements (secondary) | -3.0% | [-3.2%, -2.8%] | 6     |
| All  (primary)           | -0.4% | [-0.5%, -0.2%] | 4     |
* Marked as triaged since the improvements outweigh the regressions and the regressions are small and in secondary benchmarks.


Refactor unwind in MIR [#102906](https://github.com/rust-lang/rust/pull/102906) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b6f6104a1f62a0eec7d2e2ccdc07709fcc4c83f0&end=da140814682407ee326d36f5256bc883899a7388&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 1.1%  | [0.3%, 1.9%]   | 2     |
| Regressions (secondary)  | -     | -              | 0     |
| Improvements (primary)   | -0.4% | [-0.6%, -0.3%] | 10    |
| Improvements (secondary) | -0.6% | [-0.8%, -0.2%] | 8     |
| All  (primary)           | -0.2% | [-0.6%, 1.9%]  | 12    |
* Perf wins outweigh losses.


Make elaboration generic over input [#110031](https://github.com/rust-lang/rust/pull/110031) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d1be642ce3c24d1a0517c9bf91af926740618b01&end=f8ed97ecc11a7d8cd392607ed5a4f6592496c880&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | 2.0%  | [2.0%, 2.0%]   | 1     |
| Improvements (primary)   | -1.1% | [-2.0%, -0.4%] | 3     |
| Improvements (secondary) | -0.5% | [-0.5%, -0.5%] | 1     |
| All  (primary)           | -1.1% | [-2.0%, -0.4%] | 3     |
* Not enough perf changes here to be a problem.


Make elaboration generic over input [#109900](https://github.com/rust-lang/rust/pull/109900) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=825c70658e0190bccd93d477907b06e05ad9ccc3&end=67e273ba0e8d0bacc98905c0e536b249f53fc011&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.6%  | [0.3%, 1.0%]   | 8     |
| Regressions (secondary)  | 13.9% | [0.2%, 29.6%]  | 6     |
| Improvements (primary)   | -0.7% | [-1.5%, -0.3%] | 13    |
| Improvements (secondary) | -1.1% | [-1.8%, -0.1%] | 14    |
| All  (primary)           | -0.2% | [-1.5%, 1.0%]  | 21    |
* Not enough perf changes here to be a problem.


Permit MIR inlining without #[inline] [#109247](https://github.com/rust-lang/rust/pull/109247) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=23eb90ffa77943153d203c3d184c182490d758e7&end=5546cb64f6fbba70529582bbe58a40ba4a8ed9fc&stat=instructions:u)

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | 1.0%  | [0.2%, 25.6%]   | 135   |
| Regressions (secondary)  | 1.4%  | [0.2%, 8.8%]    | 97    |
| Improvements (primary)   | -1.8% | [-5.3%, -0.3%]  | 52    |
| Improvements (secondary) | -9.6% | [-43.2%, -1.2%] | 21    |
| All  (primary)           | 0.2%  | [-5.3%, 25.6%]  | 187   |
* perf may be worse than in the original perf run before merge. Of particular concern is that the cargo incr-patched: println test case has regressed significantly (42% increase in wall time). Pinged the author and reviewer about this.


Alloc hir::Lit in an arena to remove the destructor from Expr [#109588](https://github.com/rust-lang/rust/pull/109588) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5546cb64f6fbba70529582bbe58a40ba4a8ed9fc&end=53ac4f8e2fc15e49ef3a04f98622a9b9db755fd4&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 1.6%  | [0.7%, 2.7%]   | 4     |
| Regressions (secondary)  | 6.3%  | [5.0%, 8.1%]   | 6     |
| Improvements (primary)   | -0.5% | [-0.6%, -0.1%] | 3     |
| Improvements (secondary) | -0.6% | [-2.4%, -0.3%] | 21    |
| All  (primary)           | 0.7%  | [-0.6%, 2.7%]  | 7     |
* Does look like something has made keccak noisy again. The bump *starts* with this PR but I suppose that could be due to the the previous change kicking off some bimodal behaivor. 


Alloc hir::Lit in an arena to remove the destructor from Expr [#110440](https://github.com/rust-lang/rust/pull/110440) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=53ac4f8e2fc15e49ef3a04f98622a9b9db755fd4&end=bdb32bd4bbcabb0d32a04a0b45e6a8ceaa5e54d6&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.3%  | [0.2%, 0.3%]   | 3     |
| Regressions (secondary)  | 0.4%  | [0.2%, 1.1%]   | 9     |
| Improvements (primary)   | -0.8% | [-0.9%, -0.7%] | 4     |
| Improvements (secondary) | -     | -              | 0     |
| All  (primary)           | -0.3% | [-0.9%, 0.3%]  | 7     |


Remove some suspicious cast truncations [#110367](https://github.com/rust-lang/rust/pull/110367) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bdb32bd4bbcabb0d32a04a0b45e6a8ceaa5e54d6&end=e49122fb1ca87a6c3e3c22abb315fc75cfe8daed&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 0.4%  | [0.2%, 1.1%]   | 52    |
| Regressions (secondary)  | 0.5%  | [0.3%, 0.8%]   | 13    |
| Improvements (primary)   | -     | -              | 0     |
| Improvements (secondary) | -0.9% | [-1.5%, -0.2%] | 6     |
| All  (primary)           | 0.4%  | [0.2%, 1.1%]   | 52    |
* Looks like this was fixed in #110410 so marking as triaged


Rollup of 9 pull requests [#110458](https://github.com/rust-lang/rust/pull/110458) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e49122fb1ca87a6c3e3c22abb315fc75cfe8daed&end=31656e7295ebd5f2f6597f10c011e2ac4ba3ef39&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | -     | -              | 0     |
| Regressions (secondary)  | 1.2%  | [1.2%, 1.2%]   | 3     |
| Improvements (primary)   | -1.1% | [-2.9%, -0.3%] | 12    |
| Improvements (secondary) | -3.5% | [-7.7%, -0.2%] | 11    |
| All  (primary)           | -1.1% | [-2.9%, -0.3%] | 12    |
* Looks like this is all noise: keccak, cranelift-codegen and diesel have just started being noisy.


Rollup of 7 pull requests [#110481](https://github.com/rust-lang/rust/pull/110481) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=386025117a6b7cd9e7f7c96946793db2ec8aa24c&end=74864fa496997a6498e623f0d2019ccb7eb6dad0&stat=instructions:u)

| (instructions:u)         | mean  | range           | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary)    | -     | -               | 0     |
| Regressions (secondary)  | 0.5%  | [0.5%, 0.5%]    | 3     |
| Improvements (primary)   | -7.9% | [-19.2%, -0.6%] | 3     |
| Improvements (secondary) | -1.6% | [-1.8%, -1.3%]  | 2     |
| All  (primary)           | -7.9% | [-19.2%, -0.6%] | 3     |
* regression is noise


ci: add a runner for vanilla LLVM 16 [#110242](https://github.com/rust-lang/rust/pull/110242) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=74864fa496997a6498e623f0d2019ccb7eb6dad0&end=5fe3528be5ef12be3d12c7a9ee1b0bff9e3b35e4&stat=instructions:u)

| (instructions:u)         | mean  | range          | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary)    | 1.7%  | [0.8%, 2.8%]   | 4     |
| Regressions (secondary)  | 6.4%  | [5.2%, 8.0%]   | 6     |
| Improvements (primary)   | -0.2% | [-0.2%, -0.2%] | 1     |
| Improvements (secondary) | -0.6% | [-0.6%, -0.6%] | 3     |
| All  (primary)           | 1.3%  | [-0.2%, 2.8%]  | 5     |
* Noise

## Nominated Issues

[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- "Report all lints, even if other errors already occurred." [rust#108813](https://github.com/rust-lang/rust/pull/108813) 
  - @**Michael Goulet (compiler-errors)** asks if this needs an FCP ([comment](https://github.com/rust-lang/rust/pull/108813#issuecomment-1514073022)) before progressing?
- "Enable flatten-format-args by default." [rust#109999](https://github.com/rust-lang/rust/pull/109999) 
  - Nominated by @**Mara** - the intent (I infer) is to have T-compiler review the changes before merging
  - Perf. run regression was triaged

[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-llvm* by @**nagisa** and @**Nikita Popov**
- Types team by @**nikomatsakis** and @**Jack Huey**

Agenda draft: https://hackmd.io/Yzsoivx9RrCD-uf2o_LIIw
