Skip to content

Rollup of 6 pull requests#153344

Merged
rust-bors[bot] merged 50 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-uL4XlqI
Mar 3, 2026
Merged

Rollup of 6 pull requests#153344
rust-bors[bot] merged 50 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-uL4XlqI

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

folkertdev and others added 30 commits February 18, 2026 21:31
Use intrinsics for `sse2`, `sse41`, `avx2`, `avx512bw`

The majority of implementations make use of `simd_shuffle` since that
optimized through to the avx512 intrinsics that made use of the lower
target feature intrinsics. Combined with masked stores, instruction
tests would fail presumably due to the casting and clamping that
the compiler couldn't see through. This is a known weakness as seen
in the other masked stores like the truncating conversion stores.
x86: use `simd::intrinsics` for saturating packs
Add const to `sse2`, `sse41`, `avx2`, and `avx512bw` functions and tests
use `intrinsics::simd` for interleaving store
aarch64: cleanup of some long array literals
x86: Followup to add const for pack intrinsics and tests
Add missing runtime test for _mm_comige_ss and fix _mm_comigt_ss test
…f-two-reads-writes

aarch64: fix UB in non-power-of-two reads and writes
DeepeshWR and others added 8 commits March 2, 2026 18:50
Rust 1.94 now passes constants directly to llvm.sqrt.f32 instead of
storing/loading via the stack.

- Updated the FileCheck pattern to match the new IR:
    // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
  The test intent is unchanged: it still ensures the intrinsic is
  emitted as a 'call' (not 'invoke').

- Removed unnecessary local variables and Drop usage to work in
  `#![no_core]` mode with minicore.

- Added required crate attributes:
    #![feature(no_core, lang_items)]
    #![no_std]
    #![no_core]

- Replaced `//@ only-riscv64` (host-based execution) with explicit
  revisions for:
      riscv32gc-unknown-linux-gnu
      riscv64gc-unknown-linux-gnu
  This ensures deterministic multi-target coverage in CI without
  relying on the host architecture.

- Added `//@ needs-llvm-components: riscv` and
  `//@ min-llvm-version: 21` for CI compatibility.

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
…, r=folkertdev

stdarch subtree update

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

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

r? @ghost
…rse, r=Urgau,jhpratt

Parse `impl` restrictions

This PR implements the parsing logic for `impl` restrictions (e.g., `pub impl(crate) trait Foo {}`) as proposed in [RFC 3323](https://rust-lang.github.io/rfcs/3323-restrictions.html).
As the first step of the RFC implementation, this PR focuses strictly on the parsing phase. The new syntax is guarded by the `#![feature(impl_restriction)]` feature gate.
This implementation basically follows the pattern used in rust-lang#141754.

r? @jhpratt
…egen_results, r=nnethercote

Replace CodegenResults with CompiledModules

This is already CodegenResults without CrateInfo. The driver can calculate the CrateInfo and pass it by-ref to the backend. Using CompiledModules makes it a bit easier to move some other things out of the backend as will be necessary for moving LTO to the link phase.

Helps with rust-lang/compiler-team#908
….94, r=folkertdev

Update call-llvm-intrinsics test for Rust 1.94.0 IR

Rust 1.94 now passes constants directly to llvm.sqrt.f32 instead of
storing/loading via the stack.

- Updated the FileCheck pattern to match the new IR:
    // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
  The test intent is unchanged: it still ensures the intrinsic is
  emitted as a 'call' (not 'invoke').

- Removed unnecessary local variables and Drop usage to work in
  `#![no_core]` mode with minicore.

- Added required crate attributes:
    #![feature(no_core, lang_items)]
    #![no_std]
    #![no_core]

- Replaced `//@ only-riscv64` (host-based execution) with explicit
  revisions for:
      riscv32gc-unknown-linux-gnu
      riscv64gc-unknown-linux-gnu
  This ensures deterministic multi-target coverage in CI without
  relying on the host architecture.

- Added `//@ needs-llvm-components: riscv` and
  `//@ min-llvm-version: 21` for CI compatibility.

Fixes rust-lang#153271
Comments and docs: add missing periods to "ie."

"i.e." is short for the Latin "id est" and thus both letters should be followed by periods.
…rcote

Make `rustc_with_all_queries!` pass query modifiers as named values

This PR is a bold overhaul of how the proc-macro in `rustc_macros::query` passes query modifiers to the callback macros in `rustc_middle` and `rustc_query_impl`.

The existing approach passes modifiers as a list that looks like `[(arena_cache), (no_hash)]`. That style requires a family of helper macros (`if_arena_cache!`, `if_no_hash!`) to check for modifiers when consuming the query list.

This PR changes the proc-macro to instead pass modifiers like this:

```text
{
    anon: false,
    arena_cache: true,
    cache_on_disk: false,
    ...
}
```

This style allows each of the callback macros to deconstruct the modifier list in a relatively straightforward way, by binding the true/false literals to variables like `$arena_cache:literal`.

One of the big advantages of this style is that we can write things like `#[cfg($arena_cache)]` and `#[cfg(not($arena_cache))]` to select blocks of code, eliminating the need for the `if_arena_cache!` family of helper macros.

In follow-up PRs, we can also try to take advantage of the new modifier style to pass richer information for some modifiers, such as `desc` or `cache_on_disk_if`. That could potentially make it more reasonable to get rid of the `_description_fns` and `_cache_on_disk_if_fns` modules, as proposed in rust-lang#153065.

r? nnethercote
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 3, 2026
@rustbot rustbot added 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) A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. 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-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. labels Mar 3, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 3, 2026

📌 Commit d53a01c has been approved by JonathanBrouwer

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 Mar 3, 2026
@rust-bors

This comment has been minimized.

@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 Mar 3, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 3, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 9m 23s
Pushing d2218f5 to main...

@rust-bors rust-bors bot merged commit d2218f5 into rust-lang:main Mar 3, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 3, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#152943 Parse impl restrictions 2bac5258378b62a1c9e907afb57255822e419517 (link)
#153184 Replace CodegenResults with CompiledModules 1d8f8552375377512f2836ed96b0cb063185fc04 (link)
#153285 Update call-llvm-intrinsics test for Rust 1.94.0 IR ce441a3cdc76916ea8af3eafc876ae82724a174a (link)
#153319 Comments and docs: add missing periods to "ie." 2ae6c3da516e2aeab423c1de157bab46255889e1 (link)
#153326 Make rustc_with_all_queries! pass query modifiers as name… e46d328fb283a3d274b68497692e55fb110f9f21 (link)
#153336 stdarch subtree update d72a026974e3b7da0e99772c47a4ba7ed9149390 (link)

previous master: 1b7d722f42

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

@github-actions
Copy link
Contributor

github-actions bot commented Mar 3, 2026

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 1b7d722 (parent) -> d2218f5 (this PR)

Test differences

Show 55 test diffs

Stage 1

  • [ui] tests/ui/impl-restriction/feature-gate-impl-restriction.rs#with_gate: [missing] -> pass (J1)
  • [ui] tests/ui/impl-restriction/feature-gate-impl-restriction.rs#without_gate: [missing] -> pass (J1)
  • [ui] tests/ui/impl-restriction/recover-incorrect-impl-restriction.rs#with_gate: [missing] -> pass (J1)
  • [ui] tests/ui/impl-restriction/recover-incorrect-impl-restriction.rs#without_gate: [missing] -> pass (J1)
  • [ui] tests/ui/impl-restriction/trait-alias-cannot-be-impl-restricted.rs#with_gate: [missing] -> pass (J1)
  • [ui] tests/ui/impl-restriction/trait-alias-cannot-be-impl-restricted.rs#without_gate: [missing] -> pass (J1)
  • [ui] tests/ui/rmeta/no_optimized_mir.rs: [missing] -> pass (J1)
  • [ui] tests/ui/rmeta/no_optitimized_mir.rs: pass -> [missing] (J1)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv32gc: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv64gc: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs: ignore (only executed when the architecture is riscv64) -> [missing] (J4)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv32gc: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J5)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv64gc: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J5)

Stage 2

  • [ui] tests/ui/impl-restriction/feature-gate-impl-restriction.rs#with_gate: [missing] -> pass (J0)
  • [ui] tests/ui/impl-restriction/feature-gate-impl-restriction.rs#without_gate: [missing] -> pass (J0)
  • [ui] tests/ui/impl-restriction/recover-incorrect-impl-restriction.rs#with_gate: [missing] -> pass (J0)
  • [ui] tests/ui/impl-restriction/recover-incorrect-impl-restriction.rs#without_gate: [missing] -> pass (J0)
  • [ui] tests/ui/impl-restriction/trait-alias-cannot-be-impl-restricted.rs#with_gate: [missing] -> pass (J0)
  • [ui] tests/ui/impl-restriction/trait-alias-cannot-be-impl-restricted.rs#without_gate: [missing] -> pass (J0)
  • [ui] tests/ui/rmeta/no_optimized_mir.rs: [missing] -> pass (J0)
  • [ui] tests/ui/rmeta/no_optitimized_mir.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv32gc: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J3)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv64gc: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J3)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs: ignore (only executed when the architecture is riscv64) -> [missing] (J6)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv32gc: [missing] -> ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) (J7)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv64gc: [missing] -> ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) (J7)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv32gc: [missing] -> pass (J8)
  • [codegen] tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs#riscv64gc: [missing] -> pass (J8)

Additionally, 27 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 d2218f5f5ca3f502772ec4cb69fc2ee44e096512 --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. aarch64-apple: 3h 39m -> 2h 59m (-18.4%)
  2. pr-check-1: 28m 49s -> 33m 38s (+16.7%)
  3. dist-apple-various: 1h 58m -> 1h 42m (-13.8%)
  4. dist-aarch64-msvc: 1h 39m -> 1h 48m (+9.3%)
  5. x86_64-gnu-llvm-20-3: 1h 59m -> 1h 48m (-9.1%)
  6. x86_64-gnu-llvm-20-1: 1h 9m -> 1h 16m (+8.9%)
  7. dist-ohos-armv7: 1h 15m -> 1h 8m (-8.7%)
  8. x86_64-gnu-debug: 2h 6m -> 1h 56m (-7.4%)
  9. dist-aarch64-linux: 1h 51m -> 1h 42m (-7.4%)
  10. x86_64-msvc-ext3: 1h 44m -> 1h 52m (+7.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.

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) A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-clippy Relevant to the Clippy team. 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-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.