Skip to content

LLVM: Add v23.1.1 toolchain - #14738

Merged
maleadt merged 3 commits into
masterfrom
tb/llvm23
Sep 11, 2026
Merged

maleadt merged 3 commits into
masterfrom
tb/llvm23

Conversation

@maleadt

@maleadt maleadt commented Sep 10, 2026

Copy link
Copy Markdown
Member

Stage 1 of the LLVM 23 bump (same split as v22: #14053, then #14300 / #14304 for the extraction packages, which have to wait for LLVM_full_jll 23 to register because they look it up in the registry).

Adds LLVM_full@23 and LLVM_full_assert@23, built from the new julia-23.1.1-0 tag of JuliaLang/llvm-project. That tag is llvmorg-23.1.1 plus the six Julia patches from julia-release/22.x that are not yet upstream (prologue/epilogue unwinding, forced .eh_frame on AArch64, SimplifySelectOps disable, ittapi checkout fix, IRCE clone-legality check, SROA non-integral memset fix); the other four 22.x patches are already in 23.1.1.

Compared to the v22 recipe, 0050-unique_function_clang-sa.patch is dropped: LLVM 23 rewrote unique_function's move constructor and the if (!RHS) return; the patch wrapped for clang-analyzer no longer exists. All other patches apply unchanged, and the host build requirements (CMake, GCC floor, native tablegen tools) are the same as for 22, so common.jl only gains the llvm_tags entry. Still GCC 10 and preferred_llvm_version=v"18", for the same reasons as v22.

Verified locally: full x86_64-linux-gnu-cxx11 build and audit (llvm-config --version = 23.1.1jl, NVPTX/AMDGPU targets present). First-run Linux CI jobs will likely hit the cold-ccache timeout as they did for v22; retries finish.

Note for stage 2: bugpoint was removed upstream in 23, so the LLVM_utils tool list will change (branch tb/llvm23-stage2, to be opened after this registers).

Stage 1 of the LLVM 23 bump (cf. #14053 for v22): LLVM_full@23 and
LLVM_full_assert@23, built from the julia-23.1.1-0 tag of
JuliaLang/llvm-project (llvmorg-23.1.1 plus the Julia patches carried on
julia-release/22.x that are not yet upstream).

Compared to the v22 recipe, 0050-unique_function_clang-sa.patch is dropped:
LLVM 23 rewrote unique_function's move constructor and the code the patch
guarded no longer exists. The remaining patches apply unchanged.
@eschnett

Copy link
Copy Markdown
Contributor

@maleadt Your CI build is failing. Since it's expensive you might want to cancel it and resubmit the corrected version.

vtjnash and others added 2 commits September 10, 2026 17:37
The v23 recipes pinned `julia-23.1.1-0`, which predates three commits that were
pushed to `julia-release/23.x` afterwards: two Clang thread-safety analysis
fixes (llvm/llvm-project#211973 and llvm/llvm-project#211885) and taking the
executable stack from a module flag rather than from `llvm.init.trampoline`
(llvm/llvm-project#215152). Julia's `make -C src analyze-*` static analysis runs
on `Clang_jll`, so a build from the older tag cannot check the runtime, and the
executable-stack change alters what `AsmPrinter` emits for any module that uses
trampolines -- both belong in the toolchain Julia ships.

`julia-23.1.1-1` is the head of `julia-release/23.x`, 5ab773a1ba20.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W8q2XtkTvxiw9KpY1mKZ21
`ACC_COMPUTE_CONSTRUCT_AND_LOOP_OPS` expands to a comma-separated list of op
types, so `assert(isa<ACC_COMPUTE_CONSTRUCT_AND_LOOP_OPS>(accOp))` hands four
arguments to a one-parameter macro:

    ACCRecipeMaterialization.cpp:432:56: error: macro "__STRING" passed 4
        arguments, but takes just 1

Only builds with assertions enabled compile that line, which is why every
`LLVM_full_assert@23` job failed while `LLVM_full@23` succeeded. Wrapping the
expression in its own parentheses is enough; it is the only such assert in the
tree, and it is still unfixed upstream as of `llvmorg-23.1.1`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W8q2XtkTvxiw9KpY1mKZ21
@maleadt

maleadt commented Sep 11, 2026 •

Copy link
Copy Markdown
Member Author

@maleadt Your CI build is failing. Since it's expensive you might want to cancel it and resubmit the corrected version.

That happened with Jameson pushing additional changes.

FWIW, I've significantly bumped the ccache on the CI server, so subsequent builds are significantly faster: from 2h to 30mins or apparently.

@maleadt
maleadt merged commit 9d34517 into master Sep 11, 2026
34 checks passed
@maleadt
maleadt deleted the tb/llvm23 branch September 11, 2026 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants