We are happy to announce that LLVM 20.1.0-rc2 is now released!
This includes the main LLVM project, and its subprojects including clang, lld, libc++, and MLIR.
Download
Find sources on GitHub.
A note on binaries
Official binaries should be ready within 24 hours.
Third-party binaries will be posted to the following forum thread. Note that these binaries are not created or checked by the release managers, they should be used with care.
Next release
The next release will be 20.1.0-rc3 the 25th of Februray . Please file issues you find in the 20.x milestone.
ChangeLog
- Tom Stellard: Bump version to 20.1.0-rc2 (#126859) (20621e2609ac)
- Piyou Chen: [RISCV][compiler-rt] drop __riscv_vendor_feature_bits (#126460) (4806a5572e71)
- Lang Hames: [ORC][LLI] Remove redundant eh-frame registration plugin construction from lli. (3661520b46dc)
- Yingwei Zheng: [InstCombine] Check nowrap flags when folding comparison of GEPs with the same base pointer (#121892) (95354f3ea45a)
- Vigneshwar Jayakumar: AMDGPU: Handle gfx950 XDL-write-VGPR-VALU-Mem-Exp wait state change (#126727) (f874fac4858d)
- Vigneshwar Jayakumar: AMDGPU: Handle gfx950 XDL-write-VGPR-Overlap-Src-AB wait state (#126732) (203cd187957e)
- Florian Hahn: [VPlan] Only skip expansion for SCEVUnknown if it isn’t an instruction. (#125235) (cb51906de1e3)
- Amr Hesham: release/20.x: [llvm-objcopy][ReleaseNotes] Fix prints wrong path when dump-section output path doesn’t exist #125345 (#126607) (d43a97163c43)
- Owen Pan: [clang-format] Handle C-style cast of member function pointer type (#126340) (bc87f9b80946)
- Nikita Popov: [ValueTracking] Fix bit width handling in computeKnownBits() for GEPs (#125532) (5777d5df62a6)
- Nikita Popov: [ValueTracking] Add additional tests for computeKnownBits on GEPs (NFC) (a89e04e7f0ca)
- Nikita Popov: [ScalarEvolution] Handle addrec incoming value in isImpliedViaMerge() (#126236) (af970cd8753c)
- Nikita Popov: [IndVars] Add test for #126012 (NFC) (9bbf3a98b793)
- Nikita Popov: [DSE] Don’t use initializes on byval argument (#126259) (94c1a8ea1bfe)
- Mikołaj Piróg: [AVX10.2] Fix wrong intrinsic names after rename (#126390) (f33b128b3dc1)
- Mikołaj Piróg: [AVX10.2] Fix wrong mask casting in some convert intrinsics (#126627) (1c36697fbb55)
- Chuanqi Xu: [C++20] [Modules] Don’t diagnose duplicated declarations in different modules which is not in file scope (ac97cff5a368)
- higher-performance: Fix false positive of [[clang::require_explicit_initialization]] on copy/move constructors (#126553) (923d35bcf765)
- Joseph Huber: [Offload] Properly guard modifications to the RPC device array (#126790) (c03f46f2f0ea)
- Fangrui Song: [BOLT,test] Link against a shared object to test PLT (#125625) (553185bd7188)
- Joseph Huber: [Clang] Fix test after new argument was added (9e7f8352c7a3)
- Joseph Huber: [Clang] Add width handling for <gpuintrin.h> shuffle helper (#125896) (1ee32d22344f)
- Nikolas Klauser: [Clang] Fix __{add,remove}_pointer in Objective-C++ (#123678) (6195c3a981c8)
- Nikita Popov: [flang][cmake] Fix bcc dependencies (#125822) (4c4ed5e2f535)
- Nikita Popov: [flang] Move FIRSupport dependency to correct place (#125697) (dfa60a77e0ba)
- Nikita Popov: [mlir] Fix MLIRTestDialect dependency in MLIRTestIR (88f8956711f7)
- Daniil Kovalev: [PAC] Do not support some values of branch-protection with ptrauth-returns (#125280) (984a779b8155)
- Nico Weber: [clang] Handle f(no-)strict-overflow, f(no-)wrapv, f(no-)wrapv-pointer like gcc (#126524) (b4421735de4d)
- Simon Pilgrim: Revert “[SLP] getSpillCost - fully populate IntrinsicCostAttributes to improve cost analysis.” (#124962) (e15cd84440ef)
- Louis Dionne: [libc++] Make benchmarks dry-run by default on the release branch (1f3835104e64)
- Benjamin Maxwell: [AArch64][SME] Reduce ptrue count when filling p-regs from z-regs (#125523) (7b9b6740c1ff)
- Benjamin Maxwell: [AArch64][SME] Spill p-regs as z-regs when streaming hazards are possible (#123752) (1951944a9e4e)
- Alexey Bataev: [CG][RISCV]Fix shuffling of odd number of input vectors (758ac2a1b7cd)
- Louis Dionne: [libc++] Also provide an alignment assumption for vector in C++03 mode (#124839) (19662e3a4f5d)
- Brad Smith: [benchmark] Get number of CPUs with sysconf() on Linux (#125603) (2fb9effee42e)
- Yingwei Zheng: [InstSimplify] Add additional checks when substituting pointers (#125385) (56b4c1168f51)
- Nikita Popov: [flang] Use clang_target_link_libraries() for clang dependency (#126037) (7fda02c09d3b)
- Fangrui Song: [ELF] --package-metadata: support %[0-9a-fA-F][0-9a-fA-F] (9e07fbf64111)
- Florian Hahn: [LV] Forget LCSSA phi with new pred before other SCEV invalidation. (#119897) (5c75c290f87a)
- David Green: [AArch64] Fix op mask detection in performZExtDeinterleaveShuffleCombine (#126054) (c7f18bae1a9c)
- Nico Weber: [clang] Expose -f(no-)strict-overflow as a clang-cl option (#126512) (f0f59e3ecc17)
- Amr Hesham: [LLVM][Support] Add new CreateFileError functions (#125906) (ed762db1e008)
- Amr Hesham: [llvm-objcopy] Fix prints wrong path when dump-section output path doesn’t exist (#125345) (5f2d66a9d225)
- Oliver Stannard: [ARM] Empty structs are 1-byte for C++ ABI (#124762) (38333d5e4258)
- Diego Caballero: [mlir][cmake] Add missing MLIRTestDialect dependencies (04d55131ce72)
- Chuanqi Xu: [C++20] [Modules] Don’t diagnose duplicated friend declarations between modules incorrectly (0d363c30b875)
- Craig Topper: [RISCV] Check isFixedLengthVector before calling getVectorNumElements in getSingleShuffleSrc. (#125455) (820c8c79c875)
- Florian Hahn: [VPlan] Check VPWidenIntrinsicSC in VPRecipeWithIRFlags::classof. (f7c7db9b6fb1)
- Jonas Paulsson: [SystemZ] Replace SELRMux with COPY in case of identical operands. (#125108) (5b48526fe347)
- Nikita Popov: [Mips] Use getSignedConstant() in or combine (75e20e0b801e)
- Lang Hames: [ORC] Force eh-frame use for older Darwins on x86-64 in MachOPlatform, LLJIT. (bf2828f65823)
- Lang Hames: [ORC] Add ExecutionSession convenience methods to access bootstrap values. (c7e085c5d32d)
- Lang Hames: [ORC] Add a FIXME. NFC. (1ba879965ff8)
- Lang Hames: [ORC-RT] Use templates to express deeply nested function calls in testcase. (a9b497606405)
- Lang Hames: [JITLink] Add missing testcase for compact-unwind-needs-dwarf. (b3876b698d0a)
- Lang Hames: [JITLink] Handle compact-unwind records that depend on DWARF FDEs. (749bebc5dab4)
- Lang Hames: [JITLink] Add a jitlink::Symbol::getSection() convenience method. (975fa93b5f37)
- Lang Hames: [ORC] Fix buggy calculation of second-level-page offset in unwind-info. (0c23bde7176d)
- Lang Hames: [ORC-RT] Add a comment explaining the purpose of this testcase. NFC. (7782b8310d49)
- Lang Hames: Re-reapply “[ORC] Enable JIT support for the compact-unwind…” with fixes. (50c4c2bf6802)
- Lang Hames: [ORC] Moch MachOPlatform unwind-info fixes. (74d53f73bdf8)
- Lang Hames: [ORC] Fix eh-frame record target finding in MachOPlatform. (1bcbc68e98b0)
- Lang Hames: [ORC] Rename MachOCompactUnwindSectionName to MachOUnwindInfoSectionName. (c5f8508dd364)
- Lang Hames: [ORC] Actually use -jit-kind=orc for the new minimal-throw-catch.ll test. (3a474e70939a)
- Lang Hames: [ORC] Add minimal-throw-catch.ll regression test for lli -jit-mode=orc. (124480368687)
- Lang Hames: [ORC] Drop ‘Info’ from MachOCompactUnwindInfoSectionName. (4abac9fbfdcd)
- Lang Hames: [ORC] Fix file comment formatting. NFC. (b05e3a7d5e22)
- Michael Park: [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of
finishPendingActions. (#121245) (b2b41544eefa) - beetrees: Fix
llvm/test/DebugInfo/Generic/discriminated-union.llon big-endian targets (#125849) (5e36383513a5) - Tom Tromey: Allow 128-bit discriminants in DWARF variants (#125578) (e5ea8f0a4855)
- Louis Dionne: [libc++] Replace __is_trivially_relocatable by is_trivially_copyable (#124970) (f92369f2591f)
- David Spickett: [mlir][CMake] Fix dependency on MLIRTestDialect in Transforms tests (#125894) (898089b76e1c)
- David Green: [AArch64] Enable AvoidLDAPUR for cpu=generic between armv8.4 and armv9.3. (#125261) (3351e1b142a8)
- CarolineConcatto: [AArch64] Update feature dep. for Armv9.6 extensions (#125874) (de5dcad3a2d3)
- Peter Smith: [LLD][ELF][AArch64] Discard .ARM.attributes sections (#125838) (4d3d4445c67c)
- Joseph Huber: [Offload] Stop the RPC server faiilng with more than one GPU (#125982) (dbb2699d2eee)
- kadir çetinkaya: [clang] Parse warning-suppression-mapping after setting up diagengine (#125714) (e40790864ba0)
- Phoebe Wang: [X86] Do not combine LRINT and TRUNC (#125848) (454d7c10f186)
- Tom Stellard: workflows/premerge: Move concurrency definition to workflow level (#126308) (3c011c65f618)
- Nikita Popov: [libclc] Allow default path when looking for llvm-spirv (#126071) (e2426cd9e9b4)
- David Sherwood: [LoopVectorize] Fix build error (#126218) (b5f41cc50c9d)
- David Sherwood: [LoopVectorize] Fix cost model assert when vectorising calls (#125716) (3542150f05a1)
- Brad Smith: [flang][Driver] When linking with the Fortran runtime also link with libexecinfo (#125998) (7bcfaa1c4d9c)
- kadir çetinkaya: [clang] Stop parsing warning suppression mappings in driver (#125722) (4cde428de0fe)
- Nikita Popov: [TableGen] Don’t use inline storage for ReferenceLocs (NFC) (#125231) (4d04a406a5a5)
- Nikita Popov: [TableGen] Reduce size of MatchTableRecord (NFC) (#125221) (14c5784ee4c0)
- s.vgys: fix: removes invalid token from LLVM_VERSION_SUFFIX in LIBC namespace (#126193) (3a3a3230d171)
- Mark de Wever: [libc++][TZDB] Fixes %z escaping. (#125399) (71ee354bab4a)
- Pavel Labath: Add info about the gdb x packet into the release notes (#125680) (04209c2a2b3e)
- Pavel Labath: [lldb] Add support for gdb-style ‘x’ packet (#124733) (4d16551293fe)
- Jonas Devlieghere: [CMake] Fix typo in docstring: telemtry → telemetry (NFC) (7fa1a3a398d5)
- Jonas Devlieghere: [llvm] Add CMake flag to compile out the telemetry framework (#124850) (0892dddc23c6)
- Yingwei Zheng: [InstCombine] Fix FMF propagation in
foldSelectWithFCmpToFabs(#121580) (857d8d767ab2) - Phoebe Wang: [X86][AVX10] Disable m[no-]avx10.1 and switch m[no-]avx10.2 to alias of 512 bit options (#124511) (#125057) (99f3ed737567)
- Craig Topper: [RISCV] Use getSignedConstant for negative values. (#125903) (c08c9f97f93b)
- Tom Stellard: workflows/premerge: Re-enable tests (#125978) (49a8fb2bef6d)
- Alexandros Lamprineas: [FMV][AArch64] Release notes for LLVM20. (#125525) (78729e5ae25e)
- Benjamin Maxwell: [clang] Support member function poiners in Decl::getFunctionType() (#125077) (d8cec6dfe6ab)
- Brad Smith: [flang][runtime] Make sure to link libexecinfo if it exists (#125344) (8fe8a869201b)
- Tom Stellard: workflows/release-binaries: Enable PGO (#124442) (412360878db7)
- Florian Hahn: [VPlan] Only use SCEV for live-ins in tryToWiden. (#125436) (de1e3e98748a)
- Ben Langmuir: [asan][test] Disable suppressions-alloc-dealloc-mismatch.cpp on Darwin (2b09e5936aa3)
- Vitaly Buka: [asan][android] XFAIL suppressions-alloc-dealloc-mismatch (2d1f7e0082b8)
- Ben Langmuir: [asan][test] Attempt to fix suppressions-alloc-dealloc-mismatch.cpp on Darwin (#124987) (5a406bde97d8)
- Michał Górny: [offload] [test] Use test compiler ID rather than host (#124408) (28e563c23815)
- Michał Górny: [offload]
gnu::formatwith variadic template functions is Clang-only (#124406) (091c11f29e16) - Sam Tebbs: [AArch64] Disallow vscale x 1 partial reductions (#125252) (8be3fc0f5c7b)
- David Green: [AArch64] Enable vscale_range with +sme (#124466) (d185bd94ff77)
- Tom Stellard: workflows/release-tasks: Re-use release-binaries-all workflow (#125378) (dc50bb0b1455)
- Tom Stellard: workflows/premerge: Cancel in progress jobs when a PR is merged (#125329) (#125588) (0cca13f758a8)