Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Sep 15, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Gelbpunkt and others added 18 commits September 8, 2025 20:23
This test currently only runs on RISC-V and loongarch hosts, but assumes
that the host target is the -gnu target. By using minicore, we can
run this test on all host targets, regardless of architecture, as long
as the LLVM components are built.
This also fixes this test on musl hosts of these architectures.

Signed-off-by: Jens Reidel <[email protected]>
Since PeekMut implements Deref, it shouldn't have any methods of its
own.

See also: `std::collections::binary_heap::PeekMut::pop`
readdir_r has the same problems on FreeBSD as it does on other
platforms: it assumes a fixed NAME_MAX.  And readdir has the same
thread-safety guarantee as it does on other platforms: it's safe as long
as only one thread tries to read from the directory stream at a given
time.

Furthermore, readdir_r is likely to be removed for FreeBSD 16, so we
should stop using it now.
Despite that the `fflags` register (representing floating point
exception flags) is stated as a flag register in the reference, it's not
in the default clobber list of the RISC-V inline assembly and it would
be better to fix it.
…est, r=Mark-Simulacrum

tests/codegen-llvm: Make rust-abi-arch-specific-adjustment portable

This test currently only runs on RISC-V and loongarch hosts, but assumes that the host target is the -gnu target. By using minicore, we can run this test on all host targets, regardless of architecture, as long as the LLVM components are built.
This also fixes this test on musl hosts of these architectures (though I've only tested on loongarch64-unknown-linux-musl).
…ber-float-flags, r=Amanieu

rustc_codegen_llvm: Adjust RISC-V inline assembly's clobber list

Despite that the `fflags` register (representing floating point exception flags) is stated as a flag register [in the reference](https://doc.rust-lang.org/reference/inline-assembly.html#r-asm.rules.preserved-registers), it's not
in the default clobber list of the RISC-V inline assembly and it would be better to fix it.
…-errors

Note some previous attempts to change the Default impl for `[T; 0]`

Recently, rust-lang#145457 experimented with changing the Default impl for `[T; 0]`.

Subsequently, rust-lang#146531 also aimed to perform a similar experiment.

It seems like a good idea to add some links to the relevant source code, so that the historical context of this tricky topic is easier to find.
fix 404 MCP link

I think this is what this should point to.

The old link did a redirect, so one could also fix the redirect, but i wasn't able to find where the redirect target is defined.

Found in https://rust-lang.zulipchat.com/#narrow/channel/242906-t-compiler.2Farm/topic/Tier.20changes.20for.20bare-metal.20Arm.20AArch32.20targets/with/539395822
Switch `std::vec::PeekMut::pop` from self to this parameter.

Since PeekMut implements Deref, it shouldn't have any methods of its own.

See also: `std::collections::binary_heap::PeekMut::pop`
Pointed out: rust-lang#122742 (comment)
Related: rust-lang#122742
…mulacrum

On FreeBSD, use readdir instead of readdir_r

readdir_r has the same problems on FreeBSD as it does on other platforms: it assumes a fixed NAME_MAX.  And readdir has the same thread-safety guarantee as it does on other platforms: it's safe as long as only one thread tries to read from the directory stream at a given time.

Furthermore, readdir_r is likely to be removed for FreeBSD 16, so we should stop using it now.
…mental, r=Kobzol

bootstrap.py: disable incremental build for bootstrap in CI

locally this seems to save a quarter of a second per build of bootstrap, presumably mainly because it avoids writing 280MB to disk.  unsure if this is worth two extra lines of python, i'll let t-bootstrap decide.
@rustbot rustbot added 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 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 Sep 15, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Sep 15, 2025

📌 Commit 8f2b602 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 Sep 15, 2025
@bors
Copy link
Collaborator

bors commented Sep 15, 2025

⌛ Testing commit 8f2b602 with merge 9d82de1...

@bors
Copy link
Collaborator

bors commented Sep 16, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 16, 2025
@bors bors merged commit 9d82de1 into rust-lang:master Sep 16, 2025
11 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Sep 16, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146344 tests/codegen-llvm: Make rust-abi-arch-specific-adjustment … 3451294da8707b95fbce9e012c2047e2ffac9006 (link)
#146530 rustc_codegen_llvm: Adjust RISC-V inline assembly's clobber… 551d6df6ed977f7437521a06e358f0315f93de3d (link)
#146533 Note some previous attempts to change the Default impl for … dc224c47b073fe7800132fade97b0477f5af15a2 (link)
#146539 fix 404 MCP link 3d115dde54faa17907450160b2021afd3687ef9a (link)
#146546 Switch std::vec::PeekMut::pop from self to this parameter. a9a333bba55c86c0d4ba1f427804893a25c380ca (link)
#146549 On FreeBSD, use readdir instead of readdir_r b5edfb70de6cb508df06ef4fc73112b1f5e8f9cc (link)
#146559 Fix typo in error message 0da11d60d814c1962c4976be01ed631e96ccea96 (link)
#146563 bootstrap.py: disable incremental build for bootstrap in CI 7ca4ba7c81bd41e52389e55e884d7b3305f51495 (link)
#146576 opt-dist: don't set RUST_LOG=collector=debug a01c333b5fad203d2c44e6035cc1b78344f9c13b (link)

previous master: a454fccb02

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

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 a454fcc (parent) -> 9d82de1 (this PR)

Test differences

Show 42 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/rust-abi-arch-specific-adjustment.rs#loongarch64: ignore (only executed when the architecture is loongarch64) -> pass (J1)
  • [codegen] tests/codegen-llvm/rust-abi-arch-specific-adjustment.rs#riscv64: ignore (only executed when the architecture is riscv64) -> pass (J1)

Stage 2

  • [codegen] tests/codegen-llvm/rust-abi-arch-specific-adjustment.rs#loongarch64: ignore (only executed when the architecture is loongarch64) -> pass (J0)
  • [codegen] tests/codegen-llvm/rust-abi-arch-specific-adjustment.rs#riscv64: ignore (only executed when the architecture is riscv64) -> pass (J0)

Additionally, 38 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 9d82de19dfae60e55c291f5f28e28cfc2c1b9630 --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-aarch64-apple: 5759.0s -> 7653.2s (32.9%)
  2. pr-check-1: 1361.4s -> 1729.1s (27.0%)
  3. dist-apple-various: 3597.6s -> 4207.8s (17.0%)
  4. i686-gnu-nopt-1: 7089.1s -> 8037.3s (13.4%)
  5. x86_64-gnu-llvm-19-1: 3366.2s -> 3798.1s (12.8%)
  6. aarch64-gnu-llvm-19-1: 3239.7s -> 3626.0s (11.9%)
  7. arm-android: 5630.7s -> 6221.1s (10.5%)
  8. x86_64-rust-for-linux: 2610.8s -> 2862.5s (9.6%)
  9. x86_64-gnu-llvm-20-2: 5493.4s -> 6022.5s (9.6%)
  10. i686-gnu-2: 5438.7s -> 5896.2s (8.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
Collaborator

Finished benchmarking commit (9d82de1): 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.1%)

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

mean range count
Regressions ❌
(primary)
2.1% [2.1%, 2.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.1% [2.1%, 2.1%] 1

Cycles

Results (secondary 3.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)
3.3% [2.1%, 4.5%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 473.712s -> 475.305s (0.34%)
Artifact size: 390.18 MiB -> 390.12 MiB (-0.01%)

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 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.