owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
---
# T-compiler Meeting Agenda 2023-05-04
## Announcements
- [Compiler Team Planning meeting](https://www.google.com/calendar/event?eid=MDJyYnJ1cGFtdWR1c2lnNjFmcHJ2b3JlODFfMjAyMzA1MDVUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-05T10:00:00-04:00>
- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA1MDhUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-08T10:00:00-04:00>
- 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=MXJnbzBscDExNHJjNmVsdGhsaW8xcDljMmdfMjAyMzA1MDhUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-08T11:00:00-04:00>
- [wg-rls-2.0 steering meeting](https://www.google.com/calendar/event?eid=N2NxOWxzYWYxb3NicWNzbGsxYzdxcG9ydTJfMjAyMzA1MDhUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-08T11:00:00-04:00>
- [Async WG triage meeting](https://www.google.com/calendar/event?eid=cXZ1NGZncDF1dXA1NnVnMnA1M2Mzb2lvdWVfMjAyMzA1MDhUMTUzMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-05-08T11: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)
- 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)
- "Add New Values To MIPS_ALLOWED_FEATURES" [compiler-team#595](https://github.com/rust-lang/compiler-team/issues/595) (last review activity: about 41 days ago)
- "Take MIR `Analysis` by `&mut`" [compiler-team#598](https://github.com/rust-lang/compiler-team/issues/598) (last review activity: about 41 days ago)
- "-C linker-flavor=clang" [compiler-team#601](https://github.com/rust-lang/compiler-team/issues/601) (last review activity: about 41 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 13 days ago)
- "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610) (last review activity: about 20 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 13 days ago)
- "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: about 20 days ago)
- "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: about 13 days ago)
- Pending FCP requests (check your boxes!)
- "expand: Change how `#![cfg(FALSE)]` behaves on crate root" [rust#110141](https://github.com/rust-lang/rust/pull/110141#issuecomment-1531951914)
- "[mir-opt] SimplifyLocals should also clean up debuginfo" [rust#110702](https://github.com/rust-lang/rust/pull/110702#issuecomment-1528821029)
- Things in FCP (make sure you're good with it)
- "Stable -C binary-dep-depinfo flag" [compiler-team#604](https://github.com/rust-lang/compiler-team/issues/604)
- "Add a new `--crate-version` flag to rustc" [compiler-team#622](https://github.com/rust-lang/compiler-team/issues/622)
- "Stronger typing for `DefId`s" [compiler-team#623](https://github.com/rust-lang/compiler-team/issues/623)
- "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625)
- "Remove misleading target feature aliases" [rust#107707](https://github.com/rust-lang/rust/pull/107707)
- 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)
- 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)
- "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)
- "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
- @_*WG-rls2.0* by @**Lukas Wirth** ([previous checkin](https://hackmd.io/DzXUoPG6T-S5NfXcl8h1yg#WG-checkins)):
> r-a now loads proc-macros from the sysroot for rustc_private crates (so `sym` things resolve for clippy now 🎉). More mir goodies landed allowing us to calculate closure captures which we can now show on hover. The remaining proc-macro abis were dropped, so now r-a only has proc-macro support on 1.64 and beyond (where the sysroot ships a proc-macro server).
- @_*WG-self-profile* by @**mw** and @**Wesley Wiser** ([previous checkin](https://hackmd.io/DzXUoPG6T-S5NfXcl8h1yg#WG-checkins)):
> Nothing to report at this time.
## 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: "only error combining +whole-archive and +bundle for rlibs" [rust#110917](https://github.com/rust-lang/rust/pull/110917)
- nominated by @**Vadim Petrochenkov**, fixes regression happened in [rust#105601](https://github.com/rust-lang/rust/pull/105601)
<!--
/poll Approve beta backport of #110917?
approve
decline
don't know
-->
- [1.70.0] :beta: "Remove wrong assertion in match checking." [rust#111015](https://github.com/rust-lang/rust/pull/111015)
- Fixes [rust#108504](https://github.com/rust-lang/rust/pull/108504), a perf. regression reported two months ago, reported to affect at least one crate ([comments](https://github.com/rust-lang/rust/pull/111015#issuecomment-1529087457))
- compiler-errors note: not a perf regression, an ICE. See attached UI test in the PR.
<!--
/poll Approve beta backport of #111015?
approve
decline
don't know
-->
- [1.69.1] :stable: "only error combining +whole-archive and +bundle for rlibs" [rust#110917](https://github.com/rust-lang/rust/pull/110917)
- (also beta backport nomination)
<!--
/poll Approve stable backport of #110917?
approve
approve but does not justify new dot release
decline
don't know
-->
[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)
- "Avoid alignment mismatch between ABI and layout for unions." [rust#104872](https://github.com/rust-lang/rust/pull/104872) (last review activity: about 47 days ago)
- cc: @**eddyb**
- "Add note for identifier following by array literal error" [rust#108222](https://github.com/rust-lang/rust/pull/108222) (last review activity: about 41 days ago)
- cc: @**pnkfelix**
- btw do we want to land this? See [prev. review from Michael](https://github.com/rust-lang/rust/pull/108222#pullrequestreview-1304663556)
- "Fix issue of missing sign in binary_float_op when result of rem is zero" [rust#109573](https://github.com/rust-lang/rust/pull/109573) (last review activity: about 38 days ago)
- PR author mentions that it is blocked by [rust#96784](https://github.com/rust-lang/rust/pull/96784)
- cc: @**Wesley Wiser** who mentioned to switch over to eddyb's more appropriately licensed fork of rustc_apfloat ([comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-04-13/near/349132191))
- "Support embedding LLVM bitcode on AIX" [rust#109524](https://github.com/rust-lang/rust/pull/109524) (last review activity: about 34 days ago)
- cc @**nagisa**
- "Fixes LTO + build-std + Oz failed to resolve undefined symbols" [rust#109821](https://github.com/rust-lang/rust/pull/109821)
- @**bjorn3** do you want to take the review on you (since contributed to the discussion)? Or reroll assignment?
## 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)
- [61 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, 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, 0 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, 35 P-high, 95 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)
- 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)
- has been discussed in two triage meetings ([#1](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-04-20/near/351345957) and [#2](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-04-27/near/353335702))
- last summary from past meeting: we'll need to circle back on the question when a problem with a lint like this is a bug vs when it is just QoL improvement
- worth instancing a dedicated meeting?
[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 2023-05-02](https://github.com/rust-lang/rustc-perf/blob/376f652558e1e08971dcb3e8656889810565541e/triage/2023-05-02.md)
This week the good outweighed the bad. In particular, we had three different PRs
that made improvements to a wide range of benchmarks. Special call out to PR
[#111026](https://github.com/rust-lang/rust/pull/111026),
which yielded 3% to 8% improvement for incremental compile times on a large set
of benchmarks, by avoiding unnecessary caching in the type checker.
Triage done by **@pnkfelix**.
Revision range: [fdeef3ed..a368898d](https://perf.rust-lang.org/?start=fdeef3ed1809aa9bd4ea9ff0fad92010c6de669c&end=a368898de758e1b8def6c9060044a5b40eb79e84&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | 0.5% | [0.2%, 0.9%] | 30 |
| Regressions (secondary) | 0.7% | [0.4%, 1.1%] | 12 |
| Improvements (primary) | -1.6% | [-8.8%, -0.3%] | 115 |
| Improvements (secondary) | -1.5% | [-10.3%, -0.2%] | 92 |
| All (primary) | -1.1% | [-8.8%, 0.9%] | 145 |
4 Regressions, 6 Improvements, 7 Mixed; 6 of them in rollups
30 Untriaged Pull Requests
56 artifact comparisons made in total
#### Regressions
Add loongarch64 asm! support [#101069](https://github.com/rust-lang/rust/pull/101069) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=91b61a4ad618c1abc2af43a58695de185ef1e513&end=999e6e5afb71d0fa6b5f67440278129aca12c67d&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 2.2% | [1.1%, 2.9%] | 3 |
| Regressions (secondary) | 4.9% | [0.3%, 8.2%] | 8 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 2.2% | [1.1%, 2.9%] | 3 |
* primary regressions are all in cranelift-codegen; secondary are in keccak and externs.
* already triaged.
Do not bother optimizing impossible functions. [#110728](https://github.com/rust-lang/rust/pull/110728) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e3ccd4b9a51ded19bf1c3f6c647c96b6dd52eced&end=8b8110e1469d459a196f6feb60d82dec48c3cfc2&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.4% | [0.4%, 0.5%] | 3 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 8 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.4%, 0.5%] | 3 |
* Seems like it didn't have the expected positive impact
* primary regressions are to libc; most of secondary are to variants many-assoc-items (plus some check incr-unchanged on three other secondaries).
* in any case, the measured impact looks negligible to me.
* marked as triaged
Rollup of 7 pull requests [#110896](https://github.com/rust-lang/rust/pull/110896) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6ce22733b973355573efd1e6294e585460e90e17&end=901fdb3b04375e3456b5cf771f86ecca8d6c1917&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 2 |
| Regressions (secondary) | 1.1% | [0.2%, 2.4%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
| All (primary) | 0.4% | [0.4%, 0.4%] | 2 |
* primary regressions are to doc for syn and webrender. secondary that regressed by 2.4% was incr-unchanged for wg-grammar benchmarks.
* marking as triaged.
Rollup of 6 pull requests [#110924](https://github.com/rust-lang/rust/pull/110924) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=033aa092ab23ba14cdad27073c5e37ba0eddb428&end=2fce2290865f012391b8f3e581c3852a248031fa&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.6% | [0.4%, 0.7%] | 7 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.6% | [0.4%, 0.7%] | 7 |
* primary regressions are to debug profiles for serde_derive, hyper (plus noise from clap and cargo).
* we've recovered the loss on serde_derive since this commit landed, but not on hyper.
* from reviewing the PRs in the rollup, it does not seem like there's any real culprit here.
* marking as triaged.
#### Improvements
Allow older LLVM versions to have missing components [#110232](https://github.com/rust-lang/rust/pull/110232) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fdeef3ed1809aa9bd4ea9ff0fad92010c6de669c&end=f6830a212973ced91a047cee86cb79cee4f23868&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -1.7% | [-2.8%, -0.7%] | 4 |
| Improvements (secondary) | -6.0% | [-7.5%, -4.9%] | 6 |
| All (primary) | -1.7% | [-2.8%, -0.7%] | 4 |
* I don't understand why this had any impact at all, albeit positive. It looks like just some environment variable settings in the Dockerfiles.
Rewrite MemDecoder around pointers not a slice [#110634](https://github.com/rust-lang/rust/pull/110634) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=84d4f16728ed2e5a90c800d6d84225be3ca7c3c8&end=adaac6b166df57ea5a20d56e4cce503b55aca927&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-0.7%, -0.3%] | 52 |
| Improvements (secondary) | -0.5% | [-0.8%, -0.3%] | 16 |
| All (primary) | -0.4% | [-0.7%, 0.4%] | 53 |
* a broad collection of small improvements, nice!
Rollup of 10 pull requests [#110852](https://github.com/rust-lang/rust/pull/110852) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9c044d77a334609513f3b615e0763a40cc02424d&end=1c42cb4ef0544fbfaa500216e53382d6b079c001&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.5%, -0.4%] | 4 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
| All (primary) | -0.4% | [-0.5%, -0.4%] | 4 |
Remove `QueryEngine` trait [#109611](https://github.com/rust-lang/rust/pull/109611) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=87b1f891ea76713462cfc5a15137a8fe2b24ecc2&end=f5adff6bd8b29ac7dd173b36f0c8c35bb1c593c5&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 3 |
| Improvements (primary) | -0.6% | [-0.8%, -0.2%] | 84 |
| Improvements (secondary) | -0.8% | [-1.5%, -0.4%] | 32 |
| All (primary) | -0.6% | [-0.8%, -0.2%] | 84 |
* another broad collection of small improvements, good to see!
Only cache typeck results if it's the typeck root [#111026](https://github.com/rust-lang/rust/pull/111026) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2034b6d23ca18311a23273f2f08c381a04fa05d9&end=4b87ed9d0f18166a26aadb5289bac004e058b90f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -1.8% | [-7.9%, -0.4%] | 62 |
| Improvements (secondary) | -4.6% | [-11.5%, -1.0%] | 12 |
| All (primary) | -1.8% | [-7.9%, -0.4%] | 62 |
* nice work! (sizeable, 3% to 8% improvement on a number of benchmarks for incr runs)
Make some simple queries no longer cache on disk [#111028](https://github.com/rust-lang/rust/pull/111028) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9d795a6e6e19d56b235d1dbd4f5941404cf5918c&end=a368898de758e1b8def6c9060044a5b40eb79e84&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.4%, -0.3%] | 17 |
| Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 9 |
| All (primary) | -0.3% | [-0.4%, -0.3%] | 17 |
#### Mixed
Use MIR's `Offset` for pointer `add` too [#110837](https://github.com/rust-lang/rust/pull/110837) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2fce2290865f012391b8f3e581c3852a248031fa&end=43a78029b4f4d92978b8fde0a677ea300b113c41&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.2% | [0.9%, 1.4%] | 2 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-1.4%, -0.5%] | 14 |
| Improvements (secondary) | -1.3% | [-2.0%, -0.5%] | 11 |
| All (primary) | -0.6% | [-1.4%, 1.4%] | 16 |
* cute idea for a PR ("reduce your useless MIR with this small trick!")
* primary regressions are to serde_derive and webrender (opt-full for both).
* already triaged; improvements clearly outweigh the regressions here, at least based on the counts of number of impacted benchmarks.
Rollup of 8 pull requests [#110967](https://github.com/rust-lang/rust/pull/110967) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f4956053816439a5884cb2ad1247835858f92218&end=7a96158b53529c2dd03bb4a637d8589ac6f5376f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.1% | [0.4%, 2.0%] | 17 |
| Regressions (secondary) | 1.1% | [1.1%, 1.3%] | 6 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 2 |
| All (primary) | 1.1% | [0.4%, 2.0%] | 17 |
* primary regression are to diesel, clap, and cranelift-codegen.
* lqd and compiler-errors are discussing on the PR.
* (pnkfelix is not convinced its a real regression that we can address, based on their conversation.)
Rollup of 6 pull requests [#110978](https://github.com/rust-lang/rust/pull/110978) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=572c0d553f2bd1b934b08fe240310112369a5c76&end=af2c7e0f9b5730b9598ca70fc67360fa69b469c8&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 2 |
| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
| All (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
* regressions are solely to secondary externs benchmark.
* its so minor. marking as triaged.
Improve niche placement by trying two strategies and picking the better result [#108106](https://github.com/rust-lang/rust/pull/108106) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=af2c7e0f9b5730b9598ca70fc67360fa69b469c8&end=f2299490c11b0c53ece5f6a13dd092fc9c99d264&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 7 |
| Regressions (secondary) | 0.7% | [0.4%, 1.0%] | 12 |
| Improvements (primary) | -2.6% | [-8.5%, -0.2%] | 4 |
| Improvements (secondary) | -1.2% | [-2.8%, -0.3%] | 31 |
| All (primary) | -0.7% | [-8.5%, 0.6%] | 11 |
* addresses a real performance regression (#105371) to how we laid out niches.
* primary big benefit to syn. rest of primary changes may be noise; the secondary improvements are nice to have.
* marking as triaged.
Rollup of 6 pull requests [#110994](https://github.com/rust-lang/rust/pull/110994) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=27d22d2045478c544ad043556de4993eebe4be29&end=eb62877597000ccf8bb99ab131b5977344afdfa3&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.5% | [0.4%, 0.7%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 2 |
| All (primary) | 0.5% | [0.4%, 0.7%] | 3 |
* primary regressions to doc for clap, stm32f4, cranelift-codegen
* already marked as triaged.
Make `mem::replace` simpler in codegen [#111010](https://github.com/rust-lang/rust/pull/111010) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b7d8c88b64843d05761576aa093a34a8bc176817&end=6db1e5e771cb810b22f4ff26f1346e386ca7643f&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 3 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 2 |
| Improvements (primary) | -1.3% | [-1.8%, -1.0%] | 3 |
| Improvements (secondary) | -0.5% | [-0.7%, -0.4%] | 3 |
| All (primary) | -0.5% | [-1.8%, 0.6%] | 6 |
* primary regressions to ripgrep opt-full, plus doc for hyper and html5ever.
* already marked as triaged.
Remove type ascription from parser and diagnostics [#109128](https://github.com/rust-lang/rust/pull/109128) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7b99493492ad59c7a44c65373558175db42b4151&end=98c33e47a495fbd7b22bce9ce32f2815991bc414&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 9 |
| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 9 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.4% | [-1.4%, -1.4%] | 1 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 9 |
* primary regressions are to serde, hyper, diesel; mostly to incr-unchanged scenarios.
* surprising that this had this impact.
* i'm guessing this is noise (this change should be solely *simplifying* the compiler, AFAICT).
* marking as triaged.
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- "const-propagated `arithmetic_overflow` in unreachable code" [rust#109731](https://github.com/rust-lang/rust/issues/109731)
- (discussed before)
[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-async-foundations* by @**nikomatsakis** and @**tmandry**
- Generic Associated Types initiative by @**Jack Huey**
Agenda draft: https://hackmd.io/iZv3HkKWRSyBMjZH3iIP8g