We are happy to announce that LLVM 18.1.6 is now released!
This includes the main LLVM project, and its subprojects including clang, lld, libc++, and MLIR.
Release Notes
- Fixes issues where LLVM is either generating the incorrect thunk for a function with aligned parameters or didn’t correctly pass through the return value when StructRet was used.
-Xclang -target-feature -Xclang +unaligned-scalar-mem
can be used to enable unaligned scalar memory accesses for CPUs that do not support unaligned vector accesses.-mno-strict-align
will enable unaligned scalar and vector memory accesses.- Don’t replace an aliasee with an alias that has weak linkage. This avoids incorrect linkage that can lead to using the wrong symbols during linking time.
- This patch fixes build failures when compiling AVX512 code using -march=native on machines without AVX512. The problem was introduced by [X86] Enable EVEX512 when host CPU has AVX512 (#90479) · llvm/llvm-project@a7b8b89 · GitHub which is included in LLVM 18.1.5 release.
- Fixes crash in AArch64 backend when having
true
orfalse
as operand for a fcmp instruction on IR level. - Fixes compiler crash when user specifies
-mno-evex512
with AVX512 features but no AVX512VL. - Fixes a bug that tries to do VBROADCAST_LOAD for f16 without AVX2.
Download
Find sources and binaries on GitHub .
A note on binaries
Binaries for the LLVM project are made by volunteers and will be uploaded when they have had time to test and build these binaries. They might not be available directly or not at all for each release. We suggest you use the binaries from your distribution or build your own if you rely on a specific platform or configuration.
Next release
There are no more planned 18.1.x releases, but there could be one if a critical issue is found. The release/19.x branch will be created on July 23, 2024.
Full Changelog
- John Ericson: [libcxx][libcxxabi] Fix build for OpenBSD (#92186) (1118c2e05e67)
- John Ericson: [clang] Don’t assume location of compiler-rt for OpenBSD (#92183) (48c1364200b5)
- DianQK: [GlobalOpt] Don’t replace aliasee with alias that has weak linkage (#91483) (3d0752b9492e)
- Eli Friedman: [Arm64EC] Correctly handle sret in entry thunks. (#92326) (92087868d5d2)
- Eli Friedman: [Arm64EC] Improve alignment mangling in arm64ec thunks. (#90115) (bee6966d8efa)
- Tom Stellard: [workflows] Fix libclang-abi-tests to work with new version scheme (#91865) (6456ebbc18a6)
- Craig Topper: [RISCV] Add a unaligned-scalar-mem feature like we had in clang 17. (a7cd0c611238)
- Tom Stellard: Update llvm/test/Transforms/InstCombine/bit_ceil.ll (2a4a0bf1db8b)
- Yingwei Zheng: [InstCombine] Drop nuw flag when CtlzOp is a sub nuw (#91776) (26ccc6b5c1c7)
- Rose: Revert “[SLP]Fix a crash if the argument of call was affected by minbitwidth analysis.” (aa2549e2bf12)
- Thorsten Schütt: [GlobalIsel][AArch64] fix out of range access in regbankselect (#92072) (c6d554618931)
- Jonas Paulsson: [SystemZ] Handle address clobbering in splitMove(). (#92105) (9acb41b1e4bb)
- Thomas Debesse: release/18.x: [libclc] Fix linking against libIRReader (1665723044ec)
- Yingwei Zheng: [InstSimplify] Do not simplify freeze in
simplifyWithOpReplaced
(#91215) (494847ba8fef) - Phoebe Wang: [X86][Driver] Do not add
-evex512
for-march=native
when the target doesn’t support AVX512 (#91694) (fac122ac4391) - Weihang Fan: [AArch64][SelectionDAG] Mask for SUBS with multiple users cannot be elided (#90911) (47b6dc45e39a)
- Craig Topper: [RISCV] Use ‘riscv-isa’ module flag to set ELF flags and attributes. (#85155) (dff717818356)
- Craig Topper: [RISCV] Store RVC and TSO ELF flags explicitly in RISCVTargetStreamer. NFCI (#83344) (3512b12a7981)
- Craig Topper: [RISCV] Add canonical ISA string as Module metadata in IR. (#80760) (be239653149f)
- Paul Kirth: [RISCV][lld] Set the type of TLSDESC relocation’s referenced local symbol to STT_NOTYPE (6cfa40e450cf)
- Nikita Popov: [PPCMergeStringPool] Avoid replacing constant with instruction (#88846) (1184a9cb30e6)
- Owen Pan: [clang-format] Fix a crash with AlignArrayOfStructures option (#86420) (f1491c7460e7)
- Younan Zhang: [Clang][Sema] Revise the transformation of CTAD parameters of nested class templates (#91628) (8d65f14cb6ff)
- Reid Kleckner: [lld][WebAssembly] Fix test on Windows, use llvm-ar instead of ar (be6c81751cc9)
- Vassil Vassilev: Reland “[clang-repl] Keep the first llvm::Module empty to avoid invalid memory access. (#89031)” (c5b3fa491f00)
- Tom Stellard: [workflows] Add a job for requesting a release note on release branch PRs (#91826) (a82ddb9d8122)
- Jonathan Peyton: [OpenMP] Fix child processes to use affinity_none (#91391) (09615ce869b0)
- Paul Kirth: [llvm][lld] Pre-commit tests for RISCV TLSDESC symbols (5c77c1d31d14)
- Amara Emerson: [AArc64][GlobalISel] Fix legalizer assert for G_INSERT_VECTOR_ELT (7dbd266e89a7)
- Nikita Popov: [InterleavedLoadCombine] Bail out on non-byte-sized vector element type (#90705) (d9a7e5179a89)
- Marc Auberer: [AArch64][GISEL] Consider fcmp true and fcmp false in cond code selection (#86972) (#91580) (0a045c9d83bb)
- Nikita Popov: [FunctionAttrs] Fix incorrect nonnull inference for non-inbounds GEP (#91180) (4a28f8e3c625)
- Owen Pan: [clang-format] Don’t remove parentheses of fold expressions (#91045) (0abb89a80f5c)
- Jay Foad: [AMDGPU] Fix GFX12 encoding of s_wait_event export_ready (#89622) (bce9393291a2)
- Björn Pettersson: [SelectionDAG] Mark frame index as “aliased” at argument copy elison (#89712) (f5f572f54b32)
- Phoebe Wang: [X86][FP16] Do not create VBROADCAST_LOAD for f16 without AVX2 (#91125) (dfc89f89ed14)
- Phoebe Wang: [X86][EVEX512] Add
HasEVEX512
whenNoVLX
used for 512-bit patterns (#91106) (047cd915b86a) - David Stuttard: [AMDGPU] Enhance s_waitcnt insertion before barrier for gfx12 (#90595) (58e44d3c6f67)
- Tom Stellard: [Workflows] Re-write release-binaries workflow (#89521) (d1d7131906d9)
- Tom Stellard: workflows: Fix incorrect input name in release-binaries.yml (#84604) (211cdc65a1fb)
- Tom Stellard: workflows: Fixes for building the release binaries (#83694) (0ec1bc454456)
- Aiden Grossman: [Github] Add repository checks to release-binaries workflow (#84437) (d9661e11996d)
- Tom Stellard: [CMake][Release] Enable CMAKE_POSITION_INDEPENDENT_CODE (#90139) (b7e2397c54b7)
- Tom Stellard: [CMake][Release] Refactor cache file and use two stages for non-PGO builds (#89812) (ce88e86e428b)
- Tom Stellard: [CMake][Release] Add stage2-package target (#89517) (f2c5a10e1f27)
- Tom Stellard: Bump version to 18.1.6 (#91094) (dd3aa6d0e9a8)