Skip to content

Update LLVM submodule #143126

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 2 commits into from
Jul 6, 2025
Merged

Update LLVM submodule #143126

merged 2 commits into from
Jul 6, 2025

Conversation

dianqk
Copy link
Member

@dianqk dianqk commented Jun 28, 2025

Fixes #140686, fixes #141913, fixes #142752, fixes #143399.

@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Jun 28, 2025
@dianqk
Copy link
Member Author

dianqk commented Jun 28, 2025

I'm currently unable to access my Mac.

@bors2 try jobs=x86_apple*,aarch64-apple

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 28, 2025
Add a regression test for ld64

We might want a test case.

r? ghost
try-job: x86_apple*
try-job: aarch64-apple
Comment on lines +5 to +7
// This is a regression test for https://github.com/rust-lang/rust/issues/140686.
// Although this is a ld64(ld-classic) bug, we still need to support it
// due to cross-compilation and support for older Xcode.
Copy link
Member

@jieyouxu jieyouxu Jun 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: do we know if ld-classic will ever be removed in newer Xcode versions?

(EDIT: actually probably nevermind, we'll then either drop this test and/or need to bump our min baseline versions anyway.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nobody knows. Even after removing it, we might still need a long time to get rid of the test. :(

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we could wait for new updates from Apple first, such as a fix for the ld64 bug, or the release of new linker source code.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh for the test I'm not too worried even if somehow say a macos image bumps the xcode version and then this test blocks full CI, in that situation this test can be disabled or removed easily.

I was just musing if ld-classic might be gone.

@rust-bors

This comment was marked as outdated.

@dianqk

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 28, 2025
Add a regression test for ld64

We might want a test case.

r? ghost
try-job: x86_64-apple*
try-job: aarch64-apple
@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment was marked as outdated.

@dianqk

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 28, 2025
Add a regression test for ld64

We might want a test case.

r? ghost
try-job: x86_64-apple*
try-job: aarch64-apple
@rust-bors

This comment was marked as outdated.

@dianqk

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 29, 2025
Add a regression test for ld64

We might want a test case.

r? ghost
try-job: x86_64-apple*
@rust-bors

This comment was marked as outdated.

@dianqk

This comment was marked as resolved.

@dianqk
Copy link
Member Author

dianqk commented Jun 30, 2025

@bors2 try jobs=x86_64-apple-2

@rust-bors
Copy link

rust-bors bot commented Jun 30, 2025

⌛ Trying commit 1e974cd with merge dfeb438

To cancel the try build, run the command @bors2 try cancel.

rust-bors bot added a commit that referenced this pull request Jun 30, 2025
Add a regression test for ld64

We might want a test case.

r? ghost
try-job: x86_64-apple-2
@rust-bors
Copy link

rust-bors bot commented Jun 30, 2025

💔 Test failed

@dianqk
Copy link
Member Author

dianqk commented Jul 4, 2025

r? nikic

@rustbot rustbot assigned nikic and unassigned nagisa Jul 4, 2025
@rust-log-analyzer

This comment has been minimized.

@dianqk
Copy link
Member Author

dianqk commented Jul 5, 2025

@jieyouxu @Kobzol Could please check what happened here?

@dianqk dianqk added the T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. label Jul 5, 2025
@jieyouxu
Copy link
Member

jieyouxu commented Jul 5, 2025

@dianqk can you try to see if cherry-picking #143474 into this PR fixes the PR CI failure?

@rustbot rustbot added the T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) label Jul 5, 2025
@dianqk dianqk removed the T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. label Jul 5, 2025
@dianqk
Copy link
Member Author

dianqk commented Jul 5, 2025

🟩

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-19-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_bootstrap_tool
Source: src/bootstrap/src/core/builder/tests.rs:1508
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("run-make-support").render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] RunMakeSupport <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_bootstrap_tool' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_bootstrap_tool' failed in line 1508
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_codegen
Source: src/bootstrap/src/core/builder/tests.rs:1479
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("rustc_codegen_cranelift").render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] cranelift <host>
    4     3 │ [check] gcc <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_codegen' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_codegen' failed in line 1479
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_compiler_no_explicit_stage
Source: src/bootstrap/src/core/builder/tests.rs:1239
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("compiler").render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] cranelift <host>
    4     3 │ [check] gcc <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_compiler_no_explicit_stage' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_compiler_no_explicit_stage' failed in line 1239
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_compiletest_stage1_libtest
Source: src/bootstrap/src/core/builder/tests.rs:1464
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("compiletest").args(&["--set",
"build.compiletest-use-stage0-libtest=false"]).render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] compiletest <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_compiletest_stage1_libtest' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_compiletest_stage1_libtest' failed in line 1464
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_miri_no_explicit_stage
Source: src/bootstrap/src/core/builder/tests.rs:1401
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("miri").render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] Miri <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_miri_no_explicit_stage' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_miri_no_explicit_stage' failed in line 1401
---
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: check_rust_analyzer
Source: src/bootstrap/src/core/builder/tests.rs:1494
────────────────────────────────────────────────────────────────────────────────
Expression: ctx.config("check").path("rust-analyzer").render_steps()
────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────
    0     0 │ [check] std <host>
    1       │-[build] llvm <host>
    2     1 │ [check] rustc <host>
    3     2 │ [check] rust-analyzer <host>
────────────┴───────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.

thread 'core::builder::tests::snapshot::check_rust_analyzer' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/insta-1.43.1/src/runtime.rs:679:13:
snapshot assertion for 'check_rust_analyzer' failed in line 1494

@nikic
Copy link
Contributor

nikic commented Jul 5, 2025

@bors r+ rollup=never

@bors
Copy link
Collaborator

bors commented Jul 5, 2025

📌 Commit 1339b90 has been approved by nikic

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

bors commented Jul 6, 2025

⌛ Testing commit 1339b90 with merge 75d5834...

@bors
Copy link
Collaborator

bors commented Jul 6, 2025

☀️ Test successful - checks-actions
Approved by: nikic
Pushing 75d5834 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 6, 2025
@bors bors merged commit 75d5834 into rust-lang:master Jul 6, 2025
14 of 23 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 6, 2025
Copy link
Contributor

github-actions bot commented Jul 6, 2025

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 5adb489 (parent) -> 75d5834 (this PR)

Test differences

Show 5 test diffs

Stage 1

  • [ui] tests/ui/darwin-ld64.rs: [missing] -> ignore (only executed when the target is x86_64-apple-darwin) (J0)

Stage 2

  • [ui] tests/ui/darwin-ld64.rs: [missing] -> pass (J1)
  • [ui] tests/ui/darwin-ld64.rs: [missing] -> ignore (only executed when the target is x86_64-apple-darwin) (J2)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: pass -> ignore (ignored if LLVM wasn't build with zstd for ELF section compression (we want LLVM/LLD to be built with zstd support)) (J3)

Additionally, 1 doctest diff 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 75d5834a6c571cb0455acb5128ad51118fcbf2be --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. aarch64-apple: 4255.6s -> 9092.6s (113.7%)
  2. x86_64-apple-2: 3788.5s -> 7679.9s (102.7%)
  3. x86_64-apple-1: 6130.4s -> 10384.9s (69.4%)
  4. dist-aarch64-linux: 5427.7s -> 8145.4s (50.1%)
  5. pr-check-1: 1658.7s -> 2327.7s (40.3%)
  6. x86_64-rust-for-linux: 2822.6s -> 3892.2s (37.9%)
  7. pr-check-2: 1958.9s -> 2670.2s (36.3%)
  8. x86_64-gnu-tools: 3600.8s -> 4749.1s (31.9%)
  9. armhf-gnu: 5029.7s -> 6487.3s (29.0%)
  10. x86_64-gnu-nopt: 6857.6s -> 8720.1s (27.2%)
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.

@dianqk dianqk deleted the update-llvm branch July 6, 2025 05:26
@nikic nikic added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Jul 6, 2025
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (75d5834): comparison URL.

Overall result: no relevant changes - BENCHMARK(S) FAILED

@rustbot label: -perf-regression

❗ ❗ ❗ ❗ ❗
Warning ⚠️: The following benchmark(s) failed to build:

  • rustc

❗ ❗ ❗ ❗ ❗

cc @rust-lang/wg-compiler-performance

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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

Bootstrap: 460.95s -> 162.322s (-64.79%)
Artifact size: 372.07 MiB -> 372.06 MiB (-0.00%)

@Kobzol
Copy link
Member

Kobzol commented Jul 6, 2025

Hmm, I wonder what happened here. Some CI jobs were much slower, but that's expected, as they now had to build LLVM. But there were also a few test changes, which is a bit weird, not sure if that's just an artifact of us building LLVM on CI.

And the bootstrap benchmark has also time-outed. I wonder if it was unable to use download-ci-llvm for some reason 🤔 Sadly we don't currently log its output, I'll change that. We'll see what happens in the benchmark of the next master merge.

@nikic
Copy link
Contributor

nikic commented Jul 6, 2025

@Kobzol The compressed-debuginfo-zstd test change always happens on LLVM updates due to a difference in configuration between CI LLVM (has zstd) and that test runner (doesn't have zstd).

@PaulDance
Copy link
Contributor

I see that this is already beta-nominated and so will follow due process, but I just wanted to say it would be nice if this was indeed backported to beta in order to avoid having to wait for 1.90 since 1.86.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. beta-nominated Nominated for backporting to the compiler in the beta channel. merged-by-bors This PR was explicitly merged by bors. 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.
Projects
None yet