Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

@JonathanBrouwer JonathanBrouwer commented Dec 21, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

adamgemmell and others added 9 commits December 3, 2025 12:03
…-fix, r=Amanieu

Fix d32 usage in Arm target specs

Fixes rust-lang#149399 - after checking with an LLVM engineer Rust's feature implications do correctly map to LLVM's. The target specs originally had +vfp3,+d16, but were mistakenly fixed to +vfp3,-d32 which disables vfp3 again.

Some targets specify +vfp2,-d32, and since vfp2 shouldn't imply d32 the -d32 is unneeded.

The list of Arm features is quite old and since Arm is now a target maintainer of many of them we'll go in and update them. We should probably add vfp3d16 and similar as rust has no way to express these right now after d16 was removed.

The LLVM features expand like this:

```
vfp4 -> vfp3 + fp16 + vfp4d16 + vfp4sp
vfp4d16 -> vfp3d16 + fp16 + fp64 + vfp4d16sp
vfp4sp -> vfp3sp + fp16 + d32 + vfp4d16sp
vfp4d16sp -> vfp3d16sp + fp16
vfp3 -> vfp2 + vfp3d16 + vfp3sp
vfp3d16 -> vfp2 + fp64 + vfp3d16sp
vfp3sp -> vfp2 + d32 + vfp3d16sp
vfp3d16sp -> vfp2sp
vfp2 -> vfp2sp + fp64
vfp2sp -> fpregs
```

`-neon` might be unnecessary too in many of these cases, but some default CPUs that Rust specifies will turn Neon on so that needs a bit more care. I can't see any LLVM cpus that enable D32.

Old description:

> Fixes rust-lang#149399 - this implication was likely a mistake and isn't enforced by LLVM. This is is a breaking change and any users specifying `vfp2/3/4` via `-Ctarget-features` or the `target_feature` attribute will need to add `d32` in to get the same behaviour. The target features are unstable so this is ok for Rust, and this is necessary as otherwise there's no way to specify a `vfp2-d16` configuration, for example.
>
> I expect these targets would have been broken by rust-lang#149173 as `-d32` would have disabled any `+vfpX` feature before it. With the removal of the implication the `-d32` went back to being unnecessary, but I've removed it anyway.
>
> As ``@RalfJung`` pointed out, thumbv7a-nuttx-eabihf looks to have been relying on this implication so I've added `+d32` to it's target spec.
tests/debuginfo/function-arg-initialization.rs: Stop disabling SingleUseConsts MIR pass

This test passes locally for me. Let's see if it passes CI too.

Discovered while I worked on rust-lang#150201.

CC rust-lang#128945
…ease

rustdoc: handle macro expansions in types

- Closes rust-lang#150154.
- Closes rust-lang#150197.

This PR implements `visit_ty` in `ExpandedCodeVisitor` to correctly handle macro expansions in type positions (e.g., `let _: foo!();`). This also fixes a crash in rustdoc caused by the same issue.

Before:
<img width="419" height="182" alt="image" src="https://github.com/user-attachments/assets/89627230-032d-4ba1-af2e-8aa9a9cc6627" />
After:
<img width="288" height="107" alt="image" src="https://github.com/user-attachments/assets/c06caeda-28b7-45b8-845a-e7fe784a82e4" />
GVN: Adds the `insert_unique` method

The new `insert_unique` method is used to handle `IndexVec<VnIndex, T>` such as `evaluated` and `rev_locals`.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Dec 21, 2025
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rustbot rustbot added the rollup A PR which is a rollup label Dec 21, 2025
@bors
Copy link
Collaborator

bors commented Dec 21, 2025

📌 Commit 4b94235 has been approved by JonathanBrouwer

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

bors commented Dec 21, 2025

⌛ Testing commit 4b94235 with merge f41f404...

@bors
Copy link
Collaborator

bors commented Dec 22, 2025

☀️ Test successful - checks-actions
Approved by: JonathanBrouwer
Pushing f41f404 to main...

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149512 Fix d32 usage in Arm target specs fdd5991f6e098c7588c09ebdd8ab75f81f240aeb (link)
#150210 tests/debuginfo/function-arg-initialization.rs: Stop disabl… 312a19cbcf21899944e18c333bf83a9301db06a4 (link)
#150221 rustdoc: handle macro expansions in types 7ff1758582f582dca29276ebd40bbab51dc6927b (link)
#150223 GVN: Adds the insert_unique method e60aceed044cdb36e310bded504e771211d79697 (link)

previous master: a6525d5264

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 a6525d5 (parent) -> f41f404 (this PR)

Test differences

Show 7 test diffs

Stage 1

  • [rustdoc] tests/rustdoc/macro-expansion/type-macro-expansion.rs: [missing] -> pass (J2)

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)
  • [rustdoc] tests/rustdoc/macro-expansion/type-macro-expansion.rs: [missing] -> pass (J1)

Additionally, 4 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 f41f40408d719aa9ae0c6bfa17619d8f3f9e5b99 --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. tidy: 134.4s -> 167.5s (+24.7%)
  2. aarch64-apple: 8492.2s -> 10225.6s (+20.4%)
  3. dist-x86_64-apple: 6487.1s -> 7665.5s (+18.2%)
  4. dist-apple-various: 4755.1s -> 3962.3s (-16.7%)
  5. x86_64-gnu-tools: 4213.2s -> 3636.8s (-13.7%)
  6. x86_64-gnu-nopt: 9927.1s -> 8583.8s (-13.5%)
  7. i686-gnu-2: 5401.7s -> 6119.6s (+13.3%)
  8. i686-gnu-nopt-1: 7236.5s -> 8174.8s (+13.0%)
  9. pr-check-2: 3007.4s -> 2626.8s (-12.7%)
  10. i686-gnu-1: 7609.5s -> 8563.7s (+12.5%)
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 (f41f404): 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 -0.1%)

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

mean range count
Regressions ❌
(primary)
3.5% [3.2%, 3.9%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-7.4% [-7.4%, -7.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.1% [-7.4%, 3.9%] 3

Cycles

Results (secondary -2.5%)

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

Binary size

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

Bootstrap: 479.783s -> 479.466s (-0.07%)
Artifact size: 390.59 MiB -> 390.63 MiB (0.01%)

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. 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-compiler Relevant to the compiler 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants