Skip to content

Update LLVM submodule #143126

New issue

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

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

Already on GitHub? Sign in 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).

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