--- 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