Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Nov 3, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Qelxiros and others added 30 commits September 15, 2025 15:25
This reverts commit 24f89ca53d3374ed8d3e0cbadc1dc89eea41acba.
intrinsic-test: test intrinsics with patched `core_arch`
memchr 2.7.6 contains a bugfix for aarch64_be
 - Correct mistake in x86_64/adx.rs where it was not testing `_addcarryx` at all
Use SIMD intrinsics whereever possible
_kshiftli_mask32 and _kshiftli_mask64 to zero out when the amount of
shift exceeds the bit length of the input argument.
zero out when the amount of shift exceeds the bit length of the input
argument.
to zero out when the amount of shift exceeds 16.
…shift_instructions

`core_arch::x86` : Fix the implementation of `_kshift` instructions
Use SIMD intrinsics for `vfmaddsubph` and `vfmsubaddph`
sayantn and others added 11 commits October 30, 2025 11:25
…p-constants

`intrinsic-test`: dedup constants
Or worded differently, explicitly remark non-stable-guarantee of
`TypeId` layout and size.
This updates the rust-version file to 73e6c9e.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

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

This merge was created using https://github.com/rust-lang/josh-sync.
it is no longer used (and was also incorrect)
…s, r=jhpratt

add SliceIndex wrapper types Last and Clamp<Idx>

Tracking issue: rust-lang#146179
…uarantees, r=scottmcm

Make explicit that `TypeId`'s layout and size are unstable

Or worded differently, explicitly remark non-stable-guarantee of `TypeId` layout and size.

This PR makes no *additional* guarantees or non-guarantees, it only emphasizes that `TypeId`'s size and layout are unstable like any other `#[repr(Rust)]` types.

This was discussed during [#t-compiler/meetings > &rust-lang#91;weekly&rust-lang#93; 2025-10-30 @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202025-10-30/near/547949347), where the compiler team discussed a request rust-lang#148265 to have the standard library (and language) commit to `TypeId` guaranteeing a size upper bound of 16 bytes. In the meeting, the consensus was:

- We were sympathetic to the use case discussed in the request PR, however we feel like this stability guarantee is premature, given that there are unresolved questions surrounding the intended purpose of `TypeId`, and concerns surrounding its collision-resistance properties rust-lang#10389 and rust-lang#129014. We would prefer not making any of such guarantee until the collision-resistance concerns are resolved.
- Committing to a stability guarantee on the size upper bound now would close the door to making `TypeId` larger (even if unlikely for perf reasons).

Given that we have previously broken people who asserted the size of `TypeId` is 8 bytes, it was also discussed in the meeting that we should *explicitly* note that the size and layout of `TypeId` is not a stable guarantee, and is subject to changes between Rust releases, and thus cannot be relied upon -- if breakage in people's code is due to that assumption, it will be considered a won't-fix.

- So even if `#[repr(Rust)]` types have unstable size and layout, this PR makes it explicit for `TypeId` since this type can feel "special" and users can be lead into thinking its size and layout is something they can rely upon.

r? `@scottmcm` (or libs/libs-api/lang)
…r=sayantn

stdarch subtree update

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

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

r? `@sayantn`

---

Only the last 2 commits contain manual changes to some incorrect miri tests. The remainder is mechanical, and just synchronizes changes from stdarch.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Nov 3, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 3, 2025

📌 Commit 5f4a90e has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Nov 3, 2025
@bors
Copy link
Collaborator

bors commented Nov 3, 2025

⌛ Testing commit 5f4a90e with merge f2bae99...

@bors
Copy link
Collaborator

bors commented Nov 3, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing f2bae99 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 3, 2025
@bors bors merged commit f2bae99 into rust-lang:master Nov 3, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 3, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146260 add SliceIndex wrapper types Last and Clamp 0bf670d17a40eb4829195ce921844de2afe66728 (link)
#148394 Make explicit that TypeId's layout and size are unstable efb57e4079c99e76d4c0aa97d3000c71e075f19e (link)
#148402 stdarch subtree update 93c2a08591620529526d0a3982073db0651b2ca9 (link)

previous master: 7878a91944

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 Nov 3, 2025

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 7878a91 (parent) -> f2bae99 (this PR)

Test differences

Show 72 test diffs

Stage 1

  • index::test_clamp_ops_range: [missing] -> pass (J0)
  • index::test_clamp_ops_range_from: [missing] -> pass (J0)
  • index::test_clamp_ops_range_inclusive: [missing] -> pass (J0)
  • index::test_clamp_ops_range_to_inclusive: [missing] -> pass (J0)
  • index::test_clamp_range_full: [missing] -> pass (J0)
  • index::test_clamp_range_range: [missing] -> pass (J0)
  • index::test_clamp_range_range_from: [missing] -> pass (J0)
  • index::test_clamp_range_range_inclusive: [missing] -> pass (J0)
  • index::test_clamp_range_range_to_inclusive: [missing] -> pass (J0)
  • index::test_clamp_range_to: [missing] -> pass (J0)
  • index::test_clamp_usize: [missing] -> pass (J0)

Stage 2

  • index::test_clamp_ops_range: [missing] -> pass (J1)
  • index::test_clamp_ops_range_from: [missing] -> pass (J1)
  • index::test_clamp_ops_range_inclusive: [missing] -> pass (J1)
  • index::test_clamp_ops_range_to_inclusive: [missing] -> pass (J1)
  • index::test_clamp_range_full: [missing] -> pass (J1)
  • index::test_clamp_range_range: [missing] -> pass (J1)
  • index::test_clamp_range_range_from: [missing] -> pass (J1)
  • index::test_clamp_range_range_inclusive: [missing] -> pass (J1)
  • index::test_clamp_range_range_to_inclusive: [missing] -> pass (J1)
  • index::test_clamp_range_to: [missing] -> pass (J1)
  • index::test_clamp_usize: [missing] -> pass (J1)

Additionally, 50 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 f2bae990e89bf696e86706b524ac32ab72945438 --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-x86_64-apple: 6097.9s -> 8021.1s (+31.5%)
  2. pr-check-1: 1918.7s -> 1459.3s (-23.9%)
  3. x86_64-rust-for-linux: 3110.5s -> 2616.5s (-15.9%)
  4. i686-gnu-nopt-1: 8227.5s -> 6949.6s (-15.5%)
  5. x86_64-gnu-gcc: 3536.1s -> 3014.3s (-14.8%)
  6. x86_64-gnu-stable: 7426.9s -> 6354.0s (-14.4%)
  7. dist-aarch64-apple: 6931.9s -> 7820.8s (+12.8%)
  8. x86_64-gnu-miri: 4810.8s -> 4326.2s (-10.1%)
  9. i686-gnu-2: 5803.8s -> 5224.3s (-10.0%)
  10. aarch64-gnu-llvm-20-2: 2555.2s -> 2311.2s (-9.6%)
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
Collaborator

Finished benchmarking commit (f2bae99): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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

Max RSS (memory usage)

Results (primary 2.6%, secondary 0.7%)

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

mean range count
Regressions ❌
(primary)
6.5% [2.6%, 10.4%] 2
Regressions ❌
(secondary)
0.7% [0.7%, 0.7%] 3
Improvements ✅
(primary)
-1.2% [-1.8%, -0.6%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.6% [-1.8%, 10.4%] 4

Cycles

Results (primary 2.4%, secondary 0.9%)

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)
4.1% [2.9%, 5.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.2% [-2.8%, -1.6%] 2
All ❌✅ (primary) 2.4% [2.4%, 2.4%] 1

Binary size

Results (primary -0.0%)

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

Bootstrap: 475.242s -> 475.169s (-0.02%)
Artifact size: 390.89 MiB -> 390.81 MiB (-0.02%)

@Kobzol
Copy link
Member

Kobzol commented Nov 3, 2025

Tiny doc losses caused likely either by stdlib doc changes introduced by #146260 or #148402 or both. I don't think we need to even do a perf. run here.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.