Skip to content

Update to LLVM 20.1.7 #142447

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 1 commit into from
Jun 17, 2025
Merged

Update to LLVM 20.1.7 #142447

merged 1 commit into from
Jun 17, 2025

Conversation

dianqk
Copy link
Member

@dianqk dianqk commented Jun 13, 2025

Closes #141306, closes #140686, closes #141737, closes #140933.

@rustbot
Copy link
Collaborator

rustbot commented Jun 13, 2025

r? @cuviper

rustbot has assigned @cuviper.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@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. labels Jun 13, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jun 13, 2025

⚠️ Warning ⚠️

  • Some commits in this PR modify submodules.

@dianqk
Copy link
Member Author

dianqk commented Jun 13, 2025

@bors p=1

@nikic
Copy link
Contributor

nikic commented Jun 13, 2025

@bors r+ rollup=never

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

📌 Commit 4b2e77b 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 Jun 13, 2025
bors added a commit that referenced this pull request Jun 13, 2025
Update to LLVM 20.1.7

Closes #141306, closes #140686, closes #141737, closes #140933.
@bors
Copy link
Collaborator

bors commented Jun 13, 2025

⌛ Testing commit 4b2e77b with merge 5a64ee7...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-nopt failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling rustc_driver v0.0.0 (/checkout/compiler/rustc_driver)
[RUSTC-TIMING] rustc_driver test:false 13.682
error: linking with `cc` failed: exit status: 1
  |
  = note:  "cc" "-m64" "/tmp/rustcQeqaKB/symbols.o" "<1 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-788ba4279e0f4b2c.so" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lrt" "-ldl" "-lm" "-lstdc++" "-ldl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcQeqaKB/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/psm-333143ff6fcbb6a0/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/blake3-c8ecf418975a8dbd/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/blake3-c8ecf418975a8dbd/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-40d55c9b90cb9de2/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-940eb4e3ed3321b0" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: /usr/bin/ld: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-788ba4279e0f4b2c.so: undefined reference to `llvm::EnableABIBreakingChecks'
          /usr/bin/ld: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-788ba4279e0f4b2c.so: undefined reference to `llvm::Error::fatalUncheckedError() const'
          collect2: error: ld returned 1 exit status
          

@bors
Copy link
Collaborator

bors commented Jun 13, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 13, 2025
@dianqk
Copy link
Member Author

dianqk commented Jun 14, 2025

@bors retry

@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 Jun 14, 2025
bors added a commit that referenced this pull request Jun 14, 2025
Update to LLVM 20.1.7

Closes #141306, closes #140686, closes #141737, closes #140933.
@bors
Copy link
Collaborator

bors commented Jun 14, 2025

⌛ Testing commit 4b2e77b with merge b940ffb...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-nopt failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling rustc_driver v0.0.0 (/checkout/compiler/rustc_driver)
[RUSTC-TIMING] rustc_driver test:false 13.737
error: linking with `cc` failed: exit status: 1
  |
  = note:  "cc" "-m64" "/tmp/rustcutyBmU/symbols.o" "<1 object files omitted>" "-Wl,--as-needed" "-Wl,-Bdynamic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-e248548c82f77832.so" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lrt" "-ldl" "-lm" "-lstdc++" "-ldl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcutyBmU/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/psm-333143ff6fcbb6a0/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/blake3-c8ecf418975a8dbd/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/blake3-c8ecf418975a8dbd/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-40d55c9b90cb9de2/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-6d2f3c57c15fe6d9" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: /usr/bin/ld: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-e248548c82f77832.so: undefined reference to `llvm::EnableABIBreakingChecks'
          /usr/bin/ld: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-e248548c82f77832.so: undefined reference to `llvm::Error::fatalUncheckedError() const'
          collect2: error: ld returned 1 exit status
          

@bors
Copy link
Collaborator

bors commented Jun 14, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 14, 2025
@nikic
Copy link
Contributor

nikic commented Jun 14, 2025

The build is configured with --enable-llvm-assertions, but then we pass "-DLLVM_ENABLE_ASSERTIONS=OFF" to cmake...

We end up with rustc thinking LLVM was build with assertions even though it wasn't.

@nikic
Copy link
Contributor

nikic commented Jun 14, 2025

I'm gonna guess it's related to this extra config file

ENV SCRIPT python3 ../x.py test --stage 1 --config /config/nopt-std-config.toml library/std \
and the stage redesign in some way... (cc @Kobzol @onur-ozkan)

@jieyouxu
Copy link
Member

Looking into that.

@jieyouxu
Copy link
Member

#142516 should unblock this PR (hopefully)

@Kobzol Kobzol mentioned this pull request Jun 16, 2025
@apiraino
Copy link
Contributor

apiraino commented Jun 16, 2025

Given the issues this patch fixes, I'll nominate for beta backport. But in less than 10 days we have the release, unsure if it has time to bake (or has a lot sense per se backporting) .

@rustbot label beta-nominated

@rustbot rustbot added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Jun 16, 2025
@apiraino apiraino added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. beta-nominated Nominated for backporting to the compiler in the beta channel. and removed beta-nominated Nominated for backporting to the compiler in the beta channel. labels Jun 16, 2025
Kobzol added a commit to Kobzol/rust that referenced this pull request Jun 16, 2025
Fix `-nopt` CI jobs

They were using `--config` instead of `--set`, which overrides too much stuff after recent changes to config merging.

Should hopefully unblock rust-lang#142447.

r? `@jieyouxu`
rust-timer added a commit that referenced this pull request Jun 16, 2025
Rollup merge of #142566 - Kobzol:ci-nopt-fix, r=jieyouxu

Fix `-nopt` CI jobs

They were using `--config` instead of `--set`, which overrides too much stuff after recent changes to config merging.

Should hopefully unblock #142447.

r? `@jieyouxu`
@Kobzol
Copy link
Contributor

Kobzol commented Jun 16, 2025

@bors2 try jobs=x86_64-gnu-nopt

@rust-bors
Copy link

rust-bors bot commented Jun 16, 2025

⌛ Trying commit 4b2e77b with merge 7a7ff85

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

rust-bors bot added a commit that referenced this pull request Jun 16, 2025
Update to LLVM 20.1.7

Closes #141306, closes #140686, closes #141737, closes #140933.
try-job: x86_64-gnu-nopt
@rust-bors
Copy link

rust-bors bot commented Jun 16, 2025

☀️ Try build successful (CI)
Build commit: 7a7ff85 (7a7ff8516a217ff3896efcf8c3462c3e9b9799bd, parent: 3bc767e1a215c4bf8f099b32e84edb85780591b1)

@nikic
Copy link
Contributor

nikic commented Jun 16, 2025

@bors r+

@bors
Copy link
Collaborator

bors commented Jun 16, 2025

💡 This pull request was already approved, no need to approve it again.

  • This pull request previously failed. You should add more commits to fix the bug, or use retry to trigger a build again.
  • There's another pull request that is currently being tested, blocking this pull request: Rollup of 8 pull requests #142589

@bors
Copy link
Collaborator

bors commented Jun 16, 2025

📌 Commit 4b2e77b 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 Jun 16, 2025
@jieyouxu
Copy link
Member

@bors p=5 (rollup scheduling; fixes a P-critical)

@bors
Copy link
Collaborator

bors commented Jun 16, 2025

⌛ Testing commit 4b2e77b with merge 55d4364...

@bors
Copy link
Collaborator

bors commented Jun 17, 2025

☀️ Test successful - checks-actions
Approved by: nikic
Pushing 55d4364 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 17, 2025
@bors bors merged commit 55d4364 into rust-lang:master Jun 17, 2025
11 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 17, 2025
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 45acf54 (parent) -> 55d4364 (this PR)

Test differences

Show 10 test diffs

Stage 2

  • [assembly] tests/assembly/riscv-soft-abi-with-float-features.rs#LLVM-PRE-20: ignore (ignored when the LLVM version (20.1.5) is newer than majorversion 19) -> ignore (ignored when the LLVM version (20.1.7) is newer than majorversion 19) (J0)
  • [assembly] tests/assembly/sanitizer/kcfi/emit-arity-indicator.rs#x86_64: ignore (ignored when the LLVM version 20.1.5 is older than 21.0.0) -> ignore (ignored when the LLVM version 20.1.7 is older than 21.0.0) (J0)
  • [assembly] tests/assembly/x86_64-bigint-helpers.rs#llvm-pre-20: ignore (ignored when the LLVM version (20.1.5) is newer than majorversion 19) -> ignore (ignored when the LLVM version (20.1.7) is newer than majorversion 19) (J0)
  • [codegen] tests/codegen/integer-cmp.rs#llvm-pre-20: ignore (ignored when the LLVM version (20.1.5) is newer than majorversion 19) -> ignore (ignored when the LLVM version (20.1.7) is newer than majorversion 19) (J0)
  • [codegen] tests/codegen/issues/issue-101082.rs#x86-64-v3: ignore (ignored when the LLVM version 20.1.5 is older than 21.0.0) -> ignore (ignored when the LLVM version 20.1.7 is older than 21.0.0) (J0)
  • [codegen] tests/codegen/option-niche-eq.rs#LLVM21: ignore (ignored when the LLVM version 20.1.5 is older than 21.0.0) -> ignore (ignored when the LLVM version 20.1.7 is older than 21.0.0) (J0)
  • [codegen] tests/codegen/sanitizer/kcfi/add-kcfi-arity-flag.rs#x86_64: ignore (ignored when the LLVM version 20.1.5 is older than 21.0.0) -> ignore (ignored when the LLVM version 20.1.7 is older than 21.0.0) (J0)
  • [assembly] tests/assembly/x86_64-cmp.rs#LLVM-PRE-20-DEBUG: ignore (ignored when the LLVM version (20.1.5) is newer than majorversion 19) -> ignore (ignored when the LLVM version (20.1.7) is newer than majorversion 19) (J1)
  • [assembly] tests/assembly/x86_64-cmp.rs#LLVM-PRE-20-OPTIM: ignore (ignored when the LLVM version (20.1.5) is newer than majorversion 19) -> ignore (ignored when the LLVM version (20.1.7) is newer than majorversion 19) (J1)
  • [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)) (J2)

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 55d436467c351b56253deeba209ae2553d1c243f --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. dist-x86_64-apple: 7363.1s -> 10192.3s (38.4%)
  2. mingw-check-tidy: 70.5s -> 52.7s (-25.2%)
  3. test-various: 4629.6s -> 5666.1s (22.4%)
  4. mingw-check-2: 2102.7s -> 2510.8s (19.4%)
  5. mingw-check-1: 1960.0s -> 2314.9s (18.1%)
  6. x86_64-rust-for-linux: 2994.3s -> 3532.9s (18.0%)
  7. armhf-gnu: 4819.8s -> 5575.6s (15.7%)
  8. dist-apple-various: 8256.2s -> 6977.3s (-15.5%)
  9. x86_64-gnu: 7018.8s -> 8011.8s (14.1%)
  10. x86_64-apple-2: 6380.3s -> 5524.1s (-13.4%)
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 llvm-20.1.7 branch June 17, 2025 03:02
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (55d4364): 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 (secondary 2.8%)

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

Cycles

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

Binary size

Results (secondary 0.0%)

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

Bootstrap: 756.938s -> 756.784s (-0.02%)
Artifact size: 372.14 MiB -> 372.10 MiB (-0.01%)

github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Jun 17, 2025
Fix `-nopt` CI jobs

They were using `--config` instead of `--set`, which overrides too much stuff after recent changes to config merging.

Should hopefully unblock rust-lang/rust#142447.

r? `@jieyouxu`
lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request Jun 18, 2025
Fix `-nopt` CI jobs

They were using `--config` instead of `--set`, which overrides too much stuff after recent changes to config merging.

Should hopefully unblock rust-lang/rust#142447.

r? `@jieyouxu`
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-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
10 participants