Skip to content

Update to LLVM 23#158734

Open
nikic wants to merge 10 commits into
rust-lang:mainfrom
nikic:llvm23
Open

Update to LLVM 23#158734
nikic wants to merge 10 commits into
rust-lang:mainfrom
nikic:llvm23

Conversation

@nikic

@nikic nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

View all comments

Changes in this PR (apart from the LLVM update):

  • Updated cov-map tests due to minor ordering changes introduced in llvm/llvm-project@5931034. The affected tests are limited to LLVM >= 23 now.
  • Set LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN=OFF, which restores the previous unversioned naming of the LLVM dylib on Darwin. I expect we'll want to change this for consistency with Linux, but given the amount of trouble Darwin dylibs have caused in the past, I'm not trying to do it in this PR.
  • Distribute the llvm-project/libc subproject, which is now a build dependency of LLVM.
  • Pull in f128 Windows ABI changes from adjust f128 windows abi for LLVM 23 #158778. These need to land in sync with the LLVM update (as ABI of libcalls is controlled by LLVM, not our ABI lowering).
  • Disable RISCV backend on dist-i686-mingw, because the build OOMs on a large generated file. This is a temporary measure until host tools are removed by Drop tier 2 i686-pc-windows-gnu host tools compiler-team#1020.
  • The llvm-project fork includes a new downstream patch for mingw: rust-lang/llvm-project@b89cd8e It works around mingw having broken TLS prior to GCC 16. (We're currently on GCC 14.)

Issues:

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 3, 2026
@nikic

nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 3, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 3, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

💔 Test for b003a3f failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jul 13, 2026
@nikic

nikic commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 13, 2026
@rust-bors

rust-bors Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 0259978 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@nikic

nikic commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 14, 2026
@rust-bors

rust-bors Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 4973bfc failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: b1bcc07 (b1bcc07e155f0d6323b63e95acb7c7b7d959538f)
Base parent: 1498f99 (1498f9968f75e8e5ded6892b9c97bfe66b5a966f)

@nikic

nikic commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

@bors r=cuviper

@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

📌 Commit f76af74 has been approved by cuviper

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 1. This pull request will be tested once the tree is reopened.

Reason for tree closure: spurious CI failures

@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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 24, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 25, 2026
Update to LLVM 23



Changes in this PR (apart from the LLVM update):
 * Updated cov-map tests due to minor ordering changes introduced in llvm/llvm-project@5931034. The affected tests are limited to LLVM >= 23 now.
 * Set `LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN=OFF`, which restores the previous unversioned naming of the LLVM dylib on Darwin. I expect we'll want to change this for consistency with Linux, but given the amount of trouble Darwin dylibs have caused in the past, I'm not trying to do it in this PR.
 * Distribute the llvm-project/libc subproject, which is now a build dependency of LLVM.
 * Pull in f128 Windows ABI changes from #158778. These need to land in sync with the LLVM update (as ABI of libcalls is controlled by LLVM, not our ABI lowering).
 * Disable RISCV backend on dist-i686-mingw, because the build OOMs on a large generated file. This is a temporary measure until host tools are removed by rust-lang/compiler-team#1020.
 * The llvm-project fork includes a new downstream patch for mingw: rust-lang/llvm-project@b89cd8e It works around mingw having broken TLS prior to GCC 16. (We're currently on GCC 14.)

Issues:
* [x] llvm/llvm-project#209512
* [x] llvm/llvm-project#209714
* [x] llvm/llvm-project#209718
* [x] rust-lang/stdarch#2190 (synced in #159517)
* [x] llvm/llvm-project#210025
* [x] #159391
* [x] EnzymeAD/Enzyme#2951
* [x] #159301
* [x] llvm/llvm-project#210300
@rust-bors rust-bors Bot 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 Jul 25, 2026
@rust-bors

rust-bors Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 8015c54 failed: CI. Failed job:

@jhpratt

jhpratt commented Jul 25, 2026

Copy link
Copy Markdown
Member

ERROR: failed to do request: Head "https://registry-1.docker.io/v2/library/ubuntu/manifests/22.04": dial tcp 52.45.14.202:443: i/o timeout

@bors retry

@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 Jul 25, 2026
@rust-log-analyzer

This comment has been minimized.

@Zalathar

Copy link
Copy Markdown
Member

According to comments upthread, other things are waiting on this, and it has already flaked out at least once.

@bors p=5

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 25, 2026
Update to LLVM 23



Changes in this PR (apart from the LLVM update):
 * Updated cov-map tests due to minor ordering changes introduced in llvm/llvm-project@5931034. The affected tests are limited to LLVM >= 23 now.
 * Set `LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN=OFF`, which restores the previous unversioned naming of the LLVM dylib on Darwin. I expect we'll want to change this for consistency with Linux, but given the amount of trouble Darwin dylibs have caused in the past, I'm not trying to do it in this PR.
 * Distribute the llvm-project/libc subproject, which is now a build dependency of LLVM.
 * Pull in f128 Windows ABI changes from #158778. These need to land in sync with the LLVM update (as ABI of libcalls is controlled by LLVM, not our ABI lowering).
 * Disable RISCV backend on dist-i686-mingw, because the build OOMs on a large generated file. This is a temporary measure until host tools are removed by rust-lang/compiler-team#1020.
 * The llvm-project fork includes a new downstream patch for mingw: rust-lang/llvm-project@b89cd8e It works around mingw having broken TLS prior to GCC 16. (We're currently on GCC 14.)

Issues:
* [x] llvm/llvm-project#209512
* [x] llvm/llvm-project#209714
* [x] llvm/llvm-project#209718
* [x] rust-lang/stdarch#2190 (synced in #159517)
* [x] llvm/llvm-project#210025
* [x] #159391
* [x] EnzymeAD/Enzyme#2951
* [x] #159301
* [x] llvm/llvm-project#210300
@rust-bors

rust-bors Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 67289a6 failed: CI. Failed job:

@jhpratt

jhpratt commented Jul 25, 2026

Copy link
Copy Markdown
Member

curl: (35) Send failure: Connection was reset

@bors retry

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 252a6c8 failed: CI. Failed job:

@mati865

mati865 commented Jul 25, 2026

Copy link
Copy Markdown
Member

This one is not spurious: ld.lld: error: undefined symbol: __aeabi_uread4.

@nikic

nikic commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

We'll have to build the new assembly files from llvm/llvm-project#167913 as part of the compiler-builtins build.

These are used for unaligned accesses since LLVM 23.
@rustbot

rustbot commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

compiler-builtins is developed in its own repository. If possible, consider making this change to rust-lang/compiler-builtins instead.

cc @tgross35

@nikic

nikic commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Confirmed locally that this fixes the arm-android failure.

@nikic

nikic commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

@tgross35 I don't need to do anything special for compiler-rt files that don't exist in previous LLVM versions, right? People not building against the vendored compiler-rt must use the precompiled compiler-rt functionality (optimized-compiler-builtins set to a path), correct?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-autodiff `#![feature(autodiff)]` perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.