Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Dec 15, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

lemire and others added 15 commits December 7, 2025 16:51
Replace the f32 test case with an f64 equivalent to improve coverage
for parsing large digit counts in double-precision floating-point
conversion.
Mention amdgpu-device-libs for allocator and println support and mention
the necessary target flag for GPUs from some some series without xnack
support.

For the last half year, there were no major changes in the
amdgpu-device-libs crate (in fact, there was no need to update the
crate), so I believe it is stable enough to mention it here.

The xnack-support flag is something I stumbled upon recently, when more
complex printlns failed on a certain GPU.
The amdgpu target uses vector types in various places. The vector types
can be used on all architectures, there is no associated target feature
that needs to be enabled.

The largest vector type found in LLVM intrinsics is `v32i32`
(`[32 x i32]`) for mfma intrinsics. Note that while this intrinsic is
only supported on some architectures, the vector type itself is
supported on all architectures.
This commit changes the links in the source code that link to a platform
specific implementation of the POSIX interface of `clock_gettime`,
despite the respective areas in the code being specifically UNIX system
agnostic, thereby making it more reasonable to link the POSIX specific
document.
Fixes the run-make test framework to use target-specific library linking
instead of host-based detection. Previously, tests for hexagon targets
failed because the framework used uname() to detect libraries to link,
which returned Linux libraries (-lm -lrt -ldl -lpthread) that don't
exist on all hexagon targets.

- Use target() instead of uname() to detect cross-compilation targets
- Add hexagon-specific library configuration (-lunwind -lclang_rt.builtins-hexagon)
- Maintain backward compatibility for host-native compilation

This enables hexagon tests to compile and link successfully with the
appropriate runtime libraries for the hexagon platform.
test: update duplicate many_digits test to use f64 instead of f32

Replace the f32 test case with an f64 equivalent to improve coverage for parsing large digit counts in double-precision floating-point conversion. Specifically, this PR updates the `many_digits` test in `library/coretests/tests/num/dec2flt/parse.rs` to test f64 (double-precision) parsing instead of f32 (single-precision).

The test verifies that decimal strings with an excessive number of digits (beyond `Decimal::MAX_DIGITS`) are parsed correctly, ensuring proper truncation of insignificant digits. Previously, the same test was repeated twice (see comment rust-lang#86761 (comment) by `@Viatorus).`

## Changes

- Replaced the duplicated f32 test case with an equivalent f64 test case.
- Updated the expected bit pattern and input string to a very long decimal with many trailing zeros, testing the limits of f64 precision.
mir_build: Move and rename code for partitioning match candidates

I've always found it confusing that this code uses the word “sort” to describe partitioning candidates into buckets, since it isn't *sorting* them in the usual sense.

This PR therefore renames the relevant methods:
- `sort_candidates` → `partition_candidates_into_buckets`
- `sort_candidate` → `choose_bucket_for_candidate`

In addition, this PR moves those methods into their own `buckets` module, updates some comments to reflect the renaming, and also makes `partition_candidates_into_buckets` return a named struct instead of a tuple.

There should be no change to compiler behaviour.
Move ambient cdb discovery from compiletest to bootstrap

- Follow-up to rust-lang#149710

---

As with the previous PR, this PR takes the compiletest code for discovering an “ambient” `cdb` in the user's path, and moves it to bootstrap.

The discovery code is indeed questionable, but improving it is out of scope for this PR.

r? jieyouxu
Improve amdgpu docs: Mention device-libs and xnack

Mention amdgpu-device-libs for allocator and println support and mention the necessary target flag for GPUs from some some series without xnack support.

For the last half year, there were no major changes in the amdgpu-device-libs crate (in fact, there was no need to update the crate), so I believe it is stable enough to mention it here.

The xnack-support flag is something I stumbled upon recently, when more complex printlns failed on a certain GPU.

Tracking issue: rust-lang#135024
Allow vector types for amdgpu

The amdgpu target uses vector types in various places. The vector types can be used on all architectures, there is no associated target feature that needs to be enabled.

The largest vector type found in LLVM intrinsics is `v32i32` (`[32 x i32]`) for mfma intrinsics. Note that while this intrinsic is only supported on some architectures, the vector type itself is supported on all architectures.

Tracking issue: rust-lang#135024

(I used an empty string to say “does not need a target feature”. If you prefer an `Option` or something like that, I’ll change it.)
Link POSIX instead of Linux manual for Instant

This commit changes the links in the source code that link to a platform specific implementation of the POSIX interface of `clock_gettime`, despite the respective areas in the code being specifically UNIX system agnostic, thereby making it more reasonable to link the POSIX specific document.
… r=jieyouxu

Correct library linking for hexagon targets in run-make tests

Fixes the run-make test framework to use target-specific library linking instead of host-based detection. Previously, tests for hexagon targets failed because the framework used uname() to detect libraries to link, which returned Linux libraries (-lm -lrt -ldl -lpthread) that don't exist on all hexagon targets.

- Use target() instead of uname() to detect cross-compilation targets
- Add hexagon-specific library configuration (-lunwind -lclang_rt.builtins-hexagon)
- Maintain backward compatibility for host-native compilation

This enables hexagon tests to compile and link successfully with the appropriate runtime libraries for the hexagon platform.
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like 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. rollup A PR which is a rollup labels Dec 15, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Dec 15, 2025

📌 Commit fa52c96 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 Dec 15, 2025
@bors
Copy link
Collaborator

bors commented Dec 15, 2025

⌛ Testing commit fa52c96 with merge ee44706...

@bors
Copy link
Collaborator

bors commented Dec 15, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing ee44706 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 15, 2025
@bors bors merged commit ee44706 into rust-lang:main Dec 15, 2025
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Dec 15, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149744 test: update duplicate many_digits test to use f64 instead … bcac17f371575060f9ea241ec4ea4adbbb6dd600 (link)
#149946 mir_build: Move and rename code for partitioning match cand… b283201113ef8e79c71151edb7e416f69e23c789 (link)
#149987 Move ambient cdb discovery from compiletest to bootstrap 27b4791263b0dbabee4ce93c777cc3a480a9ae92 (link)
#149990 Improve amdgpu docs: Mention device-libs and xnack a9561d7a17e2e64227e51ed211dd1c5aafdb707b (link)
#149994 Allow vector types for amdgpu 913d773f78c580857365524f74dab17bc6f33317 (link)
#149997 Link POSIX instead of Linux manual for Instant b4839f45fac6de81586d642850f2398d315f5dfe (link)
#150010 Correct library linking for hexagon targets in run-make tes… 33806d3197b43dc7604453ddb5249d8306aabc2b (link)

previous master: 693f365667

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

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 693f365 (parent) -> ee44706 (this PR)

Test differences

Show 69 test diffs

Stage 2

  • [run-make] tests/run-make/compressed-debuginfo-zstd: ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) -> pass (J0)

Additionally, 68 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 ee447067e18f07aa6ee67dcf0ddc7b07eb675672 --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-arm-linux-musl: 16771.4s -> 5809.7s (-65.4%)
  2. dist-x86_64-solaris: 15277.3s -> 5324.4s (-65.1%)
  3. dist-x86_64-illumos: 16147.2s -> 5946.8s (-63.2%)
  4. dist-sparcv9-solaris: 13888.7s -> 5371.1s (-61.3%)
  5. dist-android: 3899.8s -> 1624.4s (-58.3%)
  6. dist-x86_64-apple: 17609.7s -> 7529.5s (-57.2%)
  7. dist-x86_64-freebsd: 10663.9s -> 4659.0s (-56.3%)
  8. pr-check-1: 4614.3s -> 2057.8s (-55.4%)
  9. dist-x86_64-musl: 16099.8s -> 7262.2s (-54.9%)
  10. dist-ohos-armv7: 9293.4s -> 4288.0s (-53.9%)
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 (ee44706): 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 -2.7%)

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.7% [-3.2%, -2.2%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.7% [-3.2%, -2.2%] 3

Cycles

Results (primary -3.4%, secondary -15.7%)

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)
2.9% [2.9%, 2.9%] 1
Improvements ✅
(primary)
-3.4% [-4.6%, -2.2%] 9
Improvements ✅
(secondary)
-17.5% [-24.5%, -11.0%] 10
All ❌✅ (primary) -3.4% [-4.6%, -2.2%] 9

Binary size

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

Bootstrap: 480.53s -> 478.788s (-0.36%)
Artifact size: 390.23 MiB -> 390.22 MiB (-0.00%)

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

Labels

A-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like 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-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