Skip to content

Conversation

@workflows-rustc-dev-guide
Copy link

Latest update from rustc.

Kobzol and others added 30 commits July 23, 2025 14:59
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 5a30e4307f0506bed87eeecd171f8366fdbda1dc
Filtered ref: 59749e9f8c765d3021796a9fe0c188643c4b8d77

This merge was created using https://github.com/rust-lang/josh-sync.
loongarch: Use unified data types for SIMD intrinsics
`intrinsic-test`: combine rust files for faster compilation
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 32e7a4b92b109c24e9822c862a7c74436b50e564
Filtered ref: 56d8aa13f54944edb711f3bdd7013b082dbaa65b

This merge was created using https://github.com/rust-lang/josh-sync.
…rinsictype-cleanup

`intrinsic-test`: Cleaning the `IntrinsicType` struct and related functionalities
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 73e6c9ebd9123154a196300ef58e30ec8928e74e
Filtered ref: e8bb3cae4cd2b04bdc252cdf79102717db2b2d8d
Upstream diff: rust-lang/rust@32e7a4b...73e6c9e

This merge was created using https://github.com/rust-lang/josh-sync.
Forward `TEST_SAMPLE_INTRINSICS_PERCENTAGE`
Add intrinsics for the new AMX target features
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 8401398e1f14a24670ee1a3203713dc2f0f8b3a8
Filtered ref: f9e99a8e85fa360f0e820dc75d46cb4583b4300d
Upstream diff: rust-lang/rust@73e6c9e...8401398

This merge was created using https://github.com/rust-lang/josh-sync.
Use generic SIMD masked load/stores for avx512 masked load/stores
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 69d4d5fc0e4db60272aac85ef27ecccef5764f3a
Filtered ref: a26d495b52327d29e0d66ac3050932a98a0ad6bb
Upstream diff: rust-lang/rust@7a72c54...69d4d5f

This merge was created using https://github.com/rust-lang/josh-sync.
genmc: Build without LLVM; adjust to API changes
…rovenance

initial implementation of wildcard provenence for tree borrows
Use `yarn` instead of `npm` for JS/TS dependencies

Building on `@lolbinarycat` 's excellent work ( rust-lang/rust#148672 ).

`npm` apparently has certain edge-cases where it doesn't actually respect the lockfile it's fed, which has led to at least one [CI breakage](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/CI.20keeps.20failing.20because.20of.20npm.20error/near/554420543).

`yarn` seems to not suffer from those same issues, and also has a `--frozen` flag for its `install` command
miri subtree update

Contains the fix for rust-lang/miri#4698, which we should get shipped ASAP.

Subtree update of `miri` to rust-lang/miri@0fea24a.

Created using https://github.com/rust-lang/josh-sync.

r? `@ghost`
stdarch subtree update

Subtree update of `stdarch` to rust-lang/stdarch@50134e1.

Created using https://github.com/rust-lang/josh-sync.

The only interesting commit is the final one, which enables the `avx10_target_feature` feature in the standard library, because it is now used in `stdarch`.

r? `@sayantn` (or whoever, this is just a straightforward sync)
Add doc for va_list APIs

I observed that [PR146521](rust-lang/rust#146521) submitted two weeks ago resolved some documentation issues related to `VaListImpl`, similar to the previous [PR136969](rust-lang/rust#136969).

This PR specifically adds requirements about argument availability for `VaListImpl::arg`, and also adds safety descriptions to the three associated intrinsic APIs.
alloc: fix `Debug` implementation of `ExtractIf`

I noticed this while reviewing rust-lang/rust#141032. Calling `get` on the inner `Vec` never returns `Some` as the `Vec`'s length is temporarily set to zero while the `ExtractIf` exists.
rustc_public: Make Id types !Send / !Sync

These types are Id's to a table stored in TLS, so using them from another tread will either panic, or give wrong results.

Therefor, I've added a ~~`ReferencesTls`~~`ThreadLocalIndex`  marker type, which ensures types arn't `Send`/`Sync`.

This is a breaking change for users of the `rustc_public` crate.

~~It also changes how `DefId` and similar are `Serialize`d. It would be possible to preserve the old behavior if that's needed, but I couldn't see any tests for these.~~ EDIT: Not anymore: rust-lang/rust#148261 (comment)

Zulip Discussion: https://rust-lang.zulipchat.com/#narrow/channel/320896-project-stable-mir/topic/WDYM.20.22should.20not.20.20be.20shared.20across.20threads.22/with/547374171
rustc-dev-guide subtree update

Subtree update of `rustc-dev-guide` to 61ad195.

Created using https://github.com/rust-lang/josh-sync.

r? `````@ghost`````
[AIX][ppc64le-linux-gnu] Add Amy Kwan to target maintainers

Amy has effectively been helping to maintain these Power targets for a while, so add her to the maintainers list.
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#146925 (Add doc for va_list APIs)
 - rust-lang/rust#147035 (alloc: fix `Debug` implementation of `ExtractIf`)
 - rust-lang/rust#147173 (Add support for hexagon-unknown-qurt target)
 - rust-lang/rust#148261 (rustc_public: Make Id types !Send / !Sync)
 - rust-lang/rust#149041 (ignore unsized types in mips64 and sparc64 callconvs)
 - rust-lang/rust#149056 (fix the fragment_in_dst_padding_gets_overwritten test on s390x)
 - rust-lang/rust#149071 (Add test scaffolding for the `remote-test-client`)
 - rust-lang/rust#149095 (rustc-dev-guide subtree update)
 - rust-lang/rust#149108 ([AIX][ppc64le-linux-gnu] Add Amy Kwan to target maintainers)

r? `@ghost`
`@rustbot` modify labels: rollup
See if this is the time we can remove `layout::size_align`

This was a bad idea before, but now that `size_of` and `align_of` work completely differently than when removing it was first tried in 2020, maybe it makes sense now.

(Or maybe I'll just add another attempt to the list in the comments...)

r? ghost
Bump compiler dependencies

rust-lang/rust#145849 (comment)
This manually downgrades the `wasip`/`wit-bindgen`/`getrandom` deps to avoid pulling in a binary blob, but it would be good to pin this automatically in a way which doesn't cause these blobs to be pulled in.
bors and others added 11 commits November 22, 2025 06:28
Reduce confusing `unreachable_code` lints

Closes rust-lang/rust#149042

Attempts to be smarter about identifying 'real'/user-written unreachable code to raise the lint
Add `rust-mingw` component for `*-windows-gnullvm` hosts

Cc rust-lang/rust#146634
…li-obk

Skip unused variables warning for unreachable code

Fixes rust-lang/rust#148373

These warnings are not reported on stable branch, but are now reported on the beta.

I tried another solution to record whether a `local` is reachable in `find_dead_assignments`, but the code in this PR seems simpler.

r? `@cjgillot`
Fix typo in comment in rustc_errors

It seems "CharPose" was a typo since I couldn't find any references to it anywhere else in the codebase
automate gpu offloading - part 1

Automates step 1 from the rustc-dev-guide offload section:
https://rustc-dev-guide.rust-lang.org/offload/usage.html#compile-instructions
`"clang-offload-packager" "-o" "host.out" "--image=file=device.bc,triple=amdgcn-amd-amdhsa,arch=gfx90a,kind=openmp"`

Verified on an MI 250X

cc `@jhuber6,` `@kevinsala,` `@jdoerfert,` `@Sa4dUs`

r? oli-obk
Turn moves into copies after copy propagation

Previously copy propagation presumed that there is further unspecified distinction between move operands and copy operands in assignments and propagated moves from assignments into terminators. This is inconsistent with current operational semantics.

Turn moves into copies after copy propagation to preserve existing behavior.

Fixes rust-lang/rust#137936.
Fixes rust-lang/rust#146423.

r? `@cjgillot`
Fix MaybeUninit codegen using GVN

This is an alternative to rust-lang/rust#142837, based on rust-lang/rust#146355 (comment).

The general approach I took here is to aggressively propagate anything that is entirely uninitialized. GVN generally takes the approach of only synthesizing small types, but we need to generate large consts to fix the codegen issue.

I also added a special case to MIR dumps for this where now an entirely uninit const is printed as `const <uninit>`, because otherwise we end up with extremely verbose dumps of the new consts.

After GVN though, we still end up with a lot of MIR that looks like this:
```
StorageLive(_1);
_1 = const <uninit>;
_2 = &raw mut _1;
```
Which will break tests/codegen-llvm/maybeuninit-rvo.rs with the naive lowering. I think the ideal fix here is to somehow omit these `_1 = const <uninit>` assignments that come directly after a StorageLive, but I'm not sure how to do that. For now at least, ignoring such assignments (even if they don't come right after a StorageLive) in codegen seems to work.

Note that since GVN is based on synthesizing a `ConstValue`  which has a defined layout, this scenario still gets deoptimized by LLVM.
```rust
#![feature(rustc_attrs)]
#![crate_type = "lib"]
use std::mem::MaybeUninit;

#[unsafe(no_mangle)]
pub fn oof() -> [[MaybeUninit<u8>; 8]; 8] {
    #[rustc_no_mir_inline]
    pub fn inner<T: Copy>() -> [[MaybeUninit<T>; 8]; 8] {
        [[MaybeUninit::uninit(); 8]; 8]
    }

    inner()
}
```
This case can be handled correctly if enough inlining has happened, or it could be handled by post-mono GVN. Synthesizing `UnevaluatedConst` or some other special kind of const seems dubious.
Simplify `jemalloc` setup (without perf regression)

Reland rust-lang/rust#146627 after fixing [the performance regression](rust-lang/rust#148851 (comment)) that caused it to be reverted in rust-lang/rust#148896.

This avoids 65f0b7a (second commit in the initial PR), and adds a comment explaining why `extern crate` is needed here instead of `use` (we need to load `tikv_jemalloc_sys` from the sysroot because of rust-lang/cc-rs#1613).

r? Kobzol
This updates the rust-version file to d3e1ccdf40ae7b7a6dc81edc073d80dad7b66f75.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: d3e1ccdf40ae7b7a6dc81edc073d80dad7b66f75
Filtered ref: de08591
Upstream diff: rust-lang/rust@cc328c1...d3e1ccd

This merge was created using https://github.com/rust-lang/josh-sync.
@rustbot
Copy link
Collaborator

rustbot commented Nov 24, 2025

Thanks for the PR. If you have write access, feel free to merge this PR if it does not need reviews. You can request a review using r? rustc-dev-guide or r? <username>.

@rustbot rustbot added the S-waiting-on-review Status: this PR is waiting for a reviewer to verify its content label Nov 24, 2025
@tshepang tshepang merged commit 4c86924 into main Nov 24, 2025
1 check passed
@rustbot rustbot removed the S-waiting-on-review Status: this PR is waiting for a reviewer to verify its content label Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.