Skip to content

Rollup of 3 pull requests - #164159

Merged
rust-bors[bot] merged 44 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-saZbJ3D
Oct 11, 2026
Merged

rust-bors[bot] merged 44 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-saZbJ3D

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

simono and others added 30 commits October 1, 2026 16:47
This updates the rust-version file to 260f1ac.
This updates the rust-version file to 5ec56e3.
tshepang and others added 8 commits October 11, 2026 12:37
remove redundant unsafe

Related Zulipchat topic link: [Safety requirements of ARM hint APIs](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Safety.20requirements.20of.20ARM.20hint.20APIs/with/629609101)

This PR tries to remove the unsafe in `core_arch/arm_shared/hint.rs`. As the Zulip topic discussed, these APIs have `#[cfg(any(...))]` attribute to restrict that these can only be compiled when specific architecture is met. So there seems no need to mark these APIs unsafe.

For `__nop`, I found that in `riscv_shared` there exist the same `nop` instruction, but it is marked safe. The concrete path is `core_arch/src/riscv_shared/mod.rs`

```rust
/// Generates the `NOP` instruction
///
/// The NOP instruction does not change any architecturally visible state, except for
/// advancing the `pc` and incrementing any applicable performance counters.
#[inline]
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
pub fn nop() {
    unsafe {
        asm!("nop", options(nomem, nostack, preserves_flags));
    }
}
```

But there is a remaining question: For `wfe` and `wfi`, they can be configurable to trap. So I think if needed, I can complement some discription about trap. Hoping you can give me some suggestion.
Remove indirection for `Expr` in `Body`

While this does not seem to have the measurable perf effect that I hoped, I still think this is nice to merge since it does theoretically remove one pointer dereference anytime a body is visited. I think this has no measurable effect because the `Expr` in the `Body` is allocated right next to the `Body` itself in the arena, so this should always be in L1 cache.

This also works towards making the `Body` type simpler and possibly removing it, as after rust-lang/compiler-team#1044 it won't contain the Parameters anymore. I think we won't end up removing this type though because `BodyId` is a useful concept that is inherently linked to bodies.

I might also take a look if there are other places in the compiler where a similar optimization might have measurable effect.

r? @Kivooeo
rustc-dev-guide subtree update

Subtree update of `rustc-dev-guide` to rust-lang/rustc-dev-guide@7a32071.

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

r? @ghost
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 11, 2026
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Oct 11, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

@rust-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

📌 Commit debc07b 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 Oct 11, 2026
@rust-bors rust-bors Bot mentioned this pull request Oct 11, 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 Oct 11, 2026
@rust-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 2m 15s
Pushing 66b2934 to main...

@rust-bors
rust-bors Bot merged commit 66b2934 into rust-lang:main Oct 11, 2026
15 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Oct 11, 2026
@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 0617e57 (parent) -> 66b2934 (this PR)

Test differences

Show 2 test diffs

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

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 66b293448b9b4b4cd5605054b386642db28c8fb2 --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. test-x86_64-gnu-llvm-22: 31m 51s -> 56m 46s (+78.2%)
  2. test-x86_64-gnu-nopt: 1h 26m -> 2h 30m (+73.0%)
  3. test-x86_64-gnu-stdlib-semver-check: 9m 55s -> 16m 39s (+67.9%)
  4. dist-i686-mingw: 32m 35s -> 54m 22s (+66.9%)
  5. test-x86_64-msvc-ext3: 1h 12m -> 1h 59m (+64.3%)
  6. test-i686-gnu-nopt-1: 1h 28m -> 2h 23m (+61.7%)
  7. test-x86_64-rust-for-linux: 35m 25s -> 55m 50s (+57.6%)
  8. dist-x86_64-solaris: 1h 10m -> 1h 44m (+48.5%)
  9. test-arm-android: 1h 15m -> 1h 50m (+46.8%)
  10. test-x86_64-gnu-llvm-22-3: 1h 16m -> 1h 46m (+40.0%)
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-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163918 remove redundant unsafe 862561190e840369f0e5a22e3c004ceae4d88545
(link)
#164047 Remove indirection for Expr in Body a8e644ecf50052d357167433d87fa89d1bb98ebe
(link)
#164154 rustc-dev-guide subtree update 9c50922eae702193b0bf0f68719fe08f6e0a219e
(link)

parent commit: 0617e57afe

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (66b2934): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary 2.9%, secondary -3.7%)

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

mean range count
Regressions ❌
(primary)
2.9% [2.6%, 3.2%] 2
Regressions ❌
(secondary)
2.2% [2.2%, 2.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.9% [-9.6%, -2.9%] 5
All ❌✅ (primary) 2.9% [2.6%, 3.2%] 2

Cycles

Results (primary 1.7%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
1.7% [1.7%, 1.7%] 1
Regressions ❌
(secondary)
4.1% [3.8%, 4.5%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-8.1% [-8.1%, -8.1%] 1
All ❌✅ (primary) 1.7% [1.7%, 1.7%] 1

Binary size

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

Bootstrap: 487.225s -> 488.016s (0.16%)
Artifact size: 406.47 MiB -> 407.15 MiB (0.17%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rustc-dev-guide Area: rustc-dev-guide 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants