Skip to content

Rollup of 6 pull requests#157948

Merged
rust-bors[bot] merged 14 commits into
rust-lang:mainfrom
jhpratt:rollup-2ojt35M
Jun 16, 2026
Merged

Rollup of 6 pull requests#157948
rust-bors[bot] merged 14 commits into
rust-lang:mainfrom
jhpratt:rollup-2ojt35M

Conversation

@jhpratt

@jhpratt jhpratt commented Jun 16, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

makai410 and others added 14 commits June 11, 2026 15:22
This allows codegen to prune the unnecessary side of the `if` for each
pointer type during monomorphization. LLVM optimizations can clean it up
too, but it's better to not emit unnecessary code in the first place.
…athanBrouwer

Introduce `-Z lint-rust-version`

Implements rust-lang/compiler-team#950 by adding the unstable flag and updating the lint machinery to accept an MSRV.

Copies most of the approach from rust-lang#149870

Tracking issue: rust-lang#157574
…ikic

test `carryless_mul` codegen

tracking issue: rust-lang#152080

Test the codegen of `carryless_mul` with LLVM 23, which has custom lowerings for x86_64, aarch64 and riscv64.

- Rust to LLVM IR: https://godbolt.org/z/sM914e4fo
- LLVM IR to assembly: https://godbolt.org/z/5Y7naa4cY

You can also see that the default expansion (when there is no special intruction available) is quite large still...

- manual https://godbolt.org/z/hbEe3WMdW (based on rust-lang#152132 (comment))
- LLVM https://godbolt.org/z/577Wb9E99

So LLVM default over 3X the number of instructions for the 64-bit and 128-bit case.
…fallback, r=clubby789

bootstrap: fix inverted success check in PowerShell download fallback

When curl fails on Windows and bootstrap falls back to PowerShell for downloads, the success/failure check is inverted: the code returns early on failure (`is_failure()`) and prints "spurious failure, trying again" on success, then exits with code 1 after three successful downloads.

This was introduced in rust-lang#141909 during the `ExecutionContext` refactoring. The original code used `self.try_run(...)` which returned `bool` (true = success). The refactoring changed the return type to `CommandOutput` but used `is_failure()` for the early-return check, inverting the logic.

The fix changes the check from `is_failure()` to `is_success()`, restoring the original behavior: return early when the download succeeds, retry when it fails.
…n, r=Darksonn

Use constant for detecting thin pointer formatting

This allows codegen to prune the unnecessary side of the `if` for each pointer type during monomorphization. In release builds, LLVM can clean it up, but it's better to not emit unnecessary code in the first place.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jun 16, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc 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. labels Jun 16, 2026
@jhpratt

jhpratt commented Jun 16, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

📌 Commit cdeae29 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 Jun 16, 2026
@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 Jun 16, 2026
@rust-bors

rust-bors Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 15m 19s
Pushing 9d862dd to main...

@rust-bors rust-bors Bot merged commit 9d862dd into rust-lang:main Jun 16, 2026
8 of 14 checks passed
@rustbot rustbot added this to the 1.98.0 milestone Jun 16, 2026
@jhpratt jhpratt deleted the rollup-2ojt35M branch June 16, 2026 07:29
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#157707 Introduce -Z lint-rust-version 642a9720a65101b81b5b6e4964af4f90abafd2da (link)
#157748 rustc_public: make sure hidden fields have their accessors c88cad2e07b4e841fb961738b0f6e7f4cd1a4298 (link)
#157831 test carryless_mul codegen e732810d0e45c362d98ac57fbd67d3cfc9bde889 (link)
#157879 bootstrap: fix inverted success check in PowerShell downloa… 05d8736a36c1024034a764d9e4666f988eea0749 (link)
#157933 Use constant for detecting thin pointer formatting 8f75139f4d6500159bb362e501fc280ee32090f4 (link)
#157934 update AttributeTemplate docs ca1663c22d6efcf500ca9834bb86fe74fcace3d2 (link)

previous master: 01dfd79246

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
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 01dfd79 (parent) -> 9d862dd (this PR)

Test differences

Show 42 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/carryless-mul.rs#aarch64: [missing] -> ignore (only executed when the target is aarch64-unknown-linux-gnu) (J0)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#riscv64: [missing] -> ignore (only executed when the target is riscv64gc-unknown-linux-gnu) (J0)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J7)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J10)

Stage 2

  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 22.1.7 is older than 23.0.0) (J1)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J2)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J3)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J4)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#x86_64: [missing] -> ignore (only executed when the target is x86_64-unknown-linux-gnu) (J5)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#aarch64: [missing] -> ignore (only executed when the target is aarch64-unknown-linux-gnu) (J6)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 22.1.7 is older than 23.0.0) (J8)
  • [assembly] tests/assembly-llvm/carryless-mul.rs#riscv64: [missing] -> ignore (only executed when the target is riscv64gc-unknown-linux-gnu) (J9)

Additionally, 30 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 9d862dd2c17b2dc90e9f623bb9279a8c4090b311 --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-distcheck: 1h 40m -> 2h 24m (+43.9%)
  2. i686-gnu-1: 2h 28m -> 1h 34m (-36.2%)
  3. x86_64-gnu-gcc: 55m 33s -> 1h 12m (+31.0%)
  4. dist-aarch64-linux: 2h 37m -> 1h 49m (-30.2%)
  5. dist-aarch64-apple: 2h 11m -> 1h 37m (-25.7%)
  6. dist-various-1: 1h 19m -> 59m 5s (-25.5%)
  7. x86_64-msvc-ext1: 2h 16m -> 1h 43m (-24.2%)
  8. i686-msvc-1: 3h 11m -> 2h 26m (-23.2%)
  9. dist-riscv64-linux: 1h 11m -> 1h 25m (+21.0%)
  10. pr-check-2: 45m 25s -> 36m 25s (-19.8%)
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

Finished benchmarking commit (9d862dd): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

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

Cycles

Results (secondary -30.6%)

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

Binary size

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

Bootstrap: 519.231s -> 519.36s (0.02%)
Artifact size: 401.41 MiB -> 400.90 MiB (-0.13%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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