Skip to content

Rollup of 12 pull requests#157095

Merged
rust-bors[bot] merged 28 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-eMYdzcn
May 29, 2026
Merged

Rollup of 12 pull requests#157095
rust-bors[bot] merged 28 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-eMYdzcn

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

PSeitz and others added 28 commits October 31, 2025 21:45
This patch updates the compiler and std code to match recent libc updates
affecting AIX targets. In particular:

- Fix `libc::loadquery` to use `*mut c_void` instead of `*mut u8`,
  which is aligned with the expected FFI signature.
- Replace `st_*time` stat fields with the newer `st_atim`, `st_mtim`, `st_ctim`
  fields across AIX-specific filesystem code.
`generics_of` interns some strings unnecessarily, because the resulting
symbols are never used. This commit uses `sym::empty` instead.
This seems like it was an oversight. It will be necessary in a future PR
to serialize MaybeLtoModules as necessary to move LTO to the link phase.
This would be useful for codegen backends that don't support LTO, yet do
want to implement WriteBackendMethods.
This used to be a FCW emitted along the way. But it's a hard error now,
so we should handle it like other cast errors.
Turns out these were all making `OperandValue::Immediate`s already -- the intrinsic always returns a primitive scalar -- so pretty easy to handle.

While I was looking at it, I also "rustified" the intrinsic signature a bit: returning a `bool` and taking a generic pointee and `unsafe fn`s cleans up the call in `std` a bit without making the implementation in the backend any harder.
It was useful initially when bootstrapping the minicore test infra to
keep an close eye on how well it was working and if it ran into
problems. The ping now has outlived its usefulness.
…nwind, r=dianqk

Stop needing an alloca for `catch_unwind`

Turns out these were all making `OperandValue::Immediate`s already -- the intrinsic always returns a primitive scalar -- so pretty easy to handle.

cc rust-lang#153250 rust-lang/compiler-team#970

While I was looking at it, I also "rustified" the intrinsic signature a bit: returning a `bool` and taking a generic pointee and `unsafe fn`s cleans up the call in `std` a bit without making the implementation in the backend any harder.

r? dianqk
Couple of changes to help with moving LTO to the link phase

Part of rust-lang/compiler-team#908
add inline to copy_within

In [lz4_flex](https://github.com/PSeitz/lz4_flex) a fixed size parameter is used to `copy_within` to avoid calls to libc memmove.
However, I can see in the call stack still see calls to libc. I think it's because of the missing `inline`.

It's using the equivalent of this:
[https://godbolt.org/z/cKqYYvKbT](https://godbolt.org/z/cKqYYvKbT)
(in this example `copy_within` is getting inlined)
…RalfJung

Add splitting caveats to `{read,write}_volatile`

It sounds like we don't actually have guarantees right now ([#t-opsem > Defining volatile splitting @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/Defining.20volatile.20splitting/near/597476292)) so let's document that.  I think this doesn't need an FCP since it's not actually guaranteeing anything.
…hercote

Add frame pointer annotations to the module

While working on rust-lang#156973 I found llvm/llvm-project#188234 which points out that the frame pointer annotation is also missing.
…, r=JohnTitor

[AIX] Sync compiler and std with libc changes

This patch updates the compiler and std code to match recent libc updates affecting AIX targets. In particular:

- Fix `libc::loadquery` to use `*mut c_void` instead of `*mut u8`, which is aligned with the expected FFI signature.
- Replace `st_*time` stat fields with the newer `st_atim`, `st_mtim`, `st_ctim` fields across AIX-specific filesystem code.
…r=adwinwhite

Avoid some symbol interning

`generics_of` interns some strings unnecessarily, because the resulting symbols are never used. This commit uses `sym::empty` instead.

r? @adwinwhite
…ubilee

android: implement file locking by calling flock

Fixes rust-lang#148325
…r=yotamofek

Fix `cfg` typo in rustdoc book

Fixes typo spotted by @yotamofek [here](rust-lang#157039 (comment)).

r? @yotamofek
…r=JohnTitor

Clean up error reporting for impl Drop enum casts

This used to be a FCW emitted along the way. But it's a hard error now, so we should handle it like other cast errors.
…core-ping, r=jieyouxu

Remove minicore ping for myself

It was useful initially when bootstrapping the minicore test infra to keep an close eye on how well it was working and if it ran into problems. The ping now has outlived its usefulness.

(To improve my ping/notif SNR.)

r? ghost
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label May 29, 2026
@rustbot rustbot added the A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. label May 29, 2026
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 29, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 29, 2026

💔 Test for 8cac4fc failed: CI. Failed job:

@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors retry

@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 May 29, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors treeclosed=1
Since two autojobs in a row failed with failed downloads

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 29, 2026

Tree closed for PRs with priority less than 1.

@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 29, 2026

☀️ Try build successful (CI)
Build commit: f6ef4d1 (f6ef4d16f86f1ce5830a931d6f77c1f26993e40e, parent: dc375db7d8df0aa450e622c529147c95eee756f5)

@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors treeopen

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 29, 2026

Tree is now open for merging.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 29, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 21m 10s
Pushing b5d1746 to main...

@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 May 29, 2026
@rust-bors rust-bors Bot merged commit b5d1746 into rust-lang:main May 29, 2026
14 checks passed
@rustbot rustbot added this to the 1.98.0 milestone May 29, 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 dc375db (parent) -> b5d1746 (this PR)

Test differences

Show 186 test diffs

186 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 b5d1746e7d25465729706ac5a0004b035e219d01 --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. dist-apple-various: 1h 35m -> 2h 15m (+42.6%)
  2. x86_64-gnu-llvm-21-1: 50m 21s -> 33m 43s (-33.0%)
  3. dist-android: 22m 52s -> 29m 39s (+29.6%)
  4. x86_64-mingw-2: 2h 6m -> 2h 39m (+26.6%)
  5. dist-x86_64-msvc-alt: 2h 47m -> 2h 8m (-23.1%)
  6. x86_64-msvc-ext2: 1h 29m -> 1h 49m (+21.9%)
  7. dist-x86_64-llvm-mingw: 1h 56m -> 1h 32m (-21.1%)
  8. x86_64-gnu-llvm-21-2: 1h 29m -> 1h 14m (-16.2%)
  9. x86_64-gnu-aux: 2h 10m -> 2h 25m (+11.3%)
  10. x86_64-gnu-miri: 1h 22m -> 1h 30m (+10.5%)
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
#148345 add inline to copy_within 89a5b6ad5014101097cb57ab718b22ef1ee11249 (link)
#156867 Stop needing an alloca for catch_unwind 882e36d709834044a2d96504fe6f5b85e89ca401 (link)
#156931 Add splitting caveats to {read,write}_volatile d418d907650cfec853546ca1cd470a710086ab74 (link)
#156980 Add frame pointer annotations to the module 38a70823143860a58c19c379bac2234dc12f1717 (link)
#156991 [AIX] Sync compiler and std with libc changes afe769680665f6d8a7522c2cbdec23cb945e211f (link)
#157008 Avoid some symbol interning f7fee4e2ad03883f483958e1b0bb730886e55d5c (link)
#157038 android: implement file locking by calling flock 1479c672c3d40246ff451825837148fdf7f964f8 (link)
#157050 Couple of changes to help with moving LTO to the link phase 928fc441de7d79f254ee87f35ea8fb399def7034 (link)
#157071 Fix cfg typo in rustdoc book 82ac4a52b22819f69470a135200aef48c0ef1cbb (link)
#157080 Fix typo in Rustdoc release notes 6a709f9018a070a297c1d3d4fcba86354f9dbf96 (link)
#157084 Clean up error reporting for impl Drop enum casts 3ac77d4bcd43b0cf6003240a1367adea9d87905d (link)
#157091 Remove minicore ping for myself 7463fa2a0bfa45817dcaa4b319de44389eca7879 (link)

previous master: dc375db7d8

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 (b5d1746): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

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.5% [0.5%, 0.5%] 1
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) 0.5% [0.5%, 0.5%] 1

Max RSS (memory usage)

Results (primary -0.9%)

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

mean range count
Regressions ❌
(primary)
3.5% [3.5%, 3.5%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-5.4% [-5.4%, -5.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.9% [-5.4%, 3.5%] 2

Cycles

Results (primary -2.1%, secondary 3.8%)

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)
3.8% [3.8%, 3.8%] 1
Improvements ✅
(primary)
-2.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Binary size

Results (primary -0.2%, secondary -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.0% [0.0%, 0.0%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-2.0%, -0.0%] 9
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.0%] 21
All ❌✅ (primary) -0.2% [-2.0%, 0.0%] 13

Bootstrap: 510.27s -> 510.23s (-0.01%)
Artifact size: 400.65 MiB -> 400.74 MiB (0.02%)

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-meta Area: Issues & PRs about the rust-lang/rust repository itself merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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-release Relevant to the release subteam, 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.