Skip to content

Rollup of 6 pull requests#154455

Merged
rust-bors[bot] merged 15 commits intorust-lang:mainfrom
jhpratt:rollup-I3JcUWU
Mar 27, 2026
Merged

Rollup of 6 pull requests#154455
rust-bors[bot] merged 15 commits intorust-lang:mainfrom
jhpratt:rollup-I3JcUWU

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Mar 27, 2026

Successful merges:

r? @ghost

Create a similar rollup

RalfJung and others added 15 commits March 10, 2026 22:59
Clang and gcc use this option to control linking behavior too. Some
targets need to be linked against a special crt which enables
profiling at runtime.

This makes using gprof a little easier with Rust binaries. Otherwise,
rustc must be passed `-Clink-args=-pg` to ensure the correct startup
code is linked.
mingw exposes the `_mcount` symbol for profiling.
libgmon needs to be linked. This also requires readding a few
other system libraries to satisfy its dependencies.
* Create GPU target notification group
* Update triagebot.toml

Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com>
Pass -pg to linker when using -Zinstrument-mcount

This selects a slightly different crt on gnu targets which enables the profiler within glibc.

This makes using gprof a little easier with Rust binaries. Otherwise, rustc must be passed `-Clink-args=-pg` to ensure the correct startup code is linked.
…rray-ice, r=chenyukang

Remove divergence check from check_expr_array

Fixes rust-lang#153695.

`check_expr_array` currently assumes it should only be entered with` self.diverges == Diverges::Maybe`, but that assumption does not appear to hold in all valid cases. A never-pattern parameter can seed a function or closure body with inherited `Diverges::Always`, and exprs in that body are still typecked.
move many tests out of `ui/unsafe`

`ui/unsafe` is a pretty big and generic directory. This PR moves some tests from it to `ui/union` and some others to a new `rustc_layout_scalar_valid_range` directory.
r? @Kivooeo
…bzol

bootstrap: force a CI LLVM stamp bump

To see if this helps with rust-lang#154408

r? @Kobzol
simd_add/sub/mul/neg: document overflow behavior

`simd_neg` had an odd comment about overflow not being UB, without saying what the behavior is instead. Replace that by just saying this uses wrapping arithmetic, and add the same for add/sub/mul. div/rem are already documented to cause UB on div-by-zero and min-div-by-minus-one, and shl/shr cause UB on too large shift amounts.
…roup, r=jieyouxu

Create GPU target notification group

Creating the notification group for the newly created GPU target (see [mcp#960](https://rust-lang.zulipchat.com/#narrow/channel/233931-t-compiler.2Fmajor-changes/topic/Create.20a.20GPU.20notification.20group.20compiler-team.23960/near/568629680))

I'm following these [steps](rust-lang#133334).

(feel free to suggest a better wording)

r? @jieyouxu
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 27, 2026
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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-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. labels Mar 27, 2026
@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented Mar 27, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 27, 2026

📌 Commit a16a4c3 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 Mar 27, 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 27, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 27, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 14m 34s
Pushing fda6d37 to main...

@rust-bors rust-bors bot merged commit fda6d37 into rust-lang:main Mar 27, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 27, 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 e3691a5 (parent) -> fda6d37 (this PR)

Test differences

Show 97 test diffs

Stage 1

  • [run-make] tests/run-make/instrument-mcount-link-pg: [missing] -> pass (J1)
  • [ui] tests/ui/reachable/never-pattern-closure-param-array.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/access_union_field.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union-assignop.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union-modification.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union-pat-in-param.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union_access_through_block.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union_destructure.rs: [missing] -> pass (J1)
  • [ui] tests/ui/union/union_wild_or_wild.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe-binders/move-out-of-non-copy.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/access_union_field.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/initializing-ranged-via-ctor.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/move-out-of-non-copy.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged-ctor-as-fn-ptr.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints2_const.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints3.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints3_const.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints3_match.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints4.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints4_const.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints_const.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/ranged_ints_macro.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_macro.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/union-assignop.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union-modification.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union-pat-in-param.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union_access_through_block.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union_destructure.rs: pass -> [missing] (J1)
  • [ui] tests/ui/unsafe/union_wild_or_wild.rs: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/reachable/never-pattern-closure-param-array.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/access_union_field.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union-assignop.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union-modification.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union-pat-in-param.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union_access_through_block.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union_destructure.rs: [missing] -> pass (J0)
  • [ui] tests/ui/union/union_wild_or_wild.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe-binders/move-out-of-non-copy.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/access_union_field.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/initializing-ranged-via-ctor.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/move-out-of-non-copy.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged-ctor-as-fn-ptr.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints2_const.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints3.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints3_const.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints3_match.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints4.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints4_const.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints_const.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/ranged_ints_macro.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_macro.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/union-assignop.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union-modification.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union-pat-in-param.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union_access_through_block.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union_destructure.rs: pass -> [missing] (J0)
  • [ui] tests/ui/unsafe/union_wild_or_wild.rs: pass -> [missing] (J0)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: pass -> ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) (J2)
  • [run-make] tests/run-make/instrument-mcount-link-pg: [missing] -> ignore (ignored when cross-compiling) (J3)
  • [run-make] tests/run-make/instrument-mcount-link-pg: [missing] -> ignore (only executed when the target environment is gnu) (J4)
  • [run-make] tests/run-make/instrument-mcount-link-pg: [missing] -> pass (J5)

Additionally, 6 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 fda6d37bb88ee12fd50fa54d15859f1f91b74f55 --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. pr-check-1: 25m 5s -> 37m 54s (+51.1%)
  2. x86_64-gnu-tools: 52m 55s -> 1h 15m (+42.9%)
  3. x86_64-rust-for-linux: 46m 54s -> 1h 5m (+40.5%)
  4. pr-check-2: 39m 17s -> 52m 9s (+32.7%)
  5. x86_64-gnu-gcc: 1h 1m -> 1h 20m (+30.9%)
  6. x86_64-gnu-miri: 1h 26m -> 1h 47m (+24.4%)
  7. armhf-gnu: 1h 25m -> 1h 43m (+20.6%)
  8. test-various: 2h 1m -> 2h 25m (+19.7%)
  9. tidy: 2m 47s -> 2m 16s (-18.7%)
  10. arm-android: 1h 39m -> 1h 57m (+17.7%)
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

Finished benchmarking commit (fda6d37): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

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

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

mean range count
Regressions ❌
(primary)
2.4% [2.4%, 2.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.3% [-3.3%, -3.3%] 1
Improvements ✅
(secondary)
-5.7% [-5.7%, -5.7%] 1
All ❌✅ (primary) -0.5% [-3.3%, 2.4%] 2

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 483.294s -> 485.109s (0.38%)
Artifact size: 395.05 MiB -> 395.05 MiB (0.00%)

@jhpratt jhpratt deleted the rollup-I3JcUWU branch March 27, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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-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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants