Skip to content

Rollup of 7 pull requests - #165432

Merged
rust-bors[bot] merged 18 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-V0ind8A
Nov 3, 2026
Merged

rust-bors[bot] merged 18 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-V0ind8A

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

GuillaumeGomez and others added 18 commits November 2, 2026 18:22
Otherwise the llvm::Error object's destrcutor asserts.
Previusly we had a disagreement between hir_typeck (assuming that
anything following the diverging constant is unreachable) and mir_build
(assuming we don't need to evaluate constants in `[...; 0]`).

This (temporarily) fixes this by making hir_typeck aware that such
constants should not affect divergence / reachibility analysis
…ted_zero_times, r=oli-obk

fix unsoundness when compiling `[diverging_const; 0]`

As I described in rust-lang#165323 (comment), currently `[diverging_const; 0]` leads to usoundness because hir type check and mir building disagree on whatever `diverging_const` is evaluated or not. hir type check assumes that it does (and marks anything after it as unreachable) while mir building sees that the constant is repeated 0 times and decides to skip evaluating the constant, resulting in unsoundness.

This PR fixes this by doing the same kind of special case in hir type check.

Fixes (but does not close as this is a temporary workaround) rust-lang#165323
…=GuillaumeGomez

[perf] rustdoc: Avoid re-HIR-ty-lowering tys & const args where possible

<sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>
…rtdev

Don't use `llvm_type` as the type of `static`s.

This PR replaces the two uses of `llvm_type` as the type of `static`s - only the size of the static matters, so `cx.type_array(cx.type_i8(), layout.size)` is sufficient. As `static`s have to be redefined if the initialiser type is not the same as the existing type. using an LLVM `i8` array here is more optimal as it means the static type already matches the initializer in cases where the initializer is just plain bytes.

r? @folkertdev
…ngjubilee

Remove `AbiAlign`

The first commit removes the final use of `AbiAlign` (as a field of `LayoutData`), and the second commit removes `AbiAlign` itself.

r? @workingjubilee
…lf, r=Urgau

rustdoc: Fix invalid clean of paths when they end with `self`

Fixes rust-lang#165317.
Fixes rust-lang#164427.

We weren't checking in `clean_path` whether a path was ending with `self` or not.

r? @Urgau
…rtdev

Add codegen test for step_by(1) loop vectorization

Fixes rust-lang#57517

This was fixed by the LLVM 16 update in rust-lang#109474
LLVMRustWriteOutputFile: Check the result of runCodeGenPipeline

Otherwise the llvm::Error object's destructor asserts.

This is a follow-up to rust-lang#163672
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Nov 3, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. 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 Nov 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3,test-aarch64-msvc-2

@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4a7ed2a has been approved by JonathanBrouwer

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 Nov 3, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Nov 3, 2026
Rollup of 7 pull requests


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

This comment has been minimized.

@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 5b7e546 (5b7e5461044b38809bfa53ab0def2a2fc72e7136)
Base parent: a94dce0 (a94dce0bbb3aab81bfdcc30e8a55d7dc95bc644d)

@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 Nov 3, 2026
@rust-bors

rust-bors Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 26m 9s
Pushing 708c94e to main...

@rust-bors
rust-bors Bot merged commit 708c94e into rust-lang:main Nov 3, 2026
16 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 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 a94dce0 (parent) -> 708c94e (this PR)

Test differences

Show 38 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/issues/step-by-one-vectorized-57517.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J1)
  • [ui] tests/ui/repeat-expr/zero_diverging_consts.rs: [missing] -> pass (J2)
  • [ui] tests/ui/repeat-expr/zero_diverging_consts_runnable.rs: [missing] -> pass (J2)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/issues/step-by-one-vectorized-57517.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/reexport/reexport-dep-self.rs: [missing] -> pass (J3)
  • [rustdoc-html] tests/rustdoc-html/reexport/self-export.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/repeat-expr/zero_diverging_consts.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/repeat-expr/zero_diverging_consts_runnable.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/repeat-expr/zero_diverging_consts.rs: [missing] -> pass (J0)
  • [ui] tests/ui/repeat-expr/zero_diverging_consts_runnable.rs: [missing] -> pass (J0)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/reexport/reexport-dep-self.rs: [missing] -> pass (J5)
  • [rustdoc-html] tests/rustdoc-html/reexport/self-export.rs: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/issues/step-by-one-vectorized-57517.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/issues/step-by-one-vectorized-57517.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J7)

Additionally, 21 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 708c94ef093ecc42fb8851e17d8383d999727abc --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. test-x86_64-gnu-stdlib-semver-check: 8m 40s -> 15m 55s (+83.7%)
  2. test-x86_64-gnu-gcc-core-tests: 12m 49s -> 23m 20s (+82.1%)
  3. test-x86_64-gnu-nopt: 1h 35m -> 2h 46m (+75.0%)
  4. test-i686-gnu-nopt-2: 1h 31m -> 2h 35m (+70.9%)
  5. test-x86_64-gnu-aux: 1h 42m -> 2h 49m (+64.9%)
  6. dist-x86_64-llvm-mingw: 1h 19m -> 2h 8m (+61.9%)
  7. dist-x86_64-msvc-alt: 1h 49m -> 2h 52m (+58.2%)
  8. dist-s390x-linux: 1h 8m -> 1h 42m (+50.2%)
  9. dist-ohos-armv7: 1h -> 1h 29m (+49.1%)
  10. test-x86_64-gnu-distcheck: 1h 49m -> 2h 40m (+46.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
Copy Markdown
Collaborator

Finished benchmarking commit (708c94e): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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

Bootstrap: 484.08s -> 483.649s (-0.09%)
Artifact size: 406.35 MiB -> 406.38 MiB (0.01%)

@rust-bors

rust-bors Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#165416 fix unsoundness when compiling [diverging_const; 0] 39db2a6902461bbe482d4ff8f1020bb1f4c5fa27
(link)
#163217 [perf] rustdoc: Avoid re-HIR-ty-lowering tys & const args w… 1aa13783366bc1e11d59d34e37140fbe979eb0ed
(link)
#165371 Don't use llvm_type as the type of statics. 3e4b9812c672db550152248bacd0cf1266102c86
(link)
#165354 Remove AbiAlign 1092fba0a4cb5d5b0417bf59c56fb7251107261c
(link)
#165357 rustdoc: Fix invalid clean of paths when they end with `sel… f84f836b610aa70a69d9d9195ba50b180576f9c1
(link)
#165401 Add codegen test for step_by(1) loop vectorization aa1759c76bc7291b1ef16f3c221b1c82506c878b
(link)
#165408 LLVMRustWriteOutputFile: Check the result of runCodeGenPipe… 92b41ed251fae89278adc7f11cd72d0f2ce0f65d
(link)

parent commit: a94dce0bbb

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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. merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-clippy Relevant to the Clippy team. 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.

9 participants