Hi! I am happy to announce that LLVM 17.0.0-rc4 has just been released!
Another massive release candidate with over 90 PRs closed and the following diffstat:
236 files changed, 5798 insertions(+), 1013 deletions(-)
For the next two weeks, we must be careful with what changes we land in the release branch. Please try to restrict fixes to severe bug fixes, crashes, or regressions.
Thanks to everyone who submitted or reviewed fixes!
Download sources and binaries on GitHub.
Full ChangeLog:
- Christian Sigg: [mlir][nfc] Allow ops to have operands/attributes named
context
. (092b6c5ee370) - DianQK: [JumpThreading] Invalidate LVI after
combineMetadataForCSE
. (dccf183bb260) - DianQK: [JumpThreading][NFC] Pre-commit for invalid LVI. (ae9c45b11259)
- Takuya Shimizu: Revert ā[clang][Docs] Added release note for D142609ā (9597525dc133)
- Younan Zhang: [clang][clangd] Ensure the stack bottom before building AST (5b4513afa406)
- Younan Zhang: [clang] Construct ExprRequirement with SubstitutionDiagnostic on SubstFailure (c2c9c0f1388e)
- Elizabeth Andrews: [NFC][Clang] Fix static analyzer concern about null value dereference (175a130b9f84)
- Fangrui Song: [sanitizer] scanf interceptor: fix write size for %mc/%mC/%mS (7150c6d4ee40)
- Vassil Vassilev: [CodeGen] First check the kind and then the llvm::Function properties. (ecea6d6828d6)
- Fangrui Song: [Driver] Report warnings for unclaimed TargetSpecific options for assembler input (e04acab63c26)
- hstk30: [AArch64] Fix arm neon vstx lane memVT size (ca372df48a05)
- Martin Storsjƶ: [llvm-windres] Implement the windres flag --use-temp-file (466677b12685)
- Haojian Wu: [Tooling/Inclusion] Add std::range symbols in the mapping. (6a562bbd51c9)
- Fangrui Song: [sanitizer][test] -std=c2x instead of -std=c23 (a612cb0b81d8)
- Fangrui Song: [Driver] Adjust -fsanitize=function & -mexecute-only interop after D158614 (051aa171d217)
- Ying Yi: [UBSan] Disable the function and kcfi sanitizers on an execute-only target. (c138c8a72e36)
- Phoebe Wang: [X86][BF16] Lower FP_ROUND for vector types under AVX512BF16 (e9eaf3dc64a6)
- Phoebe Wang: [X86][BF16] Add test coverage for AVX-NE-CONVERT (a0de0b440fa6)
- Haojian Wu: [clangd] Respect IWYU keep pragma for standard headers. (dc2d2f9ba1bc)
- Craig Topper: [RISCV] Prevent tryToFoldBNEOnCmpXchgResult from deleting AND if it has others users. (b879e0f5c402)
- Amy Kwan: [PowerPC][lld] Account for additional X-Forms ā D-Form/DS-Forms load/stores when relaxing initial-exec to local-exec (2b3336fa54af)
- Simon Tatham: [AArch64] Add Defs=[NZCV] to MTE loop pseudos. (844f1e5a026c)
- Mark de Wever: [libc++][format] Fixes out of bounds access. (078e20cade55)
- Yuxuan Shui: [lldb][windows] _wsopen_s does not accept bits other than
_S_IREAD | _S_IWRITE
(4a999da21422) - Garvit Gupta: [RISCV] Fix assertion failure when zcmp extension is enabled. (1b1113731fef)
- Markus Bƶck: [mlir] Fix infinite recursion in alias initializer (b66219d73500)
- Matthias Springer: [mlir] Fix crash when adding nested dialect extensions (cc7e24c7a723)
- Balaji V. Iyer: [mlir][math] Modify math.powf to handle negative bases. (94f348b7842a)
- Matthias Springer: [mlir][memref] Fix crash in SubViewReturnTypeCanonicalizer (ad5ed49a142b)
- Lei Huang: [PowerPC] Update V17.0.0 release notes (08d720da6b1e)
- Serge Pavlov: [clang][test] Make check pattern shorter (45c677d8c62b)
- Serge Pavlov: [clang] Run test for concrete target (78447a8ad57a)
- Serge Pavlov: [clang] Set FP options in Sema when instantiating CompoundStmt (cfd6f0fb9d58)
- Tom Stellard: workflows: Fix libclang-abi test after update to use download-artifac⦠(#64877) (b8ea78cf4495)
- Aaron Ballman: Silently accept -Wgnu-empty-initializer (b8444b613b3a)
- Jon Roelofs: [CMake] Add a few more missing dependencies on ClangDriverOptions (5a60d716ca5b)
- Owen Pan: [clang-format] Exclude kw_decltype in RemoveParentheses (1440745b0a64)
- Luke Lau: [RISCV] Donāt relax policy to ta when vmergeās VL shrinks during folding (6f1974e04c3c)
- Luke Lau: [RISCV] Add test case showing vmerge fold miscompile with tail policy (993681f594dc)
- Fangrui Song: Function multi-versioning: disable ifunc for ELF targets other than glibc/Android/FreeBSD (9afe6676833d)
- Brooks Davis: [msan] Fix compilation on non-glibc (b6cf21feeead)
- Martin Storsjƶ: [compiler-rt] [test] Adjust an XFAIL for strtoll_strict.c for MinGW targets (c8abecdaca4e)
- Fangrui Song: [sanitizer] Intercept glibc 2.38 _isoc23* functions (dd230efe703f)
- Fangrui Song: [asan] Intercept atoll and strtoll on Windows (cf16374055c1)
- dingfei: [clang] Update NumFunctionDeclBits for FunctionDeclBitfields (4dea033c9b9f)
- Galen Elias: [clang-format] Fix braced initializer with templated base class (2c9feb07f337)
- Takuya Shimizu: [clang][ExprConstant] Fix crash on uninitialized base class subobject (8c5c652ed71b)
- Vassil Vassilev: Reland ā[clang-repl] Adapt to the recent dylib-related changes in ORC.ā (d469d5ce19a8)
- Phoebe Wang: [X86][BF16] Lower FP_EXTEND for vector types under AVX512BF16 (94af834cb87f)
- Erik Desjardins: [Tests][ConstraintElim] autogen newly-added case in large-constant-ints.ll (NFC) (acc6a14413f3)
- Erik Desjardins: [ConstraintElim] fix crash with large constants in mul nsw (5d2eda78bce6)
- Khem Raj: [llvm-exegesis] Use mmap2 when mmap is unavailable to fix riscv32 build (a7346857934d)
- Aaron Ballman: Fix up release note; NFC (9fbdf9f8b104)
- Amy Huang: [llvm-rc] Continue to use Argv[0] to resolve executable path (da76a22ae9ff)
- Fangrui Song: [Driver,X86] Ignore -mfpmath= for assembler input (ed108ee79b31)
- Tobias Hieta: Revert ā[clang] Set FP options in Sema when instantiating CompoundStmtā (0638df00951c)
- Tobias Hieta: Revert ā[clang] Run test for concrete targetā (baae3c31aba9)
- Rainer Orth: [Driver] Add PIE support on Solaris (e91ad6b97fcb)
- Samuel Thibault: [libc++] Fix GNU/Hurd build (0ec768e415b7)
- David Tellenbach: [AArch64] Check opcode before trying to extract register from operand (ef7421f3f74b)
- Lei Huang: [PowerPC] Exclude frexp(long double) on linux (77d7f7d769c6)
- Denis Revunov: [BOLT][Instrumentation] Add test for append-pid option (3670e6a5c8a5)
- Denis Revunov: [BOLT][Instrumentation] Fix indirect call profile in PIE (51844c6ca933)
- Chuanqi Xu: [NFC] [C++20] [Coroutines] Mention the side effect of a fix may bring regressions (6998ecd330f2)
- Chuanqi Xu: [C++20] [Coroutines] Mark await_suspend as noinline if the awaiter is not empty (f05226d7e38c)
- Ian Anderson: [libc++][Modules] locale fails to compile with clang modules when _LIBCPP_LOCALE__L_EXTENSIONS is undefined (2641da8e1057)
- Konstantin Varlamov: [libc++] Increase the constexpr steps limit on some
bitset
tests. (4114813bf2fe) - Konstantin Varlamov: [libc++][ranges] Fix
ranges::to
test. (f63cdbcc0cdc) - Ian Anderson: [libc++][Modules] Simplify the __std_clang_module header generation (0521244b2474)
- Ian Anderson: [libc++][Modules] Generate the __std_clang_module header (5e2c5225f8f4)
- Ian Anderson: [libc++][Modules] Remove unnecessary
requires
from the module map (ae498406499a) - Ian Anderson: [libc++] Move header_information.py up from tests (231dab0e40e7)
- Nikolas Klauser: [libc++] Fix problems with GCC 13 and switch to it in the CI (01f7134c0ea8)
- XinWang10: Fix regression of D157680 (4b414e52ac10)
- Mehdi Amini: Fix ODS verifier emission for DerivedAttr when Properties are enabled (5e47fe194595)
- Mehdi Amini: Fix canonicalizer to copy the entire GreedyRewriteConfig instead of selected fields (a95298a0ed4b)
- Mehdi Amini: Fix MSAN error: use of unitialized value when hashing the MLIR pass manager (NFC) (69946c8c9ce7)
- Mehdi Amini: Fix MLIR pass manager initialization: hash the pass pipeline to detect when initialization is needed (c5f0c32da777)
- Mehdi Amini: Fix some missing fully qualified namespaces in MLIR TableGen generator (0d8fd074b7a5)
- Mehdi Amini: Fix MLIR build failure: error: no member named āgetValueā in āmlir::OptionalParseResultā (67dca9da75b2)
- Mehdi Amini: Finish renaming getOperandSegmentSizeAttr() from
operand_segment_sizes
tooperandSegmentSizes
(5db0d770c7e8) - Serge Pavlov: [clang] Run test for concrete target (e54f48384bb2)
- Serge Pavlov: [clang] Set FP options in Sema when instantiating CompoundStmt (f1d5ea362577)
- Nico Weber: clang: Fix x86-no-gather-no-scatter.cpp on macOS after 993bdb047c90e9 (dcb7bcff2766)
- Karl-Johan Johnsson: [MachineLICM][WinEH] Donāt hoist register reloads out of funclets (1856972dfe1d)
- Denis Revunov: [BOLT][Instrumentation] Keep profile open in WatchProcess (a4bf0d98670d)
- Chuanqi Xu: [Coroutines] [CoroElide] Donāt think exceptional terminator donāt leak coro handle unconditionally any more (7dbb49af2aba)
- eopXD: [CGCall][RISCV] Handle function calls with parameter of RVV tuple type (6d0ff3d27ced)
- Michael Halkenhaeuser: [OpenMP][OMPT] Fix
target enter data
callback ordering & reported device num (1d54dc2f7586) - Michael Halkenhaeuser: [OpenMP][OMPT] Fix reported target pointer for data alloc callback (4d5feafb9dc0)
- Craig Topper: [RISCV] Check type size for lax conversions between RVV builtin types and VectorType::RVVFixedLengthDataVector. (2e17e9e261dd)
- Jessica Clarke: [compiler-rt] Use .globl for FreeBSD/NetBSD interceptor wrappers (c6d6417a0b7c)