Skip to content

Rollup of 23 pull requests#158991

Merged
rust-bors[bot] merged 96 commits into
rust-lang:mainfrom
jhpratt:rollup-dpRq53N
Jul 9, 2026
Merged

Rollup of 23 pull requests#158991
rust-bors[bot] merged 96 commits into
rust-lang:mainfrom
jhpratt:rollup-dpRq53N

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 9, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

cammeresi and others added 30 commits May 12, 2026 17:33
This is just more helpful for knowing what all needs to be fixed when CI
fails.
Replacing `iter_specializations` (which repeatedly invokes a callback)
with an iterator implementation allows `Itertools::format_with` to be
used more broadly, which in turn allows disparate string interpolation
to be combined and hopefully provide greater context to the reader.
Updates `get_load_function` to return `svld{n}_{ty}` when loading a
scalable vector type. Caller of `get_load_function` will still need
updated to handle passing the predicate arguments to these load
functions.
Updates the headers used by generated C code and the target feature flags
passed to the C compiler to enable SVE.
Some SVE intrinsics take booleans as arguments, so there is a need to
support generating a test value array for booleans.
Constraints that correspond to enum types - such as `svpattern` and
`svprfop` - need to be converted to the enum type in order to be used in
a generic instantiation - so introduce a const function for both types
that provides this mapping.
Predicate arguments of type `svbool_t` do not need test value arrays to
be generated as the same enable-all-lanes predicate will be passed to all
invocations of the intrinsic under test. There is no `svld1` equivalent
for `svbool_t` that could be used even if there were test values to
use.
Support defining a local variable containing the predicate that will be
used with all subsequent scalable vector intrinsics.
Implementation of `get_comparison_function` and `get_predicate_function`
for SVE which uses the relevant SVE intrinsics.
Instead of assuming that any scalable boolean argument is a predicate,
handle predicates specifically and generate test values for `svbool_t`
values.
SVE isn't a baseline target feature for `aarch64-unknown-linux-gnu` but
should be enabled when running tests.
Like with non-SVE test generation, comparison of float results in
scalable vectors need special-handling of comparisons.
Enables generation of tests for SVE intrinsics leveraging the changes
from the previous commits.
This makes it far easier to debug what's potentially gone wrong with an
intrinsic test.
Same as previous redefinitions in stdarch#2163 - these were missed in
that PR because the hardware being tested on was missing the hardware
feature required for the instructions these use.
loongarch: Use `intrinsics::simd` for v{ld,st}[x]
Merge stdarch-gen-hexagon-scalar into stdarch-gen-hexagon
loongarch: Use `intrinsics::simd` for vrotr[i]
loongarch: Use `intrinsics::simd` for vfrecip
@rustbot rustbot added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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 Jul 9, 2026
@jhpratt

jhpratt commented Jul 9, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 6152879 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 Jul 9, 2026
@jhpratt

jhpratt commented Jul 9, 2026

Copy link
Copy Markdown
Member Author

@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1,i686-msvc-*

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 9, 2026
Rollup of 23 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
try-job: i686-msvc-*
@rust-bors

rust-bors Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 6dda5d7 (6dda5d7d44deba5369e889b01f2dc72173e45ca4)
Base parent: 14cae68 (14cae681329a63c622a6e1fbe1d30f9374bc51d8)

@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 Jul 9, 2026
@rust-bors

rust-bors Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 30m 27s
Pushing 561ea2b to main...

@github-actions

github-actions Bot commented Jul 9, 2026

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 07074cf (parent) -> 561ea2b (this PR)

Test differences

Show 932 test diffs

Stage 1

  • [ui (polonius)] tests/ui/abi/too-big-byval-abi-issue-148853.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/macros/local-ambiguity-option-ordering.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/suggestions/suggest-add-self-issue-131084.rs: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/range-len-try-from.rs: [missing] -> pass (J6)
  • [run-make] tests/run-make/unstable-flag-required: pass -> [missing] (J6)
  • [run-make] tests/run-make/wasm-emscripten-main-symbol: [missing] -> ignore (only executed when the target is wasm32-unknown-emscripten) (J6)
  • [ui] tests/rustdoc-ui/output-format-coveragejson-emit-depinfo.rs: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-doctests-unstable.rs: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-irjson-emit-depinfo.rs: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-irjson-unstable.rs: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-json-emit-html.rs#html_non_static_coverage: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-json-emit-html.rs#html_static_coverage: [missing] -> pass (J6)
  • [ui] tests/rustdoc-ui/output-format-unknown.rs: [missing] -> pass (J6)
  • [ui] tests/ui/abi/too-big-byval-abi-issue-148853.rs: [missing] -> pass (J7)
  • [ui] tests/ui/macros/local-ambiguity-option-ordering.rs: [missing] -> pass (J7)
  • [ui] tests/ui/suggestions/suggest-add-self-issue-131084.rs: [missing] -> pass (J7)
  • clone_into_alloc_failure_leaves_target_valid: [missing] -> pass (J9)
  • vec_deque::retain_back_leak: [missing] -> pass (J9)
  • vec_deque::test_retain_back: [missing] -> pass (J9)
  • vec_deque::test_truncate_front: pass -> [missing] (J9)
  • vec_deque::truncate_front_leak: pass -> [missing] (J9)
  • [codegen] tests/codegen-llvm/range-len-try-from.rs: [missing] -> ignore (only executed when the pointer width is 64bit) (J11)

Stage 2

  • [codegen] tests/codegen-llvm/range-len-try-from.rs: [missing] -> ignore (only executed when the pointer width is 64bit) (J0)
  • [ui] tests/ui/macros/local-ambiguity-option-ordering.rs: [missing] -> pass (J1)
  • [ui] tests/ui/suggestions/suggest-add-self-issue-131084.rs: [missing] -> pass (J1)
  • [run-make] tests/run-make/unstable-flag-required: pass -> [missing] (J2)
  • [run-make] tests/run-make/wasm-emscripten-main-symbol: [missing] -> ignore (only executed when the target is wasm32-unknown-emscripten) (J2)
  • [ui] tests/ui/abi/too-big-byval-abi-issue-148853.rs: [missing] -> ignore (only executed when the pointer width is 64bit) (J3)
  • clone_into_alloc_failure_leaves_target_valid: [missing] -> pass (J4)
  • vec_deque::retain_back_leak: [missing] -> pass (J4)
  • vec_deque::test_retain_back: [missing] -> pass (J4)
  • vec_deque::test_truncate_front: pass -> [missing] (J4)
  • vec_deque::truncate_front_leak: pass -> [missing] (J4)
  • [ui] tests/rustdoc-ui/output-format-coveragejson-emit-depinfo.rs: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-doctests-unstable.rs: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-irjson-emit-depinfo.rs: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-irjson-unstable.rs: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-json-emit-html.rs#html_non_static_coverage: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-json-emit-html.rs#html_static_coverage: [missing] -> pass (J8)
  • [ui] tests/rustdoc-ui/output-format-unknown.rs: [missing] -> pass (J8)
  • [ui] tests/ui/abi/too-big-byval-abi-issue-148853.rs: [missing] -> pass (J10)
  • [codegen] tests/codegen-llvm/range-len-try-from.rs: [missing] -> pass (J12)

Additionally, 890 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 561ea2bfa3022226082e2db39d6ccb241e9e34bc --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. x86_64-gnu-gcc-core-tests: 8m 8s -> 14m 8s (+73.8%)
  2. x86_64-gnu-distcheck: 2h 16m -> 1h 25m (-37.4%)
  3. dist-powerpc64le-linux-musl: 1h 36m -> 1h 8m (-29.1%)
  4. x86_64-msvc-2: 1h 46m -> 2h 17m (+28.3%)
  5. dist-i686-mingw: 2h 47m -> 2h (-28.0%)
  6. dist-arm-linux-musl: 1h 19m -> 1h 39m (+25.7%)
  7. x86_64-msvc-ext2: 1h 51m -> 1h 24m (-24.4%)
  8. i686-gnu-nopt-2: 2h 18m -> 1h 45m (-23.5%)
  9. x86_64-gnu-llvm-22-3: 1h 34m -> 1h 53m (+20.1%)
  10. dist-x86_64-apple: 1h 43m -> 2h 3m (+19.4%)
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
#158968 stdarch subtree update 01d152679af17afa9b34dbf305c944370a294569 (link)
#154445 rustdoc: Represent --output-format=json coverage and ir d… 128855816aebd1f2967dfa3fbd7ad0f30d10e186 (link)
#158495 Rename HAS_CT_PROJECTION to HAS_CONST_ALIAS 73699df4508a702e5916e7dfbec20ee9546937e6 (link)
#158666 Carry the b_offset inside BackendRepr::ScalarPair 4ccf0eadf7087640a20d0b5e09ea4b73b4d67033 (link)
#158870 std: merge the unix-like io::error modules into one file 2393b19468d442d283315255fccdcc25e0c706f0 (link)
#158920 Update wasm-component-ld to 0.5.26 d77463253f3e85c15e0ed969f9702bf59aa24532 (link)
#158926 wrapping_sh* methods: clarify underspecified reference 2c0ef3ceac7a87183291442795d1873e126cd5f2 (link)
#158927 add core test run with -Zforce-intrinsic-fallback 4bf450a9a988610d6b50bf699cb2145f0f4b0f8b (link)
#158932 Do not build the compiler when invoking x perf compare e908ae5874a578f917966cf6f286df2d44a6d051 (link)
#158937 Emit the emscripten entry point as __main_argc_argv 03e8d3c0758713846f5a887d83715b31170ea38a (link)
#151379 Stabilize VecDeque::retain_back from truncate_front 13993c572b3491ba6911024dd6541c1adf79c436 (link)
#156144 Better docs for PartialEq (includes macro rename) 5af531453a54cfc5ffb7fc971d02bfd59340758f (link)
#156548 Library support for aarch64-unknown-linux-pauthtest target 06aeacfca4d6d411fa1ff75cd0521e4b9a91006d (link)
#157995 Vec::dedup_by docs explicit function argument order 4f019d94dc589655c7862cb6169b9eeb543d5902 (link)
#158307 CI job for parallel frontend ui tests 6b45ad68389260bc7d5671959d6223055547f16a (link)
#158741 Simplify Option::into_flat_iter signature dc8226c80a02ee9b5a2e1b6efd98a7727dfd20ef (link)
#158807 Add regression test for CString::clone_into unwind safety e521304261dcf7e3d8b4887505f8f7ec69bbe8f2 (link)
#158862 Fix the span for parameter suggestion 8918e42e8a24211842a145662c78a8b6b84ae3fe (link)
#158894 Make the ordering of non-terminal binds in ambiguity error … 9b4954b82fc6431a8daa86c0bc45415a715518d2 (link)
#158902 add codegen test for range length bound propagation 5dc7a512eeb4e24b0f1176e4d266498656683475 (link)
#158913 Update browser-ui-test version to 0.24.1 84a1b24f194bc6ffc3132f533acede5074da87a1 (link)
#158935 std: support real fd methods on Emscripten e667454ee94aa93e592d436471db179a4eb163b1 (link)
#158978 Add regression test for too-big by-value ABI args 25f5b837757618fd5ed73f2c00709a7d56fff385 (link)

previous master: 07074cfe1d

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

Overall result: ❌✅ regressions and improvements - please read:

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

Max RSS (memory usage)

Results (primary -2.2%, secondary -4.3%)

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)
- - 0
Improvements ✅
(primary)
-2.2% [-2.6%, -1.9%] 2
Improvements ✅
(secondary)
-4.3% [-6.6%, -2.0%] 2
All ❌✅ (primary) -2.2% [-2.6%, -1.9%] 2

Cycles

Results (primary 3.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)
3.6% [3.6%, 3.6%] 1
Regressions ❌
(secondary)
2.4% [2.0%, 2.7%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.2% [-6.2%, -6.2%] 1
All ❌✅ (primary) 3.6% [3.6%, 3.6%] 1

Binary size

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

Bootstrap: 489.352s -> 489.147s (-0.04%)
Artifact size: 388.43 MiB -> 388.47 MiB (0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend A-testsuite Area: The testsuite used to check the correctness of rustc F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like perf-regression Performance regression. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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.