---
tags: weekly, rustc
type: docs
note_id: b8aoULbjSOiPk2z64V-ncA
---
# T-compiler Meeting Agenda 2024-07-04
## Announcements
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along).
### Other WG meetings
- Types Team: ITE (Impl Trait Everywhere) Triage <time:2024-07-04T22:00:00+01:00>
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- "Add `-Z embed-source` (DWARFv5 source code embedding extension)" [compiler-team#764](https://github.com/rust-lang/compiler-team/issues/764) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60-C.20embed-source.60.20.28DWARFv5.20source.20cod.E2.80.A6.20compiler-team.23764))
- 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)
- "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 5 months ago)
- concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318)
- "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: 5 months ago)
- "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: 2 months ago)
- "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 48 days ago)
- Pending FCP requests (check your boxes!)
- merge: [Disallow setting some built-in cfg via set the command-line (rust#126158)](https://github.com/rust-lang/rust/pull/126158#issuecomment--2098595599)
- @_**|119009** @_**|116083** @_**|125250** @_**|116107** @_**|119031** @_**|124287** @_**|116118** @_**|232957**
- no pending concerns
- merge: [Remove the `missing_copy_implementations` lint. (rust#126293)](https://github.com/rust-lang/rust/pull/126293#issuecomment--2132638472)
- @_**|119009** @_**|125250** @_**|426609** @_**|123856** @_**|116118**
- no pending concerns
- Things in FCP (make sure you're good with it)
- "Promote wasm32-wasip2 to a Tier 2 target" [compiler-team#760](https://github.com/rust-lang/compiler-team/issues/760) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20wasm32-wasip2.20to.20a.20Tier.202.20target.20compiler-team.23760))
- "Remove `Nonterminal` and `TokenKind::Interpolated`" [compiler-team#763](https://github.com/rust-lang/compiler-team/issues/763) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60Nonterminal.60.20and.20.60TokenKind.3A.3AInte.E2.80.A6.20compiler-team.23763))
- "MCP: Alternate cargo freshness algorithm, unstable flag to annotate depinfo file with checksums and file sizes" [compiler-team#765](https://github.com/rust-lang/compiler-team/issues/765) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/MCP.3A.20Alternate.20cargo.20freshness.20algorithm.3A.E2.80.A6.20compiler-team.23765))
- Accepted MCPs
- "Promote riscv64gc-unknown-linux-musl to tier 2" [compiler-team#728](https://github.com/rust-lang/compiler-team/issues/728) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20riscv64gc-unknown-linux-gnu.20to.20ti.E2.80.A6.20compiler-team.23728))
- "Fully rustfmt `use` declarations" [compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23750))
- "Remove `src/tools/rust-demangler`" [compiler-team#754](https://github.com/rust-lang/compiler-team/issues/754) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60src.2Ftools.2Frust-demangler.60.20compiler-team.23754))
- "Extract rustc stable hasher into it's own crate" [compiler-team#755](https://github.com/rust-lang/compiler-team/issues/755) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Extract.20rustc.20stable.20hasher.20into.20it.27s.20own.E2.80.A6.20compiler-team.23755))
- "Contracts: Experimental attributes and language intrinsics" [compiler-team#759](https://github.com/rust-lang/compiler-team/issues/759) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Contracts.3A.20Experimental.20attributes.20and.20la.E2.80.A6.20compiler-team.23759))
- "Promote Mac Catalyst targets to Tier 2" [compiler-team#761](https://github.com/rust-lang/compiler-team/issues/761) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20Mac.20Catalyst.20targets.20to.20Tier.202.20compiler-team.23761))
- "Change `-Z asm_comments` to `-Z verbose_asm`, stop stripping handwritten assembly comments" [compiler-team#762](https://github.com/rust-lang/compiler-team/issues/762) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Change.20.60-Z.20asm_comments.60.20to.20.60-Z.20verbose_a.E2.80.A6.20compiler-team.23762))
- MCPs blocked on unresolved concerns
- merge: [Add a new `--build-id` flag to rustc (compiler-team#635)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1777545767)
- @_**|125250** @_**|116107** @_**|125294** @_**|123856**
- concerns: [other-existing-options (by petrochenkov)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) [option-name (by wesleywiser)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936)
- "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649))
- concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660)
- merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442)
- @_**|119009** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118**
- concerns: [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005)
- merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317)
- @_**|119009** @_**|124287**
- concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment--2102637174)
- merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548)
- @_**|119009** @_**|125250** @_**|232957**
- concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172)
- Finalized FCPs (disposition merge)
- "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752)
- "Check alias args for WF even if they have escaping bound vars" [rust#123737](https://github.com/rust-lang/rust/pull/123737)
- "allow overwriting the output of `rustc --version`" [rust#124339](https://github.com/rust-lang/rust/pull/124339)
- "Re-implement a type-size based limit" [rust#125507](https://github.com/rust-lang/rust/pull/125507)
- "Allow constraining opaque types during various unsizing casts" [rust#125610](https://github.com/rust-lang/rust/pull/125610)
- "Remove the `box_pointers` lint." [rust#126018](https://github.com/rust-lang/rust/pull/126018)
- Other teams finalized FCPs
- "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752)
- "`#![crate_name = EXPR]` semantically allows `EXPR` to be a macro call but otherwise mostly ignores it" [rust#122001](https://github.com/rust-lang/rust/issues/122001)
- "Check alias args for WF even if they have escaping bound vars" [rust#123737](https://github.com/rust-lang/rust/pull/123737)
- "Re-implement a type-size based limit" [rust#125507](https://github.com/rust-lang/rust/pull/125507)
- "Allow constraining opaque types during various unsizing casts" [rust#125610](https://github.com/rust-lang/rust/pull/125610)
- "Syntax for precise capturing: `impl Trait + use<..>`" [rust#125836](https://github.com/rust-lang/rust/issues/125836)
- "Add nightly style guide section for `precise_capturing` `use<>` syntax" [rust#126753](https://github.com/rust-lang/rust/pull/126753)
### WG checkins
None
## Backport nominations
[T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler)
- :beta: "Switch back `non_local_definitions` lint to allow-by-default" [rust#127015](https://github.com/rust-lang/rust/pull/127015)
- Authored by Urgau
- This PR switch back (again) the `non_local_definitions` lint to allow-by-default
- Lint was fired a bit too happily ([#126768](https://github.com/rust-lang/rust/issues/126768#issue-2365449221))
- as per [comment](https://github.com/rust-lang/rust/pull/127015#issuecomment-2194029302):
> it was put back to allow-by-default in #125183 for 1.79, but left as warn-by-default in 1.80, this PR would make it allow in 1.81 and the backport would make it allow in 1.80
<!--
/poll Approve beta backport of #127015?
approve
don't know
-->
- :beta: "Use the aligned size for alloca at args/ret when the pass mode is cast" [rust#127168](https://github.com/rust-lang/rust/pull/127168)
- Authored by DianQK
- Fixes #75839 (and its duplicate #121028), unsoundness caused by LLVM not accessing aligned sizes for `load` and `store` ([comment](https://github.com/rust-lang/rust/pull/127168#issue-2382266395))
<!--
/poll Approve beta backport of #127168?
approve
don't know
-->
- :beta: "Update LLVM submodule" [rust#127190](https://github.com/rust-lang/rust/pull/127190)
- Authored by DianQK
- Fixes #112548 (P-high miscompilation on `aarch64-apple-darwin`). Unlock work on #125642
- LLVM commits [at this link](https://github.com/rust-lang/llvm-project/compare/5a5152f653959d14d68613a3a8a033fb65eec021...e6a6470d1eb4c88fee4b1ea98cd8e0ac4a181c16)
<!--
/poll Approve beta backport of #127190?
approve
don't know
-->
- No stable nominations for `T-compiler` this time.
[T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types)
- :beta: "Stall computing instance for drop shim until it has no unsubstituted const params" [rust#127068](https://github.com/rust-lang/rust/pull/127068)
- Authored by compiler-errors
- Fixes #127030: report of a broken compilation of a crate
<!--
/poll Approve beta backport of #127068?
approve
don't know
-->
- No stable nominations for `T-types` this time.
## 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)
## Issues of Note
### Short Summary
- [1 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)
- [68 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
- [37 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [1 P-critical, 1 P-high, 2 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, 5 P-medium, 2 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, 100 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)
- "nightly ICE when building flexstr in release mode" [rust#127030](https://github.com/rust-lang/rust/issues/127030)
- Fixed by [rust#127068](https://github.com/rust-lang/rust/pull/127068) (beta backport requested)
[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types)
- "nightly ICE when building flexstr in release mode" [rust#127030](https://github.com/rust-lang/rust/issues/127030)
- Fixed by [rust#127068](https://github.com/rust-lang/rust/pull/127068) (beta backport requested)
### 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)
- "`safe` keyword is not feature-gated" [rust#126755](https://github.com/rust-lang/rust/issues/126755)
- Mitigated by #126757, makes the `safe` keyword usable in beta again
[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+)
- "regression: trait bound not satisfied" [rust#125194](https://github.com/rust-lang/rust/issues/125194)
- @_**lcnr** is working on it (comment on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-06-27/near/448605731))
## Performance logs
> [triage logs for 2024-07-02](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-07-02.md)
We saw a large set of primary benchmarks regress, mostly due to PR
#120924 (`lint_reasons` and `#[expect]`) and PR #120639 (new effects
desugaring). Separate from those, there are a couple rollup PRs
(#127076, #127096) with some regressions that were limited to
relatively few benchmarks; pnkfelix was unable to isolate a injecting
PR that can be identified as a root cause (outside assistance
welcome!).
Triage done by **@pnkfelix**.
Revision range: [c3d7fb39..cf2df68d](https://perf.rust-lang.org/?start=c3d7fb398569407350abe044e786bc7890c90397&end=cf2df68d1f5e56803c97d91e2b1a9f1c9923c533&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.0% | [0.2%, 2.8%] | 109 |
| Regressions (secondary) | 1.4% | [0.3%, 8.0%] | 50 |
| Improvements (primary) | -1.3% | [-4.3%, -0.2%] | 41 |
| Improvements (secondary) | -1.3% | [-4.4%, -0.2%] | 75 |
| All (primary) | 0.4% | [-4.3%, 2.8%] | 150 |
4 Regressions, 3 Improvements, 11 Mixed; 7 of them in rollups
59 artifact comparisons made in total
30 Untriaged Pull Requests
#### Regressions
Rollup of 7 pull requests [#126951](https://github.com/rust-lang/rust/pull/126951) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fda509e817abeeecb5b76bc1de844f355675c81e&end=31f8b70d2e18a0339c034e44c52aa3791c29f53c&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.5% | [0.5%, 0.6%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.5% | [0.5%, 0.6%] | 3 |
* regressions are all to serde incr-patched:println {check, debug, opt}.
* on its own, the regression is limited to instruction counts, and seems minor enough to not warrant deeper investigation.
* (the 30-day history tells a slightly more complex story, though)
* marked as triaged
Let's `#[expect]` some lints: Stabilize `lint_reasons` (RFC 2383) [#120924](https://github.com/rust-lang/rust/pull/120924) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7c59370cea68cd17006ec3440a43254fd0eda7d&end=4bc39f028d14c24b04dd17dc425432c6ec354536&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.6% | [0.2%, 1.9%] | 142 |
| Regressions (secondary) | 0.6% | [0.1%, 1.5%] | 79 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.6% | [0.2%, 1.9%] | 142 |
* wide collection of regressions.
* PR discussion indicates regression may be inherent to how `#[expect]` is implemented; it is also hypothesized to be "likely" that the implementation can be better optimized.
* not marking as triaged.
* (my hope is that someone will look into the "further optimizations" that xFrednet [alludes to above](https://github.com/rust-lang/rust/pull/120924#issuecomment-2202486203), and after we've done a reasonable amount of investigation there, then we can mark this as triaged.)
Update browser-ui-test version to `0.18.0` [#127010](https://github.com/rust-lang/rust/pull/127010) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9c3bc805dd9cb84019c124b9a50fdff1e62a7ec9&end=42add88d2275b95c98e512ab680436ede691e853&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 7.2% | [7.2%, 7.2%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | - | - | 0 |
* already marked as triaged (secondary benchmark deep-vector is being noisy at the moment).
Implement new effects desugaring [#120639](https://github.com/rust-lang/rust/pull/120639) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d1b7355d3d7b4ead564dbecb1d240fcc74fff21b&end=ba1d7f4a083e6402679105115ded645512a7aea8&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.6%] | 72 |
| Regressions (secondary) | 0.4% | [0.1%, 0.9%] | 24 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.6%] | 72 |
* Biggest (>=0.4%) primary regressions: regex, bitmaps, typenum, stm32f4, exa. (19 variants of those five benchmarks.)
* the PR author (fee1-dead) has made a couple follow-up attempts to address the regressions, but nothing has hit yet.
* not marking as triaged, in order to encourage addressing the regressions. (note however: the cycles:u metric didn't regress, at least not past our noise-filtering significance threshold. Nor did task-clock:u. It is not totally clear how much effort is warranted here, apart from a desire to keep the instruction count low just because that is our most stable proxy for "computational effort")
#### Improvements
Save 2 pointers in `TerminatorKind` (96 → 80 bytes) [#126784](https://github.com/rust-lang/rust/pull/126784) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5a3e2a4e921097c8f2bf6ea7565f8abe878cdbd4&end=d8d5732456d375f7c4bdc2f6ad771989a5e0ae02&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.5%, -0.2%] | 9 |
| Improvements (secondary) | -0.1% | [-0.1%, -0.1%] | 4 |
| All (primary) | -0.4% | [-0.5%, -0.2%] | 9 |
* improvements are to serde and diesel.
* skimming 30 day history indicates that the effect is real, though may have been somewhat undone by subsequent changes.
rustdoc: use current stage if download-rustc enabled [#126728](https://github.com/rust-lang/rust/pull/126728) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=127fa2261b730a42e6d98b7927c3888ecd08f3e0&end=a4ce33c0b232deda1cbce447e80f187cd34952a6&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -8.0% | [-8.0%, -8.0%] | 1 |
| All (primary) | - | - | 0 |
* (this was just deep-vector noise)
Rollup of 9 pull requests [#127174](https://github.com/rust-lang/rust/pull/127174) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ef3d6fd7002500af0a985f70d3ac5152623c1396&end=6868c831a1eb45c5150ff623cef5e42a8b8946d0&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | -0.4% | [-1.1%, -0.2%] | 46 |
| Improvements (secondary) | -1.3% | [-2.9%, -0.2%] | 36 |
| All (primary) | -0.4% | [-1.1%, -0.2%] | 46 |
* this had broad improvements to instruction counts, but the cycle counts metric reports that there were 13 regressions (one of which, unicode-normalization, was primary) here with only one improvement (none of which was primary).
* nonetheless, not worth investigating further.
#### Mixed
Rollup of 9 pull requests [#126878](https://github.com/rust-lang/rust/pull/126878) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=33422e72c8a66bdb5ee21246a948a1a02ca91674&end=bcf94dec5ba6838e435902120c0384c360126a26&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.4% | [0.3%, 0.5%] | 6 |
| Improvements (primary) | -0.4% | [-0.5%, -0.3%] | 4 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
| All (primary) | -0.4% | [-0.5%, -0.3%] | 4 |
* regressions are all to secondary benchmark: coercions.
* marking as triaged
Add `SliceLike` to `rustc_type_ir`, use it in the generic solver code (+ some other changes) [#126813](https://github.com/rust-lang/rust/pull/126813) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6b0f4b5ec3aa707ecaa78230722117324a4ce23c&end=5b270e1198e911247244b035a6f06ce3af0a4420&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.5% | [0.4%, 0.8%] | 7 |
| Improvements (primary) | -0.4% | [-0.6%, -0.3%] | 12 |
| Improvements (secondary) | -0.7% | [-2.2%, -0.2%] | 9 |
| All (primary) | -0.4% | [-0.6%, -0.3%] | 12 |
* regressions are all to secondary benchmark: match-stress
* marking as triaged
Also get `add nuw` from `uN::checked_add` [#126852](https://github.com/rust-lang/rust/pull/126852) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5b270e1198e911247244b035a6f06ce3af0a4420&end=fc555cd832ee743ff5410c35de2b0dd59ec4322e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.6% | [0.3%, 0.9%] | 4 |
| Regressions (secondary) | 0.4% | [0.3%, 0.4%] | 2 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
| Improvements (secondary) | -1.3% | [-1.4%, -0.9%] | 7 |
| All (primary) | 0.4% | [-0.3%, 0.9%] | 5 |
* PR was analyzed and thought to be a net win, despite the anticipated regression to compiler instruction-counts
* but there was a bystander follow-up comment that the result here might be a pessimization, at least for Intel x86.
* not marking as triaged, in hopes that follow-up comment gets addressed in some manner.
ast: Standardize visiting order for attributes and node IDs [#125741](https://github.com/rust-lang/rust/pull/125741) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c2d2bb38c9067d983d13505c47e761308b1694db&end=d929a42a664c026167800801b26d734db925314f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.2%, 0.3%] | 3 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 12 |
| All (primary) | - | - | 0 |
* solely regressions to secondary benchmark: tt-muncher.
* marking as triaged
Rollup of 8 pull requests [#126965](https://github.com/rust-lang/rust/pull/126965) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c290e9de32e8ba6a673ef125fde40eadd395d170&end=fda509e817abeeecb5b76bc1de844f355675c81e&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 3.3% | [1.7%, 5.8%] | 9 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -3.0% | [-5.7%, -0.3%] | 2 |
| All (primary) | - | - | 0 |
* solely regressions to secondary benchmark: derive
* marking as triaged
Remove more `PtrToPtr` casts in GVN [#126844](https://github.com/rust-lang/rust/pull/126844) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4bdf8d2d5877f20b54c1506a607ad8c4744cc387&end=d7c59370cea68cd17006ec3440a43254fd0eda7d&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.3% | [0.3%, 2.9%] | 4 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.7% | [-1.1%, -0.4%] | 2 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
| All (primary) | 0.6% | [-1.1%, 2.9%] | 6 |
* Main primary regressions to opt-full benchmarks ripgrep (2.89%), webrender (1.11%), html5ever (0.70%).
* Some interesting discussion on the PR about the cause; e.g. are PR's like this causing individual MIR reduction that leads to more inlining and then more bloat overall?
* but I do not think any of that would cause us to undo this particular change; there are higher level inlining and code-generation policies that need to be revisited.
* marking as triaged.
Rollup of 6 pull requests [#127014](https://github.com/rust-lang/rust/pull/127014) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=536235f07e57c9108c6c3b1eacb323164e0f4cfb&end=127fa2261b730a42e6d98b7927c3888ecd08f3e0&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 8.2% | [8.2%, 8.2%] | 1 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | -2.2% | [-5.0%, -0.2%] | 13 |
| All (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
* already marked as triaged (sole regressionw as to noisy deep-vector)
Rollup of 6 pull requests [#127076](https://github.com/rust-lang/rust/pull/127076) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=42add88d2275b95c98e512ab680436ede691e853&end=99f77a2eda555b50b518f74823ab636a20efb87f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.4% | [0.6%, 2.1%] | 2 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -1.8% | [-2.7%, -0.8%] | 2 |
| Improvements (secondary) | -0.7% | [-6.2%, -0.2%] | 17 |
| All (primary) | -0.2% | [-2.7%, 2.1%] | 4 |
* regressions are to opt-full: image (2.11%) and cargo (0.61%).
* eyeballing the self-profile results provides a hint that we might be spending more time in LLVM optimizations passes after this rollup PR landed.
* fired off some follow-up rust-timer builds on a couple potential culprits, but I admit that I'm only making semi-educated guesses. (outcome: It wasn't PR #124741 nor PR #126970)
* not marking as triaged, but if no one can identify a root cause within a week, then we should just mark it so at that point.
Rollup of 11 pull requests [#127096](https://github.com/rust-lang/rust/pull/127096) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9ed2ab3790ff41bf741dd690befd6a1c1e2b23ca&end=d38cd229b75a7a608e4971c46d1fb5a99343e430&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.5% | [0.3%, 0.7%] | 7 |
| Regressions (secondary) | 1.1% | [0.2%, 1.6%] | 7 |
| Improvements (primary) | -3.4% | [-6.2%, -1.2%] | 12 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -1.9% | [-6.2%, 0.7%] | 19 |
* all 7 primary regressions are variants of syn; all but one are incremental.
* skimming the detailed results reports for the top three regressing variants, I see the following queries at the top of the ordering by time-delta: incr_comp_persist_dep_graph, hir_crate, codegen_copy_artifacts_from_incr_cache, early_lint_checks...
* what in this rollup would have impacted those incremental-compilation related queries?
* PR #1270668 already had its own dedicated rustc-perf run.
* (is this potentially just fallout noise from internal API changes like that in PR #127071?)
* fired off a rust-timer build against that, just to scratch that itch.
* not marking as triaged, but if no one can identify a root cause within a week, then we should just mark it so at that point.
Automatically taint InferCtxt when errors are emitted [#126996](https://github.com/rust-lang/rust/pull/126996) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f92a6c41e644d6222be77b20396daec5e77661f3&end=7b21c18fe4de32a7d2faa468e6ef69abff013f85&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.5% | [0.4%, 0.9%] | 7 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
* all regressions are to secondary match-stress benchmark, and were anticipated during a perf run during review
* marking as triaged.
Avoid MIR bloat in inlining [#127113](https://github.com/rust-lang/rust/pull/127113) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c3774be7411722d3695de2ab1da9a358d0d5c82c&end=221e2741c39515a5de6da42d8c76ee1e132c2c74&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.1% | [0.3%, 2.8%] | 6 |
| Regressions (secondary) | 1.6% | [1.5%, 1.9%] | 6 |
| Improvements (primary) | -0.8% | [-2.2%, -0.2%] | 17 |
| Improvements (secondary) | -1.6% | [-4.5%, -0.2%] | 18 |
| All (primary) | -0.3% | [-2.2%, 2.8%] | 23 |
* regressed opt-full html5ever, diesel, hyper, and clap. Also regressed ripgrep and regex in two isolated opt incremental scenarios.
* overall gains more than it loses, as [noted after the perf run](https://github.com/rust-lang/rust/pull/127113#issuecomment-2198433788) done during PR development.
* the big impact was to binary sizes, where the improvement is pretty clear.
* marking as triaged.
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- "Update bundled musl to 1.2.5" [rust#125692](https://github.com/rust-lang/rust/pull/125692)
- Nominated as it could unblock some work on rust-cross (see [comment on PR](https://github.com/rust-lang/rust/pull/125692#issuecomment-2206027977))
- musl [release notes](https://musl.libc.org/releases.html)
[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated RFCs this time.
### 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)
- "Remove unnecessary impl sorting in queries and metadata" [rust#120812](https://github.com/rust-lang/rust/pull/120812)
- cc: @**cjgillot**
- "Stop using LLVM struct types for array/pointer offset GEPs" [rust#122325](https://github.com/rust-lang/rust/pull/122325)
- cc: @**Nikita Popov** (author replied to your comment)
- "Issue 83060 fix" [rust#119798](https://github.com/rust-lang/rust/pull/119798)
- cc @**Wesley Wiser** (author asks a question)
- "DependencyList: removed outdated comment" [rust#124290](https://github.com/rust-lang/rust/pull/124290)
- This seems a small change: any taker for a review? :-)
- "size_of_val_raw: for length 0 this is safe to call" [rust#126152](https://github.com/rust-lang/rust/pull/126152) (last review activity: about 24 days ago)
- cc: @**Michael Goulet (compiler-errors)**
- "Silence errors in expressions caused by bare traits in paths in 2021 edition" [rust#125784](https://github.com/rust-lang/rust/pull/125784) (last review activity: about 26 days ago)
- cc: @**León Orell Liehr (fmease)** (unsure if your review is complete)
## Next week's WG checkins
None
Next meetings' agenda draft: [hackmd link](https://hackmd.io/eQkxivnwRCuEACPKwn7T3A)