Skip to content

Rollup of 24 pull requests#157794

Merged
rust-bors[bot] merged 63 commits into
rust-lang:mainfrom
jhpratt:rollup-TxFk7Q6
Jun 12, 2026
Merged

Rollup of 24 pull requests#157794
rust-bors[bot] merged 63 commits into
rust-lang:mainfrom
jhpratt:rollup-TxFk7Q6

Conversation

@jhpratt

@jhpratt jhpratt commented Jun 12, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Mark-Simulacrum and others added 30 commits April 10, 2026 12:31
Replace uses of `u8` with a generic type. This will allow reusing
`BorrowedBuf` elsewhere in the standard library, for purposes other than
byte buffers.

This currently requires `T: Copy`, to prevent `T: Drop`, which would
require additional careful handling. We can consider relaxing that
restriction in the future if we make `T: Drop` work (without pessimizing
`Copy` types like `u8`).

`ensure_init` currently continues to require `u8`. We could potentially
generalize it to `T: Default`, but we'd need to ensure it produced the
same or better assembly for `u8`.
This default simplified the commit making these types generic, but we
don't actually want the default. Rewrite every user to specify `u8`
explicitly.
Now that the `impl` block has a bound, the one on `append` became
redundant.
An unconstrained `TransmuteFrom` obligation used to ICE with `layout_of:
unexpected type` under the next-gen trait solver; it now reports `type
annotations needed` (E0283). Add a regression test for that case, which
the fix's own test suite did not cover.
When pointing at each step of cycle errors, do not include the code snippet when the note points at the same place as the previous one (by setting the note's span to DUMMY_SP).
Co-authored-by: Ryan Mehri <52933714+rmehri01@users.noreply.github.com>
This is effectively dead code now that we validate the target spec, so
let's mark it as unreachable to avoid misleading people looking at this code.
Add support for inline assembly for the amdgpu backend (the
amdgcn-amd-amdhsa target).
Add register classes for `vgpr` (vector general purpose register) and
`sgpr` (scalar general purpose register).
The LLVM backend supports two more classes, `reg`, which is either VGPR
or SGPR, up to the compiler to decide. As instructions often rely on a
register being either a VGPR or SGPR for the assembly to be valid, reg
doesn’t seem that useful (I struggled to write correct tests for it), so
I didn’t end up adding it.
The fourth register class is AGPRs, which only exist on some hardware
versions (not the consumer ones) and they have restricted ways to write
and read from them, which makes it hard to write a Rust variable into
them. They could be used inside assembly blocks, but I didn’t add them
as Rust register class.

There are a few change affecting general inline assembly code, that is
`InlineAsmReg::name()` now returns a `Cow` instead of a `&'static str`.
Because amdgpu has many registers, 256 VGPRs plus combinations of 2 or 4
VGPRs, and I didn’t want to list hundreds of static strings, the amdgpu
reg stores the register number(s) and a non-static String is generated
at runtime for the register name.
Similar for register classes and supported_types.

Vectors of 64-bit types are supported by the LLVM backend, but omitted
here to make the code simpler. There is currently no systematic support
in LLVM of which vectors of 64-bit types are supported. Also, they are
likely seldomly unused, vectors of 16- and 32-bit types are important.
A macro can expand to several missing-type items (e.g. a `$()*`
repetition of `const A = ...;`) that all collide on one stashed
`ItemNoType` diagnostic. They can infer different types, so there is no
single concrete type to suggest, and which item wins the steal is not
even stable under the parallel front-end.

Skip the inferred-type suggestion when the placeholder span comes from a
macro expansion and keep the generic `<type>` suggestion from the parser
instead, mirroring the existing handling in the fallback arm. This makes
the diagnostic deterministic, so the `in-macro` test no longer needs
`ignore-parallel-frontend`.
As discussed in the long-closed issue referenced by the FIXMEs, it would
be unsound to add nocapture to all reference arguments. The canonical
example is taking &T and returning *const T, i.e., `std::ptr::from_ref`.
Some of the removed test cases suggest that named vs elided vs static
lifetime on the reference would make a difference for capturing, which
is incompatible with all modern takes on Rust opsem.

Hypothetically, we could add some kind of escape analysis on MIR to
determine which arguments can be marked as nocapture. But LLVM can do
that too (often better), so why should we? Plus, if we started doing
such analysis, the test that had the FIXMEs would not be a good place to
exercise it, as all the function bodies are trivial.
@jhpratt

jhpratt commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollu=never p=5

@bors try jobs=x86_64-msvc-ext1

@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 9fa26f7 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 12, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 12, 2026
Rollup of 24 pull requests


try-job: x86_64-msvc-ext1
@jhpratt

jhpratt commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

@bors rollup=never

@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 27e1f5d (27e1f5ddac52d9d5ac3405686e802b1b18c0fc68, parent: b30f3df3ba3c4c9de2f58f1a75dd9500b79b3f8d)

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 12, 2026
@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 22m 40s
Pushing 09a3713 to main...

@rust-bors rust-bors Bot merged commit 09a3713 into rust-lang:main Jun 12, 2026
14 checks passed
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing b30f3df (parent) -> 09a3713 (this PR)

Test differences

Show 1020 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx11: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx12: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types.rs#gfx11: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types.rs#gfx12: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx1030: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx942: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx950: [missing] -> ignore (ignored on targets without Rust's LLD) (J2)
  • [ui] tests/ui/coercion/subtyping-inhibits-deref-coercion.rs: [missing] -> pass (J2)
  • [ui] tests/ui/derives/hash-on-compound-types.rs: [missing] -> pass (J2)
  • [ui] tests/ui/derives/ufcs-in-derive-hash.rs: [missing] -> pass (J2)
  • [ui] tests/ui/imports/unused-import-issue-157420.rs: [missing] -> pass (J2)
  • [ui] tests/ui/inference/iter-ufcs-coercion-type-unification.rs: [missing] -> pass (J2)
  • [ui] tests/ui/issues/issue-20544.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-20831-debruijn.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-20953.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21140.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21160.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21174-2.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21202.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21245.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21384.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-21402.rs: pass -> [missing] (J2)
  • [ui] tests/ui/lifetimes/implicit-lifetime-in-assoc-type-projection.rs: [missing] -> pass (J2)
  • [ui] tests/ui/privacy/ufcs-cross-crate.rs: [missing] -> pass (J2)
  • [ui] tests/ui/range/range-implement-clone.rs: [missing] -> pass (J2)
  • [ui] tests/ui/scalable-vectors/transparent-wrappers.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J2)
  • [ui] tests/ui/traits/next-solver/transmute-from-unconstrained.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/object/dyn-iter-box-and-ref-impl-iter.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/where-clause-on-self-assoc-type.rs: [missing] -> pass (J2)
  • [ui] tests/ui/transmutability/transmute-copy-associated-type.rs: [missing] -> pass (J2)
  • [ui] tests/ui/unboxed-closures/manual-fnonce-impl-wrapper.rs: [missing] -> pass (J2)
  • io::borrowed_buf::advance_filled_u64: [missing] -> pass (J4)
  • io::borrowed_buf::advance_filled_unit: [missing] -> pass (J4)
  • io::borrowed_buf::append_u64: [missing] -> pass (J4)
  • io::borrowed_buf::append_unit: [missing] -> pass (J4)
  • io::borrowed_buf::clear_u64: [missing] -> pass (J4)
  • io::borrowed_buf::clear_unit: [missing] -> pass (J4)
  • io::borrowed_buf::cursor_set_init_u64: [missing] -> pass (J4)
  • io::borrowed_buf::cursor_set_init_unit: [missing] -> pass (J4)
  • io::borrowed_buf::new_u64: [missing] -> pass (J4)
  • io::borrowed_buf::new_unit: [missing] -> pass (J4)
  • io::borrowed_buf::reborrow_written_u64: [missing] -> pass (J4)
  • io::borrowed_buf::reborrow_written_unit: [missing] -> pass (J4)
  • io::borrowed_buf::set_init_u64: [missing] -> pass (J4)
  • io::borrowed_buf::set_init_unit: [missing] -> pass (J4)
  • io::borrowed_buf::uninit_u64: [missing] -> pass (J4)
  • io::borrowed_buf::uninit_unit: [missing] -> pass (J4)

Stage 2

  • io::borrowed_buf::advance_filled_u64: [missing] -> pass (J0)
  • io::borrowed_buf::advance_filled_unit: [missing] -> pass (J0)
  • io::borrowed_buf::append_u64: [missing] -> pass (J0)
  • io::borrowed_buf::append_unit: [missing] -> pass (J0)
  • io::borrowed_buf::clear_u64: [missing] -> pass (J0)
  • io::borrowed_buf::clear_unit: [missing] -> pass (J0)
  • io::borrowed_buf::cursor_set_init_u64: [missing] -> pass (J0)
  • io::borrowed_buf::cursor_set_init_unit: [missing] -> pass (J0)
  • io::borrowed_buf::new_u64: [missing] -> pass (J0)
  • io::borrowed_buf::new_unit: [missing] -> pass (J0)
  • io::borrowed_buf::reborrow_written_u64: [missing] -> pass (J0)
  • io::borrowed_buf::reborrow_written_unit: [missing] -> pass (J0)
  • io::borrowed_buf::set_init_u64: [missing] -> pass (J0)
  • io::borrowed_buf::set_init_unit: [missing] -> pass (J0)
  • io::borrowed_buf::uninit_u64: [missing] -> pass (J0)
  • io::borrowed_buf::uninit_unit: [missing] -> pass (J0)
  • [ui] tests/ui/coercion/subtyping-inhibits-deref-coercion.rs: [missing] -> pass (J1)
  • [ui] tests/ui/derives/hash-on-compound-types.rs: [missing] -> pass (J1)
  • [ui] tests/ui/derives/ufcs-in-derive-hash.rs: [missing] -> pass (J1)
  • [ui] tests/ui/imports/unused-import-issue-157420.rs: [missing] -> pass (J1)
  • [ui] tests/ui/inference/iter-ufcs-coercion-type-unification.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-20544.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-20831-debruijn.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-20953.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21140.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21160.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21174-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21202.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21245.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21384.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-21402.rs: pass -> [missing] (J1)
  • [ui] tests/ui/privacy/ufcs-cross-crate.rs: [missing] -> pass (J1)
  • [ui] tests/ui/range/range-implement-clone.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/transmute-from-unconstrained.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/object/dyn-iter-box-and-ref-impl-iter.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/where-clause-on-self-assoc-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/transmutability/transmute-copy-associated-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unboxed-closures/manual-fnonce-impl-wrapper.rs: [missing] -> pass (J1)
  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx11: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx12: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types.rs#gfx12: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx1030: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx942: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx950: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx11: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-types.rs#gfx12: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types.rs#gfx11: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types.rs#gfx12: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx1030: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx942: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [assembly] tests/assembly-llvm/asm/amdgpu-vec-types2.rs#gfx950: [missing] -> ignore (ignored on targets without Rust's LLD) (J5)
  • [ui] tests/ui/scalable-vectors/transparent-wrappers.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J6)
  • [ui] tests/ui/scalable-vectors/transparent-wrappers.rs: [missing] -> pass (J7)

(and 2 additional test diffs)

Additionally, 918 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 09a371361240e42b0d69438fd1179efcf212e576 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-gnu-gcc-core-tests: 8m 19s -> 15m 11s (+82.4%)
  2. pr-check-2: 27m 2s -> 41m 36s (+53.9%)
  3. dist-sparcv9-solaris: 1h 1m -> 1h 32m (+50.3%)
  4. dist-x86_64-netbsd: 1h 1m -> 1h 27m (+43.4%)
  5. x86_64-mingw-2: 2h 1m -> 2h 43m (+33.9%)
  6. dist-x86_64-mingw: 2h 1m -> 2h 42m (+33.4%)
  7. dist-x86_64-msvc-alt: 2h 13m -> 2h 58m (+33.3%)
  8. x86_64-gnu-llvm-22-1: 56m 31s -> 1h 13m (+30.5%)
  9. optional-x86_64-gnu-parallel-frontend: 2h 13m -> 2h 49m (+26.8%)
  10. x86_64-rust-for-linux: 47m 2s -> 59m 25s (+26.3%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149749 Make BorrowedBuf and BorrowedCursor generic over the da… 33dc3c9ca78d6bfe4be4671aebf6e3ddcf3edfac (link)
#149793 Add inline asm support for amdgpu 3a81a32f09094cb682ccf298ece6e7581d8e80d1 (link)
#155113 Ensure Send/Sync impl for std::process::CommandArgs f4930868fe5ac5227d9adf175226cec416665374 (link)
#155299 make repr_transparent_non_zst_fields a hard error 4e37d616ab0cbde2c0433782c0c6589733fc6b33 (link)
#156212 Additionally gate negative bounds behind new `-Zinternal-te… 6e050cd3210c9baddd90557a58b4834056915edb (link)
#157342 Reduce verbosity of cycle errors when possible 49d6c5d10bdf24e5d3228e53e94b514ca8ac8f48 (link)
#157366 Add a regression test for an unconstrained TransmuteFrom ICE a80c7506c564f7bb03b59af9177306ed456223ef (link)
#157459 rustc_target: callconv: powerpc64: Remove unreachable fallb… 6156dc6384847783891731e6b0ad4fe60199c5aa (link)
#157612 Add a test where subtyping inhibits coercion. 24976c3b1f920c9d2d51b6ceef28f02d4a80cd7b (link)
#157626 Autogenerate unstable compiler flag stubs for unstable-book f90b239cfbe51ac9bfa73614101e1ba801a756b6 (link)
#157658 UnsafeCell: mention shared-ref-to-interior case, fix aliasi… 7ec588e76da5ad756b4127caff9095c5ff234427 (link)
#157667 Rename typing modes to better describe real usage c5673631d0a5eb47228a051b5dee417dd0a91d9a (link)
#157698 Remove an unnecessary cloning 1884d074b88388a0240dd6dbdb6cb581c4d600a9 (link)
#157699 Arg splat experiment - hir FnDecl impl e646012f65032fa2d3c946a6a5b26504358ad1d1 (link)
#157713 resolve: Remove exported imports from `maybe_unused_trait_i… aab376259ddec2c1f98a8e709f468ed5f521c014 (link)
#157716 update Enzyme, June'26 1843c8c0f278347a9f9eb2fcf5c18c11edaf1991 (link)
#157722 Move create_scope_map to rustc_codegen_ssa. bdd0b9c924a0d84b1527480369b2f9f0e888faa2 (link)
#157723 Move uninhabited unreachable code lint to rustc_mir_transfo… 0dd5d4a1b1782a76d81686ecd4cf29ca1e3ca68f (link)
#157725 Keep generic suggestion for macro-expanded missing-type ite… 59f71192bda68698f0c3653d253a8e5544d5def0 (link)
#157733 Remove old FIXMEs about nocapture attribute fc7ce32536428221879b09dee8733c97fa3a54d8 (link)
#157737 Reorganize tests/ui/issues [7/N] b377b4c4c9ad8edd9d6c7a5329d144c757ad9209 (link)
#157746 supports_c_variadic_definitions: extend checklist for new t… 4a5f08fa61602a947a89f7f106af1f629a855f47 (link)
#157763 Move unused target expression error to appropriate place an… ffe531acdbbde56c053a5071b2558d88451cf6b1 (link)
#157768 codegen_ssa: peel trans. wrappers on scalable vecs f3a51167b0b884cb017f0d995acb476c15c000f1 (link)

previous master: b30f3df3ba

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (09a3713): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.3% [0.2%, 0.4%] 2
Improvements ✅
(primary)
-0.4% [-0.9%, -0.2%] 12
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.0%] 2
All ❌✅ (primary) -0.4% [-0.9%, -0.2%] 12

Max RSS (memory usage)

Results (primary -2.9%, secondary -0.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.1% [1.4%, 2.7%] 2
Improvements ✅
(primary)
-2.9% [-2.9%, -2.9%] 1
Improvements ✅
(secondary)
-3.1% [-3.3%, -3.0%] 2
All ❌✅ (primary) -2.9% [-2.9%, -2.9%] 1

Cycles

This perf run didn't have relevant results for this metric.

Binary size

Results (primary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.1%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.0%, 0.1%] 4

Bootstrap: 518.98s -> 517.481s (-0.29%)
Artifact size: 400.92 MiB -> 401.31 MiB (0.10%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 12, 2026
@jhpratt jhpratt deleted the rollup-TxFk7Q6 branch June 12, 2026 08:14
@jhpratt

jhpratt commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

The gains clearly outweigh the 2 minor secondary regressions, both of which are incr-unchanged.

@rustbot label +perf-regression-triaged

@jhpratt jhpratt added the perf-regression-triaged The performance regression has been triaged. label Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-SGX Target: SGX O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.