[all-commits] [llvm/llvm-project] d340a6: Produce back-references for anonymous namespaces (...
David Green via All-commits
all-commits at lists.llvm.org
Tue Apr 7 11:19:26 PDT 2026
Branch: refs/heads/users/pcc/spr/main.libcxx-introduce-__force_nonstandard_layout-base-class-for-pointer-field-protection
Home: https://github.com/llvm/llvm-project
Commit: d340a68ee01c080bdde116ef9d1c1bcab4316d52
https://github.com/llvm/llvm-project/commit/d340a68ee01c080bdde116ef9d1c1bcab4316d52
Author: Brady Hahn <zeromemesdev at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/AST/MicrosoftMangle.cpp
M clang/test/CodeGenCXX/cfi-icall.cpp
M clang/test/CodeGenCXX/mangle-ms.cpp
Log Message:
-----------
Produce back-references for anonymous namespaces (#188843)
The Microsoft mangle implementation does not produce back-references for
anonymous namespaces, which results in nonsensical output from both
`undname` and `llvm-undname`. Consider the following example:
```
namespace {
struct X {};
X foo(X, X);
}
int main() {
foo({}, {});
}
```
Clang 22.1.0
```
?foo@?A0xC9C482F4@@YA?AUX@?A0xC9C482F4@@U1?A0xC9C482F4@@0 at Z
undname:
struct `anonymous namespace'::X __cdecl `anonymous namespace'::foo(struct `anonymous namespace'::A0xC9C482F4,struct `anonymous namespace'::A0xC9C482F4)
llvm-undname:
struct `anonymous namespace'::X __cdecl `anonymous namespace'::foo(struct `anonymous namespace'::0xC9C482F4, struct `anonymous namespace'::0xC9C482F4)
```
MSVC 19.50
```
?foo@?A0xa6a4f20e@@YA?AUX at 1@U21 at 0@Z
undname:
struct A0xa6a4f20e::X __cdecl `anonymous namespace'::foo(struct A0xa6a4f20e::X,struct A0xa6a4f20e::X)
llvm-undname:
struct 0xa6a4f20e::X __cdecl `anonymous namespace'::foo(struct 0xa6a4f20e::X, struct 0xa6a4f20e::X)
```
As seen in the undname output for Clang's mangling, not recording a name
back-reference for the anonymous namespace when mangling results in
references to the anonymous namespace's hash in-place of the struct's
name.
When recompiling the example with the changes, Clang yields
`?foo@?A0x69FA3AC2@@YA?AUX at 1@U21 at 0@Z`. Aside from the meaningless
discrepancy with the hash, this is identical to what is produced by
MSVC.
Resolves #37999
Commit: 9238b0f765ada177cd7034cf75a57acf26f2ac46
https://github.com/llvm/llvm-project/commit/9238b0f765ada177cd7034cf75a57acf26f2ac46
Author: ambergorzynski <120007557+ambergorzynski at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
A llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll
Log Message:
-----------
[NFC][SPIRV] New test for untested case in SPIRVEmitIntrinsics (#188950)
[This
case](https://github.com/llvm/llvm-project/blob/bc3571569685bfa4671e80d112dc0d5c8fc7b25d/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp#L2815-L2818)
is not covered by any existing test (checked via code coverage and
inserting an `abort`). New test proposed that covers this line, as
demonstrated by test failure when an `abort` is present in that line.
Commit: 15bfc06b6bd49dea6e7b12fb2e440bc12f1dba1a
https://github.com/llvm/llvm-project/commit/15bfc06b6bd49dea6e7b12fb2e440bc12f1dba1a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M offload/CMakeLists.txt
M offload/cmake/Modules/LibomptargetGetDependencies.cmake
M offload/cmake/OpenMPTesting.cmake
M offload/plugins-nextgen/CMakeLists.txt
M offload/plugins-nextgen/level_zero/CMakeLists.txt
M offload/test/lit.site.cfg.in
M offload/tools/CMakeLists.txt
M offload/tools/deviceinfo/CMakeLists.txt
M offload/tools/kernelreplay/CMakeLists.txt
Log Message:
-----------
[Offload][NFC] Various minor changes to Offload CMake (#189029)
Summary:
Most of these just remove some redundancy or rename `openmp` ->
`offload` where the variable is purely internal.
Commit: f52797c54d4ef9269ac1da63388d794e5c3d4c0a
https://github.com/llvm/llvm-project/commit/f52797c54d4ef9269ac1da63388d794e5c3d4c0a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
Log Message:
-----------
[compiler-rt] Fix irrelevant warning on the builtins target (#189055)
Summary:
Currently, building through runtimes will yield this warning:
```
CMake Warning at compiler-rt/cmake/Modules/CompilerRTUtils.cmake:335 (message):
LLVMTestingSupport not found in LLVM_AVAILABLE_LIBS
Call Stack (most recent call first)
```
This is due to the fact that the builtins target does not go through the
s tandard runtimes patch and sets them as BUILDTREE_ONLY so they do not
show up. These are not used in this case, so just guard the condition to
suppress the warning.
Commit: 87bec4715266a145fea6676a6f08a19de7bfc00f
https://github.com/llvm/llvm-project/commit/87bec4715266a145fea6676a6f08a19de7bfc00f
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/constant-bus-restriction.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.div.fmas.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.div.scale.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for div_fmas/fixup/scale (#188305)
Commit: a125d9b5efd550883d8dbcf108448dd071ef77ea
https://github.com/llvm/llvm-project/commit/a125d9b5efd550883d8dbcf108448dd071ef77ea
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC] Reapply "Refactor to prepare for constant stride stores" (#188689)
Refactor to proceed #185964.
Much of this is a refactor to address this issues. Instead of iterating over one chain at a time, attempting all VFs for that given change, we now iterate over VFs, trying each chain for the current VF.
Includes fix for use after free bug.
Commit: 9e44babdafc74df960e4668c805574634ed23e36
https://github.com/llvm/llvm-project/commit/9e44babdafc74df960e4668c805574634ed23e36
Author: Han-Chung Wang <hanhan0912 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
Log Message:
-----------
[mlir][vector] Add support for dropping inner unit dims for transfer_read/write with masks. (#188841)
The revision clears a long-due TODO, which supports the lowering when
transfer_read/write ops have mask via inserting a vector.shape_cast op
for the masked value.
---------
Signed-off-by: hanhanW <hanhan0912 at gmail.com>
Commit: 22cfe6f39d432bd095e9a3638033f2bb99f83c8e
https://github.com/llvm/llvm-project/commit/22cfe6f39d432bd095e9a3638033f2bb99f83c8e
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/include/lldb/Breakpoint/BreakpointLocation.h
M lldb/include/lldb/Core/Address.h
M lldb/source/Breakpoint/BreakpointLocation.cpp
M lldb/source/Commands/CommandObjectMemory.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/Address.cpp
M lldb/source/DataFormatters/FormattersHelpers.cpp
M lldb/source/DataFormatters/StringPrinter.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
M lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
M lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
M lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
M lldb/source/Plugins/ABI/X86/ABISysV_i386.cpp
M lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp
M lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp
M lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp
M lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/InstrumentationRuntimeMainThreadChecker.cpp
M lldb/source/Plugins/Language/ObjC/CFBasicHash.cpp
M lldb/source/Plugins/Language/ObjC/CFBasicHash.h
M lldb/source/Plugins/Language/ObjC/NSString.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
M lldb/source/Symbol/SymbolContext.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/source/Target/Target.cpp
M lldb/source/ValueObject/ValueObjectDynamicValue.cpp
Log Message:
-----------
[lldb] Make single-argument Address constructor explicit (NFC) (#189035)
This is to highlight places where we (probably unintentionally)
construct an `Address` object from an already resolved address, making
it unresolved again.
See the changes in `DynamicLoaderDarwin.cpp` for a quick example.
Also, use this constructor instead of `Address(lldb::addr_t file_addr,
const SectionList *section_list)` when `section_list` is `nullptr`.
Commit: 2af95b2fa26756067f1573bcec77d183f0465b8a
https://github.com/llvm/llvm-project/commit/2af95b2fa26756067f1573bcec77d183f0465b8a
Author: Petter Berntsson <petter.berntsson at arm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/utils/docgen/docgen.py
Log Message:
-----------
[libc][docs] Fix POSIX basedefs links for nested headers (#188738)
Fix broken POSIX basedefs links for nested headers in llvm-libc docs.
The docgen script currently emits paths like `sys/wait.h.html`, but the
Open Group uses `sys_wait.h.html`, for example:
-
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_wait.h.html
This updates nested-header link generation while leaving flat headers
unchanged.
Commit: 28e2fa324727571a2dd6b0000e602acce37f8887
https://github.com/llvm/llvm-project/commit/28e2fa324727571a2dd6b0000e602acce37f8887
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Dialect/XeGPU/layout.mlir
M mlir/test/Dialect/XeGPU/subgroup-distribute-unit.mlir
M mlir/test/Dialect/XeGPU/xegpu-blocking.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
Log Message:
-----------
[MLIR][XeGPU] Extend convert_layout op to support scalar type (#188874)
This PR adds scalar type to convert_layout op's result and operand. It
also enhance convert_layout pattern in wg-to-sg, unrolling, and
sg-to-lane distribution.
It is to support reduction to scalar, whether currently the layout
propagation doesn't support scalar to carry any layout. The design
choice to insert convert_layout op after reduction-to-scalar op to
record the layout information permanently across the passes.
Commit: cb58fe9df51193b827d181e2716bbe3b71ba7b83
https://github.com/llvm/llvm-project/commit/cb58fe9df51193b827d181e2716bbe3b71ba7b83
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SCF/Utils/Utils.cpp
M mlir/test/Dialect/SCF/loop-unroll.mlir
Log Message:
-----------
[MLIR][SCF] Fix loopUnrollByFactor for unsigned loops with narrow integer types (#189001)
`loopUnrollByFactor` used `getConstantIntValue()` to read loop bounds,
which sign-extends the constant to `int64_t`. For unsigned `scf.for`
loops with narrow integer types (e.g. i1, i2, i3), this produces wrong
results: a bound such as `1 : i1` has `getSExtValue() == -1` but should
be treated as `1` (unsigned).
Two bugs were introduced by this:
1. **Wrong epilogue detection**: the comparison `upperBoundUnrolledCst <
ubCst` used signed int64, so e.g. `0 < -1` (where ubCst is the
sign-extended i1 value 1) evaluated to false, suppressing the epilogue
that should execute the remaining iterations.
2. **Zero step after overflow**: when `tripCountEvenMultiple == 0` (all
iterations go to the epilogue), `stepUnrolledCst = stepCst *
unrollFactor` can overflow the bound type's bitwidth and wrap to 0. A
zero step causes `constantTripCount` to return `nullopt`, preventing the
zero-trip main loop from being elided.
Fix:
- Use zero-extension (`getZExtValue`) instead of sign-extension when
reading bounds for unsigned loops.
- When `tripCountEvenMultiple == 0`, keep the original step for the main
loop to avoid the zero-step issue (the step value is irrelevant for a
zero-trip loop anyway).
Fixes #163743
Assisted-by: Claude Code
Commit: bd947ea6fde984e4101a4fd2f1e1105a150d24df
https://github.com/llvm/llvm-project/commit/bd947ea6fde984e4101a4fd2f1e1105a150d24df
Author: Sirraide <aeternalmail at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaExpr.cpp
M clang/test/SemaCXX/cxx23-builtin-subscript.cpp
Log Message:
-----------
[Clang] [Sema] Don't diagnose multidimensional subscript operators on dependent types (#188910)
I forgot to check for dependent types in #187828; we somehow didn’t have
tests for this so CI didn’t catch this...
Commit: 030ef70908f7ee0328caf608fce3d1e961d7bf80
https://github.com/llvm/llvm-project/commit/030ef70908f7ee0328caf608fce3d1e961d7bf80
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/docs/build_and_test.rst
Log Message:
-----------
[libc][docs] Document libc-shared-tests ninja target (#189062)
Added a brief description of the libc-shared-tests target to the
Building and Testing page.
This target allows running tests for shared standalone components like
math primitives without the full libc runtime.
Commit: 7e2f78923c47cf10639f706ea528b49142669a2d
https://github.com/llvm/llvm-project/commit/7e2f78923c47cf10639f706ea528b49142669a2d
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
Log Message:
-----------
[RISCV][NFC] Use enum types to improve debuggability (#188418)
So that we can see the enum values instead of integral values when
dumping in debuggers.
Commit: d271bd37cec5e4330634d70f44c493b0936053a1
https://github.com/llvm/llvm-project/commit/d271bd37cec5e4330634d70f44c493b0936053a1
Author: Ben Dunbobbin <Ben.Dunbobbin at sony.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/LTO/LTO.cpp
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
Revert "[DTLTO] Speed up temporary file removal in the ThinLTO backed (#189043)
This reverts commit 11b439c5c5a07c95d30ce25abd6adf7f5fbb7105.
timeTraceProfilerCleanup() can be called before the temporary file
deletion has completed in LLD. This causes memory leaks that were
flagged up by sanitizer builds, e.g.:
https://lab.llvm.org/buildbot/#/builders/24/builds/18840/steps/11/logs/stdio
Commit: 80b304d14beec80381bd11eb19099bb54d213092
https://github.com/llvm/llvm-project/commit/80b304d14beec80381bd11eb19099bb54d213092
Author: Ben Dunbobbin <Ben.Dunbobbin at sony.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lld/COFF/LTO.cpp
M lld/ELF/LTO.cpp
M llvm/include/llvm/LTO/LTO.h
M llvm/lib/LTO/LTO.cpp
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
[DTLTO] Improve performance of adding files to the link (#186366)
The in-process ThinLTO backend typically generates object files in
memory and adds them directly to the link, except when the ThinLTO cache
is in use. DTLTO is unusual in that it adds files to the link from disk
in all cases.
When the ThinLTO cache is not in use, ThinLTO adds files via an
`AddStreamFn` callback provided by the linker, which ultimately appends
to a `SmallVector` in LLD. When the cache is in use, the linker supplies
an `AddBufferFn` callback that adds files more efficiently (by moving
`MemoryBuffer` ownership).
This patch adds a mandatory `AddBufferFn` to the DTLTO ThinLTO backend.
The backend uses this to add files to the link more efficiently.
Additionally:
- Move AddStream from CGThinBackend to InProcessThinBackend, for reader
clarity.
- Modify linker comments that implied the AddBuffer path is
cache-specific.
For a Clang link (Debug build with sanitizers and instrumentation) using
an optimized toolchain (PGO non-LTO, llvmorg-22.1.0), measuring the mean
`Add DTLTO files to the link` time trace scope duration:
- On Windows (Windows 11 Pro Build 26200, AMD Family 25 @ ~4.5 GHz, 16
cores/32 threads, 64 GB RAM), this patch reduces the mean from
2799.148 ms to 157.972 ms.
- On Linux (Ubuntu 24.04.3 LTS Kernel 6.14, Ryzen 9 5950X, 16
cores/32 threads, boost up to 5.09 GHz, 64 GB RAM), this patch reduces
the mean from 255.291 ms to 41.630 ms.
Based on work by @romanova-ekaterina and @kbelochapka.
Commit: ead9ac8331fd496ce4c348ab70e3709c68d46d50
https://github.com/llvm/llvm-project/commit/ead9ac8331fd496ce4c348ab70e3709c68d46d50
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
R libc/include/limits.h.def
M libc/include/limits.yaml
R libc/include/locale.h.def
M libc/include/locale.yaml
R libc/include/time.h.def
M libc/include/time.yaml
R libc/include/wchar.h.def
M libc/include/wchar.yaml
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc] Remove header templates from several C standard headers. (#188878)
Switches the following headers to hdrgen-produced ones by referencing
some macro from C standard and the file containing the declarations in
corresponding YAML files:
* limits.h (referenced _WIDTH / _MAX / _MIN families).
* locale.h (referenced LC_ family).
* time.h (referenced CLOCKS_PER_SEC).
* wchar.h (referenced WEOF).
Commit: 00aebbff71ff4e348538708064ba2e033ccd6b2a
https://github.com/llvm/llvm-project/commit/00aebbff71ff4e348538708064ba2e033ccd6b2a
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Refactor signature of weakCrossingSIVtest and check inputs (NFCI) (#187117)
Passing SCEVAddRecExpr objects directly to weakCrossingSIVtest and
checking the validity of the input operands
Commit: 3d5a2552c5a13648bdd36581a01299f89a9bb7a1
https://github.com/llvm/llvm-project/commit/3d5a2552c5a13648bdd36581a01299f89a9bb7a1
Author: Thurston Dang <thurston at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Log Message:
-----------
[msan] Disambiguate "Strict" vs. "Heuristic" when dumping instructions (#188873)
When -msan-dump-strict-instructions and
-msan-dump-heuristic-instructions are simultaneously enabled, it is
unclear from the output whether each instruction is strictly vs.
heuristically handled. [*] This patch fixes the issue by tagging the
output.
The actual instrumentation of the code is unaffected by this change.
[*] A workaround is to compile the code once with only
-msan-dump-strict-instructions, and a second time with
-msan-dump-heuristic-instructions, but this unnecessarily doubles the
compilation time.
Commit: c703ea52be7976e68208585da4edd242c61d5bc5
https://github.com/llvm/llvm-project/commit/c703ea52be7976e68208585da4edd242c61d5bc5
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/fma.hlsl
A clang/test/SemaHLSL/BuiltIns/fma-errors.hlsl
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll
A llvm/test/CodeGen/DirectX/fma.ll
Log Message:
-----------
[HLSL][DirectX][SPIRV] Implement the `fma` API (#185304)
This PR adds `fma` HLSL intrinsic (with support for matrices)
It follows all of the steps from #99117.
Closes #99117.
Commit: 34a4fe5bc9d37eea24908d5dbcede4e2441bdec3
https://github.com/llvm/llvm-project/commit/34a4fe5bc9d37eea24908d5dbcede4e2441bdec3
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/Headers/__clang_spirv_libdevice_declares.h
Log Message:
-----------
[OFFLOAD] Fix a build break (#189076)
This PR fixes a build break reported after introduction of spirv
function declarations
Commit: 88bc265295f609e5ab6f36a0456a08ddb8cae872
https://github.com/llvm/llvm-project/commit/88bc265295f609e5ab6f36a0456a08ddb8cae872
Author: Md Abdullah Shahneous Bari <md.abdullah.shahneous.bari at intel.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/ExecutionEngine/LevelZeroRuntimeWrappers.cpp
M mlir/lib/Target/LLVM/XeVM/Target.cpp
Log Message:
-----------
[XeVM] Use `ocloc` for binary generation. (#188331)
XeVM currently doesn't support native binary generation. This PR enables
Ahead of Time (AOT) compilation of gpu module to native binary using
`ocloc`.
Currently, only works with LevelZeroRuntimeWrappers.
Commit: a996f2a8db5c19cf9f22de787089cf08772a6391
https://github.com/llvm/llvm-project/commit/a996f2a8db5c19cf9f22de787089cf08772a6391
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-bit-ops.mir
R llvm/test/CodeGen/AMDGPU/frame-index-disjoint-s-or-b32.ll
Log Message:
-----------
Revert "AMDGPU: Fold frame indexes into disjoint s_or_b32" (#189074)
Reverts llvm/llvm-project#102345
unblock bot: https://lab.llvm.org/buildbot/#/builders/10/builds/25403
Commit: 509f181f40f86926a0c264b41fab7777be4ff91e
https://github.com/llvm/llvm-project/commit/509f181f40f86926a0c264b41fab7777be4ff91e
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M flang/test/Transforms/debug-imported-entity.fir
M mlir/test/Dialect/LLVMIR/bytecode.mlir
M mlir/test/Target/LLVMIR/Import/debug-info.ll
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir
M mlir/test/mlir-tblgen/attr-or-type-format.td
M mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
Log Message:
-----------
[MLIR][TableGen] Fix ArrayRefParameter in struct format roundtrip (#189065)
When an ArrayRefParameter (or OptionalArrayRefParameter) appears in a
non-last position within a struct() assembly format directive, the
printed
output is ambiguous: the comma-separated array elements are
indistinguishable from the struct-level commas separating key-value
pairs.
Fix this by wrapping such parameters in square brackets in both the
generated printer and parser. The printer emits '[' before and ']' after
the array value; the parser calls parseLSquare()/parseRSquare() around
the
FieldParser call. Parameters with a custom printer or parser are
unaffected
(the user controls the format in that case).
Fixes #156623
Assisted-by: Claude Code
Commit: 3c625a179f79f6dc680961e67b4d553337682f17
https://github.com/llvm/llvm-project/commit/3c625a179f79f6dc680961e67b4d553337682f17
Author: Jun Wang <jwang_2024 at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/test/MC/AMDGPU/add-sub-no-carry.s
M llvm/test/MC/AMDGPU/dpp64.s
M llvm/test/MC/AMDGPU/ds-gfx9.s
M llvm/test/MC/AMDGPU/flat-scratch-st-mode.s
M llvm/test/MC/AMDGPU/gfx10-constant-bus.s
M llvm/test/MC/AMDGPU/gfx1011_err.s
M llvm/test/MC/AMDGPU/gfx1030_err.s
M llvm/test/MC/AMDGPU/gfx1030_unsupported.s
M llvm/test/MC/AMDGPU/gfx10_flat_instructions_err.s
M llvm/test/MC/AMDGPU/gfx10_unsupported.s
M llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop2_fake16_err.s
M llvm/test/MC/AMDGPU/gfx11_unsupported.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sop1.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sopp_err.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vflat.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vimage.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_dpp16-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_dpp8-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop2.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_dpp16-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_dpp8-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1_dpp16-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1_dpp16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1_dpp8-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1_dpp8.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p_dpp16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p_dpp8.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vsample_err.s
M llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32.s
M llvm/test/MC/AMDGPU/gfx12_unsupported.s
M llvm/test/MC/AMDGPU/gfx7_unsupported.s
M llvm/test/MC/AMDGPU/gfx8_unsupported.s
M llvm/test/MC/AMDGPU/gfx9-asm-err.s
M llvm/test/MC/AMDGPU/gfx90a_err.s
M llvm/test/MC/AMDGPU/gfx942_err.s
M llvm/test/MC/AMDGPU/gfx942_unsupported.s
M llvm/test/MC/AMDGPU/gfx950_asm_features.s
M llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s
M llvm/test/MC/AMDGPU/gfx950_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx950_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx950_err.s
M llvm/test/MC/AMDGPU/gfx9_4_generic_unsupported.s
M llvm/test/MC/AMDGPU/gfx9_unsupported.s
M llvm/test/MC/AMDGPU/literals.s
M llvm/test/MC/AMDGPU/literalv216.s
M llvm/test/MC/AMDGPU/mimg-err-gfx942.s
M llvm/test/MC/AMDGPU/mimg-err.s
M llvm/test/MC/AMDGPU/mubuf-gfx9.s
M llvm/test/MC/AMDGPU/reg-syntax-extra.s
M llvm/test/MC/AMDGPU/vop3-literal.s
M llvm/test/MC/AMDGPU/vopc-vi.s
Log Message:
-----------
[AMDGPU][MC] Improving assembler error message for unsupported instructions (#185778)
The updated error message shows both the instruction name and the GPU
target name.
Commit: 1611a23a5b34c0faf464d5ce605fe2d4a86baaa6
https://github.com/llvm/llvm-project/commit/1611a23a5b34c0faf464d5ce605fe2d4a86baaa6
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M offload/test/api/omp_get_mapped_ptr.c
M offload/test/api/omp_get_num_procs.c
M offload/test/mapping/array_section_implicit_capture.c
M offload/test/mapping/chained_containing_structs_1.cc
M offload/test/mapping/chained_containing_structs_2.cc
M offload/test/mapping/chained_containing_structs_3.cc
M offload/test/mapping/data_member_ref.cpp
M offload/test/mapping/declare_mapper_nested_default_mappers.cpp
M offload/test/mapping/declare_mapper_nested_mappers.cpp
M offload/test/mapping/declare_mapper_target_checks.cpp
M offload/test/mapping/duplicate_mappings_1.cpp
M offload/test/mapping/duplicate_mappings_2.cpp
M offload/test/mapping/implicit_device_ptr.c
M offload/test/mapping/lambda_by_value.cpp
M offload/test/mapping/low_alignment.c
M offload/test/mapping/map_ordering_tgt_alloc_tofrom.c
M offload/test/mapping/map_ordering_tgt_data_alloc_from.c
M offload/test/mapping/map_ordering_tgt_data_alloc_to_from.c
M offload/test/mapping/map_ordering_tgt_data_alloc_tofrom.c
M offload/test/mapping/map_ordering_tgt_exit_data_delete_from.c
M offload/test/mapping/ompx_hold/struct.c
M offload/test/mapping/pr38704.c
M offload/test/mapping/ptr_and_obj_motion.c
M offload/test/mapping/target_data_array_extension_at_exit.c
M offload/test/mapping/target_map_for_member_data.cpp
M offload/test/mapping/use_device_addr/target_use_device_addr.c
M offload/test/offloading/atomic-compare-signedness.c
M offload/test/offloading/back2back_distribute.c
M offload/test/offloading/bug47654.cpp
M offload/test/offloading/bug49021.cpp
M offload/test/offloading/bug50022.cpp
M offload/test/offloading/bug51781.c
M offload/test/offloading/bug51982.c
M offload/test/offloading/bug53727.cpp
M offload/test/offloading/bug64959.c
M offload/test/offloading/extern.c
M offload/test/offloading/generic_multiple_parallel_regions.c
M offload/test/offloading/global_constructor.cpp
M offload/test/offloading/host_as_target.c
M offload/test/offloading/spmdization.c
M offload/test/offloading/static_linking.c
M offload/test/offloading/strided_multiple_update_from.c
M offload/test/offloading/strided_multiple_update_to.c
M offload/test/offloading/strided_partial_update_from.c
M offload/test/offloading/strided_partial_update_to.c
M offload/test/offloading/strided_ptr_multiple_update_from.c
M offload/test/offloading/strided_ptr_multiple_update_to.c
M offload/test/offloading/strided_ptr_partial_update_from.c
M offload/test/offloading/strided_ptr_partial_update_to.c
M offload/test/offloading/strided_update_count_expression.c
M offload/test/offloading/strided_update_from.c
M offload/test/offloading/strided_update_multiple_arrays_count_expression.c
M offload/test/offloading/strided_update_multiple_arrays_variable_stride.c
M offload/test/offloading/strided_update_to.c
M offload/test/offloading/strided_update_variable_count_and_stride.c
M offload/test/offloading/strided_update_variable_stride.c
M offload/test/offloading/strided_update_variable_stride_misc.c
M offload/test/offloading/target-tile.c
M offload/test/offloading/target_constexpr_mapping.cpp
M offload/test/offloading/target_critical_region.cpp
M offload/test/offloading/target_depend_nowait.cpp
M offload/test/offloading/target_nowait_target.cpp
M offload/test/offloading/target_update_from.c
M offload/test/offloading/target_update_ptr_count_expression.c
M offload/test/offloading/target_update_ptr_variable_count_and_stride.c
M offload/test/offloading/target_update_ptr_variable_stride.c
M offload/test/offloading/target_update_strided_struct_count_expression.c
M offload/test/offloading/target_update_strided_struct_from.c
M offload/test/offloading/target_update_strided_struct_multiple_from.c
M offload/test/offloading/target_update_strided_struct_multiple_to.c
M offload/test/offloading/target_update_strided_struct_partial_from.c
M offload/test/offloading/target_update_strided_struct_partial_to.c
M offload/test/offloading/target_update_strided_struct_to.c
M offload/test/offloading/target_update_strided_struct_variable_count_and_stride.c
M offload/test/offloading/target_update_strided_struct_variable_stride.c
M offload/test/offloading/target_update_to.c
M offload/test/offloading/thread_state_1.c
M offload/test/offloading/thread_state_2.c
M offload/test/sanitizer/kernel_crash.c
M offload/test/sanitizer/kernel_crash_async.c
M offload/test/sanitizer/kernel_crash_many.c
M offload/test/sanitizer/kernel_trap.c
M offload/test/sanitizer/kernel_trap.cpp
M offload/test/sanitizer/kernel_trap_async.c
M offload/test/sanitizer/kernel_trap_many.c
M offload/test/unified_shared_memory/associate_ptr.c
M offload/test/unified_shared_memory/close_member.c
M openmp/device/src/Synchronization.cpp
Log Message:
-----------
[OFFLOAD] Add spirv implementation for named barrier (#180393)
This change adds implementation for named barriers for SPIRV backend.
Since there is no built in API/intrinsics for named barrier in SPIRV,
the implementation loosely follows implementation for AMD
Commit: ba44df4b88a8e6f6e8adb6aab7c2181b148cd4f3
https://github.com/llvm/llvm-project/commit/ba44df4b88a8e6f6e8adb6aab7c2181b148cd4f3
Author: Aditya Goyal <107386933+goyaladitya05 at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/tools/clang-format/git-clang-format
Log Message:
-----------
[clang-format] Add pre-commit CI env var support to git-clang-format (#188816)
When git-clang-format is invoked with no explicit commit arguments and
both PRE_COMMIT_FROM_REF and PRE_COMMIT_TO_REF are set, the script
automatically uses those refs as the diff range and implies --diff. If
the variables are absent, existing behavior is fully preserved.
This allows projects to use `git-clang-format` directly inside CI
pipelines via the [pre-commit](https://pre-commit.com/) framework
without any wrapper scripts or extra configuration.
Closes: #188813
No existing lit test suite for this script. Verified manually that env
vars activate two-commit diff mode, existing behavior is preserved
without them, and explicit CLI args always override them.
Commit: df6d6c9cd14113637cae8d4f51f9a05a09e7dd50
https://github.com/llvm/llvm-project/commit/df6d6c9cd14113637cae8d4f51f9a05a09e7dd50
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[Scudo] Disable ScudoCombinedTests.NewType (#189070)
This is failing in some configurations on AArch64 Linux. Given there are
a lot of follow-up commits that makes this hard to revert, just disable
it for now pending future investigation.
Commit: 871d675c52ca4e2fad51aa90dd065d4f12229f06
https://github.com/llvm/llvm-project/commit/871d675c52ca4e2fad51aa90dd065d4f12229f06
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Add PTX feature specifically when CUDA is not available (#189083)
Summary:
People need to be able to build this without a CUDA installation.
Long term we should bump up the minimum version as I'm pretty sure every
architecture before this has been deprecated by NVIDIA.
Commit: 28f24b5029aae68a0936ce2f8bfddbf19ffd1bbe
https://github.com/llvm/llvm-project/commit/28f24b5029aae68a0936ce2f8bfddbf19ffd1bbe
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/fract-match.ll
Log Message:
-----------
AMDGPU: Add baseline tests for more fract patterns (#189092)
Commit: 502b5e0bea1282006b7ba74b7e4c2df3eea4dd12
https://github.com/llvm/llvm-project/commit/502b5e0bea1282006b7ba74b7e4c2df3eea4dd12
Author: Kazu Hirata <kazu at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
A llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
Log Message:
-----------
[MemProf] Dump inline call stacks as optimization remarks (#188678)
This patch teaches the MemProf matching pass to dump inline call
stacks as analysis remarks like so:
frame: 704e4117e6a62739 main:10:5
frame: 273929e54b9f1234 foo:2:12
inline call stack: 704e4117e6a62739,273929e54b9f1234
The output consists of two types of remarks:
- "frame": Acts as a dictionary mapping a unique MD5-based FrameID
to source information (function name, line offset, and column).
- "inline call stack": Provides the full call stack for a call site
as a sequence of FrameIDs.
Both types of remarks are deduplicated to reduce the output size.
This patch is intended to be a debugging aid.
Commit: 560b8c9afd76910dda48c59d8788de91cd1810a1
https://github.com/llvm/llvm-project/commit/560b8c9afd76910dda48c59d8788de91cd1810a1
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M .ci/premerge_advisor_explain.py
Log Message:
-----------
[CI] Make AArch64 Premerge Job Fail on Errors (#188801)
Right now we report the errors, but the job does not actually fail. This
patch fixes that.
Commit: a9f5f93440a39e97514ee8f5b4de2a37a3a3c35f
https://github.com/llvm/llvm-project/commit/a9f5f93440a39e97514ee8f5b4de2a37a3a3c35f
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
A llvm/test/CodeGen/AMDGPU/coexec-scheduler.ll
Log Message:
-----------
[AMDGPU] Add HWUI pressure heuristics to coexec strategy (#184929)
Adds basic support for new heuristics for the CoExecSchedStrategy.
InstructionFlavor provides a way to map instructions to different
"Flavors". These "Flavors" all have special scheduling considerations --
either they map to different HarwareUnits, or have unique scheduling
properties like fences.
HardwareUnitInfo provides a way to track and analyze the usage of some
hardware resource across the current scheduling region.
CandidateHeuristics holds the state for new heuristics, as well as the
implementations.
In addition, this adds new heuristics to use the various support pieces
listed above. tryCriticalResource attempts to schedule instructions that
use the most demanded HardwareUnit. If no such instructions are ready to
be scheduled, tryCriticalResourceDependency attempts to schedule
instructions which enable instructions that use demanded HardwareUnits.
We are incrementally adding the new heuristics. While in the process of
this, the state of tryCandidateCoexec may not be great - as is the case
after this PR.
Commit: eb2ff7101373c2a2f03320ac11b13740b978a6fc
https://github.com/llvm/llvm-project/commit/eb2ff7101373c2a2f03320ac11b13740b978a6fc
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Mark variable only used in assert as maybe_unused (#189100)
Fix 00aebbff71ff4e348538708064ba2e033ccd6b2a.
Commit: ce1b12ee08133a983050e88c3c0303df973f3276
https://github.com/llvm/llvm-project/commit/ce1b12ee08133a983050e88c3c0303df973f3276
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/source/Core/SearchFilter.cpp
A lldb/test/Shell/Breakpoint/Inputs/main.c
A lldb/test/Shell/Breakpoint/source-regex-missing-source.test
Log Message:
-----------
[lldb] Iterate over a copy of the ModuleList in SearchFilter (#189009)
Avoid a potential deadlock caused by the search filter callback
acquiring the target's module lock by iterating over a copy of the list.
Fixes #188766
Commit: 1c3018b3d6bf4c88406a39871abdd5933066028a
https://github.com/llvm/llvm-project/commit/1c3018b3d6bf4c88406a39871abdd5933066028a
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
R llvm/test/CodeGen/AMDGPU/coexec-scheduler.ll
Log Message:
-----------
Revert "[AMDGPU] Add HWUI pressure heuristics to coexec strategy" (#189107)
Seems to be triggering some issues with the buildbots
https://lab.llvm.org/buildbot/#/builders/159/builds/44122
Unused variable + bad debug build.
Commit: 8b395a7755fd75699da6e4a17d43e849ad08084b
https://github.com/llvm/llvm-project/commit/8b395a7755fd75699da6e4a17d43e849ad08084b
Author: Justin Stitt <justinstitt at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/test/CodeGen/overflow-behavior-types.c
Log Message:
-----------
[Clang] Ensure pattern exclusion priority over OBT (#188390)
Make sure pattern exclusions have priority over the overflow behavior types when deciding whether or not to emit truncation checks.
Accomplish this by carrying an extra field through `ScalarConversionOpts` which we later check before emitting instrumentation.
Commit: f9ad232421e37e4168f6937abdd0a1665a590f12
https://github.com/llvm/llvm-project/commit/f9ad232421e37e4168f6937abdd0a1665a590f12
Author: Justin Stitt <justinstitt at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Frontend/backend-attribute-inlining-cross-tu.c
A clang/test/Frontend/backend-attribute-inlining-debug-vs-heuristic.cpp
A clang/test/Frontend/backend-attribute-inlining-modes.c
A clang/test/Frontend/backend-attribute-inlining.c
M llvm/include/llvm/IR/DiagnosticInfo.h
M llvm/lib/IR/DiagnosticInfo.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
Log Message:
-----------
[Clang] Show inlining hints for __attribute__((warning/error)) (#174892)
When functions marked with `[[gnu::warning/error]]` are called through inlined functions, we now show the inlining chain that led to the call when ``-fdiagnostics-show-inlining-chain`` is enabled.
With this flag, two modes are possible:
- **heuristic** mode: Uses `srcloc` and `inlined.from` metadata to reconstruct the inlining chain. Functions that are `inline`, `static`, `always_inline`, or in anonymous namespaces get `srcloc` metadata attached. This mode emits a note suggesting `-gline-directives-only` for more accurate locations.
- **debug** mode: Automatically used instead of heuristic when building with at least `-gline-directives-only` (implied by `-g1` or higher). Leverages `DILocation` debug info for reliable source locations.
Fixes: https://github.com/ClangBuiltLinux/linux/issues/1571
Commit: 26af10f837ad5cac26331a07f15e55fea9270583
https://github.com/llvm/llvm-project/commit/26af10f837ad5cac26331a07f15e55fea9270583
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M lldb/source/API/SBAddress.cpp
M lldb/source/Breakpoint/BreakpointResolverName.cpp
M lldb/source/Core/Address.cpp
M lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Target/RegisterContextUnwind.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
Log Message:
-----------
[lldb] Use Address::Slide() to simplify code (NFC) (#189097)
Commit: eea4af4c295d5f84fdcedc720f1826f0cb653262
https://github.com/llvm/llvm-project/commit/eea4af4c295d5f84fdcedc720f1826f0cb653262
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M lldb/include/lldb/Core/Address.h
M lldb/source/API/SBAddress.cpp
M lldb/source/Core/Section.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/unittests/Symbol/SymbolTest.cpp
Log Message:
-----------
[lldb] Use Address(section, offset) constructor in more places (NFC) (#189101)
After this change, Address::SetSection() had only one use left (in a
unit test) and was removed. Address::ClearSection() had no uses, now
also removed. (It is unlikely that someone needs to change the section
without simultaneously changing the section offset, and for that we have
a constructor.)
Commit: 0f8192373565a8fc660d48b767959590865a3f94
https://github.com/llvm/llvm-project/commit/0f8192373565a8fc660d48b767959590865a3f94
Author: Pau Sum <pau at sumpau.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
Log Message:
-----------
[CIR][AArch64] Upstream vmull_*/vmull_high_* and vmul_p8/vmul_high_p8 Neon builtins (#188371)
Add CIR generation for AArch64 NEON builtins `vmull_*` and
`vmull_high_*`
The accompanying tests from
[AArch64/neon-instrinsics](https://github.com/llvm/llvm-project/blob/main/clang/test/CodeGen/AArch64/neon-intrinsics.c)
were integrated with new checks for CIR codegen.
Part of #185382
Commit: e825f424270adfb42767d8cb452da61b7ebd9e31
https://github.com/llvm/llvm-project/commit/e825f424270adfb42767d8cb452da61b7ebd9e31
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
Log Message:
-----------
AMDGPU: Improve fsqrt f64 expansion with ninf (#183695)
Commit: 01768d3b95cb9c13dc2c531c7d66d68087518576
https://github.com/llvm/llvm-project/commit/01768d3b95cb9c13dc2c531c7d66d68087518576
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M lldb/source/Target/BorrowedStackFrame.cpp
Log Message:
-----------
[lldb] Fix the order of arguments in the StackFrame constructor call (#189108)
`pc` and `cfa` arguments were swapped.
Commit: 563d3f6865080037fe1c9be27c44b07512de735f
https://github.com/llvm/llvm-project/commit/563d3f6865080037fe1c9be27c44b07512de735f
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M offload/test/mapping/data_member_ref.cpp
M offload/test/offloading/bug50022.cpp
M offload/test/offloading/info.c
M offload/test/offloading/strided_offset_multidim_update.c
M offload/test/offloading/strided_partial_update_to.c
M offload/test/offloading/strided_update_count_expression.c
M offload/test/offloading/strided_update_to.c
M offload/test/offloading/target_depend_nowait.cpp
M offload/test/offloading/target_nowait_target.cpp
M offload/test/offloading/target_update_ptr_count_expression.c
M offload/test/offloading/target_update_to.c
M offload/test/unified_shared_memory/close_member.c
Log Message:
-----------
[OFFLOAD] Disable tests that may cause hangs in CI (#189116)
Commit: 0aba82eb70aafde426c1ebdd773b058920e3cd67
https://github.com/llvm/llvm-project/commit/0aba82eb70aafde426c1ebdd773b058920e3cd67
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/include/CMakeLists.txt
A libc/include/cpio.yaml
Log Message:
-----------
[libc] Add missing POSIX macros to cpio.h (#188840)
Define the POSIX cpio.h header and its standard macros in the libc build
system. Configure the macros directly in the YAML specification to allow
automated header generation without a custom definition template.
Commit: d6ff5e77781dfe9623e9eff10907dc45fab8ba3f
https://github.com/llvm/llvm-project/commit/d6ff5e77781dfe9623e9eff10907dc45fab8ba3f
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/utils/docgen/header.py
Log Message:
-----------
[libc][docs] Parse inline macro_value from YAML in docgen (#189118)
The docgen script was previously hardcoded to assume all implemented
macros must be placed in a *-macros.h header. This updates docgen to
read inline macro_value properties directly from the source YAML files,
correctly recognizing them as implemented.
Commit: 044876423b8d06a9c1f5d562a2e0caa5cfea2be8
https://github.com/llvm/llvm-project/commit/044876423b8d06a9c1f5d562a2e0caa5cfea2be8
Author: Cristian Assaiante <cristianassaiante at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/ProfDataUtils.h
A llvm/test/Transforms/SimplifyCFG/branch-weight-disjunction-overflow.ll
Log Message:
-----------
[ProfInfo] Fix integer overflow in getDisjunctionWeights (#189079)
This PR fixes an integer overflow in
[`getDisjunctionWeights`](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/IR/ProfDataUtils.h#L241)
and adds a regression test to cover the failing case. Casting branch
weights before the computations solved the issue.
Issue https://github.com/llvm/llvm-project/issues/189021
Commit: a2d84b5d8d9c3ae3a07c4f47cd1b6b8f64be1b41
https://github.com/llvm/llvm-project/commit/a2d84b5d8d9c3ae3a07c4f47cd1b6b8f64be1b41
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/test/CodeGenHIP/builtins-amdgcn-gfx1250-wmma-f16.hip
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-wmma-w32.cl
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-wmma-w32-param.cl
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
M llvm/test/Bitcode/amdgpu-wmma-drop-ab-mods-upgrade.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-wmma-xdl.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imm.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imod.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-opt.mir
M llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[AMDGPU] Remove neg support from 4 more gfx1250 WMMA (#189115)
These are previously covered by AMDGPUWmmaIntrinsicModsAllReuse.
Commit: efba01ae12703f1c6d6283a392ba852ac06a4f90
https://github.com/llvm/llvm-project/commit/efba01ae12703f1c6d6283a392ba852ac06a4f90
Author: Luke Wren <wren6991 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/builtins/cpu_model/riscv.c
M llvm/lib/Target/RISCV/RISCVFeatures.td
Log Message:
-----------
[RISCV] Allocate feature bits for Zifencei and Zmmul (#143306)
As proposed in
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/110.
No real compiler-rt implementation as Linux does not list these
extensions in hwprobe.
Signed-off-by: Luke Wren <wren6991 at gmail.com>
Commit: 1128d7443852fe6c114ad542537dd62b1428fd43
https://github.com/llvm/llvm-project/commit/1128d7443852fe6c114ad542537dd62b1428fd43
Author: Ilija Tovilo <ilija.tovilo at me.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lld/docs/ELF/linker_script.rst
Log Message:
-----------
[LLD][skip ci] Fix typo in linker_script.rst (#148867)
Commit: 89ae675f590101ef2cbff7ee5e8c1005597bac08
https://github.com/llvm/llvm-project/commit/89ae675f590101ef2cbff7ee5e8c1005597bac08
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
A llvm/test/CodeGen/SPIRV/pointers/store-array-of-vectors-to-vector.ll
Log Message:
-----------
[SPIRV][Matrix] Legalize store of matrix to array of vector memory layout (#188139)
fixes #188131
This change address stylistic changes @bogners requested in
https://github.com/llvm/llvm-project/pull/186215/ It also adds the
`storeMatrixArrayFromVector`. to
SPIRVLegalizePointerCast.cpp when we detect the matrix array of vector
memory layout
Changes to storeArrayFromVector were cleanup
Assisted-by Github Copilot for test case check lines
Commit: 7be9972cb2b11bdf70459459cb7f5dcdb0839ea7
https://github.com/llvm/llvm-project/commit/7be9972cb2b11bdf70459459cb7f5dcdb0839ea7
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M libclc/CMakeLists.txt
M libclc/cmake/modules/AddLibclc.cmake
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[libclc] Fix llvm-spirv dependency when llvm-spirv is built in-tree (#188896)
When SPIRV-LLVM-Translator is built in-tree (i.e., placed in
llvm/projects folder), llvm-spirv target exists.
Drop legacy llvm-spirv_target dependency (was for non-runtime build) and
add llvm-spirv to runtimes dependencies.
Commit: ae63230c23151c16ba68d5213da8bd5459c03a40
https://github.com/llvm/llvm-project/commit/ae63230c23151c16ba68d5213da8bd5459c03a40
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
R libc/include/endian.h.def
M libc/include/endian.yaml
R libc/include/features.h.def
M libc/include/features.yaml
R libc/include/float.h.def
M libc/include/float.yaml
R libc/include/stdckdint.h.def
M libc/include/stdckdint.yaml
R libc/include/stdint.h.def
M libc/include/stdint.yaml
R libc/include/sys/auxv.h.def
M libc/include/sys/auxv.yaml
R libc/include/sys/epoll.h.def
M libc/include/sys/epoll.yaml
R libc/include/sys/ioctl.h.def
M libc/include/sys/ioctl.yaml
R libc/include/sys/mman.h.def
M libc/include/sys/mman.yaml
R libc/include/sys/random.h.def
M libc/include/sys/random.yaml
R libc/include/sys/resource.h.def
M libc/include/sys/resource.yaml
R libc/include/sys/select.h.def
M libc/include/sys/select.yaml
R libc/include/sys/socket.h.def
M libc/include/sys/socket.yaml
R libc/include/sys/stat.h.def
M libc/include/sys/stat.yaml
R libc/include/sys/time.h.def
M libc/include/sys/time.yaml
R libc/include/sys/types.h.def
R libc/include/sys/wait.h.def
M libc/include/sys/wait.yaml
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc] Remove more header template files (#189066)
Get rid of several .h.def files which were used to ensure that the
macro definitions from llvm-libc-macro would be included in the public
header. Replace this logic with YAML instead - add entries to the
"macros" list that point to the correct "macro_header" to ensure it
would be included.
For C standard library headers, list several standard-define macros
to document their availability. For POSIX/Linux headers, only reference
a handful of macro, since more planning is needed to decide how to
represent platform-specific macro in YAML.
Commit: 15bc5b0267ad4b8206b108ecd596a842020b9ba9
https://github.com/llvm/llvm-project/commit/15bc5b0267ad4b8206b108ecd596a842020b9ba9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_fract.inc
Log Message:
-----------
libclc: Simplify fract implementation (#189080)
Commit: a5fa4dba6e2e01c4e8c4571301048c392facaed5
https://github.com/llvm/llvm-project/commit/a5fa4dba6e2e01c4e8c4571301048c392facaed5
Author: PiJoules <leonardchan at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_allocator.h
M compiler-rt/lib/asan/asan_malloc_linux.cpp
M compiler-rt/lib/hwasan/hwasan_allocation_functions.cpp
M compiler-rt/test/sanitizer_common/TestCases/Linux/free_aligned_sized.c
M compiler-rt/test/sanitizer_common/TestCases/Linux/free_sized.c
Log Message:
-----------
[compiler-rt] Add interceptors for free_[aligned_]sized for asan+hwasan (#189109)
Commit: c4847d250bf958eaa7415fa7d480d17f8132719b
https://github.com/llvm/llvm-project/commit/c4847d250bf958eaa7415fa7d480d17f8132719b
Author: Roland McGrath <mcgrathr at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[Fuchsia] Set LIBCXX_ABI_UNSTABLE instead of LIBCXX_ABI_VERSION (#189123)
Use the generic switch rather than encoding the version number it
currently corresponds to.
Commit: 1264ffc4cc17ba8aac19624d478874c2f6bd10d8
https://github.com/llvm/llvm-project/commit/1264ffc4cc17ba8aac19624d478874c2f6bd10d8
Author: Kamran Yousafzai <yousafzai.mkamran at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/CodeGen/Targets/RISCV.cpp
A clang/test/CodeGen/RISCV/riscv-fpcc-struct.c
M clang/test/CodeGen/RISCV/riscv64-abi.c
Log Message:
-----------
[clang][RISC-V] fixed fp calling convention for fpcc eligible structs for risc-v (#110690)
The code generated for calls with FPCC eligible structs as arguments
doesn't consider the bitfield, which results in a store crossing the
boundary of the memory allocated using alloca, e.g.
For the code:
```
struct __attribute__((packed, aligned(1))) S {
const float f0;
unsigned f1 : 1;
};
unsigned func(struct S arg)
{
return arg.f1;
}
```
The generated IR is:
```
define dso_local signext i32 @func(
float [[TMP0:%.*]], i32 [[TMP1:%.*]]) #[[ATTR0:[0-9]+]] {
[[ENTRY:.*:]]
[[ARG:%.*]] = alloca [[STRUCT_S:%.*]], align 1
[[TMP2:%.*]] = getelementptr inbounds nuw { float, i32 }, ptr [[ARG]], i32 0, i32 0
store float [[TMP0]], ptr [[TMP2]], align 1
[[TMP3:%.*]] = getelementptr inbounds nuw { float, i32 }, ptr [[ARG]], i32 0, i32 1
store i32 [[TMP1]], ptr [[TMP3]], align 1
[[F1:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[ARG]], i32 0, i32 1
[[BF_LOAD:%.*]] = load i8, ptr [[F1]], align 1
[[BF_CLEAR:%.*]] = and i8 [[BF_LOAD]], 1
[[BF_CAST:%.*]] = zext i8 [[BF_CLEAR]] to i32
ret i32 [[BF_CAST]]
```
Where, `store i32 [[TMP1]], ptr [[TMP3]], align 1` can be seen crossing
the boundary of the allocated memory. If, the IR is seen after
optimizations (EarlyCSEPass), the IR left is:
```
define dso_local noundef signext i32 @func(
float [[TMP0:%.*]], i32 [[TMP1:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
[[ENTRY:.*:]]
ret i32 0
```
The patch trims the second member of the struct after taking into
consideration the bitwidth to decide the appropriate integer type and
the test shows the results of this patch.
Note that the bug is seen only when `f` extension is enabled for FPCC
eligibility.
Co-authored-by: muhammad.kamran4 <muhammad.kamran at esperantotech.com>
Commit: 9be0cc173db5c524adbfca4cd99d9a6ed3d8996c
https://github.com/llvm/llvm-project/commit/9be0cc173db5c524adbfca4cd99d9a6ed3d8996c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
Log Message:
-----------
AMDGPU: Skip last corrections and scaling for afn llvm.sqrt.f64 (#183697)
Device libs has a fast sqrt macro implemented this way.
Commit: 5bb4eea8dd7cd6c32600e3a0f1fb7b0ca6b268f8
https://github.com/llvm/llvm-project/commit/5bb4eea8dd7cd6c32600e3a0f1fb7b0ca6b268f8
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
A llvm/test/CodeGen/Hexagon/asm-operand-modifiers.ll
A llvm/test/CodeGen/Hexagon/asm-printer-cpool.ll
A llvm/test/CodeGen/Hexagon/constext-store-imm.ll
A llvm/test/CodeGen/Hexagon/reg-info-types.ll
A llvm/test/CodeGen/Hexagon/split-double-volatile.ll
A llvm/test/CodeGen/Hexagon/target-objfile-sdata.ll
Log Message:
-----------
[Hexagon] Add coverage tests for AsmPrinter and misc CodeGen (#183953)
Add tests targeting assembly printing and miscellaneous CodeGen areas
with low coverage:
- asm-printer-cpool.ll: HexagonAsmPrinter exercising constant pool entry
emission.
- asm-operand-modifiers.ll: Inline asm operand modifier printing paths
(lo/hi/mem).
- target-objfile-sdata.ll, split-double-volatile.ll, reg-info-types.ll:
Miscellaneous CodeGen coverage for HexagonTargetObjectFile small data
classification, HexagonSplitDouble volatile load handling, and
HexagonRegisterInfo register class queries.
- constext-store-imm.ll: HexagonConstExtenders store-immediate
optimization paths.
Commit: bc12c38af9c160b65e36523a1b2e390fdb1c3625
https://github.com/llvm/llvm-project/commit/bc12c38af9c160b65e36523a1b2e390fdb1c3625
Author: Henrik G. Olsson <hnrklssn at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LiveVariables.cpp
M clang/lib/Analysis/UnsafeBufferUsage.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
M clang/lib/Interpreter/InterpreterUtils.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaFunctionEffects.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/tools/driver/cc1gen_reproducer_main.cpp
Log Message:
-----------
[Clang] remove redundant uses of dyn_cast (NFC) (#189106)
This removes dyn_cast invocations where the argument is already of the
target type (including through subtyping). This was created by adding a
static assert in dyn_cast and letting an LLM iterate until the code base
compiled. I then went through each example and cleaned it up. This does
not commit the static assert in dyn_cast, because it would prevent a lot
of uses in templated code. To prevent backsliding we should instead add
an LLVM aware version of
https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-casting.html
(or expand the existing one).
Commit: c6fa976d5ba060b8d43a404ef4775f1f402a5131
https://github.com/llvm/llvm-project/commit/c6fa976d5ba060b8d43a404ef4775f1f402a5131
Author: Ruiling, Song <ruiling.song at amd.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-proper-value-replacement.ll
Log Message:
-----------
AMDGPU: Make VarIndex WeakTrackingVH in AMDGPUPromoteAlloca (#188921)
The test used to look all good, but actually not. The WeakVH just make
itself null after the pointed value being replaced. So a zero value was
used because VarIndex become null. The test checks looks all good.
Actually only the WeakTrackingVH have the ability to be updated to new
value.
Change the test slightly to make that using zero index is wrong.
Commit: 8e59c3a816d3281e00582ee553f8fdfdfa52ea39
https://github.com/llvm/llvm-project/commit/8e59c3a816d3281e00582ee553f8fdfdfa52ea39
Author: Md Abdullah Shahneous Bari <md.abdullah.shahneous.bari at intel.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
Log Message:
-----------
[XeVM] Fix the cache-control metadata string generation. (#187591)
Previously, it generated extra `single` quote marks around the outer
braces (i.e., `'{'` `6442:\220,1\22` `'}'`). SPIR-V backend does not
expect that. It expects `{6442:\220,1\22}`.
Commit: 7f48ead4e64ecb54a481fe9e11e39b5dab30a19d
https://github.com/llvm/llvm-project/commit/7f48ead4e64ecb54a481fe9e11e39b5dab30a19d
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/hip-phases.hip
Log Message:
-----------
[Driver][HIP] Fix bundled -S emitting bitcode instead of assembly for device (#189140)
[Driver][HIP] Fix bundled -S emitting bitcode instead of assembly for
device
PR #188262 added support for bundling HIP -S output under the new
offload driver, but the device backend still entered the
bitcode-emitting path in ConstructPhaseAction. The condition at the
Backend phase checked for the new offload driver and directed device
code to emit TY_LLVM_BC, without excluding the -S case. This caused
the device section in the bundled .s to contain LLVM bitcode instead
of textual AMDGPU assembly.
This broke the HIP UT CheckCodeObjAttr test which greps
copyKernel.s for "uniform_work_group_size" — a string that only
appears in textual assembly, not in bitcode.
Fix by excluding -S (without -emit-llvm) from the new-driver
bitcode path, so the device backend falls through to emit TY_PP_Asm
(textual assembly). Also add a missing lit test check that the
device backend produces assembler output for the bundled -S case.
Fixes: LCOMPILER-553
Commit: fb094491ac04ef57ffbf0a212d7056e23332b1c7
https://github.com/llvm/llvm-project/commit/fb094491ac04ef57ffbf0a212d7056e23332b1c7
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Program.h
M clang/test/CodeGenCXX/reference-temporary-subobject.cpp
M clang/test/CodeGenCXX/static-local-in-local-class.cpp
Log Message:
-----------
[clang][bytecode] Skip rvalue subobject adjustments for global temporaries (#189044)
We only did this for local variables but were were missing it for
globals.
Commit: cb8b65e3206ee9c054500d3852f9e972b62179bc
https://github.com/llvm/llvm-project/commit/cb8b65e3206ee9c054500d3852f9e972b62179bc
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/test/CodeGenObjC/no-nsconstant-literals.m
M clang/test/CodeGenObjC/objc2-constant-collection-literals.m
Log Message:
-----------
[clang][bytecode] Add support for objc array- and dictionary literals (#189058)
Commit: 097abb3d645851e8148a05e6ead3ed4c361a7ca1
https://github.com/llvm/llvm-project/commit/097abb3d645851e8148a05e6ead3ed4c361a7ca1
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/builtins.c
Log Message:
-----------
[clang][bytecode] Handle strcmp() not pointing to primitive arrays (#188917)
Commit: eb53972051f175224569ebc28e8dafbf73930b4d
https://github.com/llvm/llvm-project/commit/eb53972051f175224569ebc28e8dafbf73930b4d
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
M mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
M mlir/include/mlir/Reducer/ReductionNode.h
M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
M mlir/lib/Reducer/ReductionNode.cpp
M mlir/lib/Reducer/ReductionTreePass.cpp
M mlir/test/mlir-reduce/reduction-tree.mlir
Log Message:
-----------
[mlir][reducer] Add eraseRedundantBlocksInRegion and getSuccessorForwardOperands API to BranchOpInterface (#187864)
To simplify the output of the reduction-tree pass, this PR introduces
the eraseRedundantBlocksInRegion. For regions containing multiple
execution paths, this functionality selects the shortest 'interesting'
path. Additionally, this PR adds the getSuccessorForwardOperands API to
BranchOpInterface. This allows us to extract the ForwardOperands for a
specific path chosen from multiple alternatives, enabling the creation
of a cf.br operation for the redirected jump.
Commit: ad91a2f036820e210b669926cf0982b0c8d2da99
https://github.com/llvm/llvm-project/commit/ad91a2f036820e210b669926cf0982b0c8d2da99
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/RvalueReferenceParamNotMovedCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp
Log Message:
-----------
[clang-tidy] Fix rvalue-reference-param-not-moved FP on implicit functions (#189113)
Fixes https://github.com/llvm/llvm-project/issues/187716.
Commit: 5ae2fe75c3898cbf78f170d3cd686e02182f36fc
https://github.com/llvm/llvm-project/commit/5ae2fe75c3898cbf78f170d3cd686e02182f36fc
Author: Jorn Tuyls <jorn.tuyls at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/invalid.mlir
Log Message:
-----------
[mlir][vector] Reject alignment attribute on tensor-level gather/scatter (#188924)
Commit: 1efef761c5f338eb046a09fae640b5c978f55cc5
https://github.com/llvm/llvm-project/commit/1efef761c5f338eb046a09fae640b5c978f55cc5
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
M mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
M mlir/include/mlir/Reducer/ReductionNode.h
M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
M mlir/lib/Reducer/ReductionNode.cpp
M mlir/lib/Reducer/ReductionTreePass.cpp
M mlir/test/mlir-reduce/reduction-tree.mlir
Log Message:
-----------
Revert "[mlir][reducer] Add eraseRedundantBlocksInRegion and getSuccessorForwardOperands API to BranchOpInterface" (#189150)
Reverts llvm/llvm-project#187864, because it is causing same build bot
failures. See https://lab.llvm.org/buildbot/#/builders/138/builds/27662
and
https://lab.llvm.org/buildbot/#/builders/169/builds/21376/steps/11/logs/stdio
for memory leak issues.
Commit: 64d2f702cee57746b71993ae94d6377d4181bd2f
https://github.com/llvm/llvm-project/commit/64d2f702cee57746b71993ae94d6377d4181bd2f
Author: Corentin Jabot <corentin.jabot at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/www/cxx_status.html
Log Message:
-----------
[Clang][NFC] Add the list of C++26 papers approved in Kona and Croydon
Commit: 00c6b4dabd66d51ac672db710d16674ab4fa0c89
https://github.com/llvm/llvm-project/commit/00c6b4dabd66d51ac672db710d16674ab4fa0c89
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[MLIR][Vector] Fix crash in foldDenseElementsAttrDestInsertOp on poison index (#188508)
When a dynamic index of -1 (the kPoisonIndex sentinel) was folded into
the static position of a vector.insert op,
foldDenseElementsAttrDestInsertOp would proceed to call
calculateInsertPosition, which returned -1. The subsequent iterator
arithmetic (allValues.begin() + (-1)) was undefined behaviour, causing
an assertion in DenseElementsAttr::get.
Fix by bailing out early in foldDenseElementsAttrDestInsertOp when any
static position equals kPoisonIndex, consistent with how
InsertChainFullyInitialized already guards this case.
Fixes #188404
Assisted-by: Claude Code
Commit: 16e06589e963aadced8a5afeeaa2ec2a95d0a483
https://github.com/llvm/llvm-project/commit/16e06589e963aadced8a5afeeaa2ec2a95d0a483
Author: Corentin Jabot <corentin.jabot at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/www/cxx_status.html
Log Message:
-----------
[Clang][NFC] Trivial relocation is no longer a c++26 feature
Commit: 3b76b85b15a3e7aa004814944f6237f131b95961
https://github.com/llvm/llvm-project/commit/3b76b85b15a3e7aa004814944f6237f131b95961
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/test/Bytecode/bytecode_callback.mlir
M mlir/test/lib/IR/TestBytecodeRoundtrip.cpp
Log Message:
-----------
[MLIR] Fix crash in test-bytecode-roundtrip when test dialect is absent (#189163)
When invoking `-test-bytecode-roundtrip=test-dialect-version=X.Y` on a
module that contains no test dialect operations, the reader type
callback in `runTest0` called
`reader.getDialectVersion<test::TestDialect>()` and then immediately
asserted that it succeeded. However, if the test dialect was never
referenced in the bytecode (because no test dialect types appear in the
module), the dialect's version information is not stored in the
bytecode, so `getDialectVersion` legitimately returns failure.
When the test dialect version is unavailable in the bytecode being read,
the module contains no test dialect types, so no "funky"-group overrides
are needed and the callback can safely skip by returning `success()`.
A regression test is added with a module that has no test dialect ops,
exercising the `test-dialect-version=2.0` path that previously crashed.
Fixes #128321
Fixes #128325
Assisted-by: Claude Code
Commit: e568136e9480231030966acd4d79e1c05638aab7
https://github.com/llvm/llvm-project/commit/e568136e9480231030966acd4d79e1c05638aab7
Author: Twice <twice at apache.org>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/python/mlir/dialects/ext.py
M mlir/test/python/dialects/ext.py
Log Message:
-----------
[MLIR][Python] Add more field specifiers to Python-defined operations (#188064)
This PR adds two new field specifiers (`operand` and `attribute`) and
extends the existing one (`result`):
- `default_factory` parameter is added for `result` and `attribute` to
specify default value via a lambda/function
- `kw_only` parameter is added for all these three specifiers, to make a
field a keyword-only parameter (without giving a default value).
```python
def result(
*,
infer_type: bool = False,
default_factory: Optional[Callable[[], Any]] = None,
kw_only: bool = False,
) -> Any: ...
def operand(
*,
kw_only: bool = False,
) -> Any: ...
def attribute(
*,
default_factory: Optional[Callable[[], Any]] = None,
kw_only: bool = False,
) -> Any: ...
```
Examples about how to use them:
```python
class OperandSpecifierOp(TestFieldSpecifiers.Operation, name="operand_specifier"):
a: Operand[IntegerType[32]] = operand()
b: Optional[Operand[IntegerType[32]]] = None
c: Operand[IntegerType[32]] = operand(kw_only=True)
class ResultSpecifierOp(TestFieldSpecifiers.Operation, name="result_specifier"):
a: Result[IntegerType[32]] = result()
b: Result[IntegerType[16]] = result(infer_type=True)
c: Result[IntegerType] = result(
default_factory=lambda: IntegerType.get_signless(8)
)
d: Sequence[Result[IntegerType]] = result(default_factory=list)
e: Result[IntegerType[32]] = result(kw_only=True)
class AttributeSpecifierOp(
TestFieldSpecifiers.Operation, name="attribute_specifier"
):
a: IntegerAttr = attribute()
b: IntegerAttr = attribute(
default_factory=lambda: IntegerAttr.get(IntegerType.get_signless(32), 42)
)
c: StringAttr["a"] | StringAttr["b"] = attribute(
default_factory=lambda: StringAttr.get("a")
)
d: IntegerAttr = attribute(kw_only=True)
```
---------
Co-authored-by: Rolf Morel <rolfmorel at gmail.com>
Commit: 15940b130a21c4a8c13f97f28676f5791e538102
https://github.com/llvm/llvm-project/commit/15940b130a21c4a8c13f97f28676f5791e538102
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M libcxx/cmake/caches/AMDGPU.cmake
M libcxx/cmake/caches/NVPTX.cmake
Log Message:
-----------
[libcxx] Update GPU cache files to use the proper loader
Summary:
These were renamed and the aliases removed, fix running the tests.
Commit: f0ce26d06d822fd6985d227dc1be9d218977e334
https://github.com/llvm/llvm-project/commit/f0ce26d06d822fd6985d227dc1be9d218977e334
Author: Shikhar Soni <139053348+shikharish at users.noreply.github.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/headers/math/index.rst
M libc/include/math.yaml
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/log2p1f16.h
M libc/src/math/CMakeLists.txt
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/log2p1f16.cpp
A libc/src/math/log2p1f16.h
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/log2p1f16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/log2p1f16_test.cpp
M libc/utils/MPFRWrapper/MPCommon.cpp
M libc/utils/MPFRWrapper/MPCommon.h
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
Log Message:
-----------
[libc][math][c23] Add log2p1f16 C23 math function (#186754)
Signed-off-by: Shikhar Soni <shikharish05 at gmail.com>
Commit: 0ac35ecc0bdd8c3f87f0ecdfe862e3eaf8922444
https://github.com/llvm/llvm-project/commit/0ac35ecc0bdd8c3f87f0ecdfe862e3eaf8922444
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/lib/Format/Format.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix breaking enum braces when combined with export (#189128)
This fixes #186684.
Also fix (not) breaking variables declared on the same line as the
closing brace.
And adapt whitesmith to that changes.
Commit: 3f42ec658f2f08d8ce11909603c8a82dc9e1045a
https://github.com/llvm/llvm-project/commit/3f42ec658f2f08d8ce11909603c8a82dc9e1045a
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix annotation of references in function pointer typedefs (#188860)
Fixes #188695
Commit: 9d6b92e29fee91c827aed67b699a8a4cc38dbaac
https://github.com/llvm/llvm-project/commit/9d6b92e29fee91c827aed67b699a8a4cc38dbaac
Author: Pranshu Goyal <78131793+pranshoe at users.noreply.github.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/knownpow2-trunc-orzero.ll
M llvm/test/CodeGen/X86/known-pow2.ll
Log Message:
-----------
[DAG] SelectionDAG::isKnownToBeAPowerOfTwo - add ISD::TRUNCATE handling and tests (#184365)
Closes #181654
Commit: 9f3a9ea6ae689fa0fbd0137999834915cc908e5c
https://github.com/llvm/llvm-project/commit/9f3a9ea6ae689fa0fbd0137999834915cc908e5c
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Add distribution patterns for vector step, shape_cast & broadcast from sg-to-wi (#185960)
This PR adds distribution patterns for vector.step, vector.shape_cast &
vector.broadcast in the new sg-to-wi pass
Commit: ba6041bfbd22a4855e899fdf78fab7886cc34f71
https://github.com/llvm/llvm-project/commit/ba6041bfbd22a4855e899fdf78fab7886cc34f71
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
A llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-differing-addr-spaces.ll
Log Message:
-----------
[Matrix] Handle load/store with different AS in getNonAliasingPointer. (#188721)
If a load and a store have different address spaces, we cannot create a
runtime check. Instead, always copy the data to an alloca matching the
store address space.
Fixes https://github.com/llvm/llvm-project/issues/185236.
PR: https://github.com/llvm/llvm-project/pull/188721
Commit: 445089158020617ccde337202afefd784c315b27
https://github.com/llvm/llvm-project/commit/445089158020617ccde337202afefd784c315b27
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/non-reduced-select-of-bits.ll
Log Message:
-----------
[SLP] Check if potential bitcast/bswap candidate is a root of reduction
Need to check if the potential bitcast/bswap-like construct is a root of
the reduction, otherwise it cannot represent a bitcast/bswap construct.
Fixes #189184
Commit: 617ec39fd0ae5362c052c3a055df17f45cc29fde
https://github.com/llvm/llvm-project/commit/617ec39fd0ae5362c052c3a055df17f45cc29fde
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
Log Message:
-----------
[VPlan] Add printing test for dissolving replicate regions. (#189192)
Add VPlan printing test for
https://github.com/llvm/llvm-project/pull/186252
https://github.com/llvm/llvm-project/pull/189022
Commit: c0bd2f9084d7aee7b51408fadf50cd80438bb13e
https://github.com/llvm/llvm-project/commit/c0bd2f9084d7aee7b51408fadf50cd80438bb13e
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
A clang/unittests/Format/AlignmentTest.cpp
M clang/unittests/Format/CMakeLists.txt
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format][NFC] Extract some alignment tests
FormatTest.cpp is too huge, extract some tests to mitigate this a bit.
Commit: 191a9a911c510fe31eaf17c72c47d5f64d7d6bf9
https://github.com/llvm/llvm-project/commit/191a9a911c510fe31eaf17c72c47d5f64d7d6bf9
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/unittests/Format/BUILD.gn
Log Message:
-----------
[gn build] Port c0bd2f9084d7
Commit: 458f1aae8d2da5bf786ba53ea200e94a918ff55a
https://github.com/llvm/llvm-project/commit/458f1aae8d2da5bf786ba53ea200e94a918ff55a
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M polly/ci/polly-x86_64-linux-plugin.py
M polly/ci/polly-x86_64-linux.py
M polly/include/polly/ScopInliner.h
M polly/lib/Support/PollyPasses.def
M polly/lib/Support/RegisterPasses.cpp
M polly/lib/Transform/ScopInliner.cpp
A polly/test/.clang-format
M polly/test/CMakeLists.txt
R polly/test/CodeGen/RuntimeDebugBuilder/combine_different_values.c
M polly/test/lit.cfg
M polly/test/lit.site.cfg.in
A polly/test/polly.c
Log Message:
-----------
[Polly] Forward VFS from PassBuilder for IO sandboxing (#188657)
#184545 default-enables the IO sandbox in assert-builds. This causes
Clang using Polly to crash (#188568).
The issue is that `PassBuilder` uses `vfs::getRealFileSystem()` by
default which is considered a IO sandbox violation in the Clang process.
With this PR store the VFS from the `PassBuilder` from the original
`registerPollyPasses` call for creating other `PassBuilder` instances.
This PR also adds infrastructure for running Polly in `clang` (in
addition in `opt`). `opt` does not enable the sandbox such that we need
separate tests using Clang.
Closes: #188568
Commit: 6ead6868e7ca653bb3e48edc2591970fb5b37569
https://github.com/llvm/llvm-project/commit/6ead6868e7ca653bb3e48edc2591970fb5b37569
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableTable/BuildConfusableTable.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp
M clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/clang-tidy/utils/Matchers.h
Log Message:
-----------
[clang-tidy][NFC] Run `performance-faster-string-find` over the codebase (#189202)
Commit: 89d57d03bfa0369fdc5d6825085291f3eb604ea8
https://github.com/llvm/llvm-project/commit/89d57d03bfa0369fdc5d6825085291f3eb604ea8
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
Log Message:
-----------
[compiler-rt][sanitizer] Add struct_rlimit64_sz for musl (#189197)
On musl, rlimit64 is an alias for rlimit rather than a distinct type
provided by glibc. Add a SANITIZER_MUSL elif branch so that
struct_rlimit64_sz is defined for musl-based Linux targets.
Commit: 670de1f5229a2b75a9711edd677b18eed60a587a
https://github.com/llvm/llvm-project/commit/670de1f5229a2b75a9711edd677b18eed60a587a
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M compiler-rt/lib/msan/msan_linux.cpp
Log Message:
-----------
[compiler-rt][msan] Fix 32-bit overflow in CheckMemoryLayoutSanity (#189199)
Use start + (end - start) / 2 instead of (start + end) / 2 to compute
the midpoint address. The original expression overflows when start + end
exceeds UPTR_MAX, which happens on 32-bit targets whose memory layout
includes regions above 0x80000000.
Commit: cf3a0f255369dde072822657db0751150f2e5e01
https://github.com/llvm/llvm-project/commit/cf3a0f255369dde072822657db0751150f2e5e01
Author: Farid Zakaria <farid.m.zakaria at gmail.com>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
M lld/Maintainers.md
Log Message:
-----------
[lld] update maintainers (#183803)
As a new contributor, it helps to correctly see the right maintainer.
Commit: 71263dc615cd6ece304e4326485336691c2ddc26
https://github.com/llvm/llvm-project/commit/71263dc615cd6ece304e4326485336691c2ddc26
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/inc-dec-in-conditions.cpp
Log Message:
-----------
[clang-tidy] Fix bugprone-inc-dec-in-conditions FP with lambda condition (#189145)
Fixes https://github.com/llvm/llvm-project/issues/163913.
Commit: fcd0e2cca0ac9ddfba28729381d486cc60170dc6
https://github.com/llvm/llvm-project/commit/fcd0e2cca0ac9ddfba28729381d486cc60170dc6
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M lld/ELF/BPSectionOrderer.cpp
Log Message:
-----------
[ELF] Remove redundant sec->repl != sec check in BPSectionOrderer. NFC (#189214)
ICF's InputSection::replace() calls markDead() on folded sections, so
`!sec->isLive()` already filters them.
Commit: fc01c81d03c74b9da6aa4e3ea22487b2e5b2517a
https://github.com/llvm/llvm-project/commit/fc01c81d03c74b9da6aa4e3ea22487b2e5b2517a
Author: dwrank <dwrank at gmail.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/CMakeLists.txt
M mlir/lib/Dialect/OpenMP/CMakeLists.txt
Log Message:
-----------
[MLIR][build] Fix undefined references in debug shared libs (#189207)
Fixes undefined references in debug shared libs when building MLIR:
-DLLVM_ENABLE_PROJECTS="mlir"
-DCMAKE_BUILD_TYPE=Debug
-DBUILD_SHARED_LIBS=1
Debug build (-O0) disables dead code elimination, resulting in undefined
references in the following shared libs:
MLIROpenMPDialect (needs to link with TargetParser)
MLIRXeVMDialect (needs to link with TargetParser and MLIROpenMPDialect)
MLIRNVVMDialect (needs to link with TargetParser and MLIROpenMPDialect)
Fixes #189206
Assisted-by: Claude Code
From:
https://github.com/llvm/llvm-project/commit/d7e60d525026f24a3514be34d8e6e56622436823
Utils were added to OpenMP, particularly [[maybe_unused]]
setOffloadModuleInterfaceAttributes() which calls
llvm::Triple::normalize() creating a new dependency on TargetParser.
Commit: dd9bc6603cda141b22ae69af52a93fcf88e3baa8
https://github.com/llvm/llvm-project/commit/dd9bc6603cda141b22ae69af52a93fcf88e3baa8
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/include/mlir/Bindings/Python/NanobindUtils.h
M mlir/test/mlir-tblgen/op-python-bindings.td
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[MLIR] [Python] The generated op definitions now use typed parameters (#188635)
As with operand/result types this only handles standard dialects, but I think it is still useful as is.
We could consider extensibility if/when necessary.
Commit: 4151f5d36f26492079dca23f2a5ac13480098fb1
https://github.com/llvm/llvm-project/commit/4151f5d36f26492079dca23f2a5ac13480098fb1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/test/Dialect/LLVMIR/alias.mlir
M mlir/test/Target/LLVMIR/alias.mlir
Log Message:
-----------
[MLIR][LLVMIR] Allow llvm.call and llvm.invoke to use llvm.mlir.alias as callee (#189154)
Previously, the verifier for `llvm.call` and `llvm.invoke` would reject
calls where the callee was an `llvm.mlir.alias`, reporting that the
symbol does not reference a valid LLVM function or IFunc. Similarly, the
MLIR-to-LLVM-IR translation had no handling for aliases as callees.
This patch extends both the verifier and the translation to accept
`llvm.mlir.alias` as a valid callee for `llvm.call` and `llvm.invoke`,
mirroring the existing support for `llvm.mlir.ifunc`. The function type
for alias calls is derived from the call operands and result types, and
the translation emits a call through the alias global value.
Fixes #147057
Assisted-by: Claude Code
Commit: 2e6e36b1734fa6fd3b45405a63efcbeea2a3d795
https://github.com/llvm/llvm-project/commit/2e6e36b1734fa6fd3b45405a63efcbeea2a3d795
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
A llvm/test/CodeGen/AArch64/is_fpclass-bfloat.ll
M llvm/test/CodeGen/AArch64/is_fpclass.ll
Log Message:
-----------
[NFC][AArch64] update tests for `is_fpclass` (#187336)
Hopefully this is better.
One wrinkle is that `@llvm.is.fpclass.bf16` is not currently implemented
for GI. That might be easy to add but I've not been able to figure out
where the issue is exactly so far.
I'm also not totally sure `-mattr=-fp-armv8` is equivalent to softfloat,
but some tests do suggest that they are equivalent (and looking at the
assembly, that seems right).
Commit: 1bb03026b6aa332863de65a7d245c4ecf3a99645
https://github.com/llvm/llvm-project/commit/1bb03026b6aa332863de65a7d245c4ecf3a99645
Author: Mohamed Emad <hulxxv at gmail.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/headers/math/index.rst
M libc/include/math.yaml
M libc/shared/math.h
A libc/shared/math/asinpi.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/asin_utils.h
A libc/src/__support/math/asinpi.h
M libc/src/math/CMakeLists.txt
A libc/src/math/asinpi.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/asinpi.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/asinpi_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/asinpi_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math][c23] implement double-precision asinpi (#188158)
Implement the double precision version of the asinpi c23 math function
Commit: 73cddef78828d371d8d1c1b05adec9a6f37f462d
https://github.com/llvm/llvm-project/commit/73cddef78828d371d8d1c1b05adec9a6f37f462d
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/is_fpclass-bfloat.ll
M llvm/test/CodeGen/AArch64/is_fpclass.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.f16.ll
M llvm/test/CodeGen/AMDGPU/r600.llvm.is.fpclass.ll
M llvm/test/CodeGen/PowerPC/fp-classify.ll
M llvm/test/CodeGen/RISCV/float-intrinsics.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass.ll
M llvm/test/CodeGen/RISCV/rvv/vfclass-sdnode.ll
M llvm/test/CodeGen/X86/is_fpclass.ll
M llvm/test/CodeGen/X86/isel-fpclass.ll
Log Message:
-----------
optimize `is_finite` assembly (#169402)
Fixes https://github.com/llvm/llvm-project/issues/169270
Changes the implementation of `is_finite` to emit fewer instructions,
e.g.
X86_64
```asm
old: # 18 bytes
movd %xmm0, %eax
andl $2147483647, %eax
cmpl $2139095040, %eax
setl %al
retq
new: # 15 bytes
movd %xmm0, %eax
addl %eax, %eax
cmpl $-16777216, %eax
setb %al
retq
```
Aarch64
```asm
old:
fmov w9, s0
mov w8, #2139095040
and w9, w9, #0x7fffffff
cmp w9, w8
cset w0, lt
ret
new:
fmov w8, s0
ubfx w8, w8, #23, #8
cmp w8, #255
cset w0, lo
ret
```
See the issue for more information.
Commit: 8374475b8daecc30cc02280ce6bd5d53803065f5
https://github.com/llvm/llvm-project/commit/8374475b8daecc30cc02280ce6bd5d53803065f5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Use isAMDGPU triple helper (#189261)
Also remove redundant SPIRV check.
Commit: c467d38090696f90140f3e4ddf8cc0f301222314
https://github.com/llvm/llvm-project/commit/c467d38090696f90140f3e4ddf8cc0f301222314
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[LV] Fix offset handling for epilogue resume values. (NFCI) (#189259)
Instead of replacing all uses of the canonical IV with an add of the
resume value and then relying on the fold to simplify, directly create
offset versions of both the canonical IV and its increment.
The original offset computation were incorrect, but not resulted in
mis-compiles due to the corresponding fold.
Split off from approved
https://github.com/llvm/llvm-project/pull/156262.
Commit: ad1e30bd08cc4729727197d7f4ef32ccb30a1be5
https://github.com/llvm/llvm-project/commit/ad1e30bd08cc4729727197d7f4ef32ccb30a1be5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Move Triple computing logic to separate function (#189262)
Commit: b8d04118858ab63a2fe4b3568598c995dac9a198
https://github.com/llvm/llvm-project/commit/b8d04118858ab63a2fe4b3568598c995dac9a198
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Avoid intermediate DenseSet of triples (#189263)
This was computing a DenseSet<StringRef> of triples, but the
only use was to insert all the entries into a multiset. Just
use the multiset in the first place.
Commit: 44f1fa909953febfe019da533ec172da1348ac7b
https://github.com/llvm/llvm-project/commit/44f1fa909953febfe019da533ec172da1348ac7b
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/msan/msan.h
M compiler-rt/lib/msan/msan_allocator.cpp
Log Message:
-----------
[compiler-rt][msan] Add MSan support for Hexagon (Linux) (#189124)
Add the runtime infrastructure for MemorySanitizer on Hexagon Linux.
Hexagon is 32-bit, so the shadow memory layout uses a compact XOR-based
mapping that fits within the lower 3GB of address space:
0x00000000 - 0x10000000 APP-1 (256MB, program text/data/heap)
0x10000000 - 0x20000000 ALLOCATOR (256MB)
0x20000000 - 0x40000000 SHADOW-1 (512MB, covers APP-1 + ALLOCATOR)
0x40000000 - 0x50000000 APP-2 (256MB, shared libs + stack)
0x60000000 - 0x70000000 SHADOW-2 (256MB, covers APP-2)
0x70000000 - 0x90000000 ORIGIN-1 (512MB)
0xB0000000 - 0xC0000000 ORIGIN-2 (256MB)
MEM_TO_SHADOW uses XOR 0x20000000, and SHADOW_TO_ORIGIN adds 0x50000000.
The dual-APP layout accommodates QEMU user-mode, which places shared
libraries and the stack at 0x40000000.
The allocator uses SizeClassAllocator32 with a 256MB region at
0x10000000, and kMaxAllowedMallocSize is set to 1GB consistent with
other 32-bit targets.
Commit: a8cdc5a483efc90e4699df25027ae4916115dfed
https://github.com/llvm/llvm-project/commit/a8cdc5a483efc90e4699df25027ae4916115dfed
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M compiler-rt/lib/msan/msan_interceptors.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
Log Message:
-----------
[compiler-rt][msan] Guard shmat interceptor w SANITIZER_INTERCEPT_SHMCTL (#189198)
The shmat interceptor calls REAL(shmctl), but shmctl is not intercepted
on all targets (e.g. 32-bit Linux with musl). Guard shmat behind
SANITIZER_INTERCEPT_SHMCTL and use a MSAN_MAYBE_INTERCEPT pattern
consistent with other conditional interceptors.
Commit: e17c21974ec61380c81d665cf904fa88f1d3a11d
https://github.com/llvm/llvm-project/commit/e17c21974ec61380c81d665cf904fa88f1d3a11d
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
A llvm/test/Instrumentation/MemorySanitizer/Hexagon/hexagon.ll
A llvm/test/Instrumentation/MemorySanitizer/Hexagon/vararg-hexagon.ll
Log Message:
-----------
[msan] Add MSan instrumentation support for Hexagon (#189122)
Add MemorySanitizer instrumentation pass support for Hexagon Linux. This
is the codegen/instrumentation side; the compiler-rt runtime changes are
in a separate patch.
The shadow memory layout uses XOR-based mapping with XorMask=0x20000000
and OriginBase=0x50000000, designed to fit within the 32-bit address
space.
VarArg handling uses VarArgGenericHelper with VAListTagSize=12, matching
the Hexagon ABI where va_list is a three-pointer struct {
current_reg_area, reg_area_end, overflow_area }.
Commit: 479a826ce9152673041b00c11ca0f128c429d8f7
https://github.com/llvm/llvm-project/commit/479a826ce9152673041b00c11ca0f128c429d8f7
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[Support] Use namespace qualifiers in Parallel.cpp. NFC (#189268)
Replace `namespace llvm { namespace parallel { ... } }` blocks with
`using namespace` and qualified definitions per
https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-define-previously-declared-symbols
Also reformat the TaskGroup constructor to avoid clang-format issues
with #if/#endif split across the initializer list.
Commit: e9119107cf12b7cd1eb798e5587d0bd49b45b4cc
https://github.com/llvm/llvm-project/commit/e9119107cf12b7cd1eb798e5587d0bd49b45b4cc
Author: Henrik G. Olsson <hnrklssn at gmail.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
M llvm/lib/Analysis/StackSafetyAnalysis.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/InterleavedAccessPass.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Transforms/IPO/FunctionImport.cpp
M llvm/lib/Transforms/IPO/GlobalDCE.cpp
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-size/llvm-size.cpp
Log Message:
-----------
[LLVM] remove redundant uses of dyn_cast (NFC) (#189105)
This removes dyn_cast invocations where the argument is already of the
target type (including through subtyping). This was created by adding a
static assert in dyn_cast and letting an LLM iterate until the code base
compiled. I then went through each example and cleaned it up. This does
not commit the static assert in dyn_cast, because it would prevent a lot
of uses in templated code. To prevent backsliding we should instead add
an LLVM aware version of
https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-casting.html
(or expand the existing one).
Commit: 2c41a8de9afdafc310906610573f33c5ef2d3046
https://github.com/llvm/llvm-project/commit/2c41a8de9afdafc310906610573f33c5ef2d3046
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bvh.stack.push.pop.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
Log Message:
-----------
AMDGPU: Fix using -march in a couple tests (#189271)
Commit: 9a17aa487818797b1f5b12774c02e424fc345bdf
https://github.com/llvm/llvm-project/commit/9a17aa487818797b1f5b12774c02e424fc345bdf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/tools/llvm-objdump/llvm-objdump.cpp
Log Message:
-----------
llvm-objdump: Avoid contraction in error message (#189272)
Commit: b5d43f7794f9ec2fdf0e503ca34ef8e487d9b7e3
https://github.com/llvm/llvm-project/commit/b5d43f7794f9ec2fdf0e503ca34ef8e487d9b7e3
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Use transferSuccessors in mergeBlocksIntoPredecessors (NFC). (#189275)
transferSuccessors is more compact and is guaranteed to preserve the
predecessor/successor order properly in all cases. This is not an issue
today, but will when used in more places, including #186252.
Split off from approved
https://github.com/llvm/llvm-project/pull/186252.
PR: https://github.com/llvm/llvm-project/pull/189275
Commit: 5b1be759295c4a2f357fbad852e04c74fc012dc1
https://github.com/llvm/llvm-project/commit/5b1be759295c4a2f357fbad852e04c74fc012dc1
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[Support] Remove Executor abstract base class from Parallel.cpp. NFC (#189266)
ThreadPoolExecutor is the only implementation. Remove the Executor
base class so that add() and getThreadCount() are direct calls
instead of virtual dispatches.
Commit: cb017fd1b4fb0b6b93f6b1cff3c7f36d80b33c48
https://github.com/llvm/llvm-project/commit/cb017fd1b4fb0b6b93f6b1cff3c7f36d80b33c48
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenACC/acc-parallel.f90
Log Message:
-----------
[flang][OpenACC] Fix false DEFAULT(NONE) error for named DO loop construct names (#189204)
In OpenACC semantic checking filter out symbols with MiscDetails, which
include construct names, scope names, complex part designators, type
parameter inquiries, etc.
Commit: 5fa087f6a639ef0d9e2d7caf75295f60310eb6ae
https://github.com/llvm/llvm-project/commit/5fa087f6a639ef0d9e2d7caf75295f60310eb6ae
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Don't merge short records with directly created objects (#189200)
It did merge the wrong brace.
Fixes #189155
Commit: b579c5b0bcca1b6a8f145011307dcc222b28e4a5
https://github.com/llvm/llvm-project/commit/b579c5b0bcca1b6a8f145011307dcc222b28e4a5
Author: Lane0218 <laneljc at qq.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/lib/Format/FormatToken.h
M clang/lib/Format/QualifierAlignmentFixer.cpp
M clang/lib/Format/QualifierAlignmentFixer.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
Log Message:
-----------
[clang-format] Fix spacing before :: after non-macro identifiers (#189024)
This narrows clang-format's spacing heuristic for `identifier ::`.
Previously, clang-format preserved existing whitespace before `::` after
any
identifier, which caused inputs like:
```c++
template <typename T>
auto mem = &T :: member;
```
to format as:
```c++
template <typename T>
auto mem = &T ::member;
```
This patch preserves that whitespace only for identifiers that look like
object-like macros, such as the existing `ALWAYS_INLINE ::std::string`
case.
Ordinary identifiers now format as expected:
```c++
&T :: member
```
becomes
```c++
&T::member
```
Test:
- `./build-cir/tools/clang/unittests/Format/FormatTests
--gtest_filter=FormatTest.NestedNameSpecifiers`
Fixes #188754
Commit: 2cd67b8b69f78e3f95918204320c3075a74ba16c
https://github.com/llvm/llvm-project/commit/2cd67b8b69f78e3f95918204320c3075a74ba16c
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format][NFC] Adapt test data
To the fixed issue.
This amends 3f42ec658f2f08d8ce11909603c8a82dc9e1045a.
Commit: ab885fdf5f67726ef564c34087e813f2ca861f5c
https://github.com/llvm/llvm-project/commit/ab885fdf5f67726ef564c34087e813f2ca861f5c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Driver.cpp
M llvm/include/llvm/TargetParser/Triple.h
Log Message:
-----------
clang: Store Triple in multiset (#189264)
Previously this was storing StringRefs, which just happen
to be constant allocated strings. Change this into an owning
reference in the form that will actually be used. This will allow
changing the triples to something computed without maintaining
a table of every possible permutation.
Commit: c67475fb05f8fc0742888021fb9e15640e16c76e
https://github.com/llvm/llvm-project/commit/c67475fb05f8fc0742888021fb9e15640e16c76e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-smin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umax-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-umin-64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-block-addr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-default.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/shufflevector-pointer-crash.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/shufflevector.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx12.mir
M llvm/test/CodeGen/AMDGPU/fabs.f64.ll
M llvm/test/CodeGen/AMDGPU/fabs.ll
M llvm/test/CodeGen/AMDGPU/fneg-fabs.f64.ll
M llvm/test/CodeGen/AMDGPU/fneg-fabs.ll
M llvm/test/CodeGen/AMDGPU/force-wait-after-always-gds.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/load-store-cnt.ll
M llvm/test/CodeGen/AMDGPU/misched-into-wmma-hazard-shadow.mir
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
M llvm/test/CodeGen/AMDGPU/phi-av-pressure.ll
M llvm/test/CodeGen/AMDGPU/pr155452.ll
M llvm/test/CodeGen/AMDGPU/release-vgprs-gfx12-dvgpr.mir
M llvm/test/CodeGen/AMDGPU/release-vgprs-gfx12.mir
M llvm/test/CodeGen/AMDGPU/schedule-pending-queue.mir
M llvm/test/CodeGen/AMDGPU/spill_kill_v16.mir
M llvm/test/CodeGen/AMDGPU/spillv16.mir
M llvm/test/CodeGen/AMDGPU/swizzle.bit.extract.ll
M llvm/test/CodeGen/AMDGPU/true16-fold.mir
M llvm/test/CodeGen/AMDGPU/true16-saveexec.mir
Log Message:
-----------
AMDGPU: Avoid using -march in tests (#189285)
Commit: f10509133f783d297e531b894f72e4a62f08f206
https://github.com/llvm/llvm-project/commit/f10509133f783d297e531b894f72e4a62f08f206
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineFormatter.cpp
Log Message:
-----------
[clang-format][NFC] Fix warning
llvm-project/clang/lib/Format/UnwrappedLineFormatter.cpp:725:11: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
725 | static_cast<decltype(N)>(Distance) <= N) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Commit: 030ad2d638285bef694f08e169d34ec07214fd41
https://github.com/llvm/llvm-project/commit/030ad2d638285bef694f08e169d34ec07214fd41
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/test/Analysis/CostModel/AMDGPU/log.ll
M llvm/test/Analysis/CostModel/AMDGPU/log10.ll
M llvm/test/Analysis/CostModel/AMDGPU/log2.ll
A llvm/test/Analysis/CostModel/AMDGPU/sin.ll
M llvm/test/Analysis/CostModel/AMDGPU/sqrt.ll
Log Message:
-----------
[NFC][AMDGPU] Add CostModel tests for transcendental ops with varying function attrs (#188869)
Commit: eaffa1a2b3c9647d6be1b8dfab93389fcfb474b2
https://github.com/llvm/llvm-project/commit/eaffa1a2b3c9647d6be1b8dfab93389fcfb474b2
Author: Thurston Dang <thurston at google.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/AArch64/aarch64-bf16-dotprod-intrinsics.ll
Log Message:
-----------
[msan] Fix bfmmla instrumentation incompatibility issue (#188834)
#176264 instrumented bfmmla by applying ummla to the shadows. However,
Armv8.2+bf16 (as an example) supports bfmmla but not ummla, thus the
instrumentation is not always compatible.
This patch changes the bfmmla instrumentation to use bfmmla and basic
LLVM intrinsics, thus guaranteeing backend compatibility. The key
insights are that we can 1) use CreateSelect to convert the integer
shadows to bf16 2) apply bfmmla to these "shadows" 3) use FCmpULT to
check that the matrix entries denote fully initialized outputs.
This patch significantly refactors `handleNEONMatrixMultiply`, which is
also used for {s,u,su}mmla instrumentation, but the output is unaffected
for {s,u,su}mmla.
Commit: b6d7afe53465517ed944a43165b6885fab460c4e
https://github.com/llvm/llvm-project/commit/b6d7afe53465517ed944a43165b6885fab460c4e
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
M llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
M llvm/test/Analysis/DependenceAnalysis/exact-siv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/exact-siv-overflow.ll
M llvm/test/Analysis/DependenceAnalysis/infer_affine_domain_ovlf.ll
M llvm/test/Analysis/DependenceAnalysis/non-monotonic.ll
M llvm/test/Analysis/DependenceAnalysis/rdiv-minor-algebra.ll
M llvm/test/Analysis/DependenceAnalysis/run-specific-dependence-test.ll
M llvm/test/Analysis/DependenceAnalysis/strong-siv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/symbolic-rdiv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/symbolic-rdiv-overflow.ll
M llvm/test/Analysis/DependenceAnalysis/weak-zero-siv-addrec-wrap.ll
Log Message:
-----------
[DA] Remove calls to the GCD MIV test from `testSIV` (#187220)
This patch removes all invocations of the GCD MIV test in `testSIV`
function, specifically:
- If both the source and destination are addrecs, replace the call to
the GCD MIV test with the Exact SIV test. Generally, the Exact SIV test
has a narrower applicability than the GCD MIV test (both the source and
destination must be affine addrecs), while the former likely yields a
more precise result. Therefore, in this case, there's no reason to use
the GCD MIV test. This replacement also means that previously the Exact
SIV test was called conditionally (only when the Strong and Weak
Crossing SIV tests are not applicable), but now it will be called
unconditionally when both the source and destination are addrecs.
- If either the source or the destination is loop-invariant, simply
remove the call to the GCD MIV test without replacing it with anything.
In this case, the Weak Zero SIV test will be invoked, and part of that
test performs almost the same analysis as the GCD MIV test. Therefore,
the GCD MIV test should be redundant in nearly all cases.
This patch introduces two types of changes to the analysis results.
First, it fixes several correctness issues that were caused by defects
in the GCD MIV test. Second, it makes the analysis more precise in some
cases. This improvement comes from the fact that, when both the source
and destination are affine addrecs, the Exact SIV test is now invoked
unconditionally, whereas previously it was only invoked conditionally.
Commit: 23780ded7ae24ca07afe076a705e9c320131ea3e
https://github.com/llvm/llvm-project/commit/23780ded7ae24ca07afe076a705e9c320131ea3e
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/apx/adc.ll
M llvm/test/CodeGen/X86/apx/add.ll
M llvm/test/CodeGen/X86/apx/and.ll
M llvm/test/CodeGen/X86/apx/cmov.ll
M llvm/test/CodeGen/X86/apx/imul.ll
M llvm/test/CodeGen/X86/apx/or.ll
M llvm/test/CodeGen/X86/apx/sbb.ll
M llvm/test/CodeGen/X86/apx/sub.ll
M llvm/test/CodeGen/X86/apx/xor.ll
Log Message:
-----------
[X86][APX] Fold NDD+Load to non-NDD when NDD memory variant is not preferred (#189222)
Commit: 7a78c3b079d43b084111ddf501a33ee67298befa
https://github.com/llvm/llvm-project/commit/7a78c3b079d43b084111ddf501a33ee67298befa
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-29 (Sun, 29 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Use EVT constructor instead of static_cast. NFC (#189051)
Commit: 3e015b89e8bd9c71f6bb1cf38747d2862f5d5a3d
https://github.com/llvm/llvm-project/commit/3e015b89e8bd9c71f6bb1cf38747d2862f5d5a3d
Author: wanglei <wanglei at loongson.cn>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A llvm/test/Transforms/VectorCombine/LoongArch/lit.local.cfg
A llvm/test/Transforms/VectorCombine/LoongArch/shuffle-identity-miscompile.ll
Log Message:
-----------
[NFC][test] Precommit test for pr188989 (#188667)
Precommit test for #188989.
This test case covers a scenario in the vector combine
foldShuffleToIdentity function where incorrect folding was caused when
different shuffle sequences shared the same initial Use *. This issue
may be due to cost model differences and currently reproduces only on
LoongArch for this test case.
Commit: 14e7dbd99a70258a0deb283785996f2e11be7e2b
https://github.com/llvm/llvm-project/commit/14e7dbd99a70258a0deb283785996f2e11be7e2b
Author: Weibo He <NewSigma at 163.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower-invoke.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
Log Message:
-----------
[CoroSplit] Erase trivially dead allocas after spilling (#189295)
Erase these allocas so that they do not take up extra stack space at
-O0.
Close #57638
Commit: c963ce446c696482804d96fbed0679380413b55e
https://github.com/llvm/llvm-project/commit/c963ce446c696482804d96fbed0679380413b55e
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.c
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.cpp
Log Message:
-----------
[clang-tidy] Diagnose NULL macro expansions in implicit-bool-conversion (#188694)
The check can't find `NULL` from system headers, this is not the default
behaviour we want. This commit fixes the problem.
https://clang-tidy.godbolt.org/z/Exd4bzqaT
Related discussion in:
https://github.com/llvm/llvm-project/pull/188399#discussion_r2985381743
Commit: 75eae603ff90b83ad702acaf6a7a09cb978785b6
https://github.com/llvm/llvm-project/commit/75eae603ff90b83ad702acaf6a7a09cb978785b6
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/LinkGraphLinkingLayer.h
M llvm/lib/ExecutionEngine/Orc/LinkGraphLinkingLayer.cpp
M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
A llvm/unittests/ExecutionEngine/Orc/LinkGraphLinkingLayerTest.cpp
Log Message:
-----------
[ORC] LinkGraphLinkingLayer::registerDependencies improvements. (#189298)
This commit moves the bulk of
LinkGraphLinkingLayer::registerDependencies into a new static method,
LinkGraphLinkingLayer::calculateDepGroups, where the behavior can be
unit tested.
The new method returns a list of LinkGraphLinkingLayer::SymbolDepGroups:
```
struct SymbolDepGroup {
SmallVector<jitlink::Symbol*> Defs;
DenseSet<jitlink::Symbol*> Deps;
};
```
The existing registerDependencies method converts these into
orc::SymbolDependenceGroups for registration with the ExecutionSession.
The calculateDepGroups method uses a new algorithm for calculating
dependencies between symbols in the LinkGraph. As before, the goal is to
compute dependencies of non-locally-scoped symbols defined within the
graph on other non-locally-scoped symbols in the graph (whether defined
by the graph or external). It is sufficient to record the first
non-locally-scoped symbol defined for each block reached (since such
symbols will have their own dependencies reported, and all such symbols
for a given block will have the same dependencies). The new algorithm
uses SCCIterator to visit strongly connected components within the
subgraph formed by edges to "anonymous" blocks (i.e. blocks that do not
define any non-locally-scoped symbols). These are visited in reverse-DFS
order, allowing dependencies to be efficiently propagated.
This change results in a ~2x speedup when JIT-loading clang (as tested
on a 2023 MacBook Pro, 12-core M3 Pro, 18Gb).
Commit: 24e9bc774cf128e5c06cce5e97a78b0f4e75af2a
https://github.com/llvm/llvm-project/commit/24e9bc774cf128e5c06cce5e97a78b0f4e75af2a
Author: Weibo He <NewSigma at 163.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower-invoke.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
Log Message:
-----------
Revert "[CoroSplit] Erase trivially dead allocas after spilling" (#189311)
I think I forgot to update the FrameData after erasing. I'll check it
locally.
Reverts llvm/llvm-project#189295
Commit: ac2dce0bf3b52787d2d9074eb70e2cb53117e4ef
https://github.com/llvm/llvm-project/commit/ac2dce0bf3b52787d2d9074eb70e2cb53117e4ef
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
Log Message:
-----------
[gn build] Port 75eae603ff90
Commit: 0a01f09d04becfd7098ffe33b21a5b271edf5a07
https://github.com/llvm/llvm-project/commit/0a01f09d04becfd7098ffe33b21a5b271edf5a07
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Breakpoint/BreakpointResolver.h
Log Message:
-----------
[lldb] Fix the return type of a function (NFC) (#189316)
The returned variable is of boolean type.
Commit: bbc515d115455b54e9e5864983f1d3ee331c2ec7
https://github.com/llvm/llvm-project/commit/bbc515d115455b54e9e5864983f1d3ee331c2ec7
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp
Log Message:
-----------
[lldb][FreeBSDKernel] Add missing error checks in DynamicLoader (#189250)
Add extra guards in case a call to function fails. For example, the
result of `ReadMemory()` cannot be trusted when `error.Fail()` is true,
and this change ensures the code executes properly according to the
value of the error.
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
Commit: 38f57bf3dfd7411975d40c5de418f78e607a7a01
https://github.com/llvm/llvm-project/commit/38f57bf3dfd7411975d40c5de418f78e607a7a01
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode] Disable tailcalls on i386 (#189242)
Works around a build problem with GCC 15 reported in
https://github.com/llvm/llvm-project/pull/188419#issuecomment-4148497506
Commit: 032f36bdbc73b74c4e03bdd9b7e03e60979a0d31
https://github.com/llvm/llvm-project/commit/032f36bdbc73b74c4e03bdd9b7e03e60979a0d31
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/performance/CMakeLists.txt
R clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp
R clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.h
M clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
A clang-tools-extra/clang-tidy/performance/PreferSingleCharOverloadsCheck.cpp
A clang-tools-extra/clang-tidy/performance/PreferSingleCharOverloadsCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/faster-string-find.rst
A clang-tools-extra/docs/clang-tidy/checks/performance/prefer-single-char-overloads.rst
R clang-tools-extra/test/clang-tidy/checkers/performance/faster-string-find.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/prefer-single-char-overloads.cpp
Log Message:
-----------
[clang-tidy] Rename performance-faster-string-find to performance-prefer-single-char-overloads (#186946)
Related discussion:
https://github.com/llvm/llvm-project/pull/182697#issuecomment-3986242476
Closes https://github.com/llvm/llvm-project/issues/186853
---------
Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Commit: e09b5895d2058b286512adc5361858d15dbdc43f
https://github.com/llvm/llvm-project/commit/e09b5895d2058b286512adc5361858d15dbdc43f
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/performance/BUILD.gn
Log Message:
-----------
[gn build] Port 032f36bdbc73
Commit: 17491d91301a9b5576f87120fda607d9e73b1009
https://github.com/llvm/llvm-project/commit/17491d91301a9b5576f87120fda607d9e73b1009
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Expression/ObjectFileJIT.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/Expression/ObjectFileJIT.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
M lldb/source/Plugins/ObjectContainer/Big-Archive/ObjectContainerBigArchive.cpp
M lldb/source/Plugins/ObjectContainer/Big-Archive/ObjectContainerBigArchive.h
M lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
M lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.h
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.cpp
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.h
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.cpp
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.h
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.cpp
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.h
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h
M lldb/source/Symbol/ObjectFile.cpp
Log Message:
-----------
[lldb] Remove data_offset arg from GetModuleSpecifications (#188978)
- it is always passed as zero
- a lot of plugins aren't using it correctly
- the data extractor class already has the capability to look at a
subset of bytes
Commit: 3f2e24726a49d4d7e53d9c9b61fe2e312706b347
https://github.com/llvm/llvm-project/commit/3f2e24726a49d4d7e53d9c9b61fe2e312706b347
Author: Owen Anderson <resistor at mac.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/clear_cache.c
M llvm/include/llvm/IR/Intrinsics.td
M llvm/test/Bitcode/compatibility-3.6.ll
M llvm/test/Bitcode/compatibility-3.7.ll
M llvm/test/Bitcode/compatibility-3.8.ll
M llvm/test/Bitcode/compatibility-3.9.ll
M llvm/test/Bitcode/compatibility-4.0.ll
M llvm/test/Bitcode/compatibility-5.0.ll
M llvm/test/Bitcode/compatibility-6.0.ll
M llvm/test/Bitcode/compatibility.ll
Log Message:
-----------
[CHERI] Allow @llvm.clear_cache to accept pointers in address spaces other than 0. (#189283)
Co-Authored-by: Jessica Clarke <jrtc27 at jrtc27.com>
Commit: 3572b21dec19f509f598b456d8819a62ddbf7fac
https://github.com/llvm/llvm-project/commit/3572b21dec19f509f598b456d8819a62ddbf7fac
Author: Sam Parker <sam.parker at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/test/CodeGen/WebAssembly/int-mac-reduction-loops.ll
M llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
M llvm/test/CodeGen/WebAssembly/wide-simd-mul.ll
Log Message:
-----------
[WebAssembly] Lower extend v16i8 to v16i32 (#188936)
Split the input vector with an extend_low and high and then split the
results again with extend_low and high for a total of 6 instructions.
This is removes 3 shuffles and a couple of extends.
Commit: 656604093d62952dc80275a62763e1860ab56734
https://github.com/llvm/llvm-project/commit/656604093d62952dc80275a62763e1860ab56734
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIRType.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Optimizer/Dialect/FIRType.cpp
A flang/test/Lower/OpenACC/acc-data-operands-remapping-selector.f90
M flang/test/Lower/polymorphic.f90
M flang/test/Lower/select-type.f90
M flang/test/Lower/volatile-allocatable.f90
Log Message:
-----------
[flang] get rid of descriptor in scalar type is (#188762)
Select type lowering was keeping scalar selector as descriptors inside
TYPE IS for derived type, leading to a declare using a fir.box.
This is not the canonical representation for such variables that can be
tracked with a simple pointer. This code that is remapping variables
that appear in data operation in lowering was not expecting a
fir.declare to be emitted with fir.box for such entity (an assert was
hit in the added OpenACC test).
Align the lowering of derived type scalar selector with the handling of
intrinsic selector. While doing this, simplify the logic by using and
adding fir::BaseBoxAddr helpers to ensure that attributes such as
VOLATILE are correctly propagated (they matter more than keeping the
fir.ptr/fir.heap type that is not relevant for the selector that does
not have the POINTER/ALLOCATABLE attributes).
Commit: a4e6f495c3a804589593544aaa03554e72561ca5
https://github.com/llvm/llvm-project/commit/a4e6f495c3a804589593544aaa03554e72561ca5
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/maxbandwidth-regpressure.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-add-sdot-i16-i32.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-sdot.ll
Log Message:
-----------
[AArch64] More accurately model cost of partial reductions (#181707)
With #181706 using the cost-model to decide whether using partial
reductions is profitable, we need to more accurately represent the cost
of certain partial reduction operations:
* Reflect the fact that *MLALB/T instructions can be used for 16-bit ->
32-bit partial reductions (or *MLAL/MLAL2 for NEON).
* Calculate the cost of expanding the partial reduction in ISel for
reductions that don't have an explicit instruction, rather than
returning a random number. For sub-reductions we scale the cost to make
them slightly cheaper, so that they're still candidates for forming cdot
operations.
Commit: 25e9f130585b90c4682412b7b46e1db255d9e43c
https://github.com/llvm/llvm-project/commit/25e9f130585b90c4682412b7b46e1db255d9e43c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Remove redundant size check on set of offload kinds (#189330)
Commit: 013c79269b7c693082b4699c681630982766ef53
https://github.com/llvm/llvm-project/commit/013c79269b7c693082b4699c681630982766ef53
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
Log Message:
-----------
clang: Simplify OpenMP triple adjustment (#189265)
Previously this would find a list of offloading triples,
then later fill in the unknown components specifically for
OpenMP after the fact. Start normalizing the triples upfront,
before inserting into the set. Also stop special casing OpenMP
since there's no apparent reason to treat it differently from
other offload languages.
Also operate on the Triple rather than the string, and handle
the unset OS and environment separately.
Commit: 8a4f21048f5a395763fa127d9c42311a70610234
https://github.com/llvm/llvm-project/commit/8a4f21048f5a395763fa127d9c42311a70610234
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
Log Message:
-----------
[VPlan] Generalize noalias-licm-check to replicate regions (NFC) (#187017)
In order to use the cannotHoistOrSinkWithNoAlias check in use-sites
after replicate regions are created, generalize it to work with
replicate regions.
Commit: 85446d41458319709333355745b8c8574c52d05f
https://github.com/llvm/llvm-project/commit/85446d41458319709333355745b8c8574c52d05f
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/source/Commands/CommandObjectPlugin.cpp
M lldb/source/Commands/CommandObjectProcess.cpp
M lldb/source/Commands/CommandObjectThread.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
Log Message:
-----------
[lldb] Use AppendMessageWithFormatv instead of AppendMessageWithFormat (#185634)
Part 4. This converts all the remaining simple uses (the ones that ended
with a newline).
What remains in tree are the outliers that expect multiple ending
newlines, or are building a message in pieces.
Commit: c3e7f98997508dc5177743401a7c97c0088a0555
https://github.com/llvm/llvm-project/commit/c3e7f98997508dc5177743401a7c97c0088a0555
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-overflow.ll
Log Message:
-----------
[DA] Fix overflow of calculation in weakCrossingSIVtest (#188450)
This patch fixes a correctness issue where integer overflow in the
upper bound calculation of weakCrossingSIVtest caused the pass to
incorrectly prove independence.
The previous logic used `SCEV::getMulExpr` to calculate
`2 * ConstCoeff * UpperBound` and compared it to `Delta` using
`isKnownPredicate`. In the presence of overflow, this could yield
unsafe results.
This change replaces the SCEV arithmetic with `ConstantRange` to
work around calculation overflows, ensures we conservatively assume
a dependence if the bounds cannot be proven safe.
---------
Signed-off-by: Ruoyu Qiu <cabbaken at outlook.com>
Commit: a7bc628e44e69b43fbaf135a569691bf09fc083f
https://github.com/llvm/llvm-project/commit/a7bc628e44e69b43fbaf135a569691bf09fc083f
Author: Hocky Yudhiono <hocky.yudhiono at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/constant_folding.mlir
M mlir/test/Dialect/Tosa/tosa-layerwise-constant-fold.mlir
Log Message:
-----------
[mlir][tosa] Harden folds/canonicalizations for unranked and dynamic shapes (#188188)
This MR fixes #188187 and #187974. Tighten TOSA constant folding and
identity-style folds so they do not produce invalid or type-incorrect
results when the op’s result type is unranked, rank-dynamic, or
otherwise not a static `RankedTensorType`. Several paths previously
assumed ranked/static shapes or folded through to the operand without
checking that the result type matched the value being returned.
`DenseElementsAttr::get`, `SplatElementsAttr::get` and similar builders
need a static shape; folding with `tensor<*xT>` or dynamic dims must not
fabricate dense attributes with the wrong shape.
Returning the operand from a “no-op” fold is only valid when
`operand.getType() == op.getType()`; otherwise the folder would change
the IR’s type semantics (e.g. ranked → unranked). Which in the bigger
pipeline supposed to be handled by `-tosa-infer-shapes`
Assisted-by: CLion code completion, GPT 5.3 - Codex
---------
Co-authored-by: Sayan Saha <sayans at mathworks.com>
Commit: 00698678e404699f6c776679272a7e3392c46306
https://github.com/llvm/llvm-project/commit/00698678e404699f6c776679272a7e3392c46306
Author: Zhewen Yu <zhewenyu at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.td
M mlir/include/mlir/Dialect/Affine/Transforms/Transforms.h
M mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
A mlir/lib/Dialect/Affine/Transforms/SimplifyAffineWithBounds.cpp
A mlir/test/Dialect/Affine/simplify-with-bounds.mlir
Log Message:
-----------
[mlir][affine] Add ValueBounds-based simplification for delinearize(linearize) pairs (#187245)
`affine.linearize_index` pairs
(`CancelDelinearizeOfLinearizeDisjointExactTail`) only match when basis
elements are exactly equal as `OpFoldResult` values. This means they
cannot simplify cases where dynamic basis products are semantically
equal but represented by different SSA values or affine expressions.
This patch adds a new pass `affine-simplify-with-bounds` with two
rewrite patterns that use `ValueBoundsConstraintSet` to prove equality
of basis products:
- **`SimplifyDelinearizeOfLinearizeDisjointManyToOneTail`**: matches
when multiple consecutive linearize dimensions have a product equal to a
single delinearize dimension (many-to-one).
- **`SimplifyDelinearizeOfLinearizeDisjointOneToManyTail`**: matches
when a single linearize dimension equals the product of multiple
consecutive delinearize dimensions (one-to-many).
Both patterns scan from the tail (innermost dimensions) and support
partial matching. Unmatched prefix dimensions are left as residual
linearize/delinearize operations.
Assisted-by: Cursor (Claude)
---------
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
Commit: be94bfd615a20d8aa209c3ada8fecb8c5b94784d
https://github.com/llvm/llvm-project/commit/be94bfd615a20d8aa209c3ada8fecb8c5b94784d
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/weak-zero-siv-delta-signed-min.ll
Log Message:
-----------
[DA] Stop negating Delta in the Weak Zero SIV test (#188212)
This patch removes the variable `NewDelta`, which was calculated as the
negation of `Delta`, along with its uses. `NewDelta` is now referenced
in only one place, and that code is effectively dead because more
general analysis with ConstantRange is performed at an earlier stage.
Also the test using `NewDelta` is not correct when `Delta` is a signed
minimum value, as negating it yields the same value as original. This
patch also fixes the correctness issue in such a situation.
Commit: 475f71e8fa15ee71f99e450a0e1c90d3961005f9
https://github.com/llvm/llvm-project/commit/475f71e8fa15ee71f99e450a0e1c90d3961005f9
Author: divVerent <divVerent at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/Sema/ExternalSemaSource.h
M clang/include/clang/Sema/MultiplexExternalSemaSource.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/lib/Sema/MultiplexExternalSemaSource.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
A clang/test/PCH/pragma-redefine-extname.c
A clang/test/PCH/pragma-redefine-extname.h
M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
Log Message:
-----------
Serialize `#pragma redefine_extname` into precompiled headers. (#186755)
Also deserialize them back again on reading.
The implementation is based on the existing implementation of `#pragma
weak` serialization.
Fixes issue #186742.
---------
Co-authored-by: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Commit: fd7388d14083bb5094bce6a75444a37e424689d7
https://github.com/llvm/llvm-project/commit/fd7388d14083bb5094bce6a75444a37e424689d7
Author: divVerent <divVerent at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
A clang/test/Sema/redefine_extname.cpp
Log Message:
-----------
`#pragma redefine_extname`: warn only if conflicting ID is at TU scope. (#188256)
As an example, this should keep warning:
```
static void foo();
```
because here, the identiifer `foo` won't be affected. In fact, it now
becomes (mostly) impossible to even declare anything later that would
get affected, thus the new definition is in active conflict with the
`#pragma`.
This however will not warn anymore:
```
namespace blargh {
static void foo();
}
```
Here the author definitely did not intend for the `#pragma` to be
matched, and as such, it is okay to not warn there.
Fixes cases where `#pragma redefine_extname` is used to intentionally
rename C names at global scope that are so common that they need
renaming to avoid linker side conflict with other compilation units,
such as `SHA256`, as any name common at outer scope is likely also
common in namespaces, classes, function locals, etc. and it would be
nice to be able to use the `#pragma redefine_extname` mechanism
specifically to create linker hygiene between compilation units even if
some of them actually also use the same name for their own thing in one
of those unambiguous scopes.
Warnings in the test case removed by the code change:
```
File .../clang/test/Sema/redefine_extname.cpp Line 30: #pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_nsfunc'
File .../clang/test/Sema/redefine_extname.cpp Line 32: #pragma redefine_extname is applicable to external C declarations only; not applied to variable 'foo_nsvar'
File .../clang/test/Sema/redefine_extname.cpp Line 44: #pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_classmethod'
File .../clang/test/Sema/redefine_extname.cpp Line 46: #pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_staticmethod'
File .../clang/test/Sema/redefine_extname.cpp Line 50: #pragma redefine_extname is applicable to external C declarations only; not applied to variable 'foo_staticmember'
File .../clang/test/Sema/redefine_extname.cpp Line 53: #pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_classmethod'
File .../clang/test/Sema/redefine_extname.cpp Line 54: #pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_staticmethod'
File .../clang/test/Sema/redefine_extname.cpp Line 55: #pragma redefine_extname is applicable to external C declarations only; not applied to variable 'foo_staticmember'
File .../clang/test/Sema/redefine_extname.cpp Line 99: #pragma redefine_extname is applicable to external C declarations only; not applied to variable 'foo_local'
File .../clang/test/Sema/redefine_extname.cpp Line 101: #pragma redefine_extname is applicable to external C declarations only; not applied to variable 'foo_staticlocal'
```
Addresses issue #187497.
Commit: f2a9b073acbcf1c40b72504e051177041370a823
https://github.com/llvm/llvm-project/commit/f2a9b073acbcf1c40b72504e051177041370a823
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Consolidate the logic for checking overlap at the boundary (NFCI) (#189341)
In the Weak Crossing SIV test, there were two places where we checked
the dependency at the boundary, one is at the first iteration, and the
other is at the last iteration. Now the former can be merged into the
latter. There used to be an edge case when the coefficient is zero, and
we had an explicit check for that. This patch removes that check as
well, by moving the boundary check after the assertion that ensures the
(maybe negated) coefficient is positive.
Commit: d3f1e0dde0a1f40b4447a58744e2b7dd66028d37
https://github.com/llvm/llvm-project/commit/d3f1e0dde0a1f40b4447a58744e2b7dd66028d37
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
A llvm/test/CodeGen/SPIRV/instructions/phi-aggregate-loop.ll
Log Message:
-----------
[SPIR-V] Fix aggregate PHI type mismatch in loops (#186086)
Commit: ccb64cb53e9fcee942a176c1f5a0b0b18e342c82
https://github.com/llvm/llvm-project/commit/ccb64cb53e9fcee942a176c1f5a0b0b18e342c82
Author: Michael Marjieh <99331190+mmarjieh at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/BlockSupport.h
M mlir/include/mlir/IR/Value.h
M mlir/lib/IR/Value.cpp
Log Message:
-----------
[Value] Mark getOperandNumber as Const (#189267)
Commit: 0bb0c7db2bd158a7515ba9726bc27fe9acc368b6
https://github.com/llvm/llvm-project/commit/0bb0c7db2bd158a7515ba9726bc27fe9acc368b6
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/MPI/IR/MPIOps.cpp
Log Message:
-----------
[MLIR][MPI] Fix direct getRefMutable().assign() bypassing rewriter in FoldCast (#188943)
The FoldCast canonicalization pattern was calling
op.getRefMutable().assign(src) directly, bypassing the rewriter. This
violates the pattern API contract and causes fingerprint change failures
when
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS is enabled. Wrap the
modification with b.modifyOpInPlace() to properly notify the rewriter of
the changes.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 6c8782b347b56f8499d4d914052e7f819f8e9fab
https://github.com/llvm/llvm-project/commit/6c8782b347b56f8499d4d914052e7f819f8e9fab
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
Log Message:
-----------
[MLIR][Vector] Fix direct operand.set() bypassing rewriter in WarpOpScfIfOp/ForOp (#188948)
In WarpOpScfIfOp and WarpOpScfForOp, the walk that updates users of
escaping values (after moving them to the inner WarpOp) was calling
operand.set() directly, bypassing the rewriter API. This causes the
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS fingerprint check to fail.
Fix by wrapping the operand updates with rewriter.modifyOpInPlace().
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 2b4198540541cf8cebd5bf83d3546157961302c4
https://github.com/llvm/llvm-project/commit/2b4198540541cf8cebd5bf83d3546157961302c4
Author: Jim Lin <jim at andestech.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[DAG] Fix incorrect ForSigned handling in computeConstantRange calls (#188889)
Fix two places where ForSigned was incorrectly passed to
computeConstantRange, causing wrong signed/unsigned range computation.
In computeConstantRangeIncludingKnownBits (DemandedElts overload),
the call omitted ForSigned, so Depth (unsigned) was implicitly
converted to bool for the ForSigned parameter. Introduced in
a6a66a4e6915.
In visitIMINMAX, the call always passed ForSigned=false, even when
folding SMAX/SMIN which query signed bounds from the resulting range.
Commit: 65cb5c3975e36dd4bc028baea4bed170b34aacc9
https://github.com/llvm/llvm-project/commit/65cb5c3975e36dd4bc028baea4bed170b34aacc9
Author: Jean-Michel Gorius <11683623+jmgorius at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/Headers/emmintrin.h
M clang/test/CodeGen/builtins-x86.c
Log Message:
-----------
[clang][x86] Fix the return type of the cvtpd2dq builtin (#189254)
The CVTPD2DQ instruction converts packed 64-bit floating-point values to
packed 32-bit signed integer values. This patch fixes the return type of
the corresponding builtin, which previously returned a vector of two
64-bit signed integers. The new behavior is in line with the return type
of the CVTTPD2DQ builtin.
Commit: e6c89e8d6ad779ac57b8b35f225f960757ef57d1
https://github.com/llvm/llvm-project/commit/e6c89e8d6ad779ac57b8b35f225f960757ef57d1
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/TableGen/Record.cpp
A llvm/test/TableGen/intrinsic-arginfo-error.td
Log Message:
-----------
[TableGen] Improve the error report of getElementAsRecord (#189302)
Commit: 4d3759d83b4e59077c6bdd3dcf88d726f7e5a8d6
https://github.com/llvm/llvm-project/commit/4d3759d83b4e59077c6bdd3dcf88d726f7e5a8d6
Author: Ricardo Jesus <rjj at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/test/Transforms/InstCombine/fmul.ll
Log Message:
-----------
[InstCombine] Fold X * ldexp(1.0, Y) -> ldexp(X, Y). (#188493)
This would avoid the FMUL in sequences such as
[these](https://godbolt.org/z/xhqfe5sb1).
Commit: c7908d3320b182023bf11cef2ff0de58985c2a12
https://github.com/llvm/llvm-project/commit/c7908d3320b182023bf11cef2ff0de58985c2a12
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Use passing-by-ref in the range based loop to prevent warnings/errors
Commit: e901b0295dae50a30ed736661ec86aded9693db9
https://github.com/llvm/llvm-project/commit/e901b0295dae50a30ed736661ec86aded9693db9
Author: Yevgeny Rouban <yrouban at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
Log Message:
-----------
[BasicBlockUtils] Fixed LoopInfo update in UpdateAnalysisInformation() (#177147)
SplitLandingPadPredecessors() results in an irreducible loop
and makes LoopInfo invalid. Verification results in a crash:
Assertion `CB != OutsideLoopPreds[i] && "Loop has multiple entry
points!"' failed.
Created a new test with a broken LoopInfo after
SplitLandingPadPredecessors().
The test @split-lp-predecessors-test() after
SplitBlockPredecessors(catch_dest, { loop }, "", DT, LI) changes to
the following IR where the loop {%catch_dest} gets into irreducible
loop {%catch_dest.split-lp, %catch_dest}:
```
define void @split-lp-predecessors-test() personality ptr null {
entry:
invoke void @foo()
to label %loop unwind label %catch_dest.split-lp
loop: ; preds = %latch, %entry
invoke void @foo()
to label %latch unwind label %catch_dest1
latch: ; preds = %loop
br label %loop
catch_dest1: ; preds = %loop
%lpad = landingpad i32
cleanup
br label %catch_dest
catch_dest.split-lp: ; preds = %entry, %catch_dest
%lpad.split-lp = landingpad i32
cleanup
br label %catch_dest
catch_dest: ; preds = %catch_dest.split-lp, %catch_dest1
invoke void @foo()
to label %exit unwind label %catch_dest.split-lp
exit: ; preds = %catch_dest
ret void
}
```
Irreducible loops must be removed from LoopInfo.
When UpdateAnalysisInformation() detects an irreducible loop created
then the loop is erased from LoopInfo.
See the issue #163922 for details.
Commit: 7fb4f732f5dd30506d3e453b503ef1293d257a5b
https://github.com/llvm/llvm-project/commit/7fb4f732f5dd30506d3e453b503ef1293d257a5b
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M polly/include/polly/ScopInfo.h
M polly/lib/Analysis/ScopBuilder.cpp
A polly/test/ScopInfo/issue187922.ll
M polly/test/ScopInfo/user_provided_assumptions.ll
Log Message:
-----------
[Polly] Avoid __builtin_assume circular context reasoning (#189350)
The conversion of SCEVs to isl::pw_aff may only be valid under
conditions that have to be confirmed via RTC. This also happens with
__builtin_assume. These user-added assumptions are then added to
ScopInfo::Context. However, the conclusion in ScopInfo::Context is then
also used to simplify ("gist") its own RTC preconditions in
ScopInfo::AssumedContext and ScopInfo::InvalidContext away.
Avoid by adding user assumptions with preconditions to
ScopInfo::DefinedBehaviourContext instead, which is not used to simplify
AssumedContext/InvalidContext.
Fixes #187922
Thanks @thapgua for the report
Commit: 53e7f9ada45a71e1cecd14c5ce8dc441a9257501
https://github.com/llvm/llvm-project/commit/53e7f9ada45a71e1cecd14c5ce8dc441a9257501
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Generalize header-phi detection in VPPhi::execute. (NFC) (#189352)
Generalize the header-phi detection in VPPhi::execute to use VPDT.
This is currently NFC, but is needed to use VPPhi also for dissolving
replicate regions (https://github.com/llvm/llvm-project/pull/186252).
Split off from approved https://github.com/llvm/llvm-project/pull/186252
as suggested.
PR: https://github.com/llvm/llvm-project/pull/189352
Commit: 4991abe0791dfec380cf73ce37c83e81453038ac
https://github.com/llvm/llvm-project/commit/4991abe0791dfec380cf73ce37c83e81453038ac
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/test/lib/Dialect/Shard/TestReshardingPartition.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in TestReshardingPartition.cpp (NFC)
Commit: b50d5ad5074c6149ea3e45fa5cde862f8e84557e
https://github.com/llvm/llvm-project/commit/b50d5ad5074c6149ea3e45fa5cde862f8e84557e
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-else-after-return in TypeConverter.cpp (NFC)
Commit: dfc866ca0298c45ffc4b7f08d761183dea2512f2
https://github.com/llvm/llvm-project/commit/dfc866ca0298c45ffc4b7f08d761183dea2512f2
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for bugprone-argument-comment in SparseTensorRewriting.cpp (NFC)
Commit: 1ac60ce8a0ca890b3c69489e5ffab64344e05972
https://github.com/llvm/llvm-project/commit/1ac60ce8a0ca890b3c69489e5ffab64344e05972
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/ShardingInterfaceImpl.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for performance-unnecessary-copy-initialization in ShardingInterfaceImpl.cpp (NFC)
Commit: 25fee9568419e0a72d6807623eae72c2689329ff
https://github.com/llvm/llvm-project/commit/25fee9568419e0a72d6807623eae72c2689329ff
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for modernize-loop-convert in Deserializer.cpp (NFC)
Commit: 4a773b9f35fc56d3768a7bacad6bd54e3735190a
https://github.com/llvm/llvm-project/commit/4a773b9f35fc56d3768a7bacad6bd54e3735190a
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/memset.ll
A llvm/test/CodeGen/SPIRV/loop-unroll-nonshader.ll
M llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll
Log Message:
-----------
[SPIR-V] Emit OpLoopMerge for non-shader targets without SPV_INTEL_unstructured_loop_controls extension (#187519)
`OpLoopMerge` emission was not supported due to the fact that spirv
structurizer is not being run for non-shader targets.
After enabling support for `SPV_INTEL_unstructured_loop_controls` in
https://github.com/llvm/llvm-project/pull/178799 is started to preserve
some information about unstructured control flow. This PR is intended to
enable support for `OpLoopMerge` without extension.
Note: changes in `llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll`
and `llvm/test/CodeGen/SPIRV/llvm-intrinsics/memset.ll` are due to the
fact that loop layout has changed after `loop-simplify` pass enabling
Commit: 58f702177ca00907a0daeacddb473b03d6cc2917
https://github.com/llvm/llvm-project/commit/58f702177ca00907a0daeacddb473b03d6cc2917
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Add missing dependency for 1bb03026b6aa332863de65a7d245c4ecf3a99645
Commit: b3fbabbcde9d01e46490d16212cea4ebf4d25eb4
https://github.com/llvm/llvm-project/commit/b3fbabbcde9d01e46490d16212cea4ebf4d25eb4
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Add missing dependency for 00698678e404699f6c776679272a7e3392c46306
Commit: 764457a6e9ca1949482a7914fb928b482d0785b2
https://github.com/llvm/llvm-project/commit/764457a6e9ca1949482a7914fb928b482d0785b2
Author: FYLGQ <799648409 at qq.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
A llvm/test/Transforms/InstCombine/fcmp-select-sign.ll
Log Message:
-----------
[InstCombine] Fold cmp of select-of-constants via truth table (#186591)
This patch adds a generic InstCombine fold for:
cmp pred (select C1, TV1, FV1), (select C2, TV2, FV2)
when all select arms are constants and the comparison can be
constant-folded for all four combinations of C1/C2. The fold computes a
4-entry truth table and synthesizes a boolean expression using
createLogicFromTable.
This generalizes patterns like:
fcmp une (select C1, -1.0, 1.0), (select C2, -1.0, 1.0) -> xor C1, C2
The transform bails out for mixed vector results like:
<i1 true, i1 false>
alive2: https://alive2.llvm.org/ce/z/JQ_Poy
Fixes #186558
Commit: 713c70d7ef50400e3533be05b4f08dc675dc012b
https://github.com/llvm/llvm-project/commit/713c70d7ef50400e3533be05b4f08dc675dc012b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/cast-induction.ll
M llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
Log Message:
-----------
[VPlan] Handle regions with live-outs and scalar VF when replicating. (#186252)
Extend intial unrolling of replicate regions
(https://github.com/llvm/llvm-project/pull/170212) to support live-outs,
if the VF is scalar.
This allows adding the logic needed to explicitly unroll, and replacing
VPPredPhiInsts with regular scalar VPPhi, without yet having to worry
about packing values into vector phis. This will be done in a follow-up
change, which means all replicate regions will be fully dissolved.
PR: https://github.com/llvm/llvm-project/pull/186252
Commit: 6caec7ecdba8b3accd73a1170c7962b9bf5bd195
https://github.com/llvm/llvm-project/commit/6caec7ecdba8b3accd73a1170c7962b9bf5bd195
Author: Mariusz Sikora <mariusz.sikora at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tanh.ll
Log Message:
-----------
[AMDGPU] Add tanh tests for gfx13 (#188240)
Commit: 7e58b06fa4ac68f161b13afdcc0133f86eaea15b
https://github.com/llvm/llvm-project/commit/7e58b06fa4ac68f161b13afdcc0133f86eaea15b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/hip-binding.hip
Log Message:
-----------
clang: Fix warnings with multiple offload arch args (#189329)
Fix regression after ab885fdf5f67726ef564c34087e813f2ca861f5c.
Apparently driver tests do not enforce there are no warnings.
Oddly, I need to use -Werror for the specific error. If I use
just -Werror, I get an error that the -Werror is unused.
Commit: 10b49bc56988b32d240e4bd74ca3c790eed65ecd
https://github.com/llvm/llvm-project/commit/10b49bc56988b32d240e4bd74ca3c790eed65ecd
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Return Triple from OffloadArchToTriple instead of a string (#189343)
Also stop bothering to call normalizeOffloadTriple. This was
produced by code which should always produce normalized triples.
Commit: 79a7b57a443021ed05d19abeb1496be7059ac971
https://github.com/llvm/llvm-project/commit/79a7b57a443021ed05d19abeb1496be7059ac971
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/test/Dialect/MemRef/canonicalize.mlir
Log Message:
-----------
[mlir][memref] Fix invalid folds in ReinterpretCastOpConstantFolder for negative constants (#189237)
`ReinterpretCastOpConstantFolder` could fold `memref.reinterpret_cast`
ops whose offset or sizes contain negative constants (e.g. `-1 :
index`).
- A negative constant size passed into `ReinterpretCastOp::create`
reaches
`MemRefType::get`, which asserts that all static dimension sizes are
non-negative, causing a crash.
- A negative constant offset produces an op with a static negative
offset,
which the `ViewLikeInterface` verifier then rejects ("expected offsets
to
be non-negative").
Fix by skipping the fold when any constant size or the offset is
negative.
Negative strides are intentionally left foldable: they are valid in
strided MemRef layouts (e.g. for reverse iteration) and neither
`MemRefType::get` nor `ViewLikeInterface` places a non-negativity
constraint on strides.
Fixes https://github.com/llvm/llvm-project/issues/188407
Assisted-by: Claude Code
Commit: 16651d240e522d20fb12856ef9e52f2b51e76408
https://github.com/llvm/llvm-project/commit/16651d240e522d20fb12856ef9e52f2b51e76408
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M libcxx/utils/ci/images/libcxx_runners.txt
Log Message:
-----------
[libc++] Bump libc++ runners to include python-venv (#189008)
Commit: 1e99c9e4c7e82c8417e4bdb0d1cb3b86e6640c6c
https://github.com/llvm/llvm-project/commit/1e99c9e4c7e82c8417e4bdb0d1cb3b86e6640c6c
Author: Austin Hudson <austinhudson at protonmail.ch>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lld/COFF/InputFiles.cpp
R lld/test/COFF/embed-bitcode.test
Log Message:
-----------
[lld][COFF] Restore `lto-embed-bitcode` and `-fembed-bitcode` Bitcode Embedding Features (#188398)
Removes the patches introduced by #150897 which broke LTO embed
documented features for creating whole-program-bitcode representations
of executables, used in production analysis/rewriting toolsets. This was
a documented feature available up until 21.1.8 broken by 22.x release.
This previously allowed the users to have a whole-program-bitcode
section `.llvmbc` embedded inside of the final executable.
Commit: 13cd7a29e8951787e2ef68b1920d080984628baf
https://github.com/llvm/llvm-project/commit/13cd7a29e8951787e2ef68b1920d080984628baf
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/include/flang/Lower/OpenACC.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenACC.cpp
A flang/test/Lower/OpenACC/Todo/acc-goto-multi-level-exit.f90
M flang/test/Lower/OpenACC/acc-unstructured.f90
Log Message:
-----------
[flang][OpenACC] Generalize cross-region GOTO exit handling for all ACC region ops (#187613)
When a `GoTo` inside an ACC region (`acc.loop`, `acc.data`,
`acc.parallel`, etc.) targets a label outside that region, the lowering
generated an illegal cross-region `cf.br`. This caused MLIR verification
failures or stack overflows in `runRegionDCE`'s recursive
`propagateLiveness`.
This patch addresses the issue with a generalized approach:
- Add `genOpenACCRegionExitBranch` helper that detects cross-region
branches from any ACC region op and generates the appropriate terminator
(`acc.yield` for compute/loop ops, `acc.terminator` for data ops). The
helper verifies that `parentOp` is an ACC operation, so it does not
interfere with branches inside `scf.execute_region` or other non-ACC
regions.
- In `genBranch`, when a cross-region exit from an ACC region is
detected, store a unique exit ID into a selector variable and generate
the region terminator. After the ACC op, a jump table dispatches to the
correct target based on the selector. This correctly handles GOTOs that
skip intermediate code between the loop end and the target label.
- Emit a TODO diagnostic for GOTOs that cross multiple nested ACC region
boundaries.
- Fix `acc.data` creation when the construct has no data clauses but
contains unstructured control flow: skip the early return in
`genACCDataOp` so the `acc.data` region is created and blocks are
properly managed.
Commit: 298404d2de82504f2ed13358781baed245abb1d3
https://github.com/llvm/llvm-project/commit/298404d2de82504f2ed13358781baed245abb1d3
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A flang/test/Lower/Intrinsics/product-kind-10.f90
M flang/test/Lower/Intrinsics/product.f90
M flang/test/Lower/Intrinsics/random.f90
M flang/test/Lower/Intrinsics/real.f90
M flang/test/Lower/Intrinsics/repeat.f90
M flang/test/Lower/Intrinsics/reshape.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 39) (#188386)
Tests converted from test/Lower/Intrinsics: product.f90, random.f90,
real.f90, repeat.f90, reshape.f90
Commit: f08b2fefe84d0098c9f1cbb6d1688142884663de
https://github.com/llvm/llvm-project/commit/f08b2fefe84d0098c9f1cbb6d1688142884663de
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/APInt.h
M llvm/lib/Support/APInt.cpp
Log Message:
-----------
[Support][APint] Introduce and use isPowerOf2SlowCase instead countPopulationSlowCase for slow path (#189257)
In most cases `APint::isPowerOf2` returns false, but
`countPopulationSlowCase` always has `O(N)` complexity specifically for
the most common case, so I added `isPowerOf2SlowCase` method with an
early loop exit which should help a lot for most typical scenario.
Commit: 2566734adf4cbd92c34d7541c2ec2a6a629f763a
https://github.com/llvm/llvm-project/commit/2566734adf4cbd92c34d7541c2ec2a6a629f763a
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
M llvm/test/CodeGen/RISCV/riscv-codegenprepare.ll
A llvm/test/Transforms/PhaseOrdering/RISCV/any-of-vectorization.ll
A llvm/test/Transforms/PhaseOrdering/RISCV/lit.local.cfg
Log Message:
-----------
[RISCV] Handle freeze in vp.merge widening codegen prepare (#189346)
This fixes #189335. Previously we used to widen i1 vp.merges that were
used in AnyOf reduction patterns from the loop vectorizer to i8. This
improved codegen because RVV doesn't have support for tail undisturbed
mask instructions, so i1 vp.merges are expanded into a vid.v + compare
sequence. Widening it to i8 allows a single vmerge.vim to be used
instead.
The pattern used to look like this, where the loop vectorizer emitted a
freeze after the reduction:
vector.body:
...
%3 = call <vscale x 4 x i1> @llvm.vp.merge.nxv4i1(<vscale x 4 x i1> %2,
<vscale x 4 x i1> splat (i1 true), <vscale x 4 x i1> %vec.phi, i32 %0)
...
br i1 %5, label %middle.block, label %vector.body
for.cond.cleanup.loopexit: ; preds = %middle.block
%6 = call i1 @llvm.vector.reduce.or.nxv4i1(<vscale x 4 x i1> %3)
%7 = freeze i1 %6
br label %for.cond.cleanup
But a recent change in InstCombiner now causes the freeze to be hoisted
in between the reduction and the vp.merge, breaking the existing
pattern:
vector.body:
...
%3 = call <vscale x 4 x i1> @llvm.vp.merge.nxv4i1(<vscale x 4 x i1> %2,
<vscale x 4 x i1> splat (i1 true), <vscale x 4 x i1> %vec.phi, i32 %0)
%.fr = freeze <vscale x 4 x i1> %3
...
br i1 %5, label %middle.block, label %vector.body
for.cond.cleanup.loopexit:
%6 = call i1 @llvm.vector.reduce.or.nxv4i1(<vscale x 4 x i1> %.fr)
br label %for.cond.cleanup
This patch teaches the transform to handle the freeze. We need to do the
change when visiting the freeze instruction otherwise we invalidate the
make_early_inc_range iterator.
Commit: 63cb3e55e7f1d0bc7609f2fcbad0516e9eff32b7
https://github.com/llvm/llvm-project/commit/63cb3e55e7f1d0bc7609f2fcbad0516e9eff32b7
Author: Marina Taylor <marina_taylor at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
A llvm/test/Transforms/ObjCARC/sink-past-atomic.ll
Log Message:
-----------
[ObjCARC] Don't sink objc_retain past atomic writes (#184113)
The atomic may cause another thread to objc_release the pointer, so
consider these instructions as potentially decrementing refcounts.
This patch is a synthesis of several AI models' outputs, as well as work
by David Kilzer.
Co-authored-by: David Kilzer <ddkilzer at apple.com>
Assisted-by: claude
rdar://152185192
Commit: b857481e6b2554a76062288cfed06a0ed9951263
https://github.com/llvm/llvm-project/commit/b857481e6b2554a76062288cfed06a0ed9951263
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
Log Message:
-----------
[AArch64][llvm] Rewrite the TLBI multiclass to be clearer (NFC) (#186451)
The `tlbi` multiclass is really doing four jobs at once: base TLBI,
synthesized nXS, optional TLBIP, and synthesized TLBIP nXS. Also,
`needsreg` and `optreg` are really just a 3-state operand policy in
disguise. Likewise, the PLBI multiclass has this same issue.
Change `needsreg` and `optreg` into a combined enum-alike, so it's
clearer whether the instruction takes no register operand, a required
register operand or an optional register operand.
This improves on my original change 66e8270e8. Further work to
improve this code is in #187400.
Commit: 7382a993b4e0d597d1354173100f51adcf207145
https://github.com/llvm/llvm-project/commit/7382a993b4e0d597d1354173100f51adcf207145
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[DAG] SimplifyDemandedBits - limit BITCAST -> FGETSIGN fold to custom/legal scalar SimplifyDemandedBits cases (#189363)
All of the non-i32 zero_extend codepath is unaffected by this
Pulled out of the discussion on #189129
Commit: 9a8c018081383f71e9f2f013dfea2fd26620aade
https://github.com/llvm/llvm-project/commit/9a8c018081383f71e9f2f013dfea2fd26620aade
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/include/flang/Lower/OpenACC.h
M flang/include/flang/Optimizer/Dialect/FIRAttr.h
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.h
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCUtils.h
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
A flang/test/Lower/OpenACC/acc-firstprivate-optional.f90
M mlir/include/mlir/Dialect/OpenACC/OpenACC.h
A mlir/include/mlir/Dialect/OpenACC/OpenACCAttributes.td
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/include/mlir/Dialect/OpenACC/OpenACCTypeInterfaces.td
A mlir/include/mlir/Dialect/OpenACC/OpenACCVariableInfo.h
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
M mlir/test/lib/Dialect/OpenACC/TestRecipePopulate.cpp
Log Message:
-----------
[mlir][acc] add VariableInfo attribute to thread language specific information about privatized variables (#186368)
Add a new acc::VariableInfoAttr attribute that can be extended and implemented by
language dialects to carry language specific information about variables that is
not reflected into the MLIR type system and is needed in the implementation
of the init/copy/destroy APIs.
A new genPrivateVariableInfo API is added to the MappableTypeInterface to generate
such attribute from an mlir::Value for the host variable.
The use case and motivation is the Fortran OPTIONAL attribute. This patch adds
a new fir::OpenACCFortranVariableInfoAtt that implements the acc::VariableInfoAttr
to carry the OPTIONAL information around.
Commit: 6ae395a8758da8642421fc48233f1029ca530e33
https://github.com/llvm/llvm-project/commit/6ae395a8758da8642421fc48233f1029ca530e33
Author: lntue <lntue at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M libc/shared/math/nexttoward.h
M libc/shared/math/nexttowardbf16.h
M libc/shared/math/nexttowardf.h
M libc/shared/math/nexttowardf16.h
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
Log Message:
-----------
[libc][NFC] Guard long double type in shared_math_tests. (#189373)
Skip long double tests when long double is double-double.
Also adjust constant literals.
Commit: 2cff8d52b7c5425d16674519b664b41116dc9af2
https://github.com/llvm/llvm-project/commit/2cff8d52b7c5425d16674519b664b41116dc9af2
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M .github/workflows/libcxx-build-containers.yml
Log Message:
-----------
[libc++] Don't upload Docker image tarballs as artifacts (#188845)
These steps fail because the tarballs are too large, so we might as well
just not do it.
Commit: aa22fca59a4d541def13f18a496d4ca62f239adb
https://github.com/llvm/llvm-project/commit/aa22fca59a4d541def13f18a496d4ca62f239adb
Author: Xinlong Chen <xinlongchen at tencent.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/unittests/Target/AArch64/AArch64SelectionDAGTest.cpp
Log Message:
-----------
[DAG] Add initial version of SelectionDAG::computeKnownFPClass (#188790)
This patch adds an initial skeleton for `SelectionDAG::computeKnownFPClass`.
The initial version includes:
- DemandedElts wrapper and max depth early-out
- `ConstantFPSDNode` and `BUILD_VECTOR` handling
- `TargetLowering::computeKnownFPClassForTargetNode` virtual hook for backend extensions
Initial test coverage for constant scalars, BUILD_VECTOR, and max depth
early-out is added in `AArch64SelectionDAGTest.cpp`.
closes #175571
Commit: c7706be4bf06ca53ffcddcc96dacb4b6c4ac2782
https://github.com/llvm/llvm-project/commit/c7706be4bf06ca53ffcddcc96dacb4b6c4ac2782
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A compiler-rt/lib/builtins/arm/crt_endian.h
R compiler-rt/lib/builtins/arm/endian.h
Log Message:
-----------
[compiler-rt][ARM] Rename endian.h to crt_endian.h (#189336)
Apparently on macOS there's a system header file also called
arm/endian.h, and another system header #includes it with "" rather than
<>, so that this compiler-rt header accidentally shadows it. Worked
around by prefixing "crt" to the name.
No changes are needed except the rename, because the planned functions
that use this header are still under review.
Commit: b75c1d1163e237b1f671bd259d9c693936c548ca
https://github.com/llvm/llvm-project/commit/b75c1d1163e237b1f671bd259d9c693936c548ca
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
Log Message:
-----------
[clang][bytecode] Disable preservenone attribute on clang19+asan (#189377)
This better not break anything else.
Commit: 3c1b9f278dae46d150e7b5be96dd0575d6901463
https://github.com/llvm/llvm-project/commit/3c1b9f278dae46d150e7b5be96dd0575d6901463
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Log Message:
-----------
[WebAssembly][NFC] use getOneBitSet instead init + shifting for APint (#188552)
This is valid due to `ShiftAmt < BitWidth` which is ensured by early
`ShiftAmt.uge(MaxValidShift)` testing.
Commit: 5e7c66013bce8916d976355f5455e771d3bbcff4
https://github.com/llvm/llvm-project/commit/5e7c66013bce8916d976355f5455e771d3bbcff4
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M compiler-rt/lib/xray/xray_hexagon.cpp
M compiler-rt/lib/xray/xray_interface.cpp
M compiler-rt/lib/xray/xray_trampoline_hexagon.S
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/test/CodeGen/Hexagon/xray-pred-ret.ll
M llvm/test/CodeGen/Hexagon/xray.ll
Log Message:
-----------
[Hexagon][XRay] Fix sled layout and trampoline to preserve retaddr (#188784)
The Hexagon XRay sled was 5 words (20 bytes) and the patched sequence
clobbered r31 (the link register) via callr without saving it first.
When the trampoline returned, the instrumented function's own allocframe
would then save the wrong return address, causing a crash or misrouted
return.
Expand the sled to 7 words (28 bytes) and wrap the call with
allocframe(#0)/deallocframe so the caller's r31:30 are preserved across
the trampoline call.
Detailed fixes:
- HexagonAsmPrinter: emit 6 nop words after the jump (7 words total)
- xray_hexagon.cpp: patch allocframe(#0) as first word, immext+r7 (func
ID), immext+r6 (trampoline), callr r6, deallocframe; write the first
word last for atomicity
- xray_trampoline_hexagon.S: complete rewrite -- properly load and
dereference the global handler pointer, save/restore r0-r5 and r31, add
stack frame with correct 8-byte alignment, add jumpr r31 to actually
return from trampolines
- xray_interface.cpp: update Hexagon cSledLength from 20 to 28
- Update lit tests for 6-nop sled
Commit: 8254cc9e574f4b2092065dc15f39babc522166c2
https://github.com/llvm/llvm-project/commit/8254cc9e574f4b2092065dc15f39babc522166c2
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Support/APInt.cpp
M llvm/unittests/ADT/APIntTest.cpp
Log Message:
-----------
[APInt] Add fast path for APInt::urem if RHS is power of 2 (#189245)
Commit: a33acdb0b2dca00db08630050b10b09a7546235a
https://github.com/llvm/llvm-project/commit/a33acdb0b2dca00db08630050b10b09a7546235a
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/gwp_asan/common.h
Log Message:
-----------
[compiler-rt] Enable GWP-ASan for Hexagon (#188410)
Add Hexagon to ALL_GWP_ASAN_SUPPORTED_ARCH, add struct layout
assertions.
Commit: 3481129c492de131330d2103432427dfc78e373d
https://github.com/llvm/llvm-project/commit/3481129c492de131330d2103432427dfc78e373d
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
Log Message:
-----------
[SCEVPatternMatch] Strip redundant const_cast (NFC) (#189382)
Commit: 8f4f515898e2664ef8b4c1988b444cfd041f3fa5
https://github.com/llvm/llvm-project/commit/8f4f515898e2664ef8b4c1988b444cfd041f3fa5
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lld/ELF/Arch/Hexagon.cpp
M lld/ELF/Relocations.cpp
M lld/ELF/Relocations.h
M lld/ELF/Target.h
M lld/ELF/Writer.cpp
M lld/test/ELF/hexagon-thunk-range-gdplt.s
M lld/test/ELF/hexagon-tls-gd-nonpreemptible.s
A lld/test/ELF/hexagon-tls-gd-plt-direct.s
M lld/test/ELF/hexagon-tls-gd-xform.s
Log Message:
-----------
[lld][Hexagon] Fix TLS GD PLT to only create PLT entry for __tls_get_addr (#180297)
Previously, R_HEX_GD_PLT_* relocations would create PLT entries for TLS
symbols like 'foo' in addition to __tls_get_addr.
This fix skips NEEDS_PLT on TLS symbols with R_HEX_GD_PLT_*, creates
__tls_get_addr symbol earlier with NEEDS_PLT, changes
hexagonTLSSymbolUpdate to only rebind relocations.
Also a test for the edge case where a GD_PLT relocation directly
references __tls_get_addr which previously caused a crash due to
duplicate PLT entry creation.
---------
Co-authored-by: Fangrui Song <i at maskray.me>
Commit: 306e86be5108f70c8d54f52d95daec6b8614c7e6
https://github.com/llvm/llvm-project/commit/306e86be5108f70c8d54f52d95daec6b8614c7e6
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/test/MC/AArch64/armv8.7a-xs.s
M llvm/test/MC/AArch64/armv9.5a-tlbiw.s
M llvm/test/MC/AArch64/armv9a-tlbip.s
Log Message:
-----------
[AArch64][llvm] Separate TLBI-only feature gating from TLBIP aliases (#187400)
Commit: 7356e367d8d4b76de04ded81afa1f1cc68d58668
https://github.com/llvm/llvm-project/commit/7356e367d8d4b76de04ded81afa1f1cc68d58668
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
R llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
Log Message:
-----------
Revert "[MemProf] Dump inline call stacks as optimization remarks (#188678)"
This reverts commit 502b5e0bea1282006b7ba74b7e4c2df3eea4dd12.
Broken on 32-bit.
Commit: 58419354a8b3a3f981507d13c3324511eb4833ca
https://github.com/llvm/llvm-project/commit/58419354a8b3a3f981507d13c3324511eb4833ca
Author: Steven Perron <stevenperron at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/test/CodeGenHLSL/resources/Texture2D-Gather.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Mips.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-Sample.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleBias.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleCmp.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleGrad.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleLevel.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-default-explicit-binding.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-default.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-shorthand-contexts.hlsl
A clang/test/SemaHLSL/Texture2D-mips-errors.hlsl
Log Message:
-----------
[HLSL] Implement Texture2D::mips[][] (#186143)
We implement the Textur2D::mips[][] method. We follow the design in DXC.
There is a new member called `mips` with type mips_type. The member will
contain a copy of the handle for the texture.
The type `mips_type` will have a member function `operator[]` that takes
a level, and returns a `mips_slice_type`. The slice will contain the
handle and the level. It also has an operator[] member function that
take a coordinate. It will do a load from the handle with the level and
coordinate, and return that value.
Assisted-by: Gemini
Commit: 4d7339a14df8519b48f236ea5d6439d04f00eec2
https://github.com/llvm/llvm-project/commit/4d7339a14df8519b48f236ea5d6439d04f00eec2
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Interpreter/OptionArgParser.h
M lldb/include/lldb/lldb-private-types.h
M lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
M lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
M lldb/unittests/Utility/ArchSpecTest.cpp
Log Message:
-----------
[lldb] Fix a circular include dependency (NFC) (#188931)
`lldb-private-types.h` includes `lldb-private.h`, which in turn includes
`lldb-private-types.h`. Because of that, `lldb-public.h` included by
`lldb-private.h` after `lldb-private-types.h` is not actually included.
The practical consequence of this is that types defined in
`lldb-public-types.h` (for example, `addr_t` needed downstream) are not
available in `lldb-private-types.h`.
Fix this by "including what you use", which is `lldb-types.h`.
Commit: 7feb816ed07f1a6ac79de71b8d66c7eff6e7e922
https://github.com/llvm/llvm-project/commit/7feb816ed07f1a6ac79de71b8d66c7eff6e7e922
Author: Anshul Nigham <nigham at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
M llvm/lib/CodeGen/GlobalISel/Combiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp
M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVO0PreLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPostLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPreLegalizerCombiner.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
M llvm/lib/Target/X86/GISel/X86PostLegalizerCombiner.cpp
M llvm/lib/Target/X86/GISel/X86PreLegalizerCombiner.cpp
Log Message:
-----------
[NFC] Removes unused Combiner dependency on TargetPassConfig (#188365)
This enables NewPM ports since it removes multiple pass dependencies on
`TargetPassConfig` which we don't want to port to the NewPM.
It looks like no derived classes of Combiner actually use this pointer,
and it is also unused in the Combiner class.
Commit: 1f0638cd3e53b394e31adb214a6ab12348cb722e
https://github.com/llvm/llvm-project/commit/1f0638cd3e53b394e31adb214a6ab12348cb722e
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Host/windows/ProcessLauncherWindows.h
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py
M lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
M lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/RunInTerminal.cpp
M lldb/tools/lldb-dap/RunInTerminal.h
M lldb/tools/lldb-dap/tool/Options.td
M lldb/tools/lldb-dap/tool/lldb-dap.cpp
Log Message:
-----------
[lldb-dap][windows] add integratedTerminal and externalTerminal support (#174635)
Commit: 644b74f926a2267fc52557f0e99d56376e0ec6a9
https://github.com/llvm/llvm-project/commit/644b74f926a2267fc52557f0e99d56376e0ec6a9
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ADCE.cpp
Log Message:
-----------
[ADCE][NFC] Use FindFunctionBackedges (#189405)
Slightly less efficient than it could be, because the backedges are
materialized, but more efficient than using a DenseMap.
Pull Request: https://github.com/llvm/llvm-project/pull/189405
Commit: 443e766b4003bf1bce9728b7cc24ecba9bd79788
https://github.com/llvm/llvm-project/commit/443e766b4003bf1bce9728b7cc24ecba9bd79788
Author: Nathan Gauër <brioche at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Attributes.td
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Verifier.cpp
A llvm/test/Assembler/structured-alloca.ll
A llvm/test/Verifier/structured-alloca-bad.ll
Log Message:
-----------
[IR] Add @llvm.structured.alloca (#186811)
This instruction is an alternative for the `alloca` instruction when
targeting logical targets like DXIL/SPIR-V.
This instruction allocates some memory, but the exact size of the
allocation is not known at the IR level. Only some equivalence can be
determined.
Commit adds docs, instruction declaration, and IR verifier testing.
Related to:
https://discourse.llvm.org/t/rfc-adding-logical-structured-alloca/
Commit: 1d48c3bc014d1aa92ca7c5f2d217c6d0aa44b553
https://github.com/llvm/llvm-project/commit/1d48c3bc014d1aa92ca7c5f2d217c6d0aa44b553
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[NFC][LV] Separate control-flow masking from tail-folding masking. (#169509)
- Differentiate between operations that need masking because they are in
a conditionally-executed block, and operations that need masking because
the loop is tail-folded (predicated).
- This is needed for future work when we need to support a predicated
vector epilogue in combination with an unpredicated vector body.
- This is first patch in a series.
- See #181401 for the follow-on work.
Commit: 55c149c0768f51974489f1787ac798cc82eb93f7
https://github.com/llvm/llvm-project/commit/55c149c0768f51974489f1787ac798cc82eb93f7
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ADCE.cpp
Log Message:
-----------
[ADCE][NFC] Use block numbers instead of DenseMap (#189406)
Straight-forward replacement of the DenseMap with a vector. Data
structure cleanup will follow as separate patch.
Commit: acb3d81a932c094ee1e71bca6aa60e69cac43c65
https://github.com/llvm/llvm-project/commit/acb3d81a932c094ee1e71bca6aa60e69cac43c65
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadPlanStepUntil.h
M lldb/source/API/SBThread.cpp
M lldb/source/Commands/CommandObjectThread.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadPlanStepUntil.cpp
Log Message:
-----------
[lldb] Use ArrayRef instead of pointer+size (NFC) (#189186)
While here:
* Move the constructor to the public section. Almost all ThreadPlan
classes have public constructors.
* Use `std::make_shared()`. It is modern and more efficient.
Commit: ad4d4c0f63258bfeec2064d4fe6bec1ad9575aba
https://github.com/llvm/llvm-project/commit/ad4d4c0f63258bfeec2064d4fe6bec1ad9575aba
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Support leading unit dims in vector.multi_reduction in sg to wi pass (#188767)
This PR adds support for transforming vector.multi_reduction with
vectors > rank 2d with leading unit dims
Commit: 146d604f9a74084c26df784d964578b81d672120
https://github.com/llvm/llvm-project/commit/146d604f9a74084c26df784d964578b81d672120
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ADCE.cpp
Log Message:
-----------
[ADCE][NFC] Cleanup data structures (#189407)
Cleanup used data structures:
- Replace InstInfo map with a SmallPtrSet, the pointer to the BlockInfo
is used only once and can be easily (and cheaply) accessed using the
block number.
- Remove "cached" fields from block data structures -- there is no
measurable performance benefit, but these fields do need to be
initialized and consume memory, so remove them. In all cases, the
information is trivially accessible from the instruction or block.
Pull Request: https://github.com/llvm/llvm-project/pull/189407
Commit: 4c0e9800e942e3fcc15b23a8c156d6f286ed6e00
https://github.com/llvm/llvm-project/commit/4c0e9800e942e3fcc15b23a8c156d6f286ed6e00
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/signed_arithmetic_overflow.ll
Log Message:
-----------
[SPIR-V] Lower G_SADDO and G_SSUBO in legalizer (#189031)
Use generic lowering for G_SADDO and G_SSUBO gMIR instructions
Commit: 58a0d48dcc0f67b5f64cf0111b04ca660571ba75
https://github.com/llvm/llvm-project/commit/58a0d48dcc0f67b5f64cf0111b04ca660571ba75
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Port 9a8c018081383f71e9f2f013dfea2fd26620aade
Commit: 7f3f4c90e5f3dd373cd0d8c60bad2ee4a66ea1b4
https://github.com/llvm/llvm-project/commit/7f3f4c90e5f3dd373cd0d8c60bad2ee4a66ea1b4
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/test/CIR/CodeGen/clear-cache.c
Log Message:
-----------
[CIR][NFC] Fix clear-cache test after #189283 (#189379)
Update `clang/test/CIR/CodeGen/clear-cache.c` to match the overloaded
`llvm.clear_cache.p0` intrinsic spelling introduced by #189283.
Commit: 0151d563249713b133681e90eaa9637be1bb23f7
https://github.com/llvm/llvm-project/commit/0151d563249713b133681e90eaa9637be1bb23f7
Author: Steven Perron <stevenperron at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/test/SemaHLSL/Texture2D-mips-errors.hlsl
Log Message:
-----------
[HLSL] Fix up Texture2D-mips-errors test (#189089)
The Texture2D-mips-errors test was supposed to test for an error when
the mips
types are used as templates. It was initially disabled because of a
crash. On further investigation, the crash was related to int2(0,0), and
not the mips type.
Follow-up issue for the int2(0,0) crash: #189086
Fixes #188556
<!-- branch-stack-start -->
<!-- branch-stack-end -->
Commit: bbef10d9f149b2755db9482e449bb97273686a50
https://github.com/llvm/llvm-project/commit/bbef10d9f149b2755db9482e449bb97273686a50
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
Log Message:
-----------
[CodeGen][NFC] Compute MaximumLegalStoreInBits just once (#189355)
Instead of iterating over all value types per basic block, pre-compute
the TLI-specific value once when constructing the TLI.
Commit: c35ec8326bd62c2c3686dfafd3ef77afce0a80f8
https://github.com/llvm/llvm-project/commit/c35ec8326bd62c2c3686dfafd3ef77afce0a80f8
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A llvm/test/CodeGen/WebAssembly/call-wasm64.ll
M llvm/test/CodeGen/WebAssembly/call.ll
Log Message:
-----------
[WebAssembly] Add `call-wasm64.ll` to test subset of `call.ll` on Wasm64. NFC (#188693)
Adds tests from `call.ll` to run for `wasm64` where codegen might differ
(namely indirect calls; i32 vs i64 pointers).
Split from #180649
Commit: 2334330bd937ff0b42db902d9943717879f13d93
https://github.com/llvm/llvm-project/commit/2334330bd937ff0b42db902d9943717879f13d93
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFGPUToLLVMConversion.cpp
M flang/test/Fir/CUDA/cuda-shared-to-llvm.mlir
Log Message:
-----------
[flang][cuda] Imply zero offset when not provided (#189421)
Commit: f4d1745ab31d77f6782690be6e4d41c8f0435b2c
https://github.com/llvm/llvm-project/commit/f4d1745ab31d77f6782690be6e4d41c8f0435b2c
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.lds.direct.load.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.lds.direct.load.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for lds_direct_load (#189134)
Commit: 27e3c43d743313a4d9d6617893561b69c2f2e2f0
https://github.com/llvm/llvm-project/commit/27e3c43d743313a4d9d6617893561b69c2f2e2f0
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for global_load_lds (#189135)
Commit: c32d670757b81aefd3acf3c228667a82d9237e97
https://github.com/llvm/llvm-project/commit/c32d670757b81aefd3acf3c228667a82d9237e97
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.ordered.add.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.ordered.swap.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add-errors.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.gfx10.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.gfx11.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.swap.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for ds_ordered_add/swap (#189137)
Commit: 75814307221558d6f3dc4555e75e57c94c6ec85a
https://github.com/llvm/llvm-project/commit/75814307221558d6f3dc4555e75e57c94c6ec85a
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/FuzzMutate/RandomIRBuilder.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/DIBuilder.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
M llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/unittests/IR/CFGBuilder.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[IR] Require well-formed IR for BasicBlock::getTerminator (#189416)
BasicBlock::getTerminator() is frequently called on valid IR, yet the
function has to check that the last instruction is in fact a terminator,
even in release builds. This check can only be optimized away when the
instruction is dereferenced.
Therefore, introduce the functions hasTerminator() and
getTerminatorOrNull() as replacement and require (assert) that
getTerminator() always returns a valid terminator. As a side effect,
this forces explicit expression of intent at call sites when unfinished
basic blocks should be supported.
Commit: 2f0118895b3b38c0f0eb06eeb3d3282d0c927897
https://github.com/llvm/llvm-project/commit/2f0118895b3b38c0f0eb06eeb3d3282d0c927897
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.append.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.consume.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.append.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.consume.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for ds_append/ds_consume (#189143)
Commit: 96f223c3b7e8e0fd3a54ed2501d1b2a35b0039db
https://github.com/llvm/llvm-project/commit/96f223c3b7e8e0fd3a54ed2501d1b2a35b0039db
Author: Shivam Kunwar <physhivam at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A llvm/test/DebugInfo/X86/implicit-pointer-isel.ll
Log Message:
-----------
[DebugInfo] Verify DW_OP_LLVM_implicit_pointer survives ISel (#187641)
PR 1 - https://github.com/llvm/llvm-project/pull/186763 ([DebugInfo]
Lower DW_OP_LLVM_implicit_pointer to DWARF#186763)
RFC -
https://discourse.llvm.org/t/rfc-implementing-dw-op-implicit-pointer-support-in-llvm/90217
---------
Co-authored-by: Shivam Kunwar <phyBrackets at users.noreply.github.com>
Commit: c4462a2de0325367e41f45b28c72fb278a3f3037
https://github.com/llvm/llvm-project/commit/c4462a2de0325367e41f45b28c72fb278a3f3037
Author: Justice Adams <jadams23 at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M .ci/green-dragon/lldb-ubuntu.groovy
Log Message:
-----------
[green dragon] add lld to LLVM_ENABLE_PROJECTS for ubuntu (#189419)
Commit: 35a1961287994f73f416c7f54e73b6fa93737ed8
https://github.com/llvm/llvm-project/commit/35a1961287994f73f416c7f54e73b6fa93737ed8
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dot4.f32.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for dot products (#189110)
Commit: d17296d013dc22c98cec4f6103efb640900d8bdd
https://github.com/llvm/llvm-project/commit/d17296d013dc22c98cec4f6103efb640900d8bdd
Author: Roy Shi <royitaqi at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/GSYM/FileWriter.h
M llvm/lib/DebugInfo/GSYM/FileWriter.cpp
M llvm/lib/Support/DataExtractor.cpp
M llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp
M llvm/unittests/Support/DataExtractorTest.cpp
Log Message:
-----------
[llvm lib] Read/write non-power-of-two sized unsigned integers (3, 5, 6, 7 bytes) in DataExtractor and FileWriter (#189098)
This allows tools (like gsymutil) to pack data more efficiently into a
file.
Commit: cabebddac9bee6c14da41a2fdd7aeb60f8c67bdc
https://github.com/llvm/llvm-project/commit/cabebddac9bee6c14da41a2fdd7aeb60f8c67bdc
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/tools/llvm-objdump/llvm-objdump.cpp
Log Message:
-----------
[NFC] Remove unused-but-set global variables (#189315)
Remove four global variables that are set but never read to fix
-Wunused-but-set-global warnings:
- `MFMAChainLength` in AMDGPUIGroupLP.cpp
- `Wide` in llvm-objdump.cpp
- `SaveTemps` in ClangSYCLLinker.cpp
- `DeprecatedDriverCommand` in ClangScanDeps.cpp
Follow up to #178342
Commit: 3e2f0bce9595c7c63d950d725f47f8d7c1a32b8f
https://github.com/llvm/llvm-project/commit/3e2f0bce9595c7c63d950d725f47f8d7c1a32b8f
Author: Peter Rong <peterrong96 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/AST/Mangle.h
M clang/include/clang/CodeGen/CodeGenABITypes.h
M clang/lib/AST/Mangle.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGObjC.cpp
M clang/lib/CodeGen/CGObjCMac.cpp
M clang/lib/CodeGen/CGObjCRuntime.cpp
M clang/lib/CodeGen/CGObjCRuntime.h
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/test/CodeGenObjC/direct-method-ret-mismatch.m
A clang/test/CodeGenObjC/expose-direct-method-linkedlist.m
A clang/test/CodeGenObjC/expose-direct-method-varargs.m
A clang/test/CodeGenObjC/expose-direct-method-visibility-linkage.m
A clang/test/CodeGenObjC/expose-direct-method.m
Log Message:
-----------
[ObjCDirectPreconditionThunk] precondition check thunk generation (#170618)
## TL;DR
This is a stack of PRs implementing features to expose direct methods
ABI.
You can see the RFC, design, and discussion
[here](https://discourse.llvm.org/t/rfc-optimizing-code-size-of-objc-direct-by-exposing-function-symbols-and-moving-nil-checks-to-thunks/88866).
https://github.com/llvm/llvm-project/pull/170616 Flag
`-fobjc-direct-precondition-thunk` set up
https://github.com/llvm/llvm-project/pull/170617 Code refactoring to
ease later reviews
https://github.com/llvm/llvm-project/pull/170618 **Thunk generation**
https://github.com/llvm/llvm-project/pull/170619 Optimizations, some
class objects can be known to be realized
## Implementation details
### Dispatching
- `GetDirectMethodCallee` handles the dispatching logic. Previously we
only need to call `GenerateDirectMethod` to get the declaration of a
direct method.
- `GenerateDirectMethod` first attempts to acquire the declaration of
the implementation, and return it if the flag is not set.
- Generate and return thunk if we can't dispatch to true implementation
(i.e. we can't reason receiver is def not null or class object is not
realized)
### Precondition check thunk generation
- `GenerateObjCDirectThunk` generates the thunk, it is called on demand
by `GetDirectMethodCallee`
- Thunk inherits all attributes from the true implementation, see
`StartObjCDirectThunk` for more detail.
- `StartObjCDirectThunk` and `FinishObjCDirectThunk` follows the design
pattern of `StartThunk` and `FinishThunk` in CGVTable.
### Precondition check inline generation
- If the function need to have precondition check inlined
(`shouldHaveNilCheckInline`), caller will emit the nil check during
`EmitMessageSend`
- Class realization is generated inline
- No extra nil check is generated - we reuse `NullReturnState` to emit
the nil check for us, it already emits nil check at caller side to
handle `ns_consumed`, we just need to tell `NullReturnState` to do the
work by setting the flag `RequiresNullCheck |= ReceiverCanBeNull;`
### Visibility and linkage
- Visibility is still by default `Hidden`. But `StartObjCMethod` will
now respect source level visibility attributes so methods with
`__attribute((visibility("default"))` can be used in other linking units
- Linkage is by default `External`
## Tests
- `expose-direct-method.m` follow the example of `direct-method.m`
- `direct-method-ret-mismatch.m` make sure we can handle the corner case
- `expose-direct-method-consumed.m ` and
`expose-direct-method-linkedlist.m` executable test on Mac only to
validate ARC correctness
- `expose-direct-method-varargs.m`
- `expose-direct-method-visibility-linkage.m`
Commit: 87085a87051bf769eeadd848d695fea01f33e933
https://github.com/llvm/llvm-project/commit/87085a87051bf769eeadd848d695fea01f33e933
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/include/lldb/Host/ProcessLaunchInfo.h
M lldb/include/lldb/Host/windows/PseudoConsole.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/source/Host/common/ProcessLaunchInfo.cpp
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
M lldb/source/Host/windows/PseudoConsole.cpp
M lldb/source/Target/Target.cpp
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
Log Message:
-----------
[lldb-dap][windows] don't use the ConPTY in internalConsole mode (#186472)
In `internalConsole` mode (especially in VSCode), lldb-dap should not
use the ConPTY to read the process' output. This is because the
internalConsole is not a real terminal, there is no reason to use
terminal emulation, which will add arbitrary line returns to the output.
Instead, this patch introduces the `eLaunchFlagUsePipes` flag in
ProcessLaunchInfo which tells ProcessLaunchWindows to use regular pipes
instead of a ConPTY to get the stdin and stdout of the debuggee.
The result is that output which is supposed to be on a single line is
properly rendered.
---
The following example is when debugging a program through lldb-dap on
Windows. The program prints the numbers 0 through 999 on a single line.
# Before
<img width="2214" height="672" alt="Screenshot 2026-03-13 at 17 07 35"
src="https://github.com/user-attachments/assets/26292d11-2288-46ee-a6d2-0b66bfa41288"
/>
The line is split if it's longer than 80 characters (default terminal
size).
# After
<img width="2215" height="689" alt="Screenshot 2026-03-13 at 17 12 39"
src="https://github.com/user-attachments/assets/c9cad9af-b1ce-4c7b-91d5-f684e48e64ca"
/>
The line is correctly printed as a single line.
rdar://172491166
Commit: cd3da41c01ea00402416aeae5f65d3d2cfd206aa
https://github.com/llvm/llvm-project/commit/cd3da41c01ea00402416aeae5f65d3d2cfd206aa
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A clang-tools-extra/test/clang-doc/Inputs/enum.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
R clang-tools-extra/test/clang-doc/json/enum.cpp
Log Message:
-----------
[clang-doc] Integrate enum LIT tests (#187818)
Combine the two separate test files and have them feed from a common
source. This will be the way that tests are handled to prevent testing
divergence in the future.
Commit: ec6574e90e7c75f5e56d868bde85aaeffbb08266
https://github.com/llvm/llvm-project/commit/ec6574e90e7c75f5e56d868bde85aaeffbb08266
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.udot2.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for udot2/sdot2 (#189103)
Commit: fedb525151561a0c96f74cd5d17677c2f546b5d6
https://github.com/llvm/llvm-project/commit/fedb525151561a0c96f74cd5d17677c2f546b5d6
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
Log Message:
-----------
clang: Remove unnecessary triple normalize in offloading job (#189435)
These should already have been normalized (and the device side
comes from code, which should have been trivially normalized to
start).
Commit: 9331b5bb7731d6e3b8c041068848150958776f93
https://github.com/llvm/llvm-project/commit/9331b5bb7731d6e3b8c041068848150958776f93
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[DAG] Fix -Wunused-variable
A recently introduced local is only used in an assertion which means we
get -Wunused-variable in release+noasserts builds. Mark it
[[maybe_unused]] rather than inlinine the definition given there are
multiple uses within the assert.
Commit: 44925b6cebf4f9d935a19713a2e5492f2e9d0161
https://github.com/llvm/llvm-project/commit/44925b6cebf4f9d935a19713a2e5492f2e9d0161
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.h
Log Message:
-----------
[NFC][LLVM] Drop unused field from `IITDescriptor` (#189094)
Drop unused `Float_Width` field from `IITDescriptor`.
Commit: e2055bce5c8e35a37f587f6d671d6a1cf95c7894
https://github.com/llvm/llvm-project/commit/e2055bce5c8e35a37f587f6d671d6a1cf95c7894
Author: Alireza Torabian <alireza.torabian at huawei.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/PR188098.ll
Log Message:
-----------
[DA] Adding a test case for PR #188098 (#189428)
Without the changes in the patch #188098, this testcase crashes.
Commit: e53f82716b855ea436e6a9160d80417531b46c25
https://github.com/llvm/llvm-project/commit/e53f82716b855ea436e6a9160d80417531b46c25
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/lib/Semantics/check-directive-structure.h
M flang/test/Semantics/OpenACC/acc-branch.f90
Log Message:
-----------
[flang][OpenACC] Add semantic check for GOTO branching out of compute constructs (#189385)
Per OpenACC spec 2.5.4, branching out of `parallel`/`serial`/`kernels`
constructs is not allowed. Add a GOTO check to `NoBranchingEnforce` that
collects labels within the construct block and flags GOTOs targeting
labels outside. In-region GOTOs are allowed.
The check applies only to compute constructs (`parallel`, `serial`,
`kernels`), not to data constructs where GOTO out is valid.
Commit: 38a46a12c45b21b8ebf9e8642d9484fe40703967
https://github.com/llvm/llvm-project/commit/38a46a12c45b21b8ebf9e8642d9484fe40703967
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M offload/test/api/omp_host_call.c
M offload/test/env/base_ptr_ref_count.c
M offload/test/libc/malloc_parallel.c
M offload/test/mapping/device_ptr_update.c
M offload/test/mapping/map_ordering_ptee_tgt_alloc_mapper_alloc_from_to.c
M offload/test/mapping/map_ordering_tgt_alloc_from_to.c
M offload/test/mapping/map_ordering_tgt_exit_data_always_always.c
M offload/test/mapping/map_ordering_tgt_exit_data_delete_from_assumedsize.c
M offload/test/mapping/map_ordering_tgt_exit_data_from_delete_assumedsize.c
M offload/test/mapping/map_ordering_tgt_exit_data_from_mapper_overlap.c
M offload/test/mapping/reduction_implicit_map.cpp
M offload/test/mapping/target_derefence_array_pointrs.cpp
M offload/test/mapping/target_has_device_addr.c
M offload/test/offloading/bug49779.cpp
M offload/test/offloading/bug64959.c
M offload/test/offloading/bug64959_compile_only.c
M offload/test/offloading/force-usm.cpp
M offload/test/offloading/malloc.c
M offload/test/offloading/multiple_reductions_simple.c
M offload/test/offloading/parallel_target_teams_reduction.cpp
M offload/test/offloading/parallel_target_teams_reduction_max.cpp
M offload/test/offloading/parallel_target_teams_reduction_min.cpp
M offload/test/offloading/std_complex_arithmetic.cpp
M offload/test/offloading/strided_offset_multidim_update.c
M offload/test/offloading/struct_mapping_with_pointers.cpp
M offload/test/offloading/target_critical_region.cpp
M offload/test/offloading/test_libc.cpp
M offload/test/sanitizer/kernel_crash_single.c
M offload/test/sanitizer/ptr_outside_alloc_1.c
M offload/test/sanitizer/ptr_outside_alloc_2.c
M offload/test/sanitizer/use_after_free_1.c
M offload/test/sanitizer/use_after_free_2.c
M offload/test/unified_shared_memory/api.c
M offload/test/unified_shared_memory/close_enter_exit.c
M offload/test/unified_shared_memory/close_modifier.c
M offload/test/unified_shared_memory/shared_update.c
Log Message:
-----------
[offload][lit] Disable tests failing on Intel GPU (#189422)
Fix some tests causing hangs, one fail, and a few XPASSing. We are
seeing new passes/fails because of the named barrier changes being
merged.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 34f5b80731e76356f4acbabbe4eb2d4b5c424244
https://github.com/llvm/llvm-project/commit/34f5b80731e76356f4acbabbe4eb2d4b5c424244
Author: Zhijie Wang <yesterda9 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/test/Sema/Inputs/lifetime-analysis.h
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Track origins for lifetimebound calls returning record types (#187917)
- Move `hasOrigins` from free function to `OriginManager` method
- Add pre-scan (`collectLifetimeboundOriginTypes`) to register return
types of `[[clang::lifetimebound]]` calls before fact generation
- Generalize copy/move constructor origin propagation from lambda-only
to all types with `isDefaulted()` and `hasOrigins()` guard
- `isDefaulted()` is a heuristic: it avoids false positives from
user-defined copies with opaque semantics, but can still false-positive
when a defaulted outer copy invokes a user-defined inner copy that
breaks the propagate chain. See
`nested_defaulted_outer_with_user_defined_inner`
- Guard `operator=` origin propagation: pointer-like types always
propagate; other tracked types only when defaulted
- Defer `ThisOrigins` construction until after the pre-scan to avoid
origin list depth mismatch
- Fix `IsArgLifetimeBound` to exclude constructors from the
instance-method branch (latent bug exposed by this change)
Limitations (documented with FIXME tests):
- User-defined copy/move that shallow-copies: false negative
- Defaulted outer copy invoking user-defined inner copy: false positive
- Non-pointer/ref/gsl::Pointer parameter types with
`[[clang::lifetimebound]]`: not registered
Fixes #163600
Commit: dd59a99cbf7cc1674689ca89504bf808727e8643
https://github.com/llvm/llvm-project/commit/dd59a99cbf7cc1674689ca89504bf808727e8643
Author: John Harrison <harjohn at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/test_result.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
M lldb/test/API/tools/lldb-dap/io/TestDAP_io.py
M lldb/test/API/tools/lldb-dap/server/TestDAP_server.py
Log Message:
-----------
[lldb] In python tests, call dumpSessionInfo(). (#188859)
Updates the lldb python test suite to ensure we call dumpSessionInfo()
in the test result's stopTest() method. This will ensure that we get the
session info dumped for all tests, even those that don't have an
explicit call to dumpSessionInfo() in the test case.
Additionally, I updated the lldb-dap test case to mark the '-dap.log' as
a log file, which will be recorded in the test output on failure.
Here is an example test run with a failure:
```
PASS: LLDB (build/bin/clang-arm64) :: test_step (TestDAP_step.TestDAP_step)
FAIL: LLDB (build/bin/clang-arm64) :: test_step_over_inlined_function (TestDAP_step.TestDAP_step)
Log Files:
- build/lldb-test-build.noindex/tools/lldb-dap/step/TestDAP_step/Failure.log
- build/lldb-test-build.noindex/tools/lldb-dap/step/TestDAP_step/Failure-dap.log
======================================================================
FAIL: test_step_over_inlined_function (TestDAP_step.TestDAP_step)
Test stepping over when the program counter is in another file.
----------------------------------------------------------------------
Traceback (most recent call last):
File "llvm-project/lldb/test/API/tools/lldb-dap/step/TestDAP_step.py", line 113, in test_step_over_inlined_function
self.assertFalse(
AssertionError: True is not false : expect path ending with 'main.cpp'.
Config=arm64-build/bin/clang
----------------------------------------------------------------------
Ran 2 tests in 4.849s
```
Commit: 8bd83048084c27615e9536227fbb2545472915e7
https://github.com/llvm/llvm-project/commit/8bd83048084c27615e9536227fbb2545472915e7
Author: Kerem Şahin <keremsahin401 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Interpreter/Interpreter.cpp
M clang/test/Interpreter/pretty-print.c
Log Message:
-----------
[clang-repl] Fix C89 incompatible keywords (#189432)
Restrict and inline keywords are removed for C89 interpreter since these
keywords caused fail at runtime preamble.
Fixes #189088
Commit: ebc7b2f04e3e658e27ab33f03a42d196d10e3b91
https://github.com/llvm/llvm-project/commit/ebc7b2f04e3e658e27ab33f03a42d196d10e3b91
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/MCA/Support.cpp
Log Message:
-----------
[MCA] Use LLVM_DEBUG instead of direct NDEBUG check (NFC) (#189389)
Use the conventional multiline `LLVM_DEBUG` macro for a
debug-printing-only code block, instead of unwrapping a direct `NDEBUG`
check.
Commit: 7ccd92e5e6e5c622b2b571d396fff9016241a8f1
https://github.com/llvm/llvm-project/commit/7ccd92e5e6e5c622b2b571d396fff9016241a8f1
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[mlir][python] Disable pytype not-yet-supported error on Buffer import (#189440)
For pyhon versions <3.12, pytype complains that:
```
error: in <module>: collections.abc.Buffer not supported yet [not-supported-yet]
from collections.abc import Buffer as _Buffer
```
Since it seems like this code intends to support <3.12, disabling the
type error on this line.
Commit: bdf28a6d48112681afd24efe51a43e9807ff4fbb
https://github.com/llvm/llvm-project/commit/bdf28a6d48112681afd24efe51a43e9807ff4fbb
Author: Roland McGrath <mcgrathr at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M compiler-rt/lib/fuzzer/CMakeLists.txt
Log Message:
-----------
[fuzzer] Use LIBCXX_ABI_UNSTABLE for hermetic libc++ (#189096)
This build of libc++ never interacts with any other, so
it can always use the latest and best ABI.
Commit: db80420930c3839ede51af304fe44b559b2286a0
https://github.com/llvm/llvm-project/commit/db80420930c3839ede51af304fe44b559b2286a0
Author: RolandF77 <froese at ca.ibm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
Log Message:
-----------
[PowerPC] Respect chain operand for llvm.ppc.disassemble.dmr lowering (#188334)
Fix ignoring the input chain when turning llvm.ppc.disassemble.dmr into
a store.
Commit: 03cc2a3173cd8eb70e6a6567dfbbb63c709368e9
https://github.com/llvm/llvm-project/commit/03cc2a3173cd8eb70e6a6567dfbbb63c709368e9
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M .mailmap
Log Message:
-----------
[mailmap] Add mailmap entry for myself (#189447)
Commit: 0b500d54467821813027e4a503b4581cca8bb6a7
https://github.com/llvm/llvm-project/commit/0b500d54467821813027e4a503b4581cca8bb6a7
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Support/KnownFPClass.cpp
Log Message:
-----------
[Support] Move `KnownFPClass` inference from `KnownBits` to Support (#189414)
Move logic for inferring `KnownFPClass` from known bits into the Support
library so the logic may be used e.g., for analogous value tracking
functions in SelectionDAG.
Commit: 5c9440f8ae07af862010d39ac440f22b1906191d
https://github.com/llvm/llvm-project/commit/5c9440f8ae07af862010d39ac440f22b1906191d
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M flang/lib/Semantics/check-omp-loop.cpp
Log Message:
-----------
[flang][OpenMP] Remove misplaced comment, NFC (#189449)
Remove the seemingly random comment listing clauses allowed on a DO
construct. The nearby code has nothing to do with clauses.
Commit: 14ab059dec8c6bd89c4e2ab6fbe890ea585fb20c
https://github.com/llvm/llvm-project/commit/14ab059dec8c6bd89c4e2ab6fbe890ea585fb20c
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/test/Analysis/CostModel/AMDGPU/log.ll
M llvm/test/Analysis/CostModel/AMDGPU/log10.ll
M llvm/test/Analysis/CostModel/AMDGPU/log2.ll
M llvm/test/Analysis/CostModel/AMDGPU/sin.ll
M llvm/test/Analysis/CostModel/AMDGPU/sqrt.ll
Log Message:
-----------
[AMDGPU][TTI] Update cost model for transcendental instructions to be more precise (#189430)
Introduce `getTransInstrCost` instead of `getQuarterRateInstrCost` for transcendental ops
Commit: 04785adec34ddf9a6ec47f10da5b2b7fe8c9f9c8
https://github.com/llvm/llvm-project/commit/04785adec34ddf9a6ec47f10da5b2b7fe8c9f9c8
Author: Narayan <nsreekumar6 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/include/llvm/ABI/FunctionInfo.h
M llvm/lib/ABI/CMakeLists.txt
A llvm/lib/ABI/FunctionInfo.cpp
Log Message:
-----------
[LLVMABI] Create ABI Utils (#185105)
This PR introduces `ABIFunctionInfo` and surrounding utility helpers,
and is part of the set of breakout PRs to upstream the LLVM ABI lowering
library prototyped in https://github.com/llvm/llvm-project/pull/140112.
`ABIFunctionInfo` is directly analogous to `CGFunctionInfo` from Clang's
existing CodeGen pipeline, and represents an ABI lowered view of the
function signature, decoupled from both the Clang AST and LLVM IR.
`ABIArgInfo` encodes lowering decisions and currently supports
Direct,Extend,Indirect and Ignore which are required for our initial
goal of implementing x86-64 SysV and BPF, but this will change as the
library grows to represent more targets that need them.
This PR is a direct precursor to the implementation of `ABIInfo` in the
library as demonstrated in the PR linked above..
Commit: ba228181c25c45cdfdca33fac4332e5c15efcd0e
https://github.com/llvm/llvm-project/commit/ba228181c25c45cdfdca33fac4332e5c15efcd0e
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lld/ELF/Arch/Hexagon.cpp
M lld/test/ELF/hexagon-thunk-range-plt.s
M lld/test/ELF/hexagon-thunks-packets.s
M lld/test/ELF/hexagon-thunks.s
Log Message:
-----------
[lld][Hexagon] Fix out-of-range PLT branch thunks (#186545)
Linking large Hexagon binaries (e.g. ASan runtime with >8 MiB of text)
fails with R_HEX_B22_PCREL / R_HEX_PLT_B22_PCREL relocation overflow on
calls to PLT entries, even though the thunk infrastructure exists and
needsThunks is set.
needsThunk() always used s.getVA() to compute the branch destination,
even for PLT calls where the actual destination is the PLT entry. This
meant the distance check used the wrong address and failed to create
thunks when the PLT entry was out of B22_PCREL range.
Fix by using s.getPltVA() when expr == R_PLT_PC. Also override
getThunkSectionSpacing() so ThunkSections are pre-created at appropriate
intervals for large binaries.
Commit: 651b61fac502ecd875b7f36d684d50ba0429f3cc
https://github.com/llvm/llvm-project/commit/651b61fac502ecd875b7f36d684d50ba0429f3cc
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A llvm/test/CodeGen/Hexagon/constprop-fp-cmp.ll
A llvm/test/CodeGen/Hexagon/gen-pred-andn-orn.ll
M llvm/test/CodeGen/Hexagon/memcpy-likely-aligned.ll
A llvm/test/CodeGen/Hexagon/sched-timing-classes.ll
Log Message:
-----------
[Hexagon] Add coverage tests for CodeGen analysis and optimization passes (#183952)
Add tests targeting Hexagon CodeGen analysis and optimization passes:
- gen-pred-andn-orn.ll: HexagonGenPredicate pass exercising andn/orn
logical operations, cmp-zero conversion paths, deeper predicate chains,
and byte comparison classification.
- memcpy-likely-aligned.ll: HexagonSelectionDAGInfo exercising the
aligned memcpy specialization path.
- constprop-fp-cmp.ll: HexagonConstPropagation exercising floating-
point comparison constant folding paths.
- sched-timing-classes.ll: Scheduling timing class coverage for various
Hexagon instruction classes.
Commit: a6ffdb595f4b70c4be7951acd2a9a228dbc06351
https://github.com/llvm/llvm-project/commit/a6ffdb595f4b70c4be7951acd2a9a228dbc06351
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Headers/gpuintrin.h
M clang/test/Headers/gpuintrin.c
M libc/src/__support/GPU/utils.h
Log Message:
-----------
[Clang] Improve scan in gpuintrin.h (#189381)
Summary:
Right now the scan checks to avoid the unspecified behavior in
`clzg(0)`. This is used as the source to the shuffle instruction, but
the argument is discarded at zero anyway. So, we simply pass unspecified
behavior to shuffle and then discard it. This should be fine. The scan
routines are expected to be optimal.
Also renames `sum` to `add`.
Commit: 7364203924cf9d464df4f6b9455ac6cd42c856ae
https://github.com/llvm/llvm-project/commit/7364203924cf9d464df4f6b9455ac6cd42c856ae
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
A llvm/test/CodeGen/AMDGPU/coexec-scheduler.ll
Log Message:
-----------
Reapply "[AMDGPU] Add HWUI pressure heuristics to coexec strategy (#184929)" (#189121)
Reland https://github.com/llvm/llvm-project/pull/184929 after fixing
some issues in the NDEBUG builds.
3a640ee is unchanged from the previously approved PR, the unreviewed
portion of this PR is 9cabd8d
Commit: 0d2c59abd5abc7de2aeecacfe9b1e7666d4d69f7
https://github.com/llvm/llvm-project/commit/0d2c59abd5abc7de2aeecacfe9b1e7666d4d69f7
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/Headers/gpuintrin.h
M clang/lib/Headers/nvptxintrin.h
M clang/test/Headers/Inputs/include/stdint.h
M clang/test/Headers/gpuintrin_lang.c
Log Message:
-----------
[Clang] Fix constant bit widths in gpuintrin.h (#189387)
Summary:
The `ull` suffix can mean 128 bits on some architectures. Replace this
with the `stdint.h` constructor to be certain.
Commit: 03869c74b626599b7d14d9454092261e85a46187
https://github.com/llvm/llvm-project/commit/03869c74b626599b7d14d9454092261e85a46187
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
Log Message:
-----------
[MLIR][SparseTensor] Add missing #undef REMUI and DIVUI (#188686)
LoopEmitter.cpp and SparseTensorIterator.cpp define REMUI and DIVUI
macros but the existing #undef block at the end of each file omits them.
This can leak the macros into subsequent translation units in unity
builds. See https://discourse.llvm.org/t/rfc-enabling-unity-build/90306
for more info.
"clauded" not coded
Commit: f10dccd458fac0685f5b870128bcb2da5ba82169
https://github.com/llvm/llvm-project/commit/f10dccd458fac0685f5b870128bcb2da5ba82169
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/IR/Detail/DimLvlMapParser.cpp
M mlir/lib/Dialect/SparseTensor/IR/Detail/LvlTypeParser.cpp
Log Message:
-----------
[MLIR][SparseTensor] Add #undef FAILURE_IF_FAILED and ERROR_IF (#188685)
Both DimLvlMapParser.cpp and LvlTypeParser.cpp define FAILURE_IF_FAILED
and ERROR_IF macros that are never undefined, which can leak into
subsequent translation units in unity builds. Add #undef at the end of
each file. See
https://discourse.llvm.org/t/rfc-enabling-unity-build/90306 for more
info.
"clauded" not coded
Commit: 15a7c45163f2fd34a91f6ad710d09ff7ee182b07
https://github.com/llvm/llvm-project/commit/15a7c45163f2fd34a91f6ad710d09ff7ee182b07
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/headers/math/index.rst
M libc/shared/math.h
A libc/shared/math/asinbf16.h
M libc/src/__support/FPUtil/multiply_add.h
M libc/src/__support/FPUtil/sqrt.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/acoshf_utils.h
A libc/src/__support/math/asinbf16.h
M libc/src/__support/math/inv_trigf_utils.h
M libc/src/math/CMakeLists.txt
A libc/src/math/asinbf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/asinbf16.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/asinbf16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/asinbf16_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math][c23] Add asinbf16 math function (#184170)
Co-authored-by: bassiounix <muhammad.m.bassiouni at gmail.com>
Commit: 23f95fa9e35aca321e1ab0d73ec5f129d5376571
https://github.com/llvm/llvm-project/commit/23f95fa9e35aca321e1ab0d73ec5f129d5376571
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/ABI/FunctionInfo.h
Log Message:
-----------
[LLVM] Fix invalid shadowed type name
Commit: 6021270aa33771aea14fc09d2d943964ed3c3278
https://github.com/llvm/llvm-project/commit/6021270aa33771aea14fc09d2d943964ed3c3278
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 04785ad (#189456)
This fixes 04785adec34ddf9a6ec47f10da5b2b7fe8c9f9c8.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 804ece6a4ff0a971b142f83ebcd45a9c9625aae5
https://github.com/llvm/llvm-project/commit/804ece6a4ff0a971b142f83ebcd45a9c9625aae5
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-addrec-wrap.ll
Log Message:
-----------
[DA] Require `nsw` for AddRecs in the WeakCrossing SIV test (#185041)
Before the start of the algorithm in weak crossing SIV test, we need to
ensure both addrecs are `nsw`
Commit: 26e0d15eaa811721d5e80d656777d00947cb503a
https://github.com/llvm/llvm-project/commit/26e0d15eaa811721d5e80d656777d00947cb503a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/unprofitable-alternate-subtree.ll
Log Message:
-----------
[SLP] Prefer to trim equal-cost alternate-shuffle subtrees
If the trimming candidate subtree is rooted at an alternate-shuffle node
with binary ops, and this subtree has the same cost as the buildvector
node cost, better to stick with the buildvector node to avoid runtime
perf regressions from shuffle/extra operations overhead that the cost model may
underestimate. Skip trimming if the subtree contains ExtractElement
nodes, since those operate on already-materialized vectors, which may
reduced vector-to-scalar code movement and have better perf.
Reviewers: hiraditya, bababuck, fhahn, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/188272
Commit: 06725d7ef5c119241f11fa723f2d779a9e884165
https://github.com/llvm/llvm-project/commit/06725d7ef5c119241f11fa723f2d779a9e884165
Author: Alexey Merzlyakov <60094858+AlexeyMerzlyakov at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ctlz.mir
M llvm/test/CodeGen/AArch64/cls.ll
M llvm/test/CodeGen/AArch64/pr61549.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ctlz.mir
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-bitcounts.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ctls-rv32.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ctls-rv64.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ctlz-rv32.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ctlz-rv64.mir
M llvm/test/CodeGen/X86/GlobalISel/legalize-leading-zeros.mir
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Log Message:
-----------
[GISel] Keep non-negative info in SUB(CTLZ) (#189314)
Implement non-negative value tracking for SUB-CTLZ chains in GlobalISel,
matching the behavior previously added to SelectionDAG.
Additionally, refactor the SelectionDAG implementation from the previous
patch to improve performance and code density.
Related to https://github.com/llvm/llvm-project/issues/136516 and
https://github.com/llvm/llvm-project/pull/186338#discussion_r2980420174
Commit: b6e4d27c485af711214b3dafc96fa287e2fe33f6
https://github.com/llvm/llvm-project/commit/b6e4d27c485af711214b3dafc96fa287e2fe33f6
Author: Berke Ates <berke at ates.ch>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
A mlir/include/mlir/Interfaces/Utils/MemorySlotUtils.h
M mlir/lib/Dialect/SCF/IR/CMakeLists.txt
M mlir/lib/Dialect/SCF/IR/MemorySlot.cpp
M mlir/lib/Interfaces/Utils/CMakeLists.txt
A mlir/lib/Interfaces/Utils/MemorySlotUtils.cpp
M mlir/unittests/Interfaces/CMakeLists.txt
A mlir/unittests/Interfaces/MemorySlotUtilsTest.cpp
Log Message:
-----------
[MLIR][Mem2Reg] Extract shared utilities for PromotableRegionOpInterface (#188514)
The `PromotableRegionOpInterface` implementations use two helpers that
are likely useful for other dialects implementing this interface as
well:
- `updateTerminator`: Appends the reaching definition as an operand to a
block's terminator, falling back to a default when the block has no
entry (e.g. dead code).
- `replaceWithNewResults`: Clones an operation with additional result
types while preserving its regions, then replaces the original.
This PR extracts them into a common utility header so that downstream
dialects can reuse them directly.
I'm open to discussion about the location of these utilities.
Commit: f7329189c01d86434c08fd5cd791c7d1e791e6dc
https://github.com/llvm/llvm-project/commit/f7329189c01d86434c08fd5cd791c7d1e791e6dc
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/docs/ClangIRCleanupAndEHDesign.md
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
A clang/test/CIR/CodeGen/cleanup-throwing-dtor.cpp
M clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-nyi.cir
A clang/test/CIR/Transforms/flatten-throwing-in-cleanup.cir
Log Message:
-----------
[CIR] Handle throwing calls inside EH cleanup (#188341)
This implements handling for throwing calls inside an EH cleanup
handler. When such a call occurs, the CFG flattening pass replaces it
with a cir.try_call op that unwinds to a terminate block.
A new CIR operation, cir.eh.terminate, is added to facilitate this
handling, and the design document is updated to describe the new
behavior.
Assisted-by: Cursor / claude-4.6-opus-high
Commit: a0ffdf28500e21905cab02d1df28c9cef3581155
https://github.com/llvm/llvm-project/commit/a0ffdf28500e21905cab02d1df28c9cef3581155
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/ctor-alias-prev-decl.cpp
A clang/test/CIR/CodeGen/dtor-alias-prev-decl.cpp
Log Message:
-----------
[CIR] Allow replacement of a structor declaration with an alias (#188320)
We had an errorNYI diagnostic to trigger when we generated an alias for
a ctor or dtor that had an existing declaration. Because functions are
used via flat symbol references, all that is needed is to erase the old
declaration. This change does that.
Commit: 9d3079a7a975889f20c1ba2aa7301ec005547bfa
https://github.com/llvm/llvm-project/commit/9d3079a7a975889f20c1ba2aa7301ec005547bfa
Author: Bill Wendling <morbo at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/InlineAsmPrepare.cpp
Log Message:
-----------
[NFC][CodeGen] Prepare for expansion of InlineAsmPrepare (#189469)
Move some functions around so that the CallBrInst processing is
contained. The 'static' functions don't need to be declared at the top;
just place them before the calls. Fix the naming to use lower-case for
the first letter of function names.
Commit: 19caff444d2e6fc35942fb4cf6b8213d17557fbd
https://github.com/llvm/llvm-project/commit/19caff444d2e6fc35942fb4cf6b8213d17557fbd
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/unittests/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes b6e4d27 (#189473)
This fixes b6e4d27c485af711214b3dafc96fa287e2fe33f6.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: e50f08b5488346d86f741f20d8d2dd2a7c0f9ec8
https://github.com/llvm/llvm-project/commit/e50f08b5488346d86f741f20d8d2dd2a7c0f9ec8
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR] [XeGPU] Add distribution patterns for vector transpose, bitcast & mask ops in sg to wi pass (#187392)
This PR adds patterns for following vector ops in the new sg-to-wi pass
1. Transpose
2. BitCast
3. CreateMask
4. ConstantMask
Commit: 5f99854d0151a43d0f20452f58211c9fdde8f154
https://github.com/llvm/llvm-project/commit/5f99854d0151a43d0f20452f58211c9fdde8f154
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-wmma-w32.cl
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-wmma-w32-param.cl
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
M llvm/test/Bitcode/amdgpu-wmma-drop-ab-mods-upgrade.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imm.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imod.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[AMDGPU] Drop A and B neg modifier from amdgcn_wmma_bf16_16x16x32_bf16 (#189468)
Fixes: LCOMPILER-1673
Commit: 76f5c5d36c06559cf1767f6b2aa021452f2ac0dd
https://github.com/llvm/llvm-project/commit/76f5c5d36c06559cf1767f6b2aa021452f2ac0dd
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.rst
A clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-allow-logical-operators.c
Log Message:
-----------
[clang-tidy] Add AllowLogicalOperatorConversion option to implicit-bool-conversion (#189149)
Fixes https://github.com/llvm/llvm-project/issues/176889.
Commit: ae835dea747da6824b386b4861c330d59af7af6d
https://github.com/llvm/llvm-project/commit/ae835dea747da6824b386b4861c330d59af7af6d
Author: Eric Feng <55723758+efric at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
M mlir/test/Dialect/AMDGPU/invalid.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] implement amdgpu.global_load_async_to_lds for gfx1250 (#189279)
This patch introduces an amdgpu wrapper for
`rocdl.global.load.async.to.lds.bN` intrinsics, which were introduced in
gfx1250.
Assisted-by: Claude
---------
Signed-off-by: Eric Feng <Eric.Feng at amd.com>
Commit: 54b723097b39b536eb7d1d6947b65d53a096ed47
https://github.com/llvm/llvm-project/commit/54b723097b39b536eb7d1d6947b65d53a096ed47
Author: Keshav Vinayak Jha <31160700+keshavvinayak01 at users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.td
M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
M mlir/lib/Dialect/Affine/Transforms/AffineExpandIndexOps.cpp
M mlir/lib/Dialect/Affine/Transforms/AffineExpandIndexOpsAsAffine.cpp
M mlir/test/Dialect/Affine/affine-expand-index-ops-as-affine.mlir
M mlir/test/Dialect/Affine/affine-expand-index-ops.mlir
M mlir/test/Dialect/Affine/canonicalize.mlir
M mlir/test/Dialect/Affine/ops.mlir
Log Message:
-----------
[MLIR][Affine] Add vector support to affine.linearize_index and affine.delinearize_index (#188369)
Allow `affine.delinearize_index` and `affine.linearize_index` to operate
on `vector<...x index>` types in addition to scalar indices.
---------
Signed-off-by: Keshav Vinayak Jha <keshavvinayakjha at gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 7a3b7f142d8ffd7b3e2a9cf0a065e3ff7bf76241
https://github.com/llvm/llvm-project/commit/7a3b7f142d8ffd7b3e2a9cf0a065e3ff7bf76241
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
A clang/test/CIR/CodeGen/new-delete-deactivation.cpp
Log Message:
-----------
[CIR] Implement handling of cleanups with active flag (#187389)
This implements handling of cleanup scopes in cases where a flag is
needed to indicate whether or not the cleanup is active. This happens in
cases where a cleanup is no longer required, but it isn't at the top of
the cleanup stack so it can't be popped. A temporary variable is used to
set the cleanup to an inactive state when it is no longer needed.
Assisted-by: Cursor / claude-4.6-opus-high (implementation)
Assisted-by: Cursor / gpt-5.3-codex (tests)
Commit: 8b21fe60b43fe358321bca904ae307406725c002
https://github.com/llvm/llvm-project/commit/8b21fe60b43fe358321bca904ae307406725c002
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/LTO.cpp
M lld/COFF/LTO.h
M lld/COFF/SymbolTable.cpp
M lld/ELF/Driver.cpp
M lld/ELF/LTO.cpp
M lld/ELF/LTO.h
A lld/test/COFF/lto-libcall-archive-bitcode.test
A lld/test/ELF/lto/libcall-archive-bitcode.test
A lld/test/wasm/lto/libcall-archive-bitcode.ll
M lld/wasm/LTO.cpp
M lld/wasm/LTO.h
M lld/wasm/SymbolTable.cpp
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/LTO/LTOBackend.h
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
A llvm/test/LTO/Resolution/X86/libcall-external.ll
A llvm/test/LTO/Resolution/X86/libcall-in-thin-link.ll
A llvm/test/LTO/Resolution/X86/libcall-in-tu.ll
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
[LTO][LLD] Prevent invalid LTO libfunc transforms (#164916)
In LTO, part of LLVM's middle-end runs after linking has finished. LTO's
semantics depend on the complete set of extracted bitcode files being
known at this time. If the middle-end inserts new calls to library
functions (libfuncs) that are implemented in bitcode, this could extract
new bitcode object files into the link. These cannot be compiled,
leading to undefined symbol references.
Additionally, the middle-end in LTO may reason that such library
functions have no references, and it may internalize them, then
manipulate their API or even delete them. Afterwards, it may emit a call
to them, again producing undefined symbol references.
This patch resolves the former issue by ensuring that the middle end
emits no new references to symbols defined in bitcode, and it resolves
the latter issue by ensuring that extracted bitcode for libfuncs is
considered external, since new calls may be emitted to them at any time.
The new semantics are not yet established for MachO LLD, which does not
yet appear to have any special handling for libcalls in LTO. It also
does not yet support distributed ThinLTO; doing so would require
additional (de)serialization work.
This is the patch referenced in @ilovepi's and my talk at the last LLVM
devmeeting: "LT-Uh-Oh"
Gemini 3.1 was used in porting to COFF and WASM LLDs.
Commit: d74f098a305b39f96d5455d301ceea512acadc62
https://github.com/llvm/llvm-project/commit/d74f098a305b39f96d5455d301ceea512acadc62
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/clamp.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
Log Message:
-----------
[DAG] isKnownNeverNaN - fallback to computeKnownFPClass check (#189476)
Remove ConstantFPSDNode handling from isKnownNeverNaN and fallback to
using computeKnownFPClass if there are no opcode matches in
isKnownNeverNaN
The test check changes are due to isKnownNeverNaN not handling
UNDEF/POISON but computeKnownFPClass does (POISON in particular now
returns isKnownNeverNaN == true, preventing a ISD::FCANONICALIZE call in
expandFMINNUM_FMAXNUM).
Commit: 74c42432252de25caa51deaa38458d734622a579
https://github.com/llvm/llvm-project/commit/74c42432252de25caa51deaa38458d734622a579
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/dev/undefined_behavior.rst
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/VISIT.h
A libc/hdr/types/posix_tnode.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/__action_closure_fn_t.h
A libc/include/llvm-libc-types/__action_fn_t.h
A libc/include/llvm-libc-types/__free_fn_t.h
A libc/include/llvm-libc-types/posix_tnode.h
M libc/include/search.yaml
M libc/src/__support/weak_avl.h
M libc/src/search/CMakeLists.txt
A libc/src/search/tdelete.cpp
A libc/src/search/tdelete.h
A libc/src/search/tdestroy.cpp
A libc/src/search/tdestroy.h
A libc/src/search/tfind.cpp
A libc/src/search/tfind.h
A libc/src/search/tsearch.cpp
A libc/src/search/tsearch.h
A libc/src/search/twalk.cpp
A libc/src/search/twalk.h
A libc/src/search/twalk_r.cpp
A libc/src/search/twalk_r.h
M libc/test/src/__support/weak_avl_test.cpp
M libc/test/src/search/CMakeLists.txt
A libc/test/src/search/tsearch_test.cpp
Log Message:
-----------
[libc][tsearch] add tsearch functions (#172625)
Commit: 5b00cdf8e18354764c8cdd27a8ad3f858afd76bb
https://github.com/llvm/llvm-project/commit/5b00cdf8e18354764c8cdd27a8ad3f858afd76bb
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.h
M lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp
M lldb/unittests/Platform/PlatformMacOSXTest.cpp
Log Message:
-----------
[lldb][macOS] Recognize new layouts for DeviceSupport directories (#188646)
When debugging a remote Darwin device (iOS, macOS, etc), lldb needs to
find a local copy of all the system libraries (the system's shared
cache) so we don't need to read them over gdb-remote serial protocol at
the start of every debug session.
Xcode etc normally creates these expanded shared caches in
~/Library/Developer/Xcode/<OS> DeviceSupport/<OS VER> (<OS
BUILD>)/Symbols
So when lldb sees a file like /usr/lib/libSystem.B.dylib, it may find a
copy at in
~/L/D/Xcode/iOS DeviceSupport/26.2
(23B87)/Symbols/usr/lib/libSystem.B.dylib
There may be multiple expanded shared caches in these DeviceSupport
directories, so we try to parse the "os version" and "os build" out of
the filepath name, and look in a directory that matches the target
device's OS Version as an optimization, to avoid opening the given file
in other DeviceSupport directories.
There is a new layout where the cpu arch exists as a subdirectory under
the "<OS VER> (<OS BUILD>)" directory. e.g.
~/L/D/Xcode/iOS DeviceSupport/26.2 (23B87)/arm64e/Symbols/...
and it is possible that we could have multiple arch names for a given
build -- for instance, an Apple Watch that can have either arm64e or
arm64_32 shared caches.
The existing code also had a very simplistic way of parsing "<OS VER>
(<OS BUILD>)" from the directory name that hasn't been kept up to date
with how the directory names have changed over the years. We have some
like "Watch4,2 10.0 (21R329)" or "10.0 (21R329) universal" which may not
parse with the older parser.
This PR looks for target arch subdirs under the given directories,
passes the os version/build version string separately because it may not
be the final component in the directory name any more, and updates the
directory parser that finds the version and build numbers.
rdar://171821410
Commit: 18e695890306c6824cc15779e1acb7e5956cbec1
https://github.com/llvm/llvm-project/commit/18e695890306c6824cc15779e1acb7e5956cbec1
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/AMDGPUTypes.def
M clang/include/clang/Basic/Builtins.def
M clang/include/clang/Basic/BuiltinsAMDGPU.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/SemaAMDGPU.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/Sema/JumpDiagnostics.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaOverload.cpp
A clang/test/CodeGen/amdgpu-builtin-is-invocable.c
A clang/test/CodeGen/amdgpu-builtin-processor-is.c
A clang/test/CodeGen/amdgpu-feature-builtins-invalid-use.cpp
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenHIP/spirv-amdgcn-dpp-const-fold.hip
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx10.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
A clang/test/SemaHIP/amdgpu-feature-builtins-cant-jump.hip
A clang/test/SemaHIP/amdgpu-feature-builtins-return-type-deduction.hip
A clang/test/SemaHIP/amdgpu-feature-predicate.hip
A clang/test/SemaHIP/amdgpu-feature-predicates-guard-use.hip
A clang/test/SemaHIP/amdgpu-is-invocable.hip
A clang/test/SemaHIP/amdgpu-processor-is.hip
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.cpp
A llvm/test/CodeGen/SPIRV/SpecConstants/amdgcnspirv-feature-predicate-specconstant.ll
A llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals-predicate-id-string.ll
Log Message:
-----------
[SPIRV][AMDGPU][clang][CodeGen][opt] Add late-resolved feature identifying predicates (#134016)
This change adds two builtins for AMDGPU:
- `__builtin_amdgcn_processor_is`, which is similar in observable
behaviour with `__builtin_cpu_is`, except that it is never "evaluated"
at run time;
- `__builtin_amdgcn_is_invocable`, which is behaviourally similar with
`__has_builtin`, except that it is not a macro (i.e. not evaluated at
preprocessing time).
Neither of these are `constexpr`, even though when compiling for
concrete (i.e. `gfxXXX` / `gfxXXX-generic`) targets they get evaluated
in Clang, so they shouldn't tear the AST too badly / at all for
multi-pass compilation cases like HIP. They can only be used in specific
contexts (as args to control structures).
The motivation for adding these is two-fold:
- as a nice to have, it provides an AST-visible way to incorporate
architecture specific code, rather than having to rely on macros and the
preprocessor, which burn in the choice quite early;
- as a must have, it allows featureful AMDGCN flavoured SPIR-V to be
produced, where target specific capability is guarded and chosen or
discarded when finalising compilation for a concrete target; this is
built atop the Speciali\ation Constant concept which is described in the
SPIR-V specification under section [2.12
Specialization](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_specialization_2)
I've tried to keep the overall footprint of the change small. The
changes to Sema are a bit unpleasant, but there was a strong desire to
have Clang validate these, and to constrain their uses, and this was the
most compact solution I could come up with (suggestions welcome).
---------
Co-authored-by: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Co-authored-by: Voicu <avoicu at amd.com>
Commit: 02402beefec61c5947c9d3bec60626a4afd860a8
https://github.com/llvm/llvm-project/commit/02402beefec61c5947c9d3bec60626a4afd860a8
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][VecUtils] Lane Enumerator (#188355)
This patch introduces an iterator that helps us iterate over lane-value
pairs in a range. For example, given a container `(i32 %v0, <2 x i32>
%v1, i32 %v2)` we get:
```
Lane Value
0 %v0
1 %v1
3 %v2
```
We use this iterator to replace the lane counting logic in
BottomUpVec.cpp.
Commit: c93049ef504f942af0f884ce8a5efc21df21d131
https://github.com/llvm/llvm-project/commit/c93049ef504f942af0f884ce8a5efc21df21d131
Author: Vasileios Porpodas <vasileios.porpodas at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
Revert "[SandboxVec][VecUtils] Lane Enumerator (#188355)"
This reverts commit 02402beefec61c5947c9d3bec60626a4afd860a8.
Commit: 7ec77f8460e15cf680824d7d95dd11d34eb6bd42
https://github.com/llvm/llvm-project/commit/7ec77f8460e15cf680824d7d95dd11d34eb6bd42
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 54b7230 (#189487)
This fixes 54b723097b39b536eb7d1d6947b65d53a096ed47.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 9c37e348df91e6aa46c3e472c591b99f7535a79e
https://github.com/llvm/llvm-project/commit/9c37e348df91e6aa46c3e472c591b99f7535a79e
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
Log Message:
-----------
[AArch64][NFC] Move `isZExtLoad/isSExtLoad` from `AArch64FastISel` to `AArch64InstrInfo` (#189486)
Move the static function `isZExtLoad` and `isSExtLoad` helper functions
from `AArch64FastISel` into `AArch64InstrInfo` to be reused by other
passes.
Commit: 27b9ea5ea090aa1c64baf7b3f619c72e3e15713f
https://github.com/llvm/llvm-project/commit/27b9ea5ea090aa1c64baf7b3f619c72e3e15713f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
Log Message:
-----------
[MLIR][SparseTensor] Fix domination violation in co-iteration for dense iterators (#188959)
In exitWhileLoop, random-accessible (dense) iterators were being located
using whileOp.getResults().back() while the insertion point was still
inside the while loop's after block. This caused a domination violation:
the ADDI created by locate() was inside the after block, but it was
later used (via derefImpl's SUBI) after the while loop exits.
Move the locate() calls for random-accessible iterators to after
builder.setInsertionPointAfter(whileOp), where the while results are
properly in scope.
Fixes 10 failing tests under MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Assisted-by: Claude Code
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: e097875417bc5458e22d594276dd645a137ea91d
https://github.com/llvm/llvm-project/commit/e097875417bc5458e22d594276dd645a137ea91d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseAssembler.cpp
Log Message:
-----------
[MLIR][SparseTensor] Fix fingerprint changes in SparseFuncAssembler (#188958)
SparseFuncAssembler::matchAndRewrite was calling funcOp.setName(),
funcOp.setPrivate(), and funcOp->removeAttr() directly without notifying
the rewriter, causing "operation fingerprint changed" errors under
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Wrap all in-place funcOp mutations with rewriter.modifyOpInPlace.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 5da2546594f8555d5d283e3ee3cda14bc5a80eec
https://github.com/llvm/llvm-project/commit/5da2546594f8555d5d283e3ee3cda14bc5a80eec
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/test/Dialect/SCF/canonicalize.mlir
Log Message:
-----------
[mlir][scf] Fix FoldTensorCastOfOutputIntoForallOp write order bug (#189162)
`FoldTensorCastOfOutputIntoForallOp` incorrectly updated the
destinations of `tensor.parallel_insert_slice` ops in the `in_parallel`
block by zipping `getYieldingOps()` with `getRegionIterArgs()`
positionally. This assumed that the i-th yielding op writes to the i-th
shared output, which is not required by the IR semantics. When slices
are written to shared outputs in non-positional order, the
canonicalization would silently reverse the write targets, producing
incorrect output.
Fix by replacing the positional zip with a per-destination check: for
each yielding op's destination operand, if it is a `tensor.cast` result
whose source is one of the new `scf.forall` region iter args (i.e., a
cast we introduced to bridge the type change), replace the destination
with the cast's source directly. This correctly handles all orderings.
Add a regression test that exercises the multi-result case where
`parallel_insert_slice` ops write to shared outputs in non-sequential
order.
Fixes #172981
Assisted-by: Claude Code
Commit: acbf3f318694a4f3c382caf040cf586e1ff02c5f
https://github.com/llvm/llvm-project/commit/acbf3f318694a4f3c382caf040cf586e1ff02c5f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
M mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
Log Message:
-----------
[MLIR][SCF] Fix scf.index_switch lowering to preserve large case values (#189230)
`IndexSwitchLowering` stored case values as `SmallVector<int32_t>`,
which silently truncated any `int64_t` case value larger than INT32_MAX
(e.g. `4294967296` became `0`). The `cf.switch` flag was also created
via `arith.index_cast index -> i32`, losing the upper 32 bits on 64-bit
platforms.
Fix: store case values as `SmallVector<APInt>` with 64-bit width, cast
the index argument to `i64`, and use the `ArrayRef<APInt>` overload of
`cf::SwitchOp::create` so the resulting switch correctly uses `i64` case
values and flag type.
Fixes #111589
Assisted-by: Claude Code
Commit: 7b52dd6ad9ac16987d1646b651e5b1fd13b7cb41
https://github.com/llvm/llvm-project/commit/7b52dd6ad9ac16987d1646b651e5b1fd13b7cb41
Author: Michael Jones <michaelrj at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M libc/src/__support/wchar/CMakeLists.txt
M libc/src/__support/wchar/character_converter.h
M libc/src/__support/wchar/mbrtowc.cpp
M libc/src/__support/wchar/mbrtowc.h
M libc/src/__support/wchar/mbsnrtowcs.h
M libc/src/__support/wchar/string_converter.h
M libc/src/__support/wchar/wcrtomb.h
M libc/src/__support/wchar/wcsnrtombs.h
Log Message:
-----------
[libc][NFC] Add LIBC_INLINE and cleanup wchar internals (#188856)
Some of the functions were missing LIBC_INLINE and some of the variable
names were less descriptive than I liked. This PR fixes both as well as
cleaning up dependencies.
Commit: 89d5d502e88c9fa1de56e066e89b942ee9be20de
https://github.com/llvm/llvm-project/commit/89d5d502e88c9fa1de56e066e89b942ee9be20de
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M llvm/include/llvm/IR/Intrinsics.h
M llvm/lib/IR/Intrinsics.cpp
Log Message:
-----------
[NFC][LLVM] Rename `IITDescriptor` fields to confirm to LLVM CS (#189448)
Rename fields of `IITDescriptor` to conform to LLVM coding standards
naming conventions.
Commit: 8ca1cb7a96217002bd649a95142d981f570faffd
https://github.com/llvm/llvm-project/commit/8ca1cb7a96217002bd649a95142d981f570faffd
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
Log Message:
-----------
[AArch64][llvm] Separate TLBI-only feature gating from TLBIP aliases (part 2) (#189503)
(This is the change message for 306e86be5, which GitHub unhelpfully discarded
when I enabled "auto-merge" when all tests had passed. It merged my change
and didn't merge the detailed commit message which I had carefully written(!)
So this is an NFC change, for those in the future looking for the lost message,
which explains the changes in 306e86be5)
-------------
Correct the `TLBI` system operand definitions so the emitted aliases are
generated from a single data table per feature group. The TLBI data is now
written once as anonymous `TLBI<...>` entries inside a defvar list, and we
iterate over it with a foreach to define those entries.
Hopefully this is clearer and more future-proof, since it is a complex set of
interactions between `tlbi`/`tlbip` with `*nXS` variants, and differing gating.
The gating was incorrect before. The gating is now:
- `FeatureTLB_RMI`, `FeatureRME`, and `FeatureTLBIW` gate only TLBI aliases
- non-TLBIW `TLBI` ...nXS aliases are `FeatureXS-only`
- `TLBIW` ...nXS aliases are `FeatureTLBIW`-only
- all `TLBIP` aliases, including ...nXS, are `FeatureD128`-only
Update testcases accordingly (`llvm/test/MC/AArch64/armv8.7a-xs.s` had
inconsistent use of hyphen and underscore for error checking)
Commit: b85492b3d38724377186a37925dd3abf3258efcc
https://github.com/llvm/llvm-project/commit/b85492b3d38724377186a37925dd3abf3258efcc
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot8.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for sudot4/sudot8 (#189104)
Commit: 12319b373a5f4b36c09165ed7f8e967bbb14b265
https://github.com/llvm/llvm-project/commit/12319b373a5f4b36c09165ed7f8e967bbb14b265
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGenCXX/destructor-dead-on-return.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
M clang/test/CodeGenCXX/ms-vdtors-devirtualization.cpp
M clang/test/OpenMP/for_reduction_codegen_UDR.cpp
M clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
Log Message:
-----------
[Clang] More aggressively mark this* dead_on_return in destructors (#183347)
Now also mark the this pointer dead_on_return for classes with a
non-zero number of base classes. We saw a limited number of failures
internally due to this change, so it doesn't seem like there are too
many problems with real world deployment.
Commit: 96bd7b6e152387c6d1ccb4b0e392773aa1bdec1e
https://github.com/llvm/llvm-project/commit/96bd7b6e152387c6d1ccb4b0e392773aa1bdec1e
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AMDGPU/R600ISelLowering.h
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[CodeGen] Add additional params to `TargetLoweringBase::getTruncStoreAction` (#187422)
The truncating store analogue of #181104.
Adds `Alignment` and `AddrSpace` parameters to
`TargetLoweringBase::getTruncStoreAction` and dependents, and introduces
a `getCustomTruncStoreAction` hook for targets to customize legalization
behavior using this new information.
This change is fully backwards compatible from the target's point of
view, with `setTruncStoreAction` having identical functionality. The
change is purely additive.
Commit: b255e78cb9bf40ecc4c4a28ab81887de68b8afc3
https://github.com/llvm/llvm-project/commit/b255e78cb9bf40ecc4c4a28ab81887de68b8afc3
Author: Jim Lin <jim at andestech.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/Process.h
Log Message:
-----------
[lldb] Fix copy-paste error in SetPrivateRunLockToRunning (#189322)
SetPrivateRunLockToRunning incorrectly delegated to
SetPrivateRunLockToStopped instead of SetPrivateRunLockToRunning,
causing the private run lock to never transition to the running state on
process resume.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 47e3f42bc75d006ecaf820211cfff560681ab9d9
https://github.com/llvm/llvm-project/commit/47e3f42bc75d006ecaf820211cfff560681ab9d9
Author: Vasileios Porpodas <vasileios.porpodas at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
Reapply "[SandboxVec][VecUtils] Lane Enumerator (#188355)"
This reverts commit c93049ef504f942af0f884ce8a5efc21df21d131.
Commit: 35f89458fa2871b7590c115c9afea764dfc11c02
https://github.com/llvm/llvm-project/commit/35f89458fa2871b7590c115c9afea764dfc11c02
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M mlir/include/mlir/Interfaces/SideEffectInterfaces.h
M mlir/lib/Transforms/CSE.cpp
M mlir/test/Analysis/test-alias-analysis-modref.mlir
M mlir/test/IR/test-side-effects.mlir
M mlir/test/Transforms/cse.mlir
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/unittests/Interfaces/SideEffectInterfacesTest.cpp
Log Message:
-----------
[mlir] Made DefaultResource the root of memory resource hierarchy. (#187423)
DefaultResource is made the root of the memory resource hierarchy,
so now it overlaps with all resources.
RFC:
https://discourse.llvm.org/t/rfc-mlir-memory-region-hierarchy-for-mlir-side-effects/89811/32
Commit: ac12b327b2cfaaa689e975652320e85b5e37e5b2
https://github.com/llvm/llvm-project/commit/ac12b327b2cfaaa689e975652320e85b5e37e5b2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-formation.ll
Log Message:
-----------
[RISCV] Check hasVInstructions() rather than hasStdExtZbb() for UMAX/UMIN/SMAX/SMIN combines. (#189506)
The combines are related to combining min/max with vector reductions. I
don't think it matters if Zbb is enabled.
I did not merge this with other hasVInstructions() because I have a P
extension patch coming after this that will need to separate them.
Commit: 9de3ebde1c8c0f5d51fe8906fcb8a88899970031
https://github.com/llvm/llvm-project/commit/9de3ebde1c8c0f5d51fe8906fcb8a88899970031
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Avoid creating unnecessary node. Add missing break to switch. NFC (#189511)
Commit: 227edfb2f406e835b8ec91f0fce44d4f344a808c
https://github.com/llvm/llvm-project/commit/227edfb2f406e835b8ec91f0fce44d4f344a808c
Author: Mingjie Xu <xumingjie.enna1 at bytedance.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
M llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
M llvm/test/CodeGen/PowerPC/atomics-regression.ll
M llvm/test/CodeGen/RISCV/branch_zero.ll
M llvm/test/CodeGen/X86/apx/reloc-opt.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/bypass-slow-div-debug-info-inseltpoison.ll
M llvm/test/Transforms/CodeGenPrepare/AMDGPU/bypass-slow-div-debug-info.ll
Log Message:
-----------
[CodeGenPrepare][NFC] Reland: Update the dominator tree instead of rebuilding it (#179040)
The original differential revision is https://reviews.llvm.org/D153638
Reverted in
https://github.com/llvm/llvm-project/commit/f5b5a30858f32e237636acd296b6d0f87c1dfe97
because of causing a clang crash.
This patch relands it with the crash fixed. Call `DTU->flush()` in each
iteration of `while (MadeChange)`
loop, flush all awaiting BasicBlocks deletion, and prevent iterator
invalidation.
Commit: e1aef5ed5f0c2a958c76bcff0708803ae0588efb
https://github.com/llvm/llvm-project/commit/e1aef5ed5f0c2a958c76bcff0708803ae0588efb
Author: Feng Zou <feng.zou at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86CompressEVEX.cpp
A llvm/test/CodeGen/X86/apx/compress-evex-negative-nf.mir
M llvm/test/TableGen/x86-instr-mapping.inc
M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
Log Message:
-----------
[X86][APX] Remove NF entries in X86CompressEVEXTable (#189308)
NF (No-Flags) instructions should not compress to non-NF instructions,
as this would incorrectly modify flags behavior. The compression table
is only intended for encoding optimizations that preserve semantics.
This removes the incorrect NF entries that could have led to
miscompilation if the compression logic were applied.
Commit: 14ce208a45eb0673f8b28409eec0628ad809923b
https://github.com/llvm/llvm-project/commit/14ce208a45eb0673f8b28409eec0628ad809923b
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lld/ELF/Arch/AArch64.cpp
A lld/test/ELF/aarch64-tls-dtprel.s
Log Message:
-----------
[LLD][AArch64] Handle R_AARCH64_TLS_DTPREL64 in non-alloc sections (#183962)
Clang plan to emit R_AARCH64_TLS_DTPREL64 in .debug_info (see PR
#146572). LLD currently fails to recognize this relocation.
This prevent the debugger from correctly locating TLS variables when
using the DWARF DW_OP_GNU_push_tls_address or DW_AT_location with DTPREL
offsets.
This patch adds support for R_AARCH64_TLS_DTPREL64, adds its mapping to
R_DTPREL.
Commit: 8e20a6dc866c54683f801d1ca041c6b3ba302485
https://github.com/llvm/llvm-project/commit/8e20a6dc866c54683f801d1ca041c6b3ba302485
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
M llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
M llvm/test/DebugInfo/AArch64/tls-at-location.ll
Log Message:
-----------
[AArch64] Support TLS variables in debug info (#146572)
This adds an implementation of getDebugThreadLocalSymbol for AArch64 by
using AArch::S_DTPREL.
Fixes #83466
Commit: 1ec7e86b3a779df2a0af3f37e58c8f5b3a398d7f
https://github.com/llvm/llvm-project/commit/1ec7e86b3a779df2a0af3f37e58c8f5b3a398d7f
Author: Kewen Meng <kewen.meng at amd.com>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/LTO.cpp
M lld/COFF/LTO.h
M lld/COFF/SymbolTable.cpp
M lld/ELF/Driver.cpp
M lld/ELF/LTO.cpp
M lld/ELF/LTO.h
R lld/test/COFF/lto-libcall-archive-bitcode.test
R lld/test/ELF/lto/libcall-archive-bitcode.test
R lld/test/wasm/lto/libcall-archive-bitcode.ll
M lld/wasm/LTO.cpp
M lld/wasm/LTO.h
M lld/wasm/SymbolTable.cpp
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/LTO/LTOBackend.h
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
R llvm/test/LTO/Resolution/X86/libcall-external.ll
R llvm/test/LTO/Resolution/X86/libcall-in-thin-link.ll
R llvm/test/LTO/Resolution/X86/libcall-in-tu.ll
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
Revert "[LTO][LLD] Prevent invalid LTO libfunc transforms (#164916)"
This reverts commit 8b21fe60b43fe358321bca904ae307406725c002.
to unblock bot: https://lab.llvm.org/buildbot/#/builders/67/builds/1196
Commit: 42cc454777274a06933abcd098ec3281158717f9
https://github.com/llvm/llvm-project/commit/42cc454777274a06933abcd098ec3281158717f9
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M lld/ELF/InputSection.cpp
M lld/ELF/InputSection.h
M lld/ELF/SyntheticSections.cpp
M lld/test/ELF/merge-piece-oob.s
Log Message:
-----------
[ELF] Optimize binary search in getSectionPiece (#187916)
Two optimizations to make getSectionPiece O(1) for common cases:
1. For non-string fixed-size merge sections, use direct computation
(offset / entsize) instead of binary search.
2. Pre-resolve piece indices for non-section Defined symbols during
splitSections. The piece index and intra-piece offset are packed
into Defined::value as ((pieceIdx+1) << 32) | intraPieceOffset,
replacing repeated binary searches (MarkLive, includeInSymtab,
getRelocTargetVA) with a single upfront resolution.
On x86-64, references to mergeable strings use local labels:
leaq .LC0(%rip), %rax # R_X86_64_PC32 .LC0-4
The relocations use non-section symbols and benefit from optimization 2.
On many other targets (e.g. AArch64), the addend is 0 and the assembler
adjusts such relocations to reference section symbols, which still use
binary search.
On a clang link (clang-relassert reproduce tarball, x86-64):
- --gc-sections: 1.05x as fast
Commit: 8a0c070309fcdc4f9fc2718b6a350f0de955f053
https://github.com/llvm/llvm-project/commit/8a0c070309fcdc4f9fc2718b6a350f0de955f053
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libcxx/include/__hash_table
M libcxx/include/ext/hash_map
M libcxx/test/extensions/gnu/hash_map/copy.pass.cpp
R libcxx/test/extensions/gnu/hash_map/non_standard_layout.pass.cpp
R libcxx/test/extensions/gnu/hash_multimap/non_standard_layout.pass.cpp
Log Message:
-----------
[libc++] Revert recent changes to __hash_table and ext/hash_map (#189427)
This reverts commits 30084d74765c and 5b8c17580482. The second commit
was landed without proper review: not by fault of the submitter, but
because I mistakenly thought this was modifying something else entirely
that is unsupported. The first commit must also be reverted because it
is a breaking change without the second commit.
This corresponds to PRs #183223 and #188660, see those for more details.
Commit: d3224dc5da99877602f997c16bc5dffc775c5248
https://github.com/llvm/llvm-project/commit/d3224dc5da99877602f997c16bc5dffc775c5248
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
A clang/test/FixIt/fixit-defaulted-comparison.cpp
Log Message:
-----------
[clang][Sema] Fix const FixIt placement after comparison operator member definition (#188093)
Update `InsertLoc` to use the token after the closing parenthesis
when adding `const` qualification to a comparison operator
Fixes #187887
Commit: 2e02135cec6aa56f780ef6b61799b50e6dd0d1a5
https://github.com/llvm/llvm-project/commit/2e02135cec6aa56f780ef6b61799b50e6dd0d1a5
Author: A. Jiang <de34 at live.cn>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/include/__bit_reference
A libcxx/test/std/containers/sequences/vector.bool/reference/builtin_address_of.pass.cpp
A libcxx/test/std/utilities/template.bitset/bitset.members/reference.builtin_address_of.pass.cpp
Log Message:
-----------
[libc++] Remove non-conforming `__bit_reference::operator&` (#188714)
The overloaded `operator&` caused non-conforming behavior when
- using `operator==` to compare "addresses" of proxy reference objects,
and
- relying on the exact type of `&ref`.
No deprecation warning is added, becaue it should be portable to write
`&ref` where `ref` is a proxy reference variable, and this patch just
corrects the behavior.
`__bit_const_reference::operator&` is kept, because when one defines
`_LIBCPP_ABI_BITSET_VECTOR_BOOL_CONST_SUBSCRIPT_RETURN_BOOL` to make the
libc++ implementation strategy conforming, the `operator&` will never be
exposed to users.
Commit: 3d96b36964e808b14c660bcbf248b9dc856d43a2
https://github.com/llvm/llvm-project/commit/3d96b36964e808b14c660bcbf248b9dc856d43a2
Author: pkarveti <pkarveti at qti.qualcomm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/Target/Target.td
M llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp
M llvm/test/CodeGen/Generic/reloc-none.ll
Log Message:
-----------
[Hexagon] Fix infinite loop in scheduler for RELOC_NONE instruction (#188690)
The llvm.reloc.none intrinsic (introduced in 5f08fb4d72f6) causes an
infinite loop when compiling for Hexagon target. The Hexagon scheduler's
hazard recognizer enters an infinite loop because RELOC_NONE
RELOC_NONE is a pseudo-instruction that doesn't correspond to real
hardware, but the Hexagon hazard recognizer was treating it as a regular
instruction requiring hardware resource allocation.
Mark RELOC_NONE as a meta-instruction and update Hexagon's hazard
recognizer to skip resource checks for meta-instructions, similar to how
it handles zero-cost instructions.
Commit: 035ae0261c7077f97541c662db5f30b6d81d0616
https://github.com/llvm/llvm-project/commit/035ae0261c7077f97541c662db5f30b6d81d0616
Author: Jim Lin <jim at andestech.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
Log Message:
-----------
[RISCV] Fix discarded return value in RISCVOperand::print for FRM (#189530)
The roundingModeToString() return value was not being written to the
output stream, causing FRM operands to print as "<frm: >" with no
rounding mode name in debug output.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 5b2363a1027c3a172326d0f43a23fbbe5d70a304
https://github.com/llvm/llvm-project/commit/5b2363a1027c3a172326d0f43a23fbbe5d70a304
Author: Himadhith <79003240+Himadhith at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A lib.out
M libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp
A tmp.exe
Log Message:
-----------
[libc++][AIX] Fix force_thread_creation_failure by using RLIMIT_THREADS (#188787)
This patch fixes the test `force_thread_creation_failure.cpp` on AIX by
using platform specific `RLIMIT_THREADS` which helps in restricting the
thread creation as `RLIMIT_NPROC` on AIX restricts processes and not
threads.
---------
Co-authored-by: himadhith <himadhith.v at ibm.com>
Commit: f48425edca7ff9f43abb3ec7cb1252e7edfbf163
https://github.com/llvm/llvm-project/commit/f48425edca7ff9f43abb3ec7cb1252e7edfbf163
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/test/CodeGen/AMDGPU/fract-match.ll
Log Message:
-----------
AMDGPU: Match fract pattern with swapped edge case check (#189081)
A fract implementation can equivalently be written as
r = fmin(x - floor(x))
r = isnan(x) ? x : r;
r = isinf(x) ? 0.0 : r;
or:
r = fmin(x - floor(x));
r = isinf(x) ? 0.0 : r;
r = isnan(x) ? x : r;
Previously this only matched the previous form. Match
the case where the isinf check is the inner clamp. There are
a few more ways to write this pattern (e.g., move the clamp of
infinity to the input) but I haven't encountered that in the wild.
The existing code seems to be trying too hard to match noncanonical
variants of the pattern. Only handles the result that all 4 permutations
of compare and select produce out of instcombine.
Commit: 598f3535fa96ee599d670ede3840beeca570ec1f
https://github.com/llvm/llvm-project/commit/598f3535fa96ee599d670ede3840beeca570ec1f
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/CodeGen/AArch64/intrinsic-cttz-elts-sve.ll
M llvm/test/CodeGen/AArch64/intrinsic-cttz-elts.ll
M llvm/test/CodeGen/AArch64/sve-mask-partition.ll
A llvm/test/CodeGen/AMDGPU/cttz-elts.ll
A llvm/test/CodeGen/PowerPC/cttz-elts.ll
A llvm/test/CodeGen/RISCV/rvv/cttz-elts-scalarize.ll
M llvm/test/CodeGen/RISCV/rvv/cttz-elts.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-elts.ll
M llvm/test/CodeGen/X86/intrinsic-cttz-elts.ll
Log Message:
-----------
[SelectionDAG] Expand CTTZ_ELTS[_ZERO_POISON] and handle legalization (#188691)
This is a second attempt at "[SelectionDAG] Expand
CTTZ_ELTS[_ZERO_POISON] and handle splitting" (#188220)
That PR had to be reverted in 7d39664a6ae8daaf186b65578492244d96a50bf2
because we had crashes on AMDGPU since we didn't have scalarization
support, and other crashes on PowerPC because we didn't handle the case
when a vector needed widened. Tests for these are added in
AMDGPU/cttz-elts.ll, RISCV/rvv/cttz-elts-scalarize.ll and
PowerPC/cttz-elts.ll.
The former crash has been fixed by adding
DAGTypeLegalizer::ScalarizeVecOp_CTTZ_ELTS.
The second crash has been fixed by reworking
TargetLowering::expandCttzElts. The expansion for CTTZ_ELTS is nearly
identical to VECTOR_FIND_LAST_ACTIVE, except it uses a reverse step
vector and subtracts the result from VF. The easiest way to fix these
crashes without introducing regressions is to reuse the
VECTOR_FIND_LAST_ACTIVE expansion which already handles the case where
the vector needs widened.
This means that the node now needs to take in a boolean vector argument
and uses VSELECT instead of an AND to zero out inactive lanes, so the op
promotion code has also been shared.
Commit: fa136df3e74c1fd0b838352484aa38c471d21cbd
https://github.com/llvm/llvm-project/commit/fa136df3e74c1fd0b838352484aa38c471d21cbd
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Object/RelocationResolver.cpp
M llvm/test/DebugInfo/AArch64/tls-at-location.ll
Log Message:
-----------
[llvm-dwarfdump] Support R_AARCH64_TLS_DTPREL64 in Object/RelocationResolver.cpp (#187649)
In patch https://github.com/llvm/llvm-project/pull/146572 we have plan
to emit R_AARCH64_TLS_DTPREL64. This give us the warning while using
llvm-dwarfdump for the object file which has tls variables -
warning: failed to compute relocation: R_AARCH64_TLS_DTPREL64, Invalid
data was encountered while parsing the file
To fix this warning we have mark the relocation as supported however
final absolute address of a TLS variable is determined at runtime,
resolving to the symbol's section-relative offset in the object file is
mitigate the warning.
Commit: dbad8a1e24c9e63041d91c8d5551225024b983eb
https://github.com/llvm/llvm-project/commit/dbad8a1e24c9e63041d91c8d5551225024b983eb
Author: Max Desiatov <m_desiatov at apple.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
A llvm/test/CodeGen/WebAssembly/swiftasync-coroutine.ll
A llvm/test/CodeGen/WebAssembly/swifttailcc-musttail-no-tailcall.ll
A llvm/test/CodeGen/WebAssembly/swifttailcc-no-tailcall.ll
A llvm/test/CodeGen/WebAssembly/swifttailcc.ll
Log Message:
-----------
Wasm: add support for `swifttailcc` calling convention (#188296)
Wasm backend already supports tail calls where available, we only need
to enable corresponding branches for this calling convention.
Commit: 7365bfb3e0650918f7272a0817785c6c01d2feda
https://github.com/llvm/llvm-project/commit/7365bfb3e0650918f7272a0817785c6c01d2feda
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
M llvm/test/CodeGen/X86/GlobalISel/select-insert-vec256.mir
M llvm/test/CodeGen/X86/GlobalISel/select-insert-vec512.mir
M llvm/test/CodeGen/X86/GlobalISel/select-merge-vec256.mir
M llvm/test/CodeGen/X86/GlobalISel/select-merge-vec512.mir
Log Message:
-----------
[X86][GISel] Avoid creating subreg def operands in emitInsertSubreg (#189408)
emitInsertSubreg builds a COPY with a subregister def operand, but these
probably should not be allowed in SSA MIR. Change it to build an
equivalent use of INSERT_SUBREG instead.
Commit: 6e2e06f98e164be53528ac19c7a307e92caa53eb
https://github.com/llvm/llvm-project/commit/6e2e06f98e164be53528ac19c7a307e92caa53eb
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Refactor the signature of the Exact RDIV test (NFCI) (#189535)
Commit: 0f75ecf2326d70394026277d9b40f6e53434c6da
https://github.com/llvm/llvm-project/commit/0f75ecf2326d70394026277d9b40f6e53434c6da
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/Target.h
M lldb/source/Target/Target.cpp
Log Message:
-----------
[lldb] Only create RegisterTypeBuilderClang plugin once (#189393)
This plugin creates types based on information from target XML, which is
parsed only once per session. It has internal logic to reuse created
types, but the plugin itself was being remade every time a type was
requested.
Commit: 0c2c3f05ff688a245caf95af0f6c5e75b8ae27f8
https://github.com/llvm/llvm-project/commit/0c2c3f05ff688a245caf95af0f6c5e75b8ae27f8
Author: Endre Fülöp <endre.fulop at sigmatechnology.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/test/Analysis/bstring.cpp
Log Message:
-----------
[analyzer][NFC] Reorganize bstring.cpp tests (#188709)
This change eliminates preprocessor-based suppression of test cases by
introducing multi-prefix verify options to run-lines. This slightly
increases coverage.
Commit: 199e5b71446895204f2912ce5d68b8019d3b78c9
https://github.com/llvm/llvm-project/commit/199e5b71446895204f2912ce5d68b8019d3b78c9
Author: Himadhith <79003240+Himadhith at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
R lib.out
R tmp.exe
Log Message:
-----------
[NFC] Remove stray files from top level directory (#189563)
Added untracked files into the top level directory by mistake, reverting
the change in this PR.
Co-authored-by: himadhith <himadhith.v at ibm.com>
Commit: fbfb83978cdc4e22996a26b4319d6df1514f08c6
https://github.com/llvm/llvm-project/commit/fbfb83978cdc4e22996a26b4319d6df1514f08c6
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/MachineVerifier.cpp
Log Message:
-----------
[MachineVerifier] Disallow subregister defs in SSA form (#189403)
Commit: f76f41f7027a4e96bac040f0b1b7f4cead0d2488
https://github.com/llvm/llvm-project/commit/f76f41f7027a4e96bac040f0b1b7f4cead0d2488
Author: Mel Chen <mel.chen at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/RISCV/dbg-tail-folding-by-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/predicated-reverse-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-uniform-store.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Extract reverse mask from reverse accesses (#155579)
Following #146525, separate the reverse mask from reverse access
recipes.
At the same time, remove the unused member variable `Reverse` from
`VPWidenMemoryRecipe`.
This will help to reduce redundant reverse mask computations by
VPlan-based common subexpression elimination.
Commit: 63e0ab7b4b51db7d93bf247b645c33b63f8ef747
https://github.com/llvm/llvm-project/commit/63e0ab7b4b51db7d93bf247b645c33b63f8ef747
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
Log Message:
-----------
[RISCV] Explicitly list supported VP intrinsics. NFC (#189547)
In preparation for splitting off #179622, list all vp intrinsics in a
list. Future PRs will remove intrinsics from this list when the
corresponding codegen support is removed.
Commit: f59d6f734e3d18fe37d0a2d7806479ee1be8de37
https://github.com/llvm/llvm-project/commit/f59d6f734e3d18fe37d0a2d7806479ee1be8de37
Author: David Sherwood <david.sherwood at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
M llvm/test/Transforms/LoopVectorize/2012-10-20-infloop.ll
M llvm/test/Transforms/LoopVectorize/2012-10-22-isconsec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_test1_no_explicit_vect_width.ll
M llvm/test/Transforms/LoopVectorize/ARM/arm-unroll.ll
M llvm/test/Transforms/LoopVectorize/ARM/gcc-examples.ll
M llvm/test/Transforms/LoopVectorize/ARM/width-detect.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-dot-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-stress-test-no-explict-vf.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i32.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i64.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i8.ll
M llvm/test/Transforms/LoopVectorize/X86/avx1.ll
M llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/X86/gcc-examples.ll
M llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
M llvm/test/Transforms/LoopVectorize/X86/int128_no_gather.ll
M llvm/test/Transforms/LoopVectorize/X86/interleave_short_tc.ll
M llvm/test/Transforms/LoopVectorize/X86/min-trip-count-switch.ll
M llvm/test/Transforms/LoopVectorize/X86/outer_loop_test1_no_explicit_vect_width.ll
M llvm/test/Transforms/LoopVectorize/X86/parallel-loops-after-reg2mem.ll
M llvm/test/Transforms/LoopVectorize/X86/parallel-loops.ll
M llvm/test/Transforms/LoopVectorize/X86/tail_folding_and_assume_safety.ll
M llvm/test/Transforms/LoopVectorize/X86/unroll-pm.ll
M llvm/test/Transforms/LoopVectorize/X86/unroll-small-loops.ll
M llvm/test/Transforms/LoopVectorize/X86/unroll_selection.ll
M llvm/test/Transforms/LoopVectorize/X86/veclib-calls.ll
M llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
M llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll
M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-store-accesses-with-gaps.ll
M llvm/test/Transforms/LoopVectorize/align.ll
M llvm/test/Transforms/LoopVectorize/bzip_reverse_loops.ll
M llvm/test/Transforms/LoopVectorize/calloc.ll
M llvm/test/Transforms/LoopVectorize/cpp-new-array.ll
M llvm/test/Transforms/LoopVectorize/float-reduction.ll
M llvm/test/Transforms/LoopVectorize/gcc-examples.ll
M llvm/test/Transforms/LoopVectorize/i8-induction.ll
M llvm/test/Transforms/LoopVectorize/if-conv-crash.ll
M llvm/test/Transforms/LoopVectorize/if-conversion-reduction.ll
M llvm/test/Transforms/LoopVectorize/if-conversion.ll
M llvm/test/Transforms/LoopVectorize/increment.ll
M llvm/test/Transforms/LoopVectorize/loop-legality-checks-remarks.ll
M llvm/test/Transforms/LoopVectorize/memdep.ll
M llvm/test/Transforms/LoopVectorize/metadata-unroll.ll
M llvm/test/Transforms/LoopVectorize/metadata-width.ll
M llvm/test/Transforms/LoopVectorize/multiple-address-spaces.ll
M llvm/test/Transforms/LoopVectorize/no_int_induction.ll
M llvm/test/Transforms/LoopVectorize/no_outside_user.ll
M llvm/test/Transforms/LoopVectorize/non-const-n.ll
M llvm/test/Transforms/LoopVectorize/outer_loop_test1.ll
M llvm/test/Transforms/LoopVectorize/outer_loop_test2.ll
M llvm/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
M llvm/test/Transforms/LoopVectorize/pr32859.ll
M llvm/test/Transforms/LoopVectorize/pseudoprobe.ll
M llvm/test/Transforms/LoopVectorize/ptr_loops.ll
M llvm/test/Transforms/LoopVectorize/read-only.ll
M llvm/test/Transforms/LoopVectorize/runtime-check-address-space.ll
M llvm/test/Transforms/LoopVectorize/runtime-check-readonly-address-space.ll
M llvm/test/Transforms/LoopVectorize/runtime-check.ll
M llvm/test/Transforms/LoopVectorize/same-base-access.ll
M llvm/test/Transforms/LoopVectorize/scalar-select.ll
M llvm/test/Transforms/LoopVectorize/simple-unroll.ll
M llvm/test/Transforms/LoopVectorize/small-loop.ll
M llvm/test/Transforms/LoopVectorize/start-non-zero.ll
M llvm/test/Transforms/LoopVectorize/struct_access.ll
M llvm/test/Transforms/LoopVectorize/unroll-novec-memcheck-metadata.ll
M llvm/test/Transforms/LoopVectorize/unroll_novec.ll
M llvm/test/Transforms/LoopVectorize/write-only.ll
Log Message:
-----------
[LV][NFC] Remove more function attributes from tests (#188185)
Following on from PR #188091 I've also removed the following function
attributes from tests:
nounwind uwtable ssp
as they didn't make any difference to the tests.
Commit: a8a659458d4ad9116d652ca4eccb77d6cd673883
https://github.com/llvm/llvm-project/commit/a8a659458d4ad9116d652ca4eccb77d6cd673883
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
Log Message:
-----------
[lldb] Change MemoryRegionInfo::SetIsShadowStack into a "builder" method (#189565)
Meaning a method on an object, which returns a reference to self.
I am doing this because it was pointed out to me that MemoryRegionInfo
has lots of construction paramaters, and most of the time, we want the
default value for most of the things.
So now we can do:
MemoryRegionInfo(...); // Shadow stack is "don't know".
MemoryRegionInfo(...).SetIsShadowStack(eNo) // Shadow stack is "no".
Which removes one parameter from every use of the constructor.
Along the way I realised that the shadow stack "ss" flag is only tested
by the Guarded Control Stack tests, which only run on specific Arm
hardware. I've added a new "ss" test to LinuxProcMapsTest, which will
run on any system.
Commit: bb3bf9f94b4235c8b81087ede1af442b5066b075
https://github.com/llvm/llvm-project/commit/bb3bf9f94b4235c8b81087ede1af442b5066b075
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/MC/MCAssembler.h
M llvm/lib/MC/MCAssembler.cpp
M llvm/test/MC/ELF/relax-branch-align.s
R llvm/test/MC/X86/align-branch-convergence.s
Log Message:
-----------
Revert "[MC] Fuse relaxation and layout into a single forward pass" (#189548)
Reverts llvm/llvm-project#184544 due to build failures and binary size
regressions; see comments on the PR.
Even if the failure to fixup CBZ instructions is due to a previously
existing problem, it was triggered by this PR. And the unnecessary
widening of the LBR instructions seems like a bad regression in itself.
Commit: 64eeafad7090d71f809f8e1806ad3b141f8de026
https://github.com/llvm/llvm-project/commit/64eeafad7090d71f809f8e1806ad3b141f8de026
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/exact-rdiv-addrec-wrap.ll
Log Message:
-----------
[DA] Check nsw flags for addrecs in the Exact RDIV test (#189536)
This patch adds a check to ensure that the addrecs have nsw flags at the
beginning of the Exact SIV test. If either of them doesn't have, the
analysis bails out. This check is necessary because the subsequent
process in the Exact SIV test assumes that they don't wrap.
Commit: ad0cd387c0e9458e54db7817b57f822cc4d14dec
https://github.com/llvm/llvm-project/commit/ad0cd387c0e9458e54db7817b57f822cc4d14dec
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/records.cpp
Log Message:
-----------
[clang][bytecode] Fix a crash with void declarations (#189334)
The `chk` decl is erroneous, but we shouldn't crash.
Commit: 7ad564e54b42a921a70cd0d0f712dd86f61a697c
https://github.com/llvm/llvm-project/commit/7ad564e54b42a921a70cd0d0f712dd86f61a697c
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
Log Message:
-----------
[MLIR][MemRef] Fix LoadOpOfExpandShapeOpFolder returning failure after IR change (#188964)
LoadOpOfExpandShapeOpFolder<vector::TransferReadOp>::matchAndRewrite
called resolveSourceIndicesExpandShape (which creates
AffineLinearizeIndexOp ops via the rewriter) before checking whether the
vector::TransferReadOp preconditions hold. When those checks failed
(sourceRank < vectorRank or permutation map mismatch), the pattern
returned failure() after already modifying the IR, triggering "pattern
returned failure but IR did change" under
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Fix by hoisting the vector::TransferReadOp precondition checks to before
the resolveSourceIndicesExpandShape call. The source rank is derived
from expandShapeOp.getViewSource()'s type (no IR creation needed), and
the permutation map check only uses op attributes. Only if all checks
pass do we proceed to create the linearized-index ops.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: c592eba498a2a62101d503b1b32505fb292e6b51
https://github.com/llvm/llvm-project/commit/c592eba498a2a62101d503b1b32505fb292e6b51
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Use RPOT in CSE, fixing potential crash (#187548)
A CSE crash is observed arising from outdated hash values unless we
forbid replacements in successor phis in blocks that are not dominated
by the def: the crash is observed when there is a block with CSE'able
phis with CSE'able incoming values, with incoming values coming from a
non-dominating block, under the condition that the block with the phis
is visited before the non-dominating block. It is unfortunately
impossible to write a test case showing a crash at present, but crashes
do occur when attempting to CSE DerivedIV recipes. The root cause of the
crash is visiting a non-dominated use before a def, and hence would be
fixed by a reverse post-order traversal.
Fixes #187499.
Co-authored-by: Luke Lau <luke at igalia.com>
Commit: 47f3d90dacb92ac2281ae259bd3be6584b386253
https://github.com/llvm/llvm-project/commit/47f3d90dacb92ac2281ae259bd3be6584b386253
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/int-to-fp-demanded.ll
Log Message:
-----------
[X86] int-to-fp-demanded.ll - add f16/bf16 signbit extraction tests (#189570)
Based off original test from #189129
Commit: b544ad57039588d0fe24a1f512202cc5c0bd3a67
https://github.com/llvm/llvm-project/commit/b544ad57039588d0fe24a1f512202cc5c0bd3a67
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/docs/Bindings/Python.md
A mlir/include/mlir/Bindings/Python/PythonBindings.td
M mlir/test/mlir-tblgen/op-python-bindings.td
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[MLIR] [Python] Added a way to extend MLIR->Python type mappings (#189368)
The idea is to use TableGen records for both custom type constraints and
attributes:
* `PythonTypeName` is for type constraints, while
* `PythonAttrType` is for attributes.
The key types differ between these two records. `PythonTypeName` is
keyed by C++ type because multiple type constraints map to the same C++
type (e.g. `I32` and `I64` both map to `::mlir::IntegerType`), so a
single entry covers all of them. `PythonAttrType` is keyed by TableGen
def name because different attributes can share the same C++ storage
type but need distinct Python types (e.g. `I32ArrayAttr` and
`StrArrayAttr` are both `::mlir::ArrayAttr`).
We could in theory reimplement `getPythonAttrName` using the same
approach, but I decided to leave it for future PRs.
Commit: c1b1a7178399b4fc8b0f777baeee21afbee69efa
https://github.com/llvm/llvm-project/commit/c1b1a7178399b4fc8b0f777baeee21afbee69efa
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M .github/new-prs-labeler.yml
Log Message:
-----------
[MLIR][NVVM] Add label for nvvm (#188216)
Commit: c6b255a693f042214e4f15dd7f69063d8315f0d7
https://github.com/llvm/llvm-project/commit/c6b255a693f042214e4f15dd7f69063d8315f0d7
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
Log Message:
-----------
[lldb] Remove stack_memory from MemoryRegionInfo constructor (#189580)
Nothing passes anything but the default value here. Code that wants to
set it is starting with a default constructed info, and filling in the
fields one by one (the gdb-remote client for example).
Commit: ece53d2348a4176787a0648737e4b41f9d31b4b4
https://github.com/llvm/llvm-project/commit/ece53d2348a4176787a0648737e4b41f9d31b4b4
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/Analysis/DependenceAnalysis/exact-siv-overflow.ll
Log Message:
-----------
[DA] Update test `exact-siv-overflow.ll` (NFC) (#189572)
Revise the comment and the arguments to `--check-prefixes` in
`Analysis/DependenceAnalysis/exact-siv-overflow.ll` to match the style
of other similar tests in the directory.
Commit: f1b0a84003a03580ed4473e1f4201a415ddaf0fd
https://github.com/llvm/llvm-project/commit/f1b0a84003a03580ed4473e1f4201a415ddaf0fd
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/exact-rdiv-delta-overflow.ll
Log Message:
-----------
[DA] Add a test where the Exact RDIV test misses a dependency (NFC) (#189577)
Add a test to demonstrate the case where the Exact RDIV test misses a
dependency because the calculation of `Delta` overflows.
Commit: 0546b3f565b9350761f08574471ee3370fd8953c
https://github.com/llvm/llvm-project/commit/0546b3f565b9350761f08574471ee3370fd8953c
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/Analysis/DependenceAnalysis/gcd-miv-overflow.ll
Log Message:
-----------
[DA] Add test for GCD MIV missing dependency due to overflow (NFC) (#172002)
Add a test case where the GCD MIV test misses a dependency due to
overflow. This will be fixed by #172003 .
Commit: 2b439327026d45bf53e59159c8e40fccf87930b6
https://github.com/llvm/llvm-project/commit/2b439327026d45bf53e59159c8e40fccf87930b6
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/AST/DeclTemplate.cpp
A clang/test/SemaTemplate/GH188759.cpp
Log Message:
-----------
[clang] fix getReplacedTemplateParameter for function template specializations (#189559)
Commit: d43d9022c189210f0c3c52e34a47f3bd3edd4e43
https://github.com/llvm/llvm-project/commit/d43d9022c189210f0c3c52e34a47f3bd3edd4e43
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-predicate-switch.ll
Log Message:
-----------
[LV] Regen vplan-predicate-switch test with UTC (NFC) (#189581)
Commit: 0cecacd971a5471803b79f2b4a976ce75a2539b2
https://github.com/llvm/llvm-project/commit/0cecacd971a5471803b79f2b4a976ce75a2539b2
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/arm/adddf3.S
A compiler-rt/test/builtins/Unit/adddf3new_test.c
A compiler-rt/test/builtins/Unit/subdf3new_test.c
Log Message:
-----------
[compiler-rt][ARM] Optimized double precision FP add/sub (#179921)
The one new assembly source file, `arm/adddf3.S`, implements both
addition and subtraction via cross-branching after flipping signs, since
both operations must provide substantially the same logic. The new cmake
properties introduced in a prior commit are used to arrange that
including `adddf3.S` supersedes the C versions of both addition and
subtraction, and also informs the test suite that both functions are
available to test.
Commit: caecca035ab9fdccd1fd1b1b17452b415f89b366
https://github.com/llvm/llvm-project/commit/caecca035ab9fdccd1fd1b1b17452b415f89b366
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
M lldb/test/API/commands/target/create-deps/TestTargetCreateDeps.py
M lldb/test/API/functionalities/breakpoint/break_in_loaded_dylib/TestBreakInLoadedDylib.py
M lldb/test/API/functionalities/executable_first/TestExecutableFirst.py
M lldb/test/API/functionalities/load_after_attach/TestLoadAfterAttach.py
M lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py
M lldb/test/API/functionalities/load_unload/TestLoadUnload.py
M lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py
Log Message:
-----------
[lldb] add getFullLibName to PlatformContext (#188772)
This patch introduces `PlatformContext.getFullLibName` which returns the
full dylib name for any platform based on the base name of the dylib.
Example:
```
# Windows
PlatformContext.getFullLibName("Foo") -> "Foo.dll"
# Linux
PlatformContext.getFullLibName("Foo") -> "libFoo.so"
```
Commit: 5d2d17957514e682ee53e2512cd5ec7ffff6c1e7
https://github.com/llvm/llvm-project/commit/5d2d17957514e682ee53e2512cd5ec7ffff6c1e7
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/gcd-miv-overflow.ll
Log Message:
-----------
[DA] Add overflow check in GCD MIV (#172003)
Add an overflow check in the GCD MIV test. Fix the test case added in #172002 .
Commit: 66c45a3b4964106abfa6388056fba57edfde216d
https://github.com/llvm/llvm-project/commit/66c45a3b4964106abfa6388056fba57edfde216d
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/exact-rdiv-delta-overflow.ll
Log Message:
-----------
[DA] Fix overflow in the Exact RDIV test (#189578)
This patch adds an overflow check for the computation of `Delta` in the
Exact RDIV test. If an overflow is detected, the analysis bails out.
Commit: 97b78d6ff3fa1d87fc0ba6a235f1d331990918a3
https://github.com/llvm/llvm-project/commit/97b78d6ff3fa1d87fc0ba6a235f1d331990918a3
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/BasicPtxBuilderInterface.cpp
M mlir/test/Conversion/NVVMToLLVM/nvvm-to-llvm.mlir
Log Message:
-----------
[MLIR][NVVM] Fix predicate operand index in BasicPtxBuilderInterface (#189552)
Predicate index computation was incorrect, it was not counting
write/readwrite symbols.
Wrong case
```
// CHECK: %{{.*}} = llvm.inline_asm has_side_effects asm_dialect = att "@$1 ex2.approx.ftz.f32 $0, $1;", "=f,f,b" %{{.*}}, %{{.*}} : (f32, i1) -> f32
%1 = nvvm.inline_ptx "ex2.approx.ftz.f32 {$w0}, {$r0};" ro (%input : f32), predicate = %pred -> f32
```
PR fixes, predicate index became `@$2`
```
// CHECK: %{{.*}} = llvm.inline_asm has_side_effects asm_dialect = att "@$2 ex2.approx.ftz.f32 $0, $1;", "=f,f,b" %{{.*}}, %{{.*}} : (f32, i1) -> f32
%1 = nvvm.inline_ptx "ex2.approx.ftz.f32 {$w0}, {$r0};" ro (%input : f32), predicate = %pred -> f32
```
Commit: 95db43fdb4704fd7f177eb257b0f69c1de1dc110
https://github.com/llvm/llvm-project/commit/95db43fdb4704fd7f177eb257b0f69c1de1dc110
Author: eiytoq <eiytoq at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/AST/ItaniumMangle.cpp
Log Message:
-----------
[clang][NFC] ItaniumMangle: polish comments (#183030)
Commit: 6ddb2be00a95b8ad21168c7264a2d9e549cd24d8
https://github.com/llvm/llvm-project/commit/6ddb2be00a95b8ad21168c7264a2d9e549cd24d8
Author: Fady Farag <com.webkit.iidmsa at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/test/CodeGenObjC/constant-string-class-1.m
Log Message:
-----------
[clang][test] Add missing FileCheck pipe in constant-string-class-1.m (#189514)
The test had a CHECK directive that was never executed because the RUN
line did not pipe output to FileCheck.
Commit: fd43a646fc05758650c5edae15f199221cb1a2e4
https://github.com/llvm/llvm-project/commit/fd43a646fc05758650c5edae15f199221cb1a2e4
Author: eiytoq <eiytoq at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/AST/ItaniumMangle.cpp
Log Message:
-----------
[clang][NFC] ItaniumMangle: modernize code style (#183027)
- Use structured bindings.
- Use if-init-statements to replace nested `if`.
- Use `using` instead of `typedef`.
---------
Co-authored-by: Timm Baeder <tbaeder at redhat.com>
Commit: c6b3da6b3eef3d49b5704950db052c10aabdcbf7
https://github.com/llvm/llvm-project/commit/c6b3da6b3eef3d49b5704950db052c10aabdcbf7
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
Log Message:
-----------
[lldb] Remove memory_tagged from MemoryRegionInfo (#189617)
By turning SetMemoryTagged into a builder method (returns a reference to
self). Then only using that in the tests that need to change the default
of "don't know".
Commit: 20562cefb033b29f5e897d4e74afceb8de8ad9f6
https://github.com/llvm/llvm-project/commit/20562cefb033b29f5e897d4e74afceb8de8ad9f6
Author: eiytoq <eiytoq at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/MicrosoftMangle.cpp
Log Message:
-----------
[Clang][NFC] Remove redundant DeclContext workaround for local extern decls (#186665)
This patch removes an out-of-date FIXME.
The underlying issue was already fixed by
`Sema::adjustContextForLocalExternDecl` introduced by
https://github.com/llvm/llvm-project/commit/541b38be7bf3afded3269a33586418254d82d7b3
Commit: 68a91f3d36531dbd9d8635f45f53368179361af9
https://github.com/llvm/llvm-project/commit/68a91f3d36531dbd9d8635f45f53368179361af9
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Remove ExtraGCD from GCD MIV (NFC) (#172004)
As some code was removed in #169927, `ExtraGCD` in `gcdMIVtest` is no
longer necessary. This patch removes it and also adjust the comments.
Commit: 914fca472009f8052867704f00b24c27d79ca5d5
https://github.com/llvm/llvm-project/commit/914fca472009f8052867704f00b24c27d79ca5d5
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/tools/llc/llc.cpp
Log Message:
-----------
[llc] Change `TargetMachine` allocation assert to error (#189541)
As we shouldn't assert an allocation (which can fail).
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: f14b865ff54d60901b43e7f7e96d91b9fa82ba9f
https://github.com/llvm/llvm-project/commit/f14b865ff54d60901b43e7f7e96d91b9fa82ba9f
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
Log Message:
-----------
[lldb] Remove "flash" and "blocksize" from MemoryRegionInfo constructor (#189636)
These are only set to non-default values after calling a constructor.
Removing them removes noise from many tests that make MemoryRegionInfos.
Commit: 161c53f66ea8044e6618d7c7829ba90196c72a79
https://github.com/llvm/llvm-project/commit/161c53f66ea8044e6618d7c7829ba90196c72a79
Author: David Truby <david.truby at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M openmp/cmake/modules/LibompUtils.cmake
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/LibompGetArchitecture.cmake
M openmp/runtime/src/CMakeLists.txt
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_atomic.cpp
A openmp/runtime/src/kmp_invoke_microtask.cpp
M openmp/runtime/src/kmp_os.h
M openmp/runtime/src/kmp_platform.h
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h
M openmp/runtime/src/z_Linux_asm.S
M openmp/runtime/src/z_Linux_util.cpp
M openmp/runtime/src/z_Windows_NT-586_util.cpp
M openmp/runtime/test/misc_bugs/many-microtask-args.c
Log Message:
-----------
[openmp] Add support for arm64ec to libomp (#176151)
This patch adds arm64ec support to libomp.
Note that this support isn't entirely usable on Windows hosts as libomp
requires LLVM_PER_TARGET_RUNTIME_DIR=On for to work correctly when
multiple runtimes are built, which is unsupported on Windows. A
following patch will add arm64x support to the build to rectify this.
Commit: 67d4842910b8cb79f31b9041bdf56c206cd768e9
https://github.com/llvm/llvm-project/commit/67d4842910b8cb79f31b9041bdf56c206cd768e9
Author: ambergorzynski <120007557+ambergorzynski at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/si-lower-sgpr-spills.mir
Log Message:
-----------
[NFC][AMDGPU] New test for untested case in SILowerSGPRSpills (#189426)
[This
case](https://github.com/llvm/llvm-project/blob/f380a878d515024fe02662471e81cd72a8b3eb93/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp#L343-L345)
is not covered by any existing tests (checked using code coverage and by
inserting an `abort` at that line). I propose a new test that tests this
line.
This is demonstrated by showing that it is the only test that fails in
the presence of the `abort`.
Commit: a839e500e8a1934d3ad0a346d3789904c2a865a9
https://github.com/llvm/llvm-project/commit/a839e500e8a1934d3ad0a346d3789904c2a865a9
Author: ambergorzynski <120007557+ambergorzynski at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-fnptr-todo-type.ll
Log Message:
-----------
[NFC][SPIRV] Add test for untested case in SPIRVEmitIntrinsics (#189413)
[This
case](https://github.com/llvm/llvm-project/blob/af98e3c2cb07af90029785a78e49c2761f20088e/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp#L1233-L1236)
is not tested by any existing test (checked using code coverage and by
inserting an `abort`). The case marks type deduction as incomplete.
I suggest a new test to cover this case; it's specific to
`-mtriple=spirv64-amd-amdhsa`.
Commit: 5d051f628c61fcec3ef6d23ce09be169454d9f27
https://github.com/llvm/llvm-project/commit/5d051f628c61fcec3ef6d23ce09be169454d9f27
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
Log Message:
-----------
clang: Remove unnecessary isAMDGCN wrapper (#189640)
Commit: d5f7acdbc15fd15244bf6f3e4d4e3ea5a7bd2781
https://github.com/llvm/llvm-project/commit/d5f7acdbc15fd15244bf6f3e4d4e3ea5a7bd2781
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaTypes.td
M mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir
M mlir/test/Dialect/SPIRV/IR/tosa-ops.mlir
M mlir/test/Target/SPIRV/tosa-ops.mlir
M mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp
Log Message:
-----------
[mlir][spirv] Add Cast/Rescale ops in TOSA Ext Inst Set (#189028)
This patch introduces the following operators:
spirv.Tosa.Cast
spirv.Tosa.Rescale
Also dialect and serialization round-trip tests have been added.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: a30a8e9474f75000d9746b5d02800d2e47903f44
https://github.com/llvm/llvm-project/commit/a30a8e9474f75000d9746b5d02800d2e47903f44
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
M flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-simd-linear.mlir
Log Message:
-----------
Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#183794)" (#188851)
Linear iteration variables were being treated as private. This fixes
one of the issues reported in #170784.
The regression reported in #188536 occurred because
LinearClauseProcessor was rewriting all basic blocks whose names
contained a given substring, including those that were not part of the
translated SIMD region.
This didn't cause problems before because linear variables were always
privatized, which doesn't happen with this change.
The issue is fixed by rewriting only the basic blocks that correspond to
the omp.simd operation.
Commit: 26e67aeefaed0392fbb365335dd3cc7d8f1f459a
https://github.com/llvm/llvm-project/commit/26e67aeefaed0392fbb365335dd3cc7d8f1f459a
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/test/MC/AArch64/armv8.9a-prfm-slc.s
M llvm/test/MC/AArch64/basic-a64-instructions.s
M llvm/test/MC/Disassembler/AArch64/armv8.9a-prfm-slc.txt
M llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
M llvm/test/tools/llvm-mca/AArch64/A64FX/A64-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Ampere/Ampere1B/basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A320-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A57-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Inputs/basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Olympus/basic-instructions.s
Log Message:
-----------
[AArch64] Always print the PRFM operation name (#182035)
When the encoding in the "Rt" field of the PRFM instruction maps to a
`<prfop>` value, the name of the prefetch operation should be printed
regardless of whether the associated feature (e.g. FEAT_PRFMSLC)
is available. If the feature is not available, the instruction is a nop.
All other encodings are printed as an immediate.
Commit: 76ed0ad3577e0c96406601d23552befb5a250c6a
https://github.com/llvm/llvm-project/commit/76ed0ad3577e0c96406601d23552befb5a250c6a
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
M llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
M llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
M llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
M llvm/unittests/DebugInfo/PDB/CMakeLists.txt
A llvm/unittests/DebugInfo/PDB/TpiStreamTest.cpp
Log Message:
-----------
[CodeView] Expose fallible type accessors in TpiStream (#188299)
`LazyRandomTypeCollection` already has fallible functions for
`getType(TypeIndex)` this exposes them in `TpiStream` and does a mini
cleanup in `LazyRandomTypeCollection`'s `GetType`.
Context: #186948 saw a crash in LLDB where we call `GetType` without
checking the type index before calling the method. In `GetType` we
called `error(std::move(EC))`, which ignores the error in release mode.
The cause was the type index `0x80000169` in an `S_LOCAL`.
We now do a soft fail in release mode - we already check the error, so
we might as well return an empty value.
Aside: The type index there feels really unusual, the type indices in
other records around the `S_LOCAL` were in a similar range. Almost looks
like some integer over-/underflow.
Commit: 5b010134abd44bfe7543f89bb636852a5fa09a3b
https://github.com/llvm/llvm-project/commit/5b010134abd44bfe7543f89bb636852a5fa09a3b
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/bit.h
Log Message:
-----------
[ADT] implement countl_zero_constexpr and reuse it for countl_zero & bit_width_constexpr (#189111)
Implement constant evaluated `countl_zero_constexpr` similar to
`countr_zero_constexpr` and use it for `countl_zero` and
`bit_width_constexpr`.
Also, `countl_zero` now use fast intrinsic path for `uint8/uint16` types
(use `sizeof(T) <= 4` instead `sizeof(T) == 4`).
Commit: 74e84c0cf5f1f0df9671090c2e73714f6730ec16
https://github.com/llvm/llvm-project/commit/74e84c0cf5f1f0df9671090c2e73714f6730ec16
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGException.cpp
A clang/test/CodeGen/async-exceptions.c
Log Message:
-----------
[Clang] Fix getTerminator() use for -fasync-exceptions (#189644)
Commit: 027475071e73bb72f874652c90f91f4ec483d578
https://github.com/llvm/llvm-project/commit/027475071e73bb72f874652c90f91f4ec483d578
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Support/APInt.cpp
M llvm/unittests/ADT/APIntTest.cpp
Log Message:
-----------
[Support][APint] Fix APInt::urem for edge case. Use `U.pVal[0] instead getZExtValue() (#189441)
Use `U.pVal[0]` instead of `getZExtValue()` in the
`APInt::urem(uint64_t)` power-of-two fast path. `getZExtValue()`
requires the entire APInt to fit into 64 bits, but this code can be
reached for multi-word values, which may trigger assertions
(`assert(getActiveBits() <= 64 && "Too many bits for uint64_t")`) or
otherwise mis-handle wide integers.
Also add simple test for edge cases.
Improvement for https://github.com/llvm/llvm-project/pull/189245
Commit: 935cf7ec2261a0d4c753f0efbbfc9ef3c9f0c409
https://github.com/llvm/llvm-project/commit/935cf7ec2261a0d4c753f0efbbfc9ef3c9f0c409
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/unittests/ADT/APIntTest.cpp
Log Message:
-----------
[Support][APint] Added more unit tests for clearBits / clearBitsSlowCase (#189434)
Commit: 33fc8fca62449130ae98ebbb95f1c33d74ee180d
https://github.com/llvm/llvm-project/commit/33fc8fca62449130ae98ebbb95f1c33d74ee180d
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Support/APInt.cpp
Log Message:
-----------
[Support][APint] Optimize fallback case in APInt::reverseBits (#189291)
Commit: 0ef10d62d756e15e4e49e0603da286bd144e88b7
https://github.com/llvm/llvm-project/commit/0ef10d62d756e15e4e49e0603da286bd144e88b7
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
M llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_cooperative_matrix/cooperative_matrix.ll
Log Message:
-----------
[SPIR-V] Fix OpCooperativeMatrixLengthKHR operand type (#189630)
related to #188703
Commit: d08ebbe8eba1dd2453a00ae0a0a6bd04b0d88d51
https://github.com/llvm/llvm-project/commit/d08ebbe8eba1dd2453a00ae0a0a6bd04b0d88d51
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
M clang/lib/Driver/CMakeLists.txt
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
M clang/tools/clang-ssaf-format/CMakeLists.txt
M clang/tools/clang-ssaf-linker/CMakeLists.txt
A clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/FrontendTool/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
Log Message:
-----------
[clang][ssaf] Add CallGraph summary and extractor (#188753)
rdar://170258016
Commit: e3b6426d737295c8d079c348235a40c94269d0d2
https://github.com/llvm/llvm-project/commit/e3b6426d737295c8d079c348235a40c94269d0d2
Author: Sam Parker <sam.parker at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/test/CodeGen/WebAssembly/strided-int-mac.ll
Log Message:
-----------
[NFC][WebAssembly] CodeGen test (#189626)
Commit: 14311077f809afa494ec73d160c6aa719fbea9f2
https://github.com/llvm/llvm-project/commit/14311077f809afa494ec73d160c6aa719fbea9f2
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/test/Transforms/InstSimplify/constant-fold-fp-denormal.ll
Log Message:
-----------
[LLVM][ConstantFold] Ensure scalar type is queried when determining denormal mode. (#189600)
Fixes https://github.com/llvm/llvm-project/issues/187928
Commit: 9f8fc658abf8548029d2e613279f17fd314fcc74
https://github.com/llvm/llvm-project/commit/9f8fc658abf8548029d2e613279f17fd314fcc74
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
Log Message:
-----------
[Passes] Remove some optsize checks (#189369)
LibCallsShrinkWrapPass and PGOMemOPSizeOpt already check for optsize
attributes internally, so there is no need to handle this in the pass
pipeline.
The context here is that I'd like to make the pass pipeline completely
independent of Os/Oz so that we know for sure that function-level
optsize/minsize attributes behave identically to the pipeline-level
option.
Commit: d5d32d3052d1156947d88787ac425a94a593c622
https://github.com/llvm/llvm-project/commit/d5d32d3052d1156947d88787ac425a94a593c622
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/TargetParser/Triple.cpp
Log Message:
-----------
Triple: Expose parseArch as a public method (#189648)
Clang has some code which is doing a direct arch name
string compare which should really be recognizing anything
usable as a triple architecture. It makes more sense to
directly parse the architecture than to construct a temporary
triple just to see what the parsed arch is.
For some reason the existing public parsing method is
getArchTypeForLLVMName. I'm not fully sure what the difference
between the 2 is supposed to be. My current guess is
getArchTypeForLLVMName is only supposed to handle the
canonical architecture name.
Commit: 10ea3deb8702af4a744f92d411513a6f3a5d6dfd
https://github.com/llvm/llvm-project/commit/10ea3deb8702af4a744f92d411513a6f3a5d6dfd
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/raise.h
M libc/src/signal/linux/CMakeLists.txt
M libc/src/signal/linux/raise.cpp
Log Message:
-----------
[libc][syscall] lift raise to syscall wrapper (#189507)
Commit: 7d0bf88581ff03feb3d9dcef6548cf22cd6d1dd9
https://github.com/llvm/llvm-project/commit/7d0bf88581ff03feb3d9dcef6548cf22cd6d1dd9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
Log Message:
-----------
OpenMP: Match all Triple recognized arch aliases (#189649)
This liberalizes match(device = {arch(some_arch)} to recognize
other names for some_arch.
Previously this compared against getArchTypeForLLVMName, which
only matches a subset of names (which seems to be the canonical
architecture names). There was a special case hack for "x86_64",
which is one of the "x86-64" aliases accepted by parseArch, but is
not the canonical architecture name.
Commit: 46dd9d6f522d3007b0c5fe121805e09fc58fe012
https://github.com/llvm/llvm-project/commit/46dd9d6f522d3007b0c5fe121805e09fc58fe012
Author: natanelh-mobileye <natanelh at mobileye.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/abds-neg.ll
M llvm/test/CodeGen/AArch64/abdu-neg.ll
M llvm/test/CodeGen/PowerPC/ppc64-P9-vabsd.ll
M llvm/test/CodeGen/RISCV/abds-neg.ll
M llvm/test/CodeGen/RISCV/abdu-neg.ll
Log Message:
-----------
[SDAG][abd] Combine abd of small types (#181538)
It is beneficial to combine abd of illegal, small types (types that get promoted to wider scalar size).
Commit: e7483770c71dc502462fa717623b808161b47ad6
https://github.com/llvm/llvm-project/commit/e7483770c71dc502462fa717623b808161b47ad6
Author: John Harrison <harjohn at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
M lldb/tools/lldb-dap/Handler/AttachRequestHandler.cpp
Log Message:
-----------
[lldb-dap] Correct attaching by program basename. (#188886)
Fixes an issue where attaching by program would fail if the program name
was a partial name (e.g. "foobar" instead of "/path/to/foobar").
We failed to create the target which caused the attach to fail. Now we
fallback to the dummy target and update to the real target after the
attach completes.
Here is an example launch configuration that fail:
```
{
"type": "lldb-dap",
"name": "Attach (wait)",
"request": "attach",
"program": "foobar",
"waitFor": true
},
```
Commit: 5a89da7d13e1e9e428db35c28e49c31df8f10996
https://github.com/llvm/llvm-project/commit/5a89da7d13e1e9e428db35c28e49c31df8f10996
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/siginfo_t.h
M libc/src/signal/linux/CMakeLists.txt
M libc/src/signal/linux/sigaction.cpp
M libc/src/signal/linux/signal_utils.h
Log Message:
-----------
[libc][signal] cleanup sigaction implementation (#189512)
Commit: aca71454e4f9b970fc3e4065456f277202030ae0
https://github.com/llvm/llvm-project/commit/aca71454e4f9b970fc3e4065456f277202030ae0
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/test/MC/AArch64/armv9.6a-pcdphint.s
Log Message:
-----------
[AArch64][llvm] Fix encoding for `stshh` instruction (#189588)
The encoding for `stshh` was incorrect, and has been fixed. This
has been checked against the Arm ARM.
Commit: efbd59631091fdf4ed3c0f33343ccd63dd896e00
https://github.com/llvm/llvm-project/commit/efbd59631091fdf4ed3c0f33343ccd63dd896e00
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/SOPInstructions.td
Log Message:
-----------
[AMDGPU][NFCI] CustomOperand to have a default type (#189584)
Most of the time, we should not need to care about the type at all, so
having it as a mandatory parameter confuses people and invites using
i1/i8/i16 where not necessary.
Commit: acc609bc296e9ddc3c1aff188a4411bc19802043
https://github.com/llvm/llvm-project/commit/acc609bc296e9ddc3c1aff188a4411bc19802043
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/23.rst
Log Message:
-----------
[libc++][NFC] Removed an EOL stray white space in Release Notes (#189654)
Commit: bb55c4bcfe30146b50def8bf21617647d6b0167a
https://github.com/llvm/llvm-project/commit/bb55c4bcfe30146b50def8bf21617647d6b0167a
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenerator.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
A clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
M clang/tools/cir-opt/cir-opt.cpp
M clang/utils/TableGen/CIRLoweringEmitter.cpp
Log Message:
-----------
[CIR] Implement member-pointer members lowering/CXX ABI lowering (#187327)
Record types with a member pointer as a member require quite a bit of
work to get to function properly. First, we have to wire them through
the AST->CIR lowering to make sure we properly represent them, and
represent them when they're zero initializable. We also have to properly
initialize elements when we're NOT zero initializable.
More importantly, we have to implement the CXXABILowering of record
types. Before this patch, we just assumed that all RecordTypes were
legal, since we didn't have the above lowering. A vast majority of this
patch is around getting RecordTypes to lower properly. There isn't
really a good way to test this without the FE changes, so it wasn't
split off.
We accomplish this in 2 phases: First, we transform each individual
record type along the way, giving it a new cxx-abi specific name. We
have to ensure that recursive evaluation works correctly, so we pulled
the solution from the LLVM-IR dialect for that. Secondly, we rename all
of the RecordType's back. This is safe only after we have 'removed' all
references to the untransformed RecordType due to the way RecordStorage
works, however it'll assert if we get this wrong. We do this second
stage to minimize the impact on tests as well as the IR: otherwise EVERY
RecordType would have their names changed. In addition to massive test
changes, this would be an ugly change everywhere.
One additional concern with RecordType lowering, is that it makes most
of RecordTypes potentially 'illegal'. Thus, any attribute that
'references' a record type is required to be transformed as well, so
this patch implements attribute legalization and transformation.
This quite a few NYIs around lowering of these, though most are probably
not really accessible.
Commit: 2c5af14e9faaf384e2a33544a6e506b928b5211e
https://github.com/llvm/llvm-project/commit/2c5af14e9faaf384e2a33544a6e506b928b5211e
Author: Sam Parker <sam.parker at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/CodeGen/WebAssembly/strided-int-mac.ll
Log Message:
-----------
[NFC][WebAssembly] More codegen tests (#189671)
Commit: 09c54a8f7afcd30c83862ab2792eacdb53c77a8f
https://github.com/llvm/llvm-project/commit/09c54a8f7afcd30c83862ab2792eacdb53c77a8f
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/TargetAndABI.h
M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
M mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
M mlir/lib/Dialect/SPIRV/IR/TargetAndABI.cpp
M mlir/test/Conversion/SCFToSPIRV/for.mlir
M mlir/test/Conversion/SCFToSPIRV/while.mlir
Log Message:
-----------
[mlir][SPIR-V] Support spirv.loop_control attribute on scf.for and scf.while (#189392)
Propagate the `spirv.loop_control` attribute from `scf.for` and
`scf.while` operations to the generated `spirv.mlir.loop` during
SCFToSPIRV conversion
Commit: ff4e229f8c758bc547d8bb42dbd9209306603f94
https://github.com/llvm/llvm-project/commit/ff4e229f8c758bc547d8bb42dbd9209306603f94
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/RISCV/dbg-tail-folding-by-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/predicated-reverse-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-uniform-store.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
Revert "[VPlan] Extract reverse mask from reverse accesses" (#189637)
Reverts llvm/llvm-project#155579
Assertion added triggers on some buildbots
clang:
/home/tcwg-buildbot/worker/clang-aarch64-sve2-vla/llvm/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp:3840:
virtual InstructionCost
llvm::VPWidenMemoryRecipe::computeCost(ElementCount, VPCostContext &)
const: Assertion `!IsReverse() && "Inconsecutive memory access should
not have reverse order"' failed.
PLEASE submit a bug report to
https://github.com/llvm/llvm-project/issues/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments:
/home/tcwg-buildbot/worker/clang-aarch64-sve2-vla/stage1.install/bin/clang
-DNDEBUG -mcpu=neoverse-v2 -mllvm -scalable-vectorization=preferred -O3
-std=gnu17 -fcommon -Wno-error=incompatible-pointer-types -MD -MT
MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/CMakeFiles/timberwolfmc.dir/finalpin.c.o
-MF CMakeFiles/timberwolfmc.dir/finalpin.c.o.d -o
CMakeFiles/timberwolfmc.dir/finalpin.c.o -c
/home/tcwg-buildbot/worker/clang-aarch64-sve2-vla/test/test-suite/MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/finalpin.c
Commit: 38c0f53a14f41989e7156698e779bb15a3fd95c7
https://github.com/llvm/llvm-project/commit/38c0f53a14f41989e7156698e779bb15a3fd95c7
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/fma-conversion-multi-use-guard.ll
Log Message:
-----------
[SLP][NFC] Add a test for incorrect fma-conversion for fmuls with multi uses
Commit: e891812cacde0c6561b73173d24d37309aeb93dc
https://github.com/llvm/llvm-project/commit/e891812cacde0c6561b73173d24d37309aeb93dc
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandVectorPredication.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmaximum-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fminimum-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
Log Message:
-----------
[RISCV] Remove codegen for vp_minimum, vp_maximum (#189550)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off two intrinsics from #179622.
Commit: 67c34294a6b3e161a84ed4697c326d04d651d7ff
https://github.com/llvm/llvm-project/commit/67c34294a6b3e161a84ed4697c326d04d651d7ff
Author: AidinT <at.aidin at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/docs/Interfaces.md
M mlir/docs/Tools/mlir-reduce.md
Log Message:
-----------
[mlir][docs] dialect interfaces and mlir reduce documentation fix (#189258)
Two modifications:
1. Reflect newly added dialect interface methods in the documentation
2. Remove the bug in the `MLIR Reduce` documentation
Commit: b66d98afb9e09864f5857ab17ec2e6ee344ee31d
https://github.com/llvm/llvm-project/commit/b66d98afb9e09864f5857ab17ec2e6ee344ee31d
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterSwift.txt
Log Message:
-----------
[lldb][bytecode] Improvements to compiler generated Swift (#189425)
Following feedback from @benrimmington in
https://github.com/apple/swift-collections/pull/607, this changes the
following:
1. Uses `objectFormat()` compiler conditional instead of `os()` (see
"Cross-platform object file format support" in
[SE-0492](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0492-section-control.md#cross-platform-object-file-format-support))
2. Uses a raw identifier for the generated Swift symbol name, instead of
an escaped name (see
[SE-0451](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0451-escaped-identifiers.md))
Commit: 720b8ea893da2168121622bbfb536a78b35ffa32
https://github.com/llvm/llvm-project/commit/720b8ea893da2168121622bbfb536a78b35ffa32
Author: David Truby <david.truby at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/CMakeLists.txt
M llvm/runtimes/CMakeLists.txt
M openmp/runtime/CMakeLists.txt
A openmp/runtime/cmake/arm64x.cmake
Log Message:
-----------
[openmp] Add support for Arm64X to libomp (#176157)
This patch allows building libomp.dll and libomp.lib as Arm64X binaries
containing both arm64 and arm64ec code and useable from applications
compiled for both architectures.
Commit: 4087c5f30d133087b7706db80e27b2d35dd334af
https://github.com/llvm/llvm-project/commit/4087c5f30d133087b7706db80e27b2d35dd334af
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
Log Message:
-----------
[lldb][bytecode] Add append mode for compiler output (#189693)
Commit: 6477f3aa166b0af1677cd36300097f088bdff510
https://github.com/llvm/llvm-project/commit/6477f3aa166b0af1677cd36300097f088bdff510
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp
M mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir
Log Message:
-----------
[mlir][ArithToSPIRV] Fix invalid SPIRV and crashes when lowering integer ops on i1 (#189239)
Several arith integer operations on i1 / vector<Ni1> types were either
crashing or producing invalid SPIRV. The i1 type maps to spirv.bool in
SPIRV, not to a SPIRV integer — so standard integer SPIRV ops
(spirv.IAdd, spirv.UDiv, spirv.GLSMax, etc.) are illegal on it.
Add dedicated boolean patterns for all affected arith integer ops, each
with benefit=2 to take priority over the generic elementwise patterns.
The semantics for i1 follow from treating true = 1 / false = 0 with
two's complement wrapping:
- addi, subi → spirv.LogicalNotEqual (XOR on bits)
- muli, divui, divsi → spirv.LogicalAnd
- remui, remsi, shli, shrui → spirv.LogicalAnd(a, spirv.LogicalNot(b))
(a & ~b)
- shrsi → identity (arithmetic right shift of a 1-bit signed value is
always the input)
- maxui, minsi → spirv.LogicalOr (unsigned max / signed min treats true
as larger)
- maxsi, minui → spirv.LogicalAnd (signed max / unsigned min treats
false as larger)
Fixes #61162
Assisted-by: Claude Code
Commit: 728de262fcc0320b7dabf2a1ac52940b4fe1f7c0
https://github.com/llvm/llvm-project/commit/728de262fcc0320b7dabf2a1ac52940b4fe1f7c0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/neon-abd.ll
Log Message:
-----------
[NFC][AArch64] neon-abd.ll - remove unnecessary entry labels to reduce diff size in #186659 (#189690)
Commit: c98e4386fc45e35ceacb083f6677622f54f656a9
https://github.com/llvm/llvm-project/commit/c98e4386fc45e35ceacb083f6677622f54f656a9
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/mlir-tblgen/BUILD.bazel
Log Message:
-----------
[Bazel] Port b544ad57039588d0fe24a1f512202cc5c0bd3a67
Commit: fce3a66f5e2f247890c57ac01a2c9847358c0f27
https://github.com/llvm/llvm-project/commit/fce3a66f5e2f247890c57ac01a2c9847358c0f27
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/mod-file.h
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/Inputs/modfile84.f90
A flang/test/Semantics/modfile84.f90
Log Message:
-----------
[flang] Preserve UseErrorDetails in module files (#189423)
When the same name is USE-associated with two or more distinct ultimate
symbols, and they are not both generic procedure interfaces, it's not an
error unless the name is actually referenced in the scope. But when the
scope is itself a module or submodule, our module files don't preserve
the error for later diagnosis -- instead, the UseErrorDetails symbol
that serves as a "poison pill" in case of later use is discarded when
the module file is generated. So emit additional USE statements to the
module file so that a UseErrorDetails symbol is created anew when the
module file is read.
Commit: 7ff0dc4b9fdee840de0901e969ea11880a28d433
https://github.com/llvm/llvm-project/commit/7ff0dc4b9fdee840de0901e969ea11880a28d433
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenMP/FunctionFiltering.cpp
M flang/lib/Optimizer/OpenMP/LowerWorkdistribute.cpp
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
Log Message:
-----------
[mlir][OpenMP] Add iterator support to depend clause (#189090)
Extend the depend clause to support `!omp.iterated<Ty>` handles
alongside plain depend vars, so the IR can represent both forms.
Assisted with copilot
This is part of feature work for
https://github.com/llvm/llvm-project/issues/188061
Commit: 85d7927c08b5563f050d56d2bf88a6c152489c41
https://github.com/llvm/llvm-project/commit/85d7927c08b5563f050d56d2bf88a6c152489c41
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
R flang/test/Lower/OpenMP/Todo/depend-clause.f90
A flang/test/Lower/OpenMP/depend-iterator.f90
Log Message:
-----------
[Flang][OpenMP] Support iterator modifier in depend clause (#189412)
Lower the iterator modifier on depend clause to omp.iterator. Iterated
depend objects emit `!omp.iterated<!llvm.ptr>` by using
`getDataOperandBaseAddr` to generate base address and
`genIteratorCoordinate` to get the addr+offset. The non-iterated objects
in depend clause still use existing lowering path.
This patch is part of feature work for #188061.
Assisted with copilot.
Commit: 9e77a4593526a04cd2308a724039e94d8fbe9445
https://github.com/llvm/llvm-project/commit/9e77a4593526a04cd2308a724039e94d8fbe9445
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[mlir][OpenMP][NFC] Refactor fillAffinityIteratorLoop (#189418)
Extract affinity-specific logic from fillAffinityIteratorLoop into a
callback so that the iterator loop codegen logic can be shared with
other clauses such as depend clause and target clause.
Commit: 65720adc15da80a65817a2bed3a506cf099d2aa7
https://github.com/llvm/llvm-project/commit/65720adc15da80a65817a2bed3a506cf099d2aa7
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/GPU/Pipelines/GPUToXeVMPipeline.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Switch to the new sg to wi pass (#188627)
This PR has changes required to switch the pipeline to use the new sg to
wi pass.
Commit: d47190223930ce8379afa2a183ed9c407414b1a3
https://github.com/llvm/llvm-project/commit/d47190223930ce8379afa2a183ed9c407414b1a3
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
Log Message:
-----------
[CIR] Implement reference type of record ptr in initCatchParam (#185214)
Implement the reference type of record ptr in initCatchParam
Commit: 0e0a0458ce3aeccb27c677b15abe02e72cf18a50
https://github.com/llvm/llvm-project/commit/0e0a0458ce3aeccb27c677b15abe02e72cf18a50
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Port d08ebbe8eba1dd2453a00ae0a0a6bd04b0d88d51
Commit: c4e6cf0abff628f9c018428e0d4beed8788efdf9
https://github.com/llvm/llvm-project/commit/c4e6cf0abff628f9c018428e0d4beed8788efdf9
Author: Zhen Wang <37195552+wangzpgi at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang-rt/lib/cuda/registration.cpp
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Runtime/CUDA/registration.h
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFOpConversionLate.cpp
M flang/test/Fir/CUDA/cuda-code-gen.mlir
M flang/test/Fir/CUDA/cuda-constructor-2.f90
M flang/test/Fir/CUDA/cuda-device-address.mlir
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
[flang][cuda] Support non-allocatable module-level managed variables (#188526)
Add support for non-allocatable module-level CUDA managed variables
using pointer indirection through a companion global in
__nv_managed_data__. The CUDA runtime populates this pointer with the
unified memory address via __cudaRegisterManagedVar and
__cudaInitModule.
1. Create a .managed.ptr companion global in the __nv_managed_data__
section and register it with _FortranACUFRegisterManagedVariable
(CUFAddConstructor.cpp)
2. Call __cudaInitModule after registration to populate the managed
pointer (registration.cpp)
3. Annotate managed globals in gpu.module with nvvm.managed for PTX
.attribute(.managed) generation (cuda-code-gen.mlir)
4. Suppress cuf.data_transfer for assignments to/from non-allocatable
module managed variables, since cudaMemcpy would target the shadow
address rather than the actual unified memory (tools.h)
5. Preserve cuf.data_transfer for device_var = managed_var assignments
where explicit transfer is still required
Commit: 9c64cb6dca0693b8ae873ba6e40025a554d15c39
https://github.com/llvm/llvm-project/commit/9c64cb6dca0693b8ae873ba6e40025a554d15c39
Author: Medha Tiwari <medhavns1 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/LowerEmuTLS.cpp
M llvm/test/CodeGen/AArch64/emutls.ll
A llvm/test/CodeGen/ARM/emutls-alignment.ll
Log Message:
-----------
Fix emulated TLS alignment for large variables (#171037)
Fix emulated TLS alignment for larger variables (>= 32 bytes) to use
preferred alignment.
Fixes #167219
Commit: 8a5e029072f75d6097031f9f102483881027a392
https://github.com/llvm/llvm-project/commit/8a5e029072f75d6097031f9f102483881027a392
Author: Steven Perron <stevenperron at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/test/SemaHLSL/Texture2D-mips-errors.hlsl
Log Message:
-----------
[HLSL] Fix test writing to an output files (#189684)
The Texture2D-mips-errors.hlsl test was writing it output to a file, but
that is not needed.
Commit: f74f32b529c35531198621fd104cde5d2cf77e0c
https://github.com/llvm/llvm-project/commit/f74f32b529c35531198621fd104cde5d2cf77e0c
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/python-bytecode.test
Log Message:
-----------
[lldb][bytecode] Remove "Generated with" comment (#189704)
In most cases, some other script/tool will call the compiler, and it's
the invocation of that script that ought to be documented in the output.
Commit: e04f8bb754bb783279822cb77ff3505c073b7b1d
https://github.com/llvm/llvm-project/commit/e04f8bb754bb783279822cb77ff3505c073b7b1d
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGenOpenMP/omp-module-attrs.c
Log Message:
-----------
[CIR] Add OMP module attributes to MLIR module (#189394)
This patch adds OpenMP attributes to the MLIR module op used to
communicate various settings e.g. thread options and offloading
information.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 293623ce99d4d6819378311c1506c5ab08d1d860
https://github.com/llvm/llvm-project/commit/293623ce99d4d6819378311c1506c5ab08d1d860
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
A llvm/test/CodeGen/X86/known-fpclass.ll
Log Message:
-----------
[X86] Add initial computeKnownFPClass test case (#189707)
Example test case for #137943 / #189583 / #189585 - failure to recognise ISD::SQRT is never neginf
Commit: ec45f95799f39f92ec22828abb9be9cd80bd0f1f
https://github.com/llvm/llvm-project/commit/ec45f95799f39f92ec22828abb9be9cd80bd0f1f
Author: lntue <lntue at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/src/__support/CMakeLists.txt
M libc/src/__support/HashTable/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/setjmp/aarch64/CMakeLists.txt
M libc/src/stdio/CMakeLists.txt
M libc/src/stdio/printf_core/CMakeLists.txt
M libc/src/stdio/scanf_core/CMakeLists.txt
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/scanf_core/CMakeLists.txt
M libc/test/src/stdlib/CMakeLists.txt
Log Message:
-----------
[libc] Add libc_set_definition and libc_add_definition to properly pass definitions to MSVC. (#189664)
Commit: 42d5fdd47fc62169671f84cf8896c80e29a1cb15
https://github.com/llvm/llvm-project/commit/42d5fdd47fc62169671f84cf8896c80e29a1cb15
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/addcarry.ll
M llvm/test/CodeGen/X86/subcarry.ll
Log Message:
-----------
[X86] Add i686 32-bit coverage to addcarry.ll/subcarry.ll tests (#189713)
Inspired by #189018
Commit: 28efe7b554f8d9fbd2405542c27919a612d8288e
https://github.com/llvm/llvm-project/commit/28efe7b554f8d9fbd2405542c27919a612d8288e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
Log Message:
-----------
OpenMP: Reimplement getOffloadArch (#189561)
This function made no sense at all. It was scanning through
the feature map looking for something that parsed as an OffloadArch.
Directly compute the arch from the target device.
I don't know why there isn't just an OffloadArch in TargetOpts,
this shouldn't really require parsing.
Commit: be9b162a795ca362e9dceb945ed2e2618de8cf18
https://github.com/llvm/llvm-project/commit/be9b162a795ca362e9dceb945ed2e2618de8cf18
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-vectors-complex.ll
Log Message:
-----------
[LoadStoreVectorizer] Add tests for mixed-type vectorization (#189716)
Precommitting this test to reflect impact of the mixed-type
vectorization PR #177908. NFC.
Commit: 5c71351cf79471845aaa94fff187b9c9d0ac145f
https://github.com/llvm/llvm-project/commit/5c71351cf79471845aaa94fff187b9c9d0ac145f
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/source/Core/Module.cpp
Log Message:
-----------
[lldb][Module] Add logging when script import fails (#189695)
We already log the import attempt. This patch logs the failure to load
the script since otherwise the log may be misleading. Didn't think it
was worth adding a test-case for this.
Commit: 07893e30f4a64a176601fe2ab1e2d327e19dd1e1
https://github.com/llvm/llvm-project/commit/07893e30f4a64a176601fe2ab1e2d327e19dd1e1
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV] Fix typo STD_RISCVPackedShift->SDT_RISCVPackedShift. NFC (#189678)
Commit: 49dbeca38d8faeef42d7cb03db649fbfb4c195c4
https://github.com/llvm/llvm-project/commit/49dbeca38d8faeef42d7cb03db649fbfb4c195c4
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
A clang/test/CIR/CodeGen/return-in-if-with-cleanups.cpp
Log Message:
-----------
[CIR] Fix missing terminators in regions with cleanup (#187604)
When a cleanup scope was created within an if operation's then or else
region and the source scope ended with a return, we would fail to
terminate the region following the cleanup scope, which surrounded the
return operation, resulting in an MLIR verification error. This change
forces the addition of terminators in the if's then and else regions.
Commit: a7438859265548c8443436d9c0c996338976ad85
https://github.com/llvm/llvm-project/commit/a7438859265548c8443436d9c0c996338976ad85
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/throws.cpp
Log Message:
-----------
[CIR] Add support for throwing destructed type (#188644)
This adds handling for throwing an object of a type that has a
non-trivial destructor.
Commit: ccfba7736f2d39434ae768ae9c9c0165b1959c4b
https://github.com/llvm/llvm-project/commit/ccfba7736f2d39434ae768ae9c9c0165b1959c4b
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
A clang/test/CIR/CodeGen/delegating-ctor-exceptions.cpp
Log Message:
-----------
[CIR] Add support for cleanups after calling a delegating ctor (#189513)
This adds support for calling the destructor of types with a non-trivial
destructor if the initialization throws an exception after a delegating
constructor has been called.
Commit: 282fb05292cab555010a645cef88d62c846511d4
https://github.com/llvm/llvm-project/commit/282fb05292cab555010a645cef88d62c846511d4
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/GlobalObject.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/Value.h
M llvm/include/llvm/Support/Alignment.h
M llvm/lib/IR/Globals.cpp
M llvm/lib/IR/LLVMContextImpl.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/Metadata.cpp
Log Message:
-----------
[IR] Store Metadata attachments in vector (#189551)
Metadata is accessed rather often, so store metadata attachments in a
vector indexed by a number instead of a map from Value*; inside the
vector, the metadata attachments form a linked list. Instruction and
GlobalObject store the first metadata attachment index directly. Care is
taken that the offset in the structures is identical.
In addition to substantial performance improvements, this also leads to
a measurable reduction in memory usage -- several instructions have
metadata in debug builds (debug metadata) and release builds (primarily
TBAA), causing the hash table to become quite large.
In Instruction, this uses 4 padding bytes (it might be debatable whether
this is the best use for this space); GlobalObject grows by 4 bytes.
However, should we want grow Instruction by 8 bytes in the future, the
additionally used memory will be ~similar to the memory saved here, so
we could do so without causing a release-to-release memory regression.
This also makes the HasMetadata bit redundant, cleanup will follow
separately -- this is a bit annoying, because this should be inline, but
Value can't access subclass members.
Commit: 9e6968b502bc75803238c10a234e935464142cc1
https://github.com/llvm/llvm-project/commit/9e6968b502bc75803238c10a234e935464142cc1
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
Log Message:
-----------
[CIR][NFC] Add test for catch with MemberPointer type (#185217)
Add test for catch with MemberPointer type
Commit: af6521fb3a36149cd69d83bfdf87ed26e59a14a2
https://github.com/llvm/llvm-project/commit/af6521fb3a36149cd69d83bfdf87ed26e59a14a2
Author: Srividya Sundaram <srividya.sundaram at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/include/clang/Driver/SyclInstallationDetector.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/SYCL.cpp
A clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
R clang/test/Driver/Inputs/SYCL/libsycl.ll
M clang/test/Driver/link-device-code.test
M clang/test/Driver/sycl-offload-jit.cpp
Log Message:
-----------
[Driver] Update SYCL runtime library name and path for target-specific directories (#189053)
This patch updates the Clang driver to support the renamed SYCL runtime
library (libsycl.so → libLLVMSYCL.so) and its new location in
target-specific directories. These changes align with PR
#[188770](https://github.com/llvm/llvm-project/pull/188770), which
standardizes the SYCL runtime library naming and directory structure to
match other LLVM runtime libraries.
**Changes**
**Library Naming**
- **Old**: libsycl.so
- **New**: libLLVMSYCL.so
**Directory Structure**
Both build and install directories now use target-specific
subdirectories:
- **Old:** lib/libsycl.so
- **New:** lib/target-triple/libLLVMSYCL.so
For example, on x86_64-unknown-linux-gnu:
- **Old**: build/lib/libsycl.so → install/lib/libsycl.so
- **New**: build/lib/x86_64-unknown-linux-gnu/libLLVMSYCL.so →
install/lib/x86_64-unknown-linux-gnu/libLLVMSYCL.so
Commit: 899a78cbc4b9422e5567f2bfe4f563efed119756
https://github.com/llvm/llvm-project/commit/899a78cbc4b9422e5567f2bfe4f563efed119756
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M offload/test/offloading/target_critical_region.cpp
Log Message:
-----------
[offload][lit] Disable target_critical_region.cpp on Intel GPU (#189682)
Already disabled on other GPU platforms and sporadically failing on our
builder, so this test seems not be doing too hot.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 8af44b7867747cd6942688eef5c5324ef859428b
https://github.com/llvm/llvm-project/commit/8af44b7867747cd6942688eef5c5324ef859428b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Fuchsia.cpp
Log Message:
-----------
clang: Avoid some conversions of Triple to std::string (#189728)
Commit: c6d770fece415d7e8a55dcd495fd24862b3b1ca6
https://github.com/llvm/llvm-project/commit/c6d770fece415d7e8a55dcd495fd24862b3b1ca6
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
Log Message:
-----------
[flang] Fix FIRToMemRef index computation for array_coor with slice and shape_shift (#189496)
Use shift instead of sliceLb only when the array_coor has an explicit
slice (indicesAreFortran case). When the slice comes from an embox,
the indices are 1-based section indices and must subtract 1.
Commit: 78c5d68029c0507123de28ecbe242490ee487b16
https://github.com/llvm/llvm-project/commit/78c5d68029c0507123de28ecbe242490ee487b16
Author: PiJoules <leonardchan at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_errors.cpp
M compiler-rt/lib/asan/asan_errors.h
M compiler-rt/lib/asan/asan_flags.inc
M compiler-rt/lib/asan/asan_report.cpp
M compiler-rt/lib/asan/asan_report.h
A compiler-rt/test/asan/TestCases/Linux/free_aligned_sized_mismatch.cpp
A compiler-rt/test/asan/TestCases/Linux/free_sized_mismatch.cpp
Log Message:
-----------
[asan] Add size/alignment checks for free_[aligned_]sized (#189216)
Historically, alignment and size weren't taken into account when freeing
allocations since `free` just takes a pointer. With `free_sized` and
`free_aligned_sized`, we can do these size and alignment checks in asan
now. This adds a new report type specifically for these functions.
Checking is hidden behind a new env flag `free_size_mismatch` which is
enabled by default, but downstream users can opt out of it.
The bulk of this PR was generated by gemini but thoroughly reviewed and
edited by me to the best of my ability.
Commit: 05dd3ae10cf26c22eba2e23ecb4e043b9c2576eb
https://github.com/llvm/llvm-project/commit/05dd3ae10cf26c22eba2e23ecb4e043b9c2576eb
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
A llvm/test/Transforms/InstCombine/printf-puts-not-emittable.ll
Log Message:
-----------
[SimplifyLibCalls] Prevent orphaned global string literals (#189502)
When `printf` is simplified to `puts`, `SimplifyLibCalls` would eagerly
create a global string for the argument before checking if `puts` is
emittable. If `puts` is not emittable (e.g. because it's an unextracted
bitcode libfunc), the optimization aborts, leaving an orphaned global
string in the module. Under expensive checks, this triggers a fatal
error because the function pass modified the module without reporting
it.
This change defers the creation of the global string until after
checking if `puts` is emittable.
(This PR was created with the help of Gemini CLI.)
Commit: da173bfbf5a0bcf9450b15998ba454f4a4fbf1f6
https://github.com/llvm/llvm-project/commit/da173bfbf5a0bcf9450b15998ba454f4a4fbf1f6
Author: Laxman Sole <lsole at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
M llvm/lib/Target/NVPTX/NVPTXDwarfDebug.cpp
M llvm/lib/Target/NVPTX/NVPTXDwarfDebug.h
M llvm/test/DebugInfo/NVPTX/debug-addr-space.ll
M llvm/test/DebugInfo/NVPTX/debug-name-table.ll
Log Message:
-----------
[NVPTX] Do not emit .debug_pubnames and .debug_pubtypes for NVPTX backend (#187328)
This change adds a mechanism to stop emitting `.debug_pubname`,
`.debug_pubtypes` sections for a particular target.
This is particularly useful for cases where IR is generated by frontends
that do not explicitly disable these sections (as `Clang` does for
`NVPTX`), but still use `llc` for code generation.
Currently, only `NVPTX` uses this to disable these sections.
Commit: 6669fa5806c5fbe607abaa307cb06ce89dd972db
https://github.com/llvm/llvm-project/commit/6669fa5806c5fbe607abaa307cb06ce89dd972db
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/IPO/ExpandVariadics.cpp
A llvm/test/CodeGen/SPIRV/function/variadics-lowering-builtin-substr-in-name.ll
M llvm/test/CodeGen/SPIRV/printf.ll
Log Message:
-----------
[SPIR-V] Don't lower builtin variadic functions (#188517)
In https://github.com/llvm/llvm-project/pull/178980 I tried to remove
the special handling for `printf`, but the fix was wrong, the pass
expects that `printf` abides by the variadic ABI (single buffer passed
in, args extracted by caller), which isn't how it works.
However the root issue is with any builtin, they are just replaced
directly with instructions, and the only place that could generate code
to honor the variadic ABI would bei in the SPIR-V backend, and it would
be pretty complicated for pretty much no benefit.
It's much simpler to teach the pass to skip certain functions, as we did
before, but this time skip all SPIR-V builtin.
---------
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: de84be21ec500a201ede42bc74b51f2913fe8266
https://github.com/llvm/llvm-project/commit/de84be21ec500a201ede42bc74b51f2913fe8266
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyInstructionSelector.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyLegalizerInfo.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyRegisterBankInfo.cpp
A llvm/test/CodeGen/WebAssembly/GlobalISel/instruction-select/bitwise.mir
A llvm/test/CodeGen/WebAssembly/GlobalISel/instruction-select/int-arithmetic.mir
A llvm/test/CodeGen/WebAssembly/GlobalISel/legalizer/add.mir
A llvm/test/CodeGen/WebAssembly/GlobalISel/regbankselect/bitwise.mir
A llvm/test/CodeGen/WebAssembly/GlobalISel/regbankselect/int-arithmetic.mir
Log Message:
-----------
[WebAssembly][GlobalISel] `G_ADD` (and in-reg ext/trunc related) legalization & selection (#183694)
This PR enables `G_ADD` and immediate dependencies (relavent ext and
trunc related ops) to be fully legalized and selected.
The most important change made is getting the boilerplate for
RegBankSelect working.
Split from #157161.
Commit: bf76fa758247c712b1b4879e0f0b17b5450ff141
https://github.com/llvm/llvm-project/commit/bf76fa758247c712b1b4879e0f0b17b5450ff141
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
Log Message:
-----------
[AtomicExpandPass][NFC] Refactor processAtomicInstr to be more readable (#186547)
While working on
https://discourse.llvm.org/t/rfc-add-elementwise-modifier-to-atomicrmw/90134/5
I found this `processAtomicInstr` to be a little hard to read, with
casing on the instruction type all over the place. I think it reads
nicer to just case on the instruction type once.
Commit: 626f942073b93b427e1c41e22c297becaa7bb9ae
https://github.com/llvm/llvm-project/commit/626f942073b93b427e1c41e22c297becaa7bb9ae
Author: Alex Langford <alangford at apple.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
Log Message:
-----------
[lldb] Increase timeout on lldbutil.wait_for_file_on_target (#189471)
I've been tracking sporadic timeouts waiting for a file to appear on
macOS buildbots (and occasionally local development environments). I
believe I've tracked it down to a regression in process launch
performance in macOS.
What I noticed is that running multiple test suites simultaneously
almost always triggered these failures and that the tests were always
waiting on files created by the inferior. Increasing this timeout no
longer triggers the failures on my loaded machine locally.
This timeout moves from about 16 seconds of total wait time to about 127
seconds of total wait time. This may feel a bit extreme, but this is a
performance issue. While I was here, I cleaned up logging code I was
using to investigate the test failures.
rdar://172122213
Commit: cb32b8bffbf32fd7936808ad260764c28e3197db
https://github.com/llvm/llvm-project/commit/cb32b8bffbf32fd7936808ad260764c28e3197db
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
A llvm/test/Transforms/LoopUnroll/RISCV/runtime-unroll-max-trip-count.ll
M llvm/test/Transforms/LoopUnroll/debug.ll
M llvm/test/Transforms/LoopUnroll/runtime-small-upperbound.ll
Log Message:
-----------
[LoopUnrollPass] Don't pre-set `UP.Count` before legality checks in `computeUnrollCount()` (#185979)
We currently set `UP.Count` to `TripCount` and `MaxTripCount` prior to
full and upper bound unrolling, respectively. This was likely done to
ensure that calls to `UCE.getUnrolledLoopSize(UP)` use the appropriate
trip count. However, we can use `UCE.getUnrolledLoopSize(UP,
FullUnrollTripCount)` instead.
To prevent unintentional unrolling, we set `UP.Count = 0` when
early-exiting `computeUnrollCount()`. (Note: this does not occur
[here](https://github.com/llvm/llvm-project/blob/eb687fb10613573b5d60dfbbb146e15f07809d82/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1190-L1198).
This seems like a bug.)
We only perform early exits when evaluating runtime unrolling. At that
point, [we know `TripCount` is
false](https://github.com/justinfargnoli/llvm-project/blob/3fb31e7b06f6f6d08c7310506a2f363d198a6790/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1157-L1158),
and thus we could not have leaked `TripCount`. However, we [could've
leaked
`MaxTripCount`](https://github.com/llvm/llvm-project/blob/eb687fb10613573b5d60dfbbb146e15f07809d82/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1102-L1110).
It seems like:
https://github.com/llvm/llvm-project/blob/eb687fb10613573b5d60dfbbb146e15f07809d82/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1181-L1188
was supposed to handle this case. However:
- It uses `<` instead of `<=`. This breaks the existing convention
[[1]](https://github.com/llvm/llvm-project/blob/eb687fb10613573b5d60dfbbb146e15f07809d82/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L869)
[[2]](https://github.com/llvm/llvm-project/blob/eb687fb10613573b5d60dfbbb146e15f07809d82/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1103)
for how `UP.MaxUpperBound` is treated.
- It's ignored when a target sets `UP.Force = true`.
Thus:
- When `UP.Force == false`, we leak `MaxTripCount` into runtime
unrolling when `MaxTripCount && (UP.UpperBound || MaxOrZero) &&
MaxTripCount == UP.MaxUpperBound`
- When `UP.Force == true`, we leak `MaxTripCount` into runtime unrolling
when `MaxTripCount && (UP.UpperBound || MaxOrZero) && MaxTripCount <=
UP.MaxUpperBound`.
This PR:
- Uses `UCE.getUnrolledLoopSize(UP, FullUnrollTripCount)`
- Stops setting `TripCount` and `MaxTripCount` prior to calling
`shouldFullUnroll()`
- Removes the `UP.Count = 0` safeguards
- Swaps `<` with `<=`, to address the `UP.Force == false` case
- Adds a test to document the behavior change (no longer leaking
`MaxTripCount`) in the `UP.Force == true` case.
Commit: cd8a8e953adb6f7ef000d8f67be21cb362d6dc9c
https://github.com/llvm/llvm-project/commit/cd8a8e953adb6f7ef000d8f67be21cb362d6dc9c
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
Log Message:
-----------
[CIR] Add OpenMP and OpenACC dialect dependencies (#189726)
This patch adds dependencies on OpenMP and OpenACC dialects to prevent
link errors when compiling with shared libraries.
Commit: 284e5d79cdf292f4693ee835cbcbb6760ac63889
https://github.com/llvm/llvm-project/commit/284e5d79cdf292f4693ee835cbcbb6760ac63889
Author: Jacob Lambert <jacob.lambert at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/BinaryFormat/MsgPackDocument.h
M llvm/lib/BinaryFormat/MsgPackDocument.cpp
M llvm/unittests/BinaryFormat/MsgPackDocumentTest.cpp
Log Message:
-----------
[MsgPackDocument]: Fix DocNode comparison and add copyNode (#189436)
Fix two bugs in DocNode's comparison operators and add a new
Document::copyNode() method:
1. operator== was implemented via operator<, which hits llvm_unreachable
for Array/Map nodes. Implement operator== directly with recursive value
comparison for all node types.
2. operator< compared KindAndDoc pointers, causing cross-document nodes
of the same type and value to silently produce wrong results. Compare by
kind then by value instead.
3. Add Document::copyNode() for deep copying nodes between Documents
with independent memory ownership.
Commit: c97561ced12d8c7bed9f2fe07733a971247333c7
https://github.com/llvm/llvm-project/commit/c97561ced12d8c7bed9f2fe07733a971247333c7
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
A llvm/test/CodeGen/SPIRV/opencl/nofpclass-fastmath-kernel-pre16.ll
A llvm/test/CodeGen/SPIRV/opencl/nofpclass-fastmath-non-extinst.ll
A llvm/test/CodeGen/SPIRV/opencl/nofpclass-fastmath.ll
Log Message:
-----------
[SPIR-V] Derive FPFastMathMode from nofpclass attributes on OpenCL builtins (#188984)
Commit: 6aa2e496489d6309611b3d3c1ec9d0efd6cc81dd
https://github.com/llvm/llvm-project/commit/6aa2e496489d6309611b3d3c1ec9d0efd6cc81dd
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Parse/ParseDeclCXX.cpp
A clang/test/Parser/decltype-gh188014.cpp
Log Message:
-----------
[clang][Parser] Fix an assertion during decltype error recovery with missing ; (#188123)
Fix an assertion failure in `ParseDecltypeSpecifier` when parsing
malformed expressions e.g. `decltype(union { ... )`.
When a class/union definition is missing a semicolon, clang's error
recovery may synthetically set the current token to `tok::semi` without
actually inserting it into the preprocessor's backtrack cache, see
https://github.com/llvm/llvm-project/blob/9096c9cda3df4d09c9c6e4efa1a07a232a9ac8f8/clang/lib/Parse/ParseDeclCXX.cpp#L1920-L1927
If `ParseDecltypeSpecifier` later encounters this synthetic semicolon
during its own error recovery, its attempts to revert the cache and
re-lex the tokens will lead to reading unexpected tokens from the
historical stream, failing the strict
`Tok.is(tok::semi)` assertion.
This patch removes this assertion, acknowledging that during invalid
parses and error recovery, the preprocessor's cache state may not
strictly align with the parser's simulated state.
Fixes: #188014
Commit: fd1a89163ab76c26cf3bfd2e822905cc55eeef97
https://github.com/llvm/llvm-project/commit/fd1a89163ab76c26cf3bfd2e822905cc55eeef97
Author: Florian Mayer <fmayer at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/Serialization/ASTReader.cpp
Log Message:
-----------
[NFC] [clang] swap parameters to checkTargetOptions (#187608)
This is the correct order according to the function prototype.
This should be NFC, because for PCH, AllowCompatibleDifferences
is always false: it is only used in isAcceptableASTFile, which
calls readASTFileControlBlock, which explicitely passes false.
We explicitely pass in `nullptr` for Diag, so the incorrect error
message isn't printed.
Commit: f9ded0e30a24d5faf4c810888da1837b41cbe718
https://github.com/llvm/llvm-project/commit/f9ded0e30a24d5faf4c810888da1837b41cbe718
Author: Artemiy <notlebedev at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
A clang/test/CIR/IR/string-trailing-zeros.cir
Log Message:
-----------
[CIR] Fix incorrect ConstArrayAttr trailing_zeros parsing (#188742)
Closes #187699 .
Fix incorrect parsing of `ConstArrayAttr`. `parse` method incorrectly
used type of `elts` parameter as type of the whole array. This means
that when reading back text or bytecode clangir files attribute did not
have correct type and correct `trailingZerosNum`. Type was always of
inner `elts`, meaning smaller then actual type if any trailing zeros
were present and `trailingZerosNum` was always zero.
Commit: 0454de8b54f92b80a4993c1d59c485daa0c176f9
https://github.com/llvm/llvm-project/commit/0454de8b54f92b80a4993c1d59c485daa0c176f9
Author: Artem Gindinson <gindinson at roofline.ai>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
M mlir/test/Dialect/Arith/int-range-narrowing.mlir
Log Message:
-----------
[mlir][Arith] Avoid sign overflow when narrowing signed operations (#189676)
Whether an arith operation can be truncated to a given bitwidth should
also depend on the sign semantics of the operation itself. Consider:
```
%input = /* upper bound > INT32_MAX, <= UINT32_MAX */ : index
%c0 = arith.constant 0 : index
%cmp = arith.cmpi sle, %input, %c0 : index
```
Previously, `checkTruncatability()` would correctly judge that only an
unsigned truncation could be legal, however the narrowing would still
proceed despite the fact that the `sle` predicate treated the MSB as the
sign.
Ensure that the sign is checked for signed comparison predicates and for
signed elementwise operations by enforcing a `CastKind::Signed`
restriction, whereby the narrowing patterns bail out on incompatible
input range/operation signedness.
**AI tooling usage disclaimer**
LIT tests were expanded from manual reproducer examples with LLM
assistance. Those additional test cases were verified to
regression-test, proofread and edited manually in accordance with the
"Human in the loop" policy. LLMs/generative tooling were not used for
implementation/documentation purposes.
---------
Signed-off-by: Artem Gindinson <gindinson at roofline.ai>
Co-authored-by: GPT 5.4 <codex at openai.com>
Commit: 3ed48bf648cb6d94d8385c336bc72aadcd59f4f2
https://github.com/llvm/llvm-project/commit/3ed48bf648cb6d94d8385c336bc72aadcd59f4f2
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang-rt/lib/cuda/registration.cpp
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Runtime/CUDA/registration.h
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFOpConversionLate.cpp
M flang/test/Fir/CUDA/cuda-code-gen.mlir
M flang/test/Fir/CUDA/cuda-constructor-2.f90
M flang/test/Fir/CUDA/cuda-device-address.mlir
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
Revert "[flang][cuda] Support non-allocatable module-level managed variables" (#189745)
Reverts llvm/llvm-project#188526
Commit: c1ebd2f1c07f1dc51df1c1a56891fe564cbadc19
https://github.com/llvm/llvm-project/commit/c1ebd2f1c07f1dc51df1c1a56891fe564cbadc19
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/test/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Disable asan tests on GNU/Hurd (#169209)
Like OpenBSD, asan does not support GNU/Hurd yet.
Commit: f43ee18e988d923ef5529f1df3910bd2af09e825
https://github.com/llvm/llvm-project/commit/f43ee18e988d923ef5529f1df3910bd2af09e825
Author: cmtice <cmtice at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/StackFrame.h
M lldb/include/lldb/ValueObject/DILEval.h
M lldb/include/lldb/ValueObject/DILParser.h
M lldb/include/lldb/ValueObject/ValueObject.h
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/source/ValueObject/DILParser.cpp
M lldb/source/ValueObject/ValueObject.cpp
Log Message:
-----------
[LLDB] Add allow_var_updates to DIL and CanUpdateVar to SetValueFromInteger (#186421)
In preparation for updating DIL to handle assignments, this adds a
member variable to the DIL Interpreter indicating whether or not
updating program variables is allowed. For invocations from the LLDB
command prompt (through "frame variable") we want to allow it, but from
other places we might not. Therefore we also add new StackFrame
ExpressionPathOption, eExpressionPathOptionsAllowVarUpdates, which we
add to calls from CommandObjectFrame, and which is checked in
GetValueForVariableExpressionPath. Finally, we also add a parameter,
can_update_vars, with a default value of true, to
ValueObject::SetValueFromInteger, as that will be the main function used
to by assignment in DIL.
Commit: 96fd2318ee27ffc67ab1c36d67a5d59f387ac33e
https://github.com/llvm/llvm-project/commit/96fd2318ee27ffc67ab1c36d67a5d59f387ac33e
Author: Vineet Kumar <173554+vntkmr at users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M flang/docs/C++style.md
Log Message:
-----------
[flang] Add guidelines for referencing the Fortran Standard (#188591)
In response to [[RFC] Qualifying syntax rule numbers with Fortran
standard version in
comments](https://discourse.llvm.org/t/rfc-qualifying-syntax-rule-numbers-with-fortran-standard-version-in-comments/90167)
this PR adds a section on guidelines for referencing the Fortran
Standard.
Commit: b813b0b4e485b0323b51071aca7a415b30c3aa6f
https://github.com/llvm/llvm-project/commit/b813b0b4e485b0323b51071aca7a415b30c3aa6f
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/IR/MemRef.h
M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
M mlir/test/Dialect/Linalg/invalid.mlir
M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
M mlir/test/Dialect/MemRef/invalid.mlir
Log Message:
-----------
[mlir][MemRef] Migrate memref dialect alias op folding to interface (#187168)
This PR adds code to FoldMemRefAliasOps / --fold-memref-alias-ops to use
the new IndexedMemoryAccessOpInterface and
IndexedMemCopyOpInterface and implement those operations for relevant
operations in the memref dialect.
This is a reordering of the changes planned in #177014 and #177016 to
make them more testable.
There are no behavior changes expected for how memref.load and
memref.store behave within the alias ops folding pass, though support
for new operations, like memref.prefetch, has been added.
Some error messages have been updated because certain laws of
memref.load/memref.store have been moved to IndexedAccessOpInterface.
Assisted-by: Claude 4.6 (helped deal with some of the boilerplate in the
rewrite patterns and with extracting the patch)
Commit: 6e82a24f4cc585c8b2f69b1ff2cbee443f367187
https://github.com/llvm/llvm-project/commit/6e82a24f4cc585c8b2f69b1ff2cbee443f367187
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXAIF.td
Log Message:
-----------
[RISCV][P-ext] Rename simm8_unsigned/simm10_unsigned used PLUI/PLI. NFC (#188808)
Replace unsigned with plui or pli_b to better indicate their usage.
Templatize the render function and rename it addSExtImm instead of
addSImm*Unsigned.
Commit: f2f54b6874a3f2b0635866953e43348b0a746029
https://github.com/llvm/llvm-project/commit/f2f54b6874a3f2b0635866953e43348b0a746029
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rv32p.ll
Log Message:
-----------
[RISCV][P-ext] Support i32 avgfloors/avgflooru on RV32. (#189736)
Commit: 911dc4139dce1999c72144a9656f65caffca555b
https://github.com/llvm/llvm-project/commit/911dc4139dce1999c72144a9656f65caffca555b
Author: PiJoules <leonardchan at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/test/asan/TestCases/Linux/free_aligned_sized_mismatch.cpp
Log Message:
-----------
[compiler-rt][asan] Forward fix for free_aligned_sized_mismatch.cpp (#189760)
Mark this test as UNSUPPORTED for android since android's libc doesn't
seem to support aligned_alloc.
Commit: d8e9e0af1cb6e08659f703697b44895e614a3a21
https://github.com/llvm/llvm-project/commit/d8e9e0af1cb6e08659f703697b44895e614a3a21
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/docs/SandboxVectorizer.md
A llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/CMakeLists.txt
A llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/PassRegistry.def
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.cpp
A llvm/test/Transforms/SandboxVectorizer/load_store_vec.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][LoadStoreVec] Initial pass implementation (#188308)
This patch implements a new simple region pass that can vectorize
store-load chains.
Commit: b7dc4ff0abee9f5210ba225d6e3c83bac338eae3
https://github.com/llvm/llvm-project/commit/b7dc4ff0abee9f5210ba225d6e3c83bac338eae3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Replace always true if with an assert. NFC (#189750)
We already returned for UADDSAT/USUBSAT leaving SADDSAT/SSUBSAT as the
only opcodes that can get here.
Commit: 89dec12692c7654455977932cf99d643e58b3157
https://github.com/llvm/llvm-project/commit/89dec12692c7654455977932cf99d643e58b3157
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/Platform.h
M lldb/source/Core/Module.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
M lldb/source/Target/Platform.cpp
M lldb/unittests/Platform/PlatformDarwinTest.cpp
M lldb/unittests/Platform/PlatformTest.cpp
Log Message:
-----------
[lldb][Platform] Handle LoadScriptFromSymFile per-module FileSpec (#189696)
This patch changes the `Platform::LocateXXX` to return a map from
`FileSpec` to `LoadScriptFromSymFile` enum.
This is needed for https://github.com/llvm/llvm-project/pull/188722,
where I intend to set `LoadScriptFromSymFile` per-module.
By default the `Platform::LocateXXX` set the value to whatever the
target's current `target.load-script-from-symbol-file` is set to. In
https://github.com/llvm/llvm-project/pull/188722 we'll allow overriding
this per-target setting on a per-module basis.
Drive-by:
* Added logging when we fail to load a script.
Commit: c9bc317d6dea4b5aef40c35a443cc3083aab65c7
https://github.com/llvm/llvm-project/commit/c9bc317d6dea4b5aef40c35a443cc3083aab65c7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rv32p.ll
Log Message:
-----------
[RISCV][P-ext] Support i32 ushlsat on RV32. (#189730)
We have a sshl instruction on RV32 in the 0.21 spec. Unfortunately,
we don't have a SSLLI instruction, but we can put a constant shift
amount in a register.
Commit: cdce9cd4a19f15b9a100b3aeb6b37a79395a0c53
https://github.com/llvm/llvm-project/commit/cdce9cd4a19f15b9a100b3aeb6b37a79395a0c53
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes b813b0b (#189759)
This fixes b813b0b4e485b0323b51071aca7a415b30c3aa6f.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: c19e28d854e22b336d7aad78b88946864cd6eb13
https://github.com/llvm/llvm-project/commit/c19e28d854e22b336d7aad78b88946864cd6eb13
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/test/CMakeLists.txt
M llvm/test/TableGen/intrinsic-arginfo-error.td
A llvm/test/TableGen/intrinsic-overload-dependent-type-validation.td
Log Message:
-----------
[NFC][LLVM] Simplify `TypeInfoGen` in Intrinsics.td (#189278)
Eliminate `MappingRIdx` by making it an identity function. Currently,
`MappingRIdx` is used to map the index of an `llvm_any*` type in an
intrinsic type signature to its overload index. Eliminating this mapping
means that dependent types in LLVM intrinsic definitions (like
`LLVMMatchType` and its subclasses) should use the overload index to
reference the overload type that it depends on (and not the index within
the llvm_any* subset of overloaded types).
See
https://discourse.llvm.org/t/rfc-simplifying-intrinsics-type-signature-iit-info-generation-encoding-in-intrinsicemitter-cpp/90383
Commit: 5d624b5b937ce0965efbd101defbad956d0f8e4d
https://github.com/llvm/llvm-project/commit/5d624b5b937ce0965efbd101defbad956d0f8e4d
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
A llvm/test/Transforms/LoopVectorize/noalias-scope-decl-outer-loop.ll
A llvm/test/Transforms/LoopVectorize/non-widenable-intrinsics-outer-loop.ll
Log Message:
-----------
[VPlan] Stop outerloop vectorization from vectorizing nonvector intrinsics (#185347)
In outer-loop VPlan, avoid emitting vector intrinsic calls for intrinsics
without a vector form. In VPRecipeBuilder, detect missing vector intrinsic
mapping and emit scalar handling instead of a vector call.
Also fix assertion when `llvm.pseudoprobe` in VPlan's native path is being
treated as a `WIDEN-INTRINSIC`.
Reproducer: https://godbolt.org/z/GsPYobvYs
Commit: c20e233020c43e87be08f36d0ca5287bb69ea9f4
https://github.com/llvm/llvm-project/commit/c20e233020c43e87be08f36d0ca5287bb69ea9f4
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/constant-based-reductions.ll
Log Message:
-----------
[SLP] Replace TrackedToOrig DenseMap with parallel SmallVector in reduction
Replace the DenseMap<Value*, Value*> TrackedToOrig with a SmallVector<Value*>
indexed in parallel with Candidates. This avoids hash-table overhead for the
tracked-value-to-original-value mapping in horizontal reduction processing.
Fixes #189686
Commit: bf50489eeba2126c526c8d57f73448fa48429d3f
https://github.com/llvm/llvm-project/commit/bf50489eeba2126c526c8d57f73448fa48429d3f
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/test/CodeGen/AArch64/O0-pipeline.ll
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/Transforms/SampleProfile/pseudo-probe-emit-macho.ll
Log Message:
-----------
[Psuedoprobe][MachO] Enable pseudo probes emission for MachO (#185758)
Enable pseudo probes emission for MachO. Due to the 16 character limit
of MachO segment and section, the file sections will be
`__PSEUDO_PROBE,__probes` and `__PSEUDO_PROBE,__probe_descs`.
Commit: 3f2a9c6f5486e4202ec01e61fbef0e7d094e2371
https://github.com/llvm/llvm-project/commit/3f2a9c6f5486e4202ec01e61fbef0e7d094e2371
Author: jinge90 <ge.jin at intel.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/lib/builtins/int_math.h
M compiler-rt/lib/builtins/muldc3.c
Log Message:
-----------
[NFC][compiler-rt] Use __builtin_huge_val for CRT_INFINITY for double precision (#188197)
Commit: 2f8c0cbac0d755240112e3b62a628c59655be317
https://github.com/llvm/llvm-project/commit/2f8c0cbac0d755240112e3b62a628c59655be317
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.cpp
Log Message:
-----------
[RISCV] Use a switch default+llvm_unreachable instead of an assert. NFC (#189770)
Commit: 2b98f7fc3db5f99c6b1c152affb5d5906896154d
https://github.com/llvm/llvm-project/commit/2b98f7fc3db5f99c6b1c152affb5d5906896154d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Log Message:
-----------
[RISCV] Slightly optimize insertVSETMTK. NFC (#189771)
Sink the hasTKOp and hasTMOp checks into the switch.
Commit: f8b0a8c631eb3d88c990fb96b4488e4e02e137fc
https://github.com/llvm/llvm-project/commit/f8b0a8c631eb3d88c990fb96b4488e4e02e137fc
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/test/CIR/CodeGen/atomic-scoped.c
Log Message:
-----------
[CIR] Scoped atomic fetch uinc/dec (#189688)
Commit: 9085f74018a4f465afa84815d64af850f09b733f
https://github.com/llvm/llvm-project/commit/9085f74018a4f465afa84815d64af850f09b733f
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/Support/Parallel.h
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[Support] Optimize parallel `TaskGroup` (#189196)
Two improvements to reduce `TaskGroup::spawn()` overhead:
1. Replace mutex-based `Latch::inc()` with atomic `fetch_add`. `dec()`
retains the mutex to prevent a race where `sync()` observes Count==0
and destroys the Latch while `dec()` is still running.
2. Pass `Latch&` through `Executor::add()` so the worker calls `dec()`
directly, eliminating the wrapper lambda that previously captured
both the user's callable and the Latch reference. This avoids one
`std::function` construction and potential heap allocation per spawn.
Commit: 7fce7631a0983b09abc968d24038e01ec1d02962
https://github.com/llvm/llvm-project/commit/7fce7631a0983b09abc968d24038e01ec1d02962
Author: Krzysztof Drewniak <krzysdrewniak at gmail.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/ExtensibleDialect.h
M mlir/include/mlir/IR/OpDefinition.h
M mlir/include/mlir/IR/Operation.h
M mlir/include/mlir/IR/OperationSupport.h
M mlir/include/mlir/Interfaces/InferTypeOpInterface.td
M mlir/lib/AsmParser/Parser.cpp
M mlir/lib/CAPI/IR/IR.cpp
M mlir/lib/CAPI/Interfaces/Interfaces.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp
M mlir/lib/Dialect/Ptr/IR/PtrDialect.cpp
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/lib/Dialect/SMT/IR/SMTOps.cpp
M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/WasmSSA/IR/WasmSSAOps.cpp
M mlir/lib/IR/ExtensibleDialect.cpp
M mlir/lib/IR/MLIRContext.cpp
M mlir/lib/IR/Operation.cpp
M mlir/lib/IR/OperationSupport.cpp
M mlir/lib/Target/IRDLToCpp/Templates/PerOperationDecl.txt
M mlir/lib/Transforms/Utils/DialectConversion.cpp
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/lib/Dialect/Test/TestOpsSyntax.cpp
M mlir/test/lib/Dialect/Test/TestOpsSyntax.td
M mlir/test/lib/Dialect/Test/TestPatterns.cpp
M mlir/test/mlir-tblgen/op-decl-and-defs.td
M mlir/test/python/python_test_ops.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M mlir/unittests/Debug/FileLineColLocBreakpointManagerTest.cpp
M mlir/unittests/IR/OperationSupportTest.cpp
M mlir/unittests/IR/ValueTest.cpp
M mlir/unittests/IR/VerifierTest.cpp
M mlir/unittests/Interfaces/MemorySlotUtilsTest.cpp
M mlir/unittests/Transforms/DialectConversion.cpp
Log Message:
-----------
[mlir] Refactor opaque properties to make them type-safe (#185157)
At its core, this commit changes `OpaqueProperties` (aka a void*) to
`PropertyRef`, which is a {TypeID, void*}, where the TypeID is the ID of
the storage type of the given property (which can, as is often the case
for operations, be a struct of other properties).
Long-term, this change will allow for
1) Some sort of getFooPropertyRef() on property structs, allowing
individual members to be extracted generically
2) By having a property kind that is an OwningProprtyRef, generic
parsing (in combination with a bunch of other changes) 3) Probably a
safer C/Python API because we'll be able to indicate what's supposed to
be under a given void*
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 6581d588193ce6c51700b426072da350895b95a2
https://github.com/llvm/llvm-project/commit/6581d588193ce6c51700b426072da350895b95a2
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/test/Analysis/DependenceAnalysis/PR188098.ll
Log Message:
-----------
[DA] Revise test `PR188098.ll` (NFC) (#189564)
This patch revises the test `Analysis/DependenceAnalysis/PR188098.ll`
added in #189428, primary to improve readability. I confirmed that this
test cashes without the change added in #188098.
Commit: d52a5e8a5ac47fea1b1d82669eb7d1bf5283d147
https://github.com/llvm/llvm-project/commit/d52a5e8a5ac47fea1b1d82669eb7d1bf5283d147
Author: AidinT <at.aidin at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/Conversion/CMakeLists.txt
A mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt
A mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td
M mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
M mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
M mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
M mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[MLIR] convert ConvertToEmitCPatternInterface to ODS (#188621)
This PR converts `ConvertToEmitCPatternInterface` dialect interface to ODS. Also makes changes to derived classes.
Commit: 585e2a015b29c1a53c4acddeda1b64b3fb3aac39
https://github.com/llvm/llvm-project/commit/585e2a015b29c1a53c4acddeda1b64b3fb3aac39
Author: AidinT <at.aidin at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A mlir/include/mlir/Bytecode/BytecodeDialectInterface.td
M mlir/include/mlir/Bytecode/BytecodeImplementation.h
M mlir/include/mlir/Bytecode/CMakeLists.txt
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[MLIR] Convert BytecodeDialectInterface to ods (#188852)
This PR converts `BytecodeDialectInterface` to ODS.
Commit: aefca764062a8dd0f6a26d94f78f9ef6a3731aa4
https://github.com/llvm/llvm-project/commit/aefca764062a8dd0f6a26d94f78f9ef6a3731aa4
Author: Thurston Dang <thurston at google.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl-intrinsics.ll
Log Message:
-----------
[msan] Add missing non-mem PMOV handling (#189768)
This adds support for the remaining non-memory PMOV intrinsics, using
the existing handlers.
handleAVX512VectorDownConvert() is slightly updated to handle cases
where there are fewer than 8 output elements (for which the mask is
still supplied as 8 bits).
Commit: 512071941da849587b8988f7e74c30c46b377a2c
https://github.com/llvm/llvm-project/commit/512071941da849587b8988f7e74c30c46b377a2c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
Log Message:
-----------
[RISCV] Add codegen support for SATI and USATI. (#189532)
Implementation is largely based on ARM which has similar instructions.
Commit: fe6d15ddbfd44d4a95fd2d292b1b0b431377a0dd
https://github.com/llvm/llvm-project/commit/fe6d15ddbfd44d4a95fd2d292b1b0b431377a0dd
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/Serialization/ASTWriterDecl.cpp
A clang/test/Modules/pr189415.cppm
Log Message:
-----------
[C++20] [Modules] Fix thread_local variable handling in modules (#189796)
Close https://github.com/llvm/llvm-project/issues/189415
The function shouldVarGenerateHereOnly should also handle thread_local
variables, not just static variables. This fixes incorrect code
generation for thread_local variables in named modules.
Commit: 1d549d9a777a6faef6d425cb6482ab1fa6b91bb7
https://github.com/llvm/llvm-project/commit/1d549d9a777a6faef6d425cb6482ab1fa6b91bb7
Author: Luke Lau <luke at igalia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandVectorPredication.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-llrint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lrint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/llrint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/lrint-vp.ll
Log Message:
-----------
[RISCV] Remove codegen for vp_lrint, vp_llrint (#189714)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off two intrinsics from #179622.
We need to use the other intrinsic constructor in
ExpandVectorPredication.cpp because llrint has multiple overloaded types
Commit: 3068132e32c11839c2626347d5288f16d6623bea
https://github.com/llvm/llvm-project/commit/3068132e32c11839c2626347d5288f16d6623bea
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Use bind_front in tryToOptimizeInductionTruncate (NFC) (#189763)
Commit: 7e8449a96d552e22c927eccc439882464a3f2f28
https://github.com/llvm/llvm-project/commit/7e8449a96d552e22c927eccc439882464a3f2f28
Author: Weibo He <NewSigma at 163.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
Log Message:
-----------
[CoroSplit] Drop assumption that promise alloca is not accessed before coro.begin (NFC) (#189521)
There is an inconsistency in that the code assumes the promise alloca is
not modified before coro.begin, yet it handles such accesses later. This
patch proposes dropping that assumption and analyzing accesses before
coro.begin from the outset, allowing #189295 to erase promise alloca
without analyse it afterwards.
Commit: 8edbf230980a038f120e754439a79cec68ad9356
https://github.com/llvm/llvm-project/commit/8edbf230980a038f120e754439a79cec68ad9356
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/codegen-constexpr-unknown.cpp
M clang/test/AST/ByteCode/cxx26.cpp
Log Message:
-----------
[clang][bytecode] Revisit reference variables as constexpr-unknown in C++26 (#187918)
When revisiting `const T& range = f(T());`, we do mark the variable for
`range` as constexpr-unknown, but not the temporary variable we create
for `T()`. Change that.
Then we also need to ignore constexpr-unknown pointers in
`CheckInvoke()`.
Fixes https://github.com/llvm/llvm-project/issues/187775
Commit: 21f94950a8411d0a10eaf3380ae44b411f65a0d3
https://github.com/llvm/llvm-project/commit/21f94950a8411d0a10eaf3380ae44b411f65a0d3
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cpp
Log Message:
-----------
[compiler-rt] Try bumping soft_rss_limit again (#188441)
Previous instance: #171469
Commit: 6a31be68e38e4656354edddfcb137b0c8234a01c
https://github.com/llvm/llvm-project/commit/6a31be68e38e4656354edddfcb137b0c8234a01c
Author: Lukas Sommer <lukas.sommer at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/IR/OperationSupport.h
Log Message:
-----------
[mlir][NFC] Remove conditionally unused type alias (#189894)
The `RawType` type alias is unused (`-Wunused-local-typedef`) in build
with asserts deactivated. In combination with `-Werror`, this causes
builds to fail.
Signed-off-by: Lukas Sommer <lukas.sommer at amd.com>
Commit: 2e51fdaa774be8e0d6b4d6743a2f77cdb3a71e3c
https://github.com/llvm/llvm-project/commit/2e51fdaa774be8e0d6b4d6743a2f77cdb3a71e3c
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/include/lldb/lldb-private-enumerations.h
M lldb/source/API/SBMemoryRegionInfo.cpp
M lldb/source/Commands/CommandObjectMemory.cpp
M lldb/source/Expression/IRMemoryMap.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
M lldb/source/Plugins/Process/Utility/MemoryTagManagerAArch64MTE.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
M lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
M lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
M lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
M lldb/source/Target/MemoryRegionInfo.cpp
M lldb/source/Target/Process.cpp
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
M lldb/unittests/Target/MemoryRegionInfoTest.cpp
Log Message:
-----------
[lldb] Replace OptionalBool with LazyBool (#189652)
The only difference between them is that OptionalBool's third state
is "unknown" and LazyBool's is "calculate". We don't need to tell
the difference in a single context, so I've made a new eLazyBoolDontKnow
which is an alias of eLazyBoolCalculate.
Commit: eeb2fae5c00586e0764be907336e3de27af2b3b1
https://github.com/llvm/llvm-project/commit/eeb2fae5c00586e0764be907336e3de27af2b3b1
Author: David Green <david.green at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/dup.ll
Log Message:
-----------
[AArch64][GISel] Do not bitcast nonpower2 element size G_CONCATs (#189911)
This currently gets stuck in a loop, unable to make progress throught
the
bitcast concat. Limit it to legal element sizes so that we always make
progress
and at least fall back to SDAG as opposed to crashing or getting stuck.
Commit: 2313989499b5ee9befd9865310f6fa02f561cf63
https://github.com/llvm/llvm-project/commit/2313989499b5ee9befd9865310f6fa02f561cf63
Author: VASU SHARMA <44048872+vasu-the-sharma at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A clang/test/CodeGen/ubsan-aggregate-null-align.c
Log Message:
-----------
[UBSAN] [NFC] pre-commit tests for null, alignment, bounds checks (#176210)
PR to add precommit tests to document current UBSAN behavior for
aggregate copy operations.
The test covers:
- Sanitizers: null, alignment, bounds
- Type variants: plain, _Atomic (C), volatile (C)
- Operand forms: arr[idx], *ptr
- Operations: assignment, initialization, initializer list, variadic
args, nested member access
- C++ specific: direct/brace/copy-list init, new expressions, casts,
operator=, virtual base init
- Bounds checking: in-bounds access, past-the-end access (index ==
size), beyond bounds access, dynamic index
---------
Co-authored-by: vasu-ibm <Vasu.Sharma2 at ibm.com>
Co-authored-by: Tony Varghese <tonypalampalliyil at gmail.com>
Commit: b1f8c285597925428d1f110ad7c1accff70eb885
https://github.com/llvm/llvm-project/commit/b1f8c285597925428d1f110ad7c1accff70eb885
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/IR/BuiltinAttributes.td
M mlir/unittests/IR/AttributeTest.cpp
Log Message:
-----------
[MLIR] Validate APInt bitwidth in IntegerAttr::get(Type, APInt) (#188725)
IntegerAttr::get(Type, APInt) did not validate that the APInt's bit
width matched the expected bit width for the given type. For integer
types, the APInt width must equal the integer type's width. For index
types, the APInt width must equal IndexType::kInternalStorageBitWidth
(64 bits).
Passing an APInt with the wrong bit width could cause a
non-deterministic crash in StorageUniquer when comparing two IntegerAttr
instances for the same type but with different APInt widths.
This commit adds assertions in the get(Type, APInt) builder to catch
such misuse early in debug builds, providing a clear error message at
the call site rather than a cryptic crash in the storage uniquer.
Fixes #56401
Assisted-by: Claude Code
Commit: 249e871fa4ef9acc38f8aa02f124322f85635756
https://github.com/llvm/llvm-project/commit/249e871fa4ef9acc38f8aa02f124322f85635756
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
M mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
Log Message:
-----------
[MLIR][ArithToLLVM] Fix index_cast on memref types generating invalid LLVM IR (#189227)
`arith.index_cast` and `arith.index_castui` accept memref operands (via
`IndexCastTypeConstraint`), but `IndexCastOpLowering::matchAndRewrite`
did not handle this case. When the operand was a memref, the conversion
framework substituted the converted LLVM struct type, and the lowering
incorrectly attempted to emit `llvm.sext`/`llvm.zext`/`llvm.trunc` on a
struct value, producing invalid LLVM IR.
Since LLVM uses opaque pointers, all memrefs with integer or index
element types lower to the same `\!llvm.struct<(ptr, ptr, i64, ...)>`
type, making `arith.index_cast` on memrefs a no-op at the LLVM level.
Add a check that treats the memref case as an identity conversion (same
as the same-bit-width path).
Fixes #92377
Assisted-by: Claude Code
Commit: 5651490992f3f5da7f39b228f019631725ff9d7f
https://github.com/llvm/llvm-project/commit/5651490992f3f5da7f39b228f019631725ff9d7f
Author: lrzlin <linrunze at loongson.cn>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
A llvm/test/CodeGen/LoongArch/mergestores.ll
Log Message:
-----------
[LoongArch] Implement canMergeStoresTo to avoid crash while NoImplicitFloat attribute is set (#188005)
Currently, when the `NoImplicitFloat` attribute is set, consecutive
64-bit load
and store operations will be combined into 128-bit ones, which is
illegal
because that attribute makes floating point and SIMD unavailable.
By implementing the canMergeStoresTo, we can prevent this incorrect
merging.
Fixes https://github.com/llvm/llvm-project/issues/186645
Commit: 6b2b0da40de1495ace2b100799a35711f7ad7b21
https://github.com/llvm/llvm-project/commit/6b2b0da40de1495ace2b100799a35711f7ad7b21
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Transforms/CSE.cpp
Log Message:
-----------
[mlir][CSE] Fix double-counting of numCSE statistic (#189802)
This PR fixes a regression where the numCSE statistic was being
incremented twice for a single operation elimination. The numCSE counter
is already internally incremented within the replaceUsesAndDelete
function. Manually incrementing it again after the function call leads
to an inaccurate total count. This is part of the
https://github.com/llvm/llvm-project/pull/180556.
Commit: 71cc59400c531d1f9c4a928dae62d20cca3690bd
https://github.com/llvm/llvm-project/commit/71cc59400c531d1f9c4a928dae62d20cca3690bd
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] add debug log in findGCD (#189537)
Commit: c5363f2166710b0c6e728d5ee11efc99ccf42d87
https://github.com/llvm/llvm-project/commit/c5363f2166710b0c6e728d5ee11efc99ccf42d87
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/IR/Core.cpp
M llvm/tools/llvm-c-test/echo.cpp
Log Message:
-----------
[IR] Fix C API after getTerminator() change (#189922)
The C API function LLVMGetBasicBlockTerminator should return NULL when
the basic block is not well-formed.
Commit: 6bf794a02a509bf051c50fe2f14009e117ef50ed
https://github.com/llvm/llvm-project/commit/6bf794a02a509bf051c50fe2f14009e117ef50ed
Author: Daniil Fukalov <dfukalov at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/test/CodeGenCUDA/fp-contract.cu
M llvm/lib/Target/AMDGPU/AMDGPUSelectionDAGInfo.h
M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
M llvm/test/CodeGen/AMDGPU/basic-branch.ll
M llvm/test/CodeGen/AMDGPU/bb-prolog-spill-during-regalloc.ll
M llvm/test/CodeGen/AMDGPU/cf-loop-on-constant.ll
M llvm/test/CodeGen/AMDGPU/collapse-endcf.ll
M llvm/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-lshr-and-cmp.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
M llvm/test/CodeGen/AMDGPU/flat-scratch-alloca-issue-155902.ll
M llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
M llvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
M llvm/test/CodeGen/AMDGPU/kernel-vgpr-spill-mubuf-with-voffset.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier-fastregalloc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.dbg.value.ll
M llvm/test/CodeGen/AMDGPU/load-global-invariant.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-workgroup.ll
M llvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr.ll
M llvm/test/CodeGen/AMDGPU/scalar_to_vector_v2x16.ll
M llvm/test/CodeGen/AMDGPU/select-phi-s16-fp.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spill-no-vgprs.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spills-split-regalloc.ll
M llvm/test/CodeGen/AMDGPU/smfmac_alloc_failure_no_agpr_O0.ll
M llvm/test/CodeGen/AMDGPU/sopk-no-literal.ll
M llvm/test/CodeGen/AMDGPU/spill-m0.ll
M llvm/test/CodeGen/AMDGPU/spill-vgpr-to-agpr-update-regscavenger.ll
M llvm/test/CodeGen/AMDGPU/spill-wide-sgpr.ll
M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll
M llvm/test/CodeGen/AMDGPU/trap-abis.ll
M llvm/test/CodeGen/AMDGPU/vgpr-limit-gfx1250.ll
M llvm/test/CodeGen/AMDGPU/vgpr-spill-placement-issue61083.ll
M llvm/test/CodeGen/AMDGPU/vgpr_constant_to_sgpr.ll
M llvm/test/CodeGen/AMDGPU/wait-xcnt-atomic-rmw-optimization.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
M llvm/test/CodeGen/AMDGPU/zext-lid.ll
Log Message:
-----------
[AMDGPU] Disable generic DAG combines at -O0 to preserve debuggability. (#176304)
Disable generic DAG combines for AMDGPU at -O0 via
disableGenericCombines() to preserve instructions that users may want to
set breakpoints on during debugging.
Assisted-by: Cursor / Claude Opus 4.6
Commit: 97562e7e5cae5d6dc019b8f3275eb9639978c05f
https://github.com/llvm/llvm-project/commit/97562e7e5cae5d6dc019b8f3275eb9639978c05f
Author: Andrew Marshall <planetmarshall at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M compiler-rt/cmake/Modules/CheckAssemblerFlag.cmake
Log Message:
-----------
pass target triple to `check_assembler_flag` (#188521)
Target specific flags (Notably `-mimplict=always` for ARM) are not
recognized by the clang assembler unless the target is specified. This
PR passes the value of `CMAKE_C_COMPILER_TARGET` to the assembler so
that target specific flags are recognized.
## Previous behaviour
When configuring builtins for an ARMv7 target:
```
-- Builtin supported architectures: armv7
-- Checking for assembler flag -mimplicit-it=always
-- Checking for assembler flag -mimplicit-it=always - Not accepted
-- Checking for assembler flag -Wa,-mimplicit-it=always
-- Checking for assembler flag -Wa,-mimplicit-it=always - Not accepted
CMake Warning at CMakeLists.txt:462 (message):
Don't know how to set the -mimplicit-it=always flag in this assembler; not
including Arm optimized implementations
```
## New behaviour
```
-- Builtin supported architectures: armv7
-- Checking for assembler flag -mimplicit-it=always
-- Checking for assembler flag -mimplicit-it=always - Accepted
```
## Steps to reproduce:
```
$ cmake -S compiler-rt/lib/builtins -B build \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_C_COMPILER_TARGET=armv7-unknown-linux-gnueabihf \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
```
Commit: d6cd15901a7b17657687c330afa7ee974e27e3be
https://github.com/llvm/llvm-project/commit/d6cd15901a7b17657687c330afa7ee974e27e3be
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
M llvm/test/MC/AArch64/armv9a-tlbip.s
Log Message:
-----------
[AArch64][llvm] Gate some `tlbip` insns with either +tlbid or +d128 (#178913)
Change the gating of `tlbip` instructions (`sysp` aliases) containing
`*E1IS*`, `*E1OS*`, `*E2IS*` or `*E2OS*` to be used with `+tlbid` or
`+d128`. This is because the 2025 Armv9.7-A MemSys specification says:
```
All TLBIP *E1IS*, TLBIP *E1OS*, TLBIP *E2IS* and TLBIP *E2OS*
instructions that are currently dependent on FEAT_D128 are updated
to be dependent on FEAT_D128 or FEAT_TLBID
```
See also change #178912 where the gating of `+d128` for `sysp` was
removed.
Commit: f6ffdbcbaec23f54a9254c7e19df002f1a0a9425
https://github.com/llvm/llvm-project/commit/f6ffdbcbaec23f54a9254c7e19df002f1a0a9425
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Utils/Utils.cpp
M mlir/test/Dialect/Affine/scalrep.mlir
Log Message:
-----------
[MLIR][Affine] Fix dead store elimination for vector stores with different types (#189248)
affine-scalrep's findUnusedStore incorrectly classified an
affine.vector_store as dead when a subsequent store wrote to the same
base index but with a smaller vector type. A vector<1xi64> store at
[0,0] does not fully overwrite a vector<5xi64> store at [0,0], so the
first store must be preserved.
The loadCSE function in the same file already had the correct
type-equality check for loads; this patch adds the analogous check for
stores in findUnusedStore.
Fixes #113687
Assisted-by: Claude Code
Commit: f2685fabc5bbe33a8b95b665dc4e24223c42fdd9
https://github.com/llvm/llvm-project/commit/f2685fabc5bbe33a8b95b665dc4e24223c42fdd9
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode] Disable tail calls on sparc (#189887)
Looks like this causes problems there as well:
https://lab.llvm.org/buildbot/#/builders/114/builds/252
Interp.cpp:2572:21: error: cannot tail-call: target is not able to
optimize the call into a sibling call
2572 | MUSTTAIL return Fn(S, PC);
| ~~^~~~~~~
Commit: effcd181e580c6f83dfc88a0362705ddb6601f5b
https://github.com/llvm/llvm-project/commit/effcd181e580c6f83dfc88a0362705ddb6601f5b
Author: Luke Lau <luke at igalia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandVectorPredication.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/CodeGen/RISCV/rvv/ceil-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ceil-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-floor-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-nearbyint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-rint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-round-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundeven-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundtozero-vp.ll
M llvm/test/CodeGen/RISCV/rvv/floor-vp.ll
M llvm/test/CodeGen/RISCV/rvv/nearbyint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/rint-vp.ll
M llvm/test/CodeGen/RISCV/rvv/round-vp.ll
M llvm/test/CodeGen/RISCV/rvv/roundeven-vp.ll
M llvm/test/CodeGen/RISCV/rvv/roundtozero-vp.ll
Log Message:
-----------
[RISCV] Remove codegen for VP float rounding intrinsics (#189896)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off seven intrinsics from #179622.
We now generate vfcvt.rtz for llvm.vp.roundtozero. It looks like we
should have been using the codegen for llvm.trunc for it, but we somehow
missed that.
Commit: 0d33a15d3320567639dd8f043c7aa22a55653dab
https://github.com/llvm/llvm-project/commit/0d33a15d3320567639dd8f043c7aa22a55653dab
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/test/Modules/pr189415.cppm
Log Message:
-----------
Add a target triple to clang/test/Modules/pr189415.cppm (#189937)
Not all targets support thread_local, so in some environments the test
would fail with:
tools/clang/test/Modules/Output/pr189415.cppm.tmp/counter.cppm:6:1:
error: thread-local storage is not supported for the current target
Follow-up to #189796
Commit: 5249f5ad4d91826507fae4b7d776d1eeabc9bb2a
https://github.com/llvm/llvm-project/commit/5249f5ad4d91826507fae4b7d776d1eeabc9bb2a
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h
M llvm/lib/MCA/HardwareUnits/ResourceManager.cpp
Log Message:
-----------
[MCA] Make `ResourceSizeMask` const (#189453)
This patch marks the already effectively constant `ResourceSizeMask` as
`const`. It adds a helper `computeResourceSizeMask()` to initialize it
in the member initializer list.
Commit: 8a06085c610a49739beb0af716a30714f073540c
https://github.com/llvm/llvm-project/commit/8a06085c610a49739beb0af716a30714f073540c
Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/Rematerializer.h
M llvm/lib/CodeGen/Rematerializer.cpp
Log Message:
-----------
[CodeGen] Add listener support to the rematerializer (NFC) (#184338)
This change adds support for adding listeners to the target-independent
rematerializer; listeners can catch certain rematerialization-related
events to implement some additional functionality on top of what the
rematerializer already performs.
This is NFC and has no user at the moment, but the plan is to have
listeners start being responsible for secondary/optional functionalities
that are at the moment integrated with the rematerializer itself. Two
examples of that are:
1. rollback support (currently optional), and
2. region tracking (currently mandatory, but not fundamentally necessary
to the rematerializer).
Commit: 042997bd15a52ef435673e9182ed5cd2453f8ab0
https://github.com/llvm/llvm-project/commit/042997bd15a52ef435673e9182ed5cd2453f8ab0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
Log Message:
-----------
[RISCV] combine-is_fpclass.ll - add initial tests showing failure to constant fold ISD::IS_FPCLASS nodes (#189940)
Commit: 3b1125b1edf997e261ebafdf31b1828f5c458ebb
https://github.com/llvm/llvm-project/commit/3b1125b1edf997e261ebafdf31b1828f5c458ebb
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
[SCEV] Add canonical SCEV pointer and construct canonical SCEVs (NFC) (#188858)
Add a canonical SCEV pointer to SCEV, to support comparing SCEVs for
equality, even with different use-specific flags.
Currently this should be NFC, as nothing yet sets use flags.
Compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=13f1fd006243f756417c3ae992342c0674e3f04e&to=e7f46bcf8bef62c619380fbcccbe6073300b69fe&stat=instructions:u
+0.03% - +0.05% on stage1 configs
-0.03% surprisingly for stage2-O3
PR: https://github.com/llvm/llvm-project/pull/188858
Commit: 26b755c09bfa5b5e31c3cef8d4118316b2937cdd
https://github.com/llvm/llvm-project/commit/26b755c09bfa5b5e31c3cef8d4118316b2937cdd
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/GlobalObject.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/Value.h
M llvm/lib/IR/Globals.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/Value.cpp
Log Message:
-----------
[IR] Remove Value::HasMetadata (#189917)
Metadata already has two separate implementations, one for GlobalObject
and one for Instruction. Instruction was already separate due to special
MD_dbg handling, so move the GlobalObject-specific metadata parts from
Value to GlobalObject.
The HasMetadata bit, originally an optimization to avoid the hash table
lookup when a value has no metadata, is no longer needed, because the
information is now stored directly in Instruction/GlobalObject's
MetadataIndex field.
This also fixes MSan builds, currently ~Value clears metadata and
therefore needs to access the subclass's MetadataIndex field, which was
already destructed at this point.
Commit: c67092066e1812bdbec10e4a3628a5f77faa8f9f
https://github.com/llvm/llvm-project/commit/c67092066e1812bdbec10e4a3628a5f77faa8f9f
Author: serge-sans-paille <sguelton at mozilla.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/lib/Lex/TokenLexer.cpp
M clang/test/Lexer/gnu-flags.c
A clang/test/Lexer/gnu-zero-variadic-macro-argument-fixit.c
M clang/test/Preprocessor/macro_fn.c
Log Message:
-----------
[clang] Suggest using __VA_OPT__(,) instead of GNU zero variadic macro argument (#188624)
Also provide an appropriate fixit.
Commit: 96db944036a09e773d1e3fff4fa3805a4f75e59e
https://github.com/llvm/llvm-project/commit/96db944036a09e773d1e3fff4fa3805a4f75e59e
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/test/CodeGen/SPIRV/spec_const_decoration.ll
Log Message:
-----------
[NFC][SPIR-V] Remove stale XFAIL for spec_const_decoration.ll (#189934)
The test no longer fails with expensive_checks enabled
```
Unexpectedly Passed Tests (1):
LLVM :: CodeGen/SPIRV/spec_const_decoration.ll
```
after
https://github.com/llvm/llvm-project/commit/18e695890306c6824cc15779e1acb7e5956cbec1
(https://github.com/llvm/llvm-project/pull/134016)
also add `-verify-machineinstrs` as per #188703
Commit: 69b116d07503061026ffddbaf74e4b33615fc205
https://github.com/llvm/llvm-project/commit/69b116d07503061026ffddbaf74e4b33615fc205
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
M llvm/test/CodeGen/SPIRV/instructions/vector-shuffle.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpVectorExtractDynamic.ll
Log Message:
-----------
[SPIR-V] Fix OpVectorExtractDynamic operand type (#189635)
vID is a register class for integer vector registers only. vfID (float
vector registers) should be also accepted. Aligning the definition with
other instructions of this kind
related to #188703
Commit: ed48aeadf37ad811f5fa999e2de07f1ae05d1e24
https://github.com/llvm/llvm-project/commit/ed48aeadf37ad811f5fa999e2de07f1ae05d1e24
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/source/Plugins/Architecture/AArch64/ArchitectureAArch64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
Log Message:
-----------
[lldb][AArch64][Linux] Add support for SME only systems (#165413)
This is the implementation part of #138717, tests and documentation will
be in a separate PR.
SME only systems have SME but not SVE. Previously we assumed that you
would either have SVE, SVE+SME, or neither. On an SME only system, the
SVE register state exists only in streaming mode. SVE instructions may
be used, but only in streaming mode. The Linux kernel will report that
such a processor has SME features but no SVE features.
This means that the non-streaming SVE ptrace register set is
inaccessible (with one exception mentioned below). So the main change
here is around the management of FP registers.
* In non-streaming mode, FP registers must be accessed via the FP
register set. Not the non-streaming SVE register set.
* In streaming mode, FP registers are a subset of the streaming SVE
registers, accessed via the streaming SVE register set.
The one exception the kernel allows is:
> On systems that do not support SVE it is permitted to use SETREGSET to
write SVE_PT_REGS_FPSIMD formatted data via NT_ARM_SVE, in this case the
vector length should be specified as 0. This allows streaming mode to be
disabled on systems with SME but not SVE.
https://docs.kernel.org/arch/arm64/sve.html
This is how we are able to restore to a non-streaming state when an
expression leaves us in streaming mode.
The major changes to LLDB are:
* If we receive only SVG in the expedited registers, we now assume it's
an SME only system and therefore VG == SVG.
* A new state SVEState::StreamingFPSIMD is added to mark the mode where
we are in FPSIMD mode on an SME only system (as opposed to the FPSIMD
state of an SVE or SVE+SME system).
* CalculateFprOffset now returns different results depending on whether
we have only SIMD or we have streaming SVE. In the latter case, the
stored register offsets are relative to the SVE registers, but actual
accesses need to be relative to the ptrace FP register set.
* In WriteAllRegisters, if we have an FP set to restore on an SME only
system we assume we must have been in non-streaming mode at the time of
the save. So we restore it using the previously mentioned non-streaming
SVE write.
* GetSVERegSet and ConfigureRegisterContext were updated to handle the
new StreamingFPSIMDOnly state.
Commit: d14888121db01f9d8f772fa6daaeb4d293085de0
https://github.com/llvm/llvm-project/commit/d14888121db01f9d8f772fa6daaeb4d293085de0
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsInstrInfo.cpp
Log Message:
-----------
[Mips] Correctly report sizes for PATCHABLE_* (#188229)
Report the size of the xray sled.
This came up while working on
https://github.com/llvm/llvm-project/pull/187703.
Commit: 5639c0bb3f721fea802b03aacd531d2a3ac71ac0
https://github.com/llvm/llvm-project/commit/5639c0bb3f721fea802b03aacd531d2a3ac71ac0
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[llvm][docs] Add release note for LLDB AArch64 Linux SME only support (#189367)
And highlights that some earlier versions have a critical issue on such
systems. This is not something we are able to fix (because the branches
are closed), but users and packagers have some options which are listed
in the issue.
Relates to #138717.
Commit: ab4b689258c21c5e47d1a865b8b980e01395aac7
https://github.com/llvm/llvm-project/commit/ab4b689258c21c5e47d1a865b8b980e01395aac7
Author: Manuel Carrasco <Manuel.Carrasco at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/constant-fold-imm-immreg.mir
M llvm/test/CodeGen/AMDGPU/constant-fold-mi-operands.ll
Log Message:
-----------
[AMDGPU][SIFoldOperands] Fix OR -1 fold (#189655)
In SIFoldOperands, folding `or x, -1` to `v_mov_b32 -1` removed
`Src1Idx`, which is incorrect because `-1` is in `Src0Idx` (after
canonicalization).
Closes https://github.com/llvm/llvm-project/issues/189677.
Commit: 2cff995e91c3ff2fe21ae2e5c0bfb7c6746c3029
https://github.com/llvm/llvm-project/commit/2cff995e91c3ff2fe21ae2e5c0bfb7c6746c3029
Author: Sergio Afonso <safonsof at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
A llvm/lib/Target/AMDGPU/SISpillUtils.cpp
A llvm/lib/Target/AMDGPU/SISpillUtils.h
A llvm/test/CodeGen/AMDGPU/dead-frame-index-dbg-value.ll
Log Message:
-----------
[AMDGPU] Fix crash with dead frame indices in debug values (#183297)
When spill slots are eliminated (VGPR-to-AGPR, SGPR-to-VGPR lanes),
debug values referencing these frame indices were not always properly
cleaned up. This caused an assertion failure in getObjectOffset() when
PrologEpilogInserter tried to access the offset of a dead frame object.
The existing debug fixup code in SIFrameLowering and SILowerSGPRSpills
had two limitations:
1. It only checked one operand position, but DBG_VALUE_LIST instructions
can have multiple debug operands with frame indices.
2. It didn't handle all types of dead frame indices uniformly.
Fix by centralizing debug info cleanup in removeDeadFrameIndices(),
which already knows all frame indices being removed. This iterates over
all debug operands using MI.debug_operands().
Assisted-by: Claude Code.
Commit: 03b5539dd58584e6821e11123d5c8546147a6f41
https://github.com/llvm/llvm-project/commit/03b5539dd58584e6821e11123d5c8546147a6f41
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/unittests/Analysis/CFGTest.cpp
Log Message:
-----------
[ADT] Align `GenericCycle::getExitBlocks`/`getExitingBlocks` methods with LoopBase
Ensure `GenericCycle::getExitBlocks` does not replace the content
of the output vector and behaves as `LoopBase::getExitBlocks`,
previously exposing an issue within `isPotentiallyReachable`.
Fixes: https://github.com/llvm/llvm-project/issues/189800.
Fixes: https://github.com/llvm/llvm-project/issues/189289.
Fixes: https://github.com/llvm/llvm-project/issues/189234.
Fixes: https://github.com/llvm/llvm-project/issues/189180.
Commit: 9d592d9e07509f384c2bc0a29df1a8e4ec516763
https://github.com/llvm/llvm-project/commit/9d592d9e07509f384c2bc0a29df1a8e4ec516763
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
M llvm/test/Analysis/LoopAccessAnalysis/invariant-dep-same-ptr.ll
M llvm/test/Analysis/LoopAccessAnalysis/pointer-phis.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll.expected
Log Message:
-----------
[LAA] Catch load/store to invariant address in dependency checker. (#187023)
There are some accesses we cannot easily catch with the existing SSA
based tracking of uniform stores.
Extend the dependency checker to reject accesses the same invariant
address for cases SCEV can prove (distance is zero).
For those cases, we would not generate runtime checks for the
problematic pair, as they are part of the same group.
Note that this adds a new InvariantUnsafe kind, similar to
IndirectUnsafe, although maybe it would be sufficient to just have a
single Unsafe kind, with slight loss of precision.
Fixes https://github.com/llvm/llvm-project/issues/186922.
PR: https://github.com/llvm/llvm-project/pull/187023
Commit: bc36746ddfee3ca7724e00311f6371090a43754c
https://github.com/llvm/llvm-project/commit/bc36746ddfee3ca7724e00311f6371090a43754c
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/docs/use/aarch64-linux.md
Log Message:
-----------
[lldb][docs] Add documentation for AArch64 Linux SME only support (#165415)
As for other features, this is a mixture of user facing decisions and
internal design decisions.
Commit: 23d76784a5aa01140543881f2c27ace6a6545f98
https://github.com/llvm/llvm-project/commit/23d76784a5aa01140543881f2c27ace6a6545f98
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A lldb/test/API/linux/aarch64/sme_only_registers/Makefile
A lldb/test/API/linux/aarch64/sme_only_registers/TestSMEOnlyRegisters.py
A lldb/test/API/linux/aarch64/sme_only_registers/main.c
Log Message:
-----------
[lldb][AArch64][Linux] Add tests for SME only support (#165414)
This PR is the tests for #138717. I have split it from implementation as
there is a lot of code, and the two don't really overlap. The tests are
checking what a user will see in LLDB, and only indirectly what happens
in lldb-server.
There are two types of tests, the first is register access tests. These
start in a given mode, where a mode is a combination of the streaming
mode on or off, ZA on or off, and a vector length.
For register access tests I have used two states:
* Streaming mode, ZA on, default vector length
* Non-streaming mode, ZA off, default vector length
(changing mode and vector length is tested in existing SVE+SME tests and
the expression tests I'm adding in this same PR)
The test program:
* Sets up the requested mode.
* Allocates a bunch of buffers for LLDB to write expected register
values to.
* Sets initial register values.
Then LLDB looks for those expected values. Assuming they are present, it
then writes a new set of values to the registers, and to the buffers
within the program. The program is then stepped, which runs an
in-process function to check that it now sees those register values. If
that function fails, we have a bug. If it does not, LLDB then checks for
the same values.
This process repeats for several registers. Hence the repeated calls to
check_register_values in the test program.
In this way we make sure that LLDB sends the correct values to ptrace by
validating them in process. Also that LLDB does not write other
registers in the process of writing one register. Which happened to me
several times during development.
The buffer writes are done with memory writes not expression evaluation
becuase at this stage we cannot trust that expressions work (the
expression tests will later prove that they do).
The second type of tests are expression state restoration tests. For
each combination of states we check that we can restore to a given state
if an expression takes us into the other state. This includes between
the same state, and adds an extra vector length to check expanding and
shrinking SVE buffers. This produces roughly 64 tests.
I have written them all as one test case in a loop because these take a
long time (~20 minutes on an FVP) and you almost always want it to fail
fast. When tracing is enabled you'll see the current states logged.
It's possible that we could skip some of these tests as being very
unlikely to ever happen, but in the spirit of
"There are Only Four Billion Floats–So Test Them All!" I think it is
simpler to enumerate every possible state change.
I have not added a test for executing an expression incompatible with
the current mode because this leads to SIGILL, which I know we already
handle. At this time LLDB makes no effort to make the expression
compatible with the current mode either.
Commit: 5072c020aae1636f687af797d4082a26a761c721
https://github.com/llvm/llvm-project/commit/5072c020aae1636f687af797d4082a26a761c721
Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp
M mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
Log Message:
-----------
[mlir][vector] Drop trailing 1-dims from constant_mask (#187383)
Generalize TransferReadDropUnitDimsPattern to also drop unit dimensions
when `vector::ConstantMaskOp` is used.
Previously TransferReadDropUnitDimsPattern would only drop unit
dimensions when `vector::CreateMaskOp` with a statically known operand
was used.
Assisted-by: Cursor
Commit: 9a33125e42925c1e4a9c9f83a2f251b046dd65cd
https://github.com/llvm/llvm-project/commit/9a33125e42925c1e4a9c9f83a2f251b046dd65cd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/LoongArch/is_fpclass_f32.ll
M llvm/test/CodeGen/LoongArch/is_fpclass_f64.ll
M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
Log Message:
-----------
[DAG] Add basic ISD::IS_FPCLASS constant/identity folds (#189944)
Attempts to match middle-end implementation in InstructionSimplify/foldIntrinsicIsFPClass
Fixes #189919
Commit: 461a1c51bf0998edc1fd3b9b7197437136c2fb18
https://github.com/llvm/llvm-project/commit/461a1c51bf0998edc1fd3b9b7197437136c2fb18
Author: AidinT <at.aidin at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/tools/mlir-tblgen/CppGenUtilities.cpp
Log Message:
-----------
[mlir][ods] resolve the wrong indent issue (#189277)
The `emitSummaryAndDescComments` is used to generate summary and
description for tablegen generated classes and structs such as Dialects
and Interfaces. The generated summary and description is indented
incorrectly in the output generated file. For example
`NVGPUDialect.h.inc ` looks like the following:
```cpp
namespace mlir::nvgpu {
/// The `NVGPU` dialect provides a bridge between higher-level target-agnostic
/// dialects (GPU and Vector) and the lower-level target-specific dialect
/// (LLVM IR based NVVM dialect) for NVIDIA GPUs. This allow representing PTX
/// specific operations while using MLIR high level dialects such as Memref
/// and Vector for memory and target-specific register operands, respectively.
class NVGPUDialect : public ::mlir::Dialect {
...
};
} // namespace mlir::nvgpu
```
This is because the `emitSummaryAndDescComments` trims the summary and
description from both sides, rendering the re-indentation useless. This
PR resolves this bug.
Commit: 158f10fe24a39208e45d6039dfc6d605967ade2a
https://github.com/llvm/llvm-project/commit/158f10fe24a39208e45d6039dfc6d605967ade2a
Author: Ming Yan <ming.yan at terapines.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/test/Dialect/MemRef/canonicalize.mlir
Log Message:
-----------
[mlir][memref] Fold memref.reinterpret_cast operations with valid offset or size constants. (#189533)
When encountering an invalid offset or size, we only skip the current
invalid value and continue attempting to fold other valid offsets or
sizes.
Commit: b46f8fa622ab8edf00e986eed2350f137b5efc0b
https://github.com/llvm/llvm-project/commit/b46f8fa622ab8edf00e986eed2350f137b5efc0b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A clang/test/CodeGen/tbaa-matrix.c
Log Message:
-----------
[Matrix] Add tests checking TBAA emission for matrix types (NFC). (#189953)
PR: https://github.com/llvm/llvm-project/pull/189953
Commit: 15d48c5bbe2189db1b79aca0b4f355d0c7d664b6
https://github.com/llvm/llvm-project/commit/15d48c5bbe2189db1b79aca0b4f355d0c7d664b6
Author: Gergo Stomfai <stomfaig at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/SystemZ/canonicalize-vars.ll
Log Message:
-----------
[X86][DAG] remove LowerFCanonicalize (#188127)
Remove LowerFCanonicalize. Added fallback for cases when the scalar type also has its Custom lowering to avoid regressions on AMDGPU and SystemZ.
Fixes #143862
Commit: d6b8163f3fb5b9fe8262171d9815030ccfc3772a
https://github.com/llvm/llvm-project/commit/d6b8163f3fb5b9fe8262171d9815030ccfc3772a
Author: DaKnig <37626476+DaKnig at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/neon-abd.ll
M llvm/test/CodeGen/X86/abds.ll
Log Message:
-----------
Retry "[SDAG] (abs (add nsw a, -b)) -> (abds a, b) (#175801)" (#186659)
A better version of #175801 . see that for more info.
Fixes #185467
The original patch was checking the correctness of the transformation
based on the original Op1 , which was then negated (in the case of
IsAdd). This patch fixes that issue by inverting the sign bit in that
case.
Also pushed a slight nfc there to simplify the code and remove some
duplication.
alive2 proofs:
abds: https://alive2.llvm.org/ce/z/oJQPss
abdu: https://alive2.llvm.org/ce/z/HfPF5q
Note that the regression test is not (wrongly) affected anymore by the
patch (as it did before)
Commit: 5781cc9bf6d4e2b1023162eb7878028e2d21e3d4
https://github.com/llvm/llvm-project/commit/5781cc9bf6d4e2b1023162eb7878028e2d21e3d4
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/MIMGInstructions.td
M llvm/test/TableGen/intrinsic-struct.td
Log Message:
-----------
[LLVM][Intrinsics] Refactor IIT encoding generation (#189790)
Refactor IIT encoding generation. The core change here is that when
generating IIT encodings, we pre-generate all the bits of the IIT
encoding except cases where a type needs to encode its own overload
index, which is patched in later in `TypeInfoGen`. In addition, this
change introduces a class hierarchy for dependent types, so that the
checks in `TypeInfoGen` are more meaningful, and renames/simplifies
several other pieces of code, as listed below.
1. Change the encoding for IIT_ARG's ArgInfo byte to encode the overload
slot index in lower 5 bits and the argument kind in upper 3 bits. This
enabled generating the same packed format for all other dependent types
that need to encode an overload slot index in the IIT encoding. Adjusted
the corresponding C++ code in `IITDescriptor::getArgumentNumber` and
`IIT_Descriptor::getArgumentKind`.
2. Introduce more descriptive classes to handle packing of the overload
index + arg kind into the IIT encoding. `OverloadIndexPlaceholder` is
used to generate a transient value in the type-signature that is patched
in `TypeInfoGen` with that type's overload index. `PackOverloadIndex` is
used to encapsulate the final packing of an overload index and argument
kind in a single byte, and `PatchOverloadIndex` is the class that does
the required patching of a `OverloadIndexPlaceholder` given the type's
overload index.
3. Delete `isAny`, `ArgCode` and `Number` from base `LLVMType` class.
Replace use of `isAny` with `isa<LLVMAnyType>`, `ArgCode` is not used
anymore, and move `Number`, which was used to represent the overload
index for a dependent type to the `LLVMDependentType` class and rename
it to `OverloadIndex`.
4. Introduce `LLVMDependentType` as a base class of all dependent types.
It holds the overload index of the type it depends on in its
`OverloadIndex` field. Also introduce 2 subclasses,
`LLVMFullyDependentType` to represent all fully dependent types (which
encode just the appropriate IIT code and the dependent type's overload
index) and `LLVMPartiallyDependentType` to represent partially dependent
types, that encode the appropriate IIT code and both this type's
overload index and the dependent type's overload index.
5. Change existing dependent type classes to derive from one of these
classes and rename the `num` class argument to `oidx` to better reflect
its meaning.
6. Rename various fields and classes used in `TypeInfoGen` to be more
meaningful. `AssignOverloadIndex` to do overload index assignment,
rename `ACIdxs` to `OverloadIdxs`, `ACTys` to `OverloadTypes` and use
the `DoPatchOverloadIndex` to patch in assigned overload slot indexes.
Commit: ce78c16738f805f8635ce6c575c184b94160fade
https://github.com/llvm/llvm-project/commit/ce78c16738f805f8635ce6c575c184b94160fade
Author: Lewis Crawford <lcrawford at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/Transforms/SROA/vector-promotion-via-tree-structure-merge.ll
Log Message:
-----------
SROA: Fix tree merge IRBuilder insert point (#189680)
StoreInfos is sorted by slice offset, not program order. Anchoring the
IRBuilder at StoreInfos.back() could emit shufflevectors before SSA
values defined later in the same block (invalid IR).
Insert merged shuffles immediately before TheLoad when the load shares
the store block. When the load is elsewhere, insert before the store
block terminator so the merge runs after every store + any trailing
instructions in that block.
Commit: d95292f67b48666be421afe0a3d919480458a6df
https://github.com/llvm/llvm-project/commit/d95292f67b48666be421afe0a3d919480458a6df
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/include/lldb/Host/FileAction.h
M lldb/include/lldb/Host/ProcessLaunchInfo.h
A lldb/include/lldb/Host/windows/WindowsFileAction.h
M lldb/source/Host/CMakeLists.txt
M lldb/source/Host/common/ProcessLaunchInfo.cpp
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
A lldb/source/Host/windows/WindowsFileAction.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
M lldb/tools/lldb-server/lldb-platform.cpp
M lldb/unittests/Host/HostTest.cpp
Log Message:
-----------
[lldb][windows] refactor FileAction (#179274)
Commit: 31edb8fab547eaa76427bf5c62b0c9e58cba3e41
https://github.com/llvm/llvm-project/commit/31edb8fab547eaa76427bf5c62b0c9e58cba3e41
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/test/Transforms/LICM/preheader-safe.ll
M llvm/test/Transforms/LICM/read-only-calls.ll
Log Message:
-----------
[LICM] Generate test checks (NFC) (#189963)
Commit: fd40c606652137706bc336ef80ed1814ab3d3680
https://github.com/llvm/llvm-project/commit/fd40c606652137706bc336ef80ed1814ab3d3680
Author: David Green <david.green at arm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
M llvm/test/Transforms/VectorCombine/LoongArch/shuffle-identity-miscompile.ll
Log Message:
-----------
[VectorCombine] Fix transitive Uses in foldShuffleToIdentity (#188989)
The Uses in foldShuffleToIdentity is intended to detect where an operand
is used to distinguish between splats, identities and concats of the
same value. When looking through multiple unsimplified shuffles the same
Use could be both a splat and a identity though. This patch changes the
Use to a Value and an original Use, so that even if we are looking
through multiple vectors we recognise the splat vs identity vs concat of
each use correctly.
Fixes #180338
Commit: 1c55313f344ff2189500f87c89cec2a3cf2eb5c9
https://github.com/llvm/llvm-project/commit/1c55313f344ff2189500f87c89cec2a3cf2eb5c9
Author: Tony Allevato <tony.allevato at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Support/CommandLine.cpp
M llvm/unittests/Support/CommandLineTest.cpp
Log Message:
-----------
Treat `''` and `""` in Gnu-tokenized response files as an empty string argument. (#187566)
This matches the behavior of gcc and also fixes an inconsistency with
the way the same arguments would be parsed by the shell. For example,
this command line passed directly on the shell:
`command -option1 '' -option2`
has three arguments: `"-option1"`, `""`, and `"-option2"`. However, if
these are passed in a Gnu-tokenized response file today:
```
-option1
''
-option2
```
The `''` is discarded and the command incorrectly has two arguments:
`"-option1"` and `"-option2"`.
Commit: 86c3abe85e7d323c8b7fbe4b83442ca3794512c9
https://github.com/llvm/llvm-project/commit/86c3abe85e7d323c8b7fbe4b83442ca3794512c9
Author: Pankaj Dwivedi <pankajkumar.divedi at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/ADT/Uniformity.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/UniformityAnalysis.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
Log Message:
-----------
[NFC] Rename InstructionUniformity to ValueUniformity (#189935)
Commit: 9dc8f465a42d7187cfff73e56f525560af4f9349
https://github.com/llvm/llvm-project/commit/9dc8f465a42d7187cfff73e56f525560af4f9349
Author: Steven Perron <stevenperron at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
A llvm/test/CodeGen/SPIRV/hlsl-resources/CalculateLevelOfDetail.ll
Log Message:
-----------
[SPIRV] Implement the int_spv_resource_calculate_lod* IntrinsicsSPIRV (#188337)
Implements intrinsics used to get the level-of-detail given a texture,
sampler, and a coordinate. It will be used to implement the
corresponding HLSL methods.
Assisted-by: Gemini
Commit: c6b25b4df3efddcc8ab7b781f299aea2ed682434
https://github.com/llvm/llvm-project/commit/c6b25b4df3efddcc8ab7b781f299aea2ed682434
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/include/llvm-libc-macros/pthread-macros.h
M libc/include/llvm-libc-types/pthread_rwlock_t.h
M libc/src/__support/threads/CMakeLists.txt
M libc/src/__support/threads/linux/CMakeLists.txt
R libc/src/__support/threads/linux/rwlock.h
A libc/src/__support/threads/raw_rwlock.h
A libc/src/__support/threads/unix_rwlock.h
M libc/src/pthread/CMakeLists.txt
M libc/src/pthread/pthread_rwlock_clockrdlock.cpp
M libc/src/pthread/pthread_rwlock_clockwrlock.cpp
M libc/src/pthread/pthread_rwlock_destroy.cpp
M libc/src/pthread/pthread_rwlock_init.cpp
M libc/src/pthread/pthread_rwlock_rdlock.cpp
M libc/src/pthread/pthread_rwlock_timedrdlock.cpp
M libc/src/pthread/pthread_rwlock_timedwrlock.cpp
M libc/src/pthread/pthread_rwlock_tryrdlock.cpp
M libc/src/pthread/pthread_rwlock_trywrlock.cpp
M libc/src/pthread/pthread_rwlock_unlock.cpp
M libc/src/pthread/pthread_rwlock_wrlock.cpp
M libc/test/integration/src/pthread/CMakeLists.txt
M libc/test/integration/src/pthread/pthread_rwlock_test.cpp
M libc/test/src/__support/threads/linux/CMakeLists.txt
A libc/test/src/__support/threads/linux/raw_rwlock_test.cpp
Log Message:
-----------
[libc] separate raw_rwlock and unix_rwlock to make it internally usable (#189773)
Commit: 9b00518419736f698d0a62d0721ee54ceeca4bd7
https://github.com/llvm/llvm-project/commit/9b00518419736f698d0a62d0721ee54ceeca4bd7
Author: Kai Nacke <kai.peter.nacke at ibm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A llvm/include/llvm/MC/MCAsmStreamer.h
M llvm/lib/MC/MCAsmStreamer.cpp
Log Message:
-----------
[MC] Introduce new base class for MCAsmStreamer (#187083)
The class MCAsmBaseStreamer serves as the common base class for streamers
which emit assembly output. It has the same role as MCObjectStreamer has
for streams which emits object files.
Commit: 5d393aee10810d18e30027e22ace3a856d72c0a2
https://github.com/llvm/llvm-project/commit/5d393aee10810d18e30027e22ace3a856d72c0a2
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang-tools-extra/docs/clang-tidy/Contributing.rst
M clang-tools-extra/unittests/clang-tidy/CMakeLists.txt
R clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp
M llvm/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy/BUILD.gn
Log Message:
-----------
[clang-tidy][NFC] Remove the `ObjCModuleTest.cpp` unit test (#185832)
These unit tests only duplicate the tests in
`clang-tools-extra/test/clang-tidy/checkers/objc/forbidden-subclassing.m`.
Commit: ed44820f722aae43f1f00bb3e201300966716973
https://github.com/llvm/llvm-project/commit/ed44820f722aae43f1f00bb3e201300966716973
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/test/Lower/Intrinsics/same_type_as.f90
M flang/test/Lower/Intrinsics/scan.f90
M flang/test/Lower/Intrinsics/secnds.f90
M flang/test/Lower/Intrinsics/selected_int_kind.f90
M flang/test/Lower/Intrinsics/selected_real_kind.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 40) (#189791)
Tests converted from test/Lower/Intrinsics: same_type_as.f9, scan.f90,
scan.f90, selected_int_kind.f90, selected_real_kind.f90
Commit: 0b61cd39e45ad7e0476740a5ecc455e7461488a4
https://github.com/llvm/llvm-project/commit/0b61cd39e45ad7e0476740a5ecc455e7461488a4
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-factors.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/load-cast-context.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect-inloop-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect-strict-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vscale-fixed.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-epilogue.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
Log Message:
-----------
[LV] Add epilogue minimum iteration check in VPlan as well. (#189372)
Update LV to also use the VPlan-based addMinimumIterationCheck for the
iteration count check for the epilogue.
As the VPlan-based addMinimumIterationCheck uses VPExpandSCEV, those
need to be placed in the entry block for now, moving vscale * VF * IC to
the entry for scalable vectors.
The new logic also fails to simplify some checks involving PtrToInt,
because they were only simplified when going through generated IR, then
folding some PtrToInt in IR, then constructing SCEVs again. But those
should be cleaned up by later combines, and there is not really much we
can do other than trying to go through IR.
PR: https://github.com/llvm/llvm-project/pull/189372
Commit: c7c9b25e8b4efd338aadaa3c2ad744faa6422964
https://github.com/llvm/llvm-project/commit/c7c9b25e8b4efd338aadaa3c2ad744faa6422964
Author: argmaxin <srcydeveloper at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
Log Message:
-----------
Update ExtractAPIConsumer.cpp (#88285)
Fix small spelling mistake.
Co-authored-by: Srcy Dev <88575889+SrcyDev at users.noreply.github.com>
Commit: 54914a4287ca73bb95e42a6cdf19f5d786eb256f
https://github.com/llvm/llvm-project/commit/54914a4287ca73bb95e42a6cdf19f5d786eb256f
Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/Rematerializer.h
M llvm/lib/CodeGen/Rematerializer.cpp
M llvm/unittests/CodeGen/RematerializerTest.cpp
Log Message:
-----------
[CodeGen] Allow rematerializer to rematerialize at the end of a block (#184339)
This makes the rematerializer able to rematerialize MIs at the end of a
basic block. We achieve this by tracking the parent basic block of every
region inside the rematerializer and adding an explicit target region to
some of the class's methods. The latter removes the requirement that we
track the MI of every region (`Rematerializer::MIRegion`) after the
analysis phase; the class member is therefore deleted.
This new ability will be used shortly to improve the design of the
rollback mechanism.
Commit: c245d764b8bd70ff78044f56b2dea619b0d428dc
https://github.com/llvm/llvm-project/commit/c245d764b8bd70ff78044f56b2dea619b0d428dc
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/ProcessImplicitDefs.cpp
M llvm/test/CodeGen/AMDGPU/blender-no-live-segment-at-def-implicit-def.ll
M llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
M llvm/test/CodeGen/AMDGPU/call-constexpr.ll
M llvm/test/CodeGen/AMDGPU/call-skip.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll
M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/mfma-cd-select.ll
A llvm/test/CodeGen/AMDGPU/multi-use-implicit-def.mir
M llvm/test/CodeGen/AMDGPU/phi-av-pressure.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
M llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll
A llvm/test/CodeGen/AMDGPU/subreg-implicit-def.mir
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/undef-handling-crash-in-ra.ll
M llvm/test/CodeGen/PowerPC/p10-spill-crun.ll
M llvm/test/CodeGen/RISCV/miss-sp-restore-eh.ll
M llvm/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll
M llvm/test/CodeGen/X86/issue76416.ll
M llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll
A llvm/test/CodeGen/X86/multi-use-implicit-def.mir
M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
M llvm/test/CodeGen/X86/regalloc-advanced-split-cost.ll
M llvm/test/CodeGen/X86/statepoint-two-results.ll
M llvm/test/CodeGen/X86/statepoint-vreg-invoke.ll
M llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
Log Message:
-----------
[CodeGen] Do not remove IMPLICIT_DEF unless all uses have undef flag added (#188133)
Do not remove IMPLICIT_DEF of a physreg unless all uses have an undef
flag added. Previously, only the first use instruction had undef flags
added. This will cause a failure in machine instruction verification.
Multi-instruction uses tested in AMDGPU/multi-use-implicit-def.mir and
X86/multi-use-implicit-def.mir.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
Commit: 234b8469e92aa3bfcc08e5b7abd6fcbb11a258a6
https://github.com/llvm/llvm-project/commit/234b8469e92aa3bfcc08e5b7abd6fcbb11a258a6
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/lib/Lower/ConvertCall.cpp
A flang/test/Lower/HLFIR/elemental-character-min-max.f90
Log Message:
-----------
[Flang] Compute elemental character MIN/MAX result length in HLFIR (#189464)
This patch fixes lowering of elemental character MIN/MAX in HLFIR.
Previously, these cases could hit a lowering-time TODO
`ElementalIntrinsicCallBuilder::computeDynamicCharacterResultLength` and
abort. This change computes the character result length as the maximum
length of the present actual arguments, allowing valid elemental
character MIN/MAX calls to lower successfully.
Added regression coverage for elemental character MIN/MAX, including
differing-length arguments.
Co-authored-by: Sairudra More <moresair at pe31.hpc.amslabs.hpecorp.net>
Commit: 697ff31fc71fcc895edb077e6fc341761edc0acf
https://github.com/llvm/llvm-project/commit/697ff31fc71fcc895edb077e6fc341761edc0acf
Author: Lei Huang <lei at ca.ibm.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrAltivec.td
M llvm/lib/Target/PowerPC/PPCInstrFuture.td
M llvm/test/CodeGen/PowerPC/vector-rotates.ll
Log Message:
-----------
[PowerPC] Enhance vec_rl() to generate xvrlw (#189023)
Enhance existing builtin vec_rl() to generate the new xvrlw, VSX version
of vrlw, for cpu=future.
Commit: 6f0e961cc2d541e96b1a98c3f196855b0eab2856
https://github.com/llvm/llvm-project/commit/6f0e961cc2d541e96b1a98c3f196855b0eab2856
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
Log Message:
-----------
[WebAssembly] Correct operands for NaN/Zero checks in min/max (#189712)
The `pmin` and `pmax` pattern fragments match `vselect`s, meaning that
the generated operands for `relaxed_min` and `relaxed_max` correspond to
operands 1 and 2 of the `vselect` (rather than operands 0 and 1).
Commit: 046e23fa4adaf4cdee23f4f3416d7d57009f19d5
https://github.com/llvm/llvm-project/commit/046e23fa4adaf4cdee23f4f3416d7d57009f19d5
Author: Roy Shi <royitaqi at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/DebugInfo/GSYM/FileWriter.cpp
M llvm/lib/Support/DataExtractor.cpp
Log Message:
-----------
[llvm lib] Fix endian bug in #189098 (#189778)
The bug was added in #189098. Both functions that I added/changed
assumed little-endian host memory layout when reading/writing
non-power-of-two byte sizes (3, 5, 6, 7). On big-endian hosts (SPARC,
s390x), memcpy copies bytes into the MSB end of a uint64_t, leaving the
value in the wrong bit position. Fix by offsetting the memcpy/write
pointer to always target the LSB bytes.
Commit: 364b19322db209f6a465934e7483a6e1dde14043
https://github.com/llvm/llvm-project/commit/364b19322db209f6a465934e7483a6e1dde14043
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.h
Log Message:
-----------
[RISCV] Add assertions to VSETVLIInfo::hasSEWLMULRatioOnly(). NFC (#189799)
Ensure that we can only call this on valid and not unknown.
Commit: 16255e457c9d5d418bd67543c97204448e195597
https://github.com/llvm/llvm-project/commit/16255e457c9d5d418bd67543c97204448e195597
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
Log Message:
-----------
[RISCV] Add RISCVISD::USATI/SATI to computeKnownBitsForTargetNode/ComputeNumSignBitsForTargetNode. (#189702)
Commit: 9506f20b4dccc6334cc36e04c93033d575cfee52
https://github.com/llvm/llvm-project/commit/9506f20b4dccc6334cc36e04c93033d575cfee52
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCUtils.h
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Analysis/CMakeLists.txt
A flang/test/Analysis/AliasAnalysis/alias-analysis-acc.mlir
M mlir/include/mlir/Dialect/OpenACC/OpenACC.h
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
Log Message:
-----------
[flang][acc] Add AA implementation for acc operations (#189772)
This PR extends flang's alias analysis so it can reason about values
that originate from OpenACC data and privatization operations, including
values passed through block arguments.
Commit: 8a1d6c6f5e421bcade951ce9df4d9d300075cab7
https://github.com/llvm/llvm-project/commit/8a1d6c6f5e421bcade951ce9df4d9d300075cab7
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/test/Driver/linux-ld.c
Log Message:
-----------
clang: driver: update android packed relocation logic (#189758)
Hoist this up from the build system so that users of Android's NDK can
benefit from these various packed relocation encodings depending on
which API level they are targeting.
Link: https://github.com/android/ndk/issues/909
Fixes: https://github.com/android/ndk/issues/2193
Link: https://github.com/android/ndk/issues/2188#issuecomment-3366591142
Link:
https://android.googlesource.com/platform/build/soong/+/d046c2afef086a35d24222b09f4d2c4914e8a2a5/cc/linker.go#548
Commit: b528f6746d4dafdc5975041752b14c0c1714afbc
https://github.com/llvm/llvm-project/commit/b528f6746d4dafdc5975041752b14c0c1714afbc
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[Offload] Run liboffload unit tests as a part of check-offload (#189731)
Summary:
These are currently only run with check-offload-unit. Make them a part
of the other tests by putting a dependency on it. We did something like
this previously but it was reverted because the tests failed if there
were no GPUs (like in systems that only checked the CPU case) but I
think that has been fixed.
Commit: 5d9eb0c76aec65c159fb104a241545680483212d
https://github.com/llvm/llvm-project/commit/5d9eb0c76aec65c159fb104a241545680483212d
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M llvm/docs/AMDGPUUsage.rst
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/TargetParser/TargetParser.cpp
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
Log Message:
-----------
[AMDGPU] Define new targets gfx1171 and gfx1172 (#187735)
Commit: 27c85964006ec45bd8215ec3271c79fbda435735
https://github.com/llvm/llvm-project/commit/27c85964006ec45bd8215ec3271c79fbda435735
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/MC/MCWin64EH.cpp
Log Message:
-----------
[win][x64] Unwind v2: When making headroom leave space for the header (#188368)
When the `ensureHeadroom` call was added during unwind v2 info emission,
it didn't take into account that there is a header of 2-bytes before all
the fixups, so not enough space was actually reserved.
Commit: 1e06cd634e849054d1fe11c1493870b2a7ddf1c9
https://github.com/llvm/llvm-project/commit/1e06cd634e849054d1fe11c1493870b2a7ddf1c9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC] Fix uninitialized ReductionRoot in getTreeCost
ReductionRoot was initialized to nullptr instead of the RdxRoot
parameter. This caused two ScaleCost calls (for MinBWs cast cost and
ReductionBitWidth resize cost) to pass nullptr as the user instruction,
and suppressed the "Reduction Cost" line in debug output. In practice
the scale factor is the same because the tree root's main op and the
reduction root share the same basic block, so this is NFC.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/189994
Commit: 015f864215e91d05199fc3c61ef0ee804975d57e
https://github.com/llvm/llvm-project/commit/015f864215e91d05199fc3c61ef0ee804975d57e
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Log Message:
-----------
[lldb] Const some ASTContext pointers in TypeSystemClang (NFC) (#189975)
Commit: f918af7a702f32e35b2fb505de24801d06266ed4
https://github.com/llvm/llvm-project/commit/f918af7a702f32e35b2fb505de24801d06266ed4
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Remove qualification from evaluate::SymbolVector, NFC (#189984)
`SymbolVector` is defined in flang/Semantics/symbol.h, so there is no
need to use a namespace-qualified name for it in lib/Semantics.
Commit: 82e84940701b3e7bba9069e99f8247e7434973bc
https://github.com/llvm/llvm-project/commit/82e84940701b3e7bba9069e99f8247e7434973bc
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
Log Message:
-----------
[VPlan] Avoid unnecessary BTC SymbolicValue creation (NFC) (#189929)
Don't unnecessarily create a backedge-taken-count SymbolicValue. This
allows us to simplify some code.
Commit: 5c36ef884321e293714da6e06239345ba2805d3c
https://github.com/llvm/llvm-project/commit/5c36ef884321e293714da6e06239345ba2805d3c
Author: yebinchon <86588366+yebinchon at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
A flang/test/HLFIR/bufferize-associate-block-ordering.fir
Log Message:
-----------
[flang] fix a dangling else in allOtherUsesAreSafeForAssociate (#189748)
Fix a dangling if condition in allOtherUsesAreSafeForAssociate that
caused isBeforeInBlock to be called even when instructions were known to
not be in the same block, triggering an assertion. The condition was
changed to else if and added brackets.
---------
Co-authored-by: Yebin Chon <ychon at nvidia.com>
Commit: 44979bedf0b65db49c7ea67f5d40b0d4c44b06ea
https://github.com/llvm/llvm-project/commit/44979bedf0b65db49c7ea67f5d40b0d4c44b06ea
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Strip dead code in isUniformAcrossVFsAndUFs (NFC) (#189687)
Checking a VPInstruction for scalar-cast is equivalent to checking
opcode against Instruction::isCast via preservesUniformity.
Commit: 91adaeceb162357a33e2ea6155cb13a4198a981a
https://github.com/llvm/llvm-project/commit/91adaeceb162357a33e2ea6155cb13a4198a981a
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A clang/include/clang/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.h
M clang/lib/CIR/CodeGen/CIRGenerator.cpp
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/Dialect/CMakeLists.txt
A clang/lib/CIR/Dialect/OpenMP/CMakeLists.txt
A clang/lib/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/Transforms/omp-mark-declare-target.cir
M clang/tools/cir-opt/CMakeLists.txt
M clang/tools/cir-opt/cir-opt.cpp
M clang/tools/cir-translate/CMakeLists.txt
M clang/tools/cir-translate/cir-translate.cpp
M mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
M mlir/lib/Dialect/OpenMP/Transforms/MarkDeclareTarget.cpp
Log Message:
-----------
[CIR][MLIR][OpenMP] Enable the MarkDeclareTarget pass for ClangIR (#189420)
This patch enables the MarkDeclareTarget for CIR by adding the pass to
the lowerings and attaching the declare target interface to the
cir::FuncOp. The MarkDeclareTarget is also generalized to work on the
FunctionOpInterface instead of func::Op since it needs to be able to
handle cir::FuncOp as well.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: d7e129dffbe1d8cdafd6731a4ff130da68deb40b
https://github.com/llvm/llvm-project/commit/d7e129dffbe1d8cdafd6731a4ff130da68deb40b
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Log Message:
-----------
[SelectionDAGBuilder] Only check VPCmp for NaNs in fp comparisons (#189749)
`getFCmpCodeWithoutNaN` should only be used for FP comparisons (which is
also the only context in which `isKnownNeverNaN` makes sense).
Commit: 166806e792002325814e66cb05fd38540f65cc21
https://github.com/llvm/llvm-project/commit/166806e792002325814e66cb05fd38540f65cc21
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/mod-file.h
M flang/lib/Semantics/resolve-names.cpp
R flang/test/Semantics/Inputs/modfile84.f90
R flang/test/Semantics/modfile84.f90
Log Message:
-----------
Revert "[flang] Preserve UseErrorDetails in module files (#189423)" (#189997)
This reverts commit fce3a66f5e2f247890c57ac01a2c9847358c0f27. It broke a
Fortran application in our in-house testing.
Commit: 45b932a2d452c997d98b57e1aa31bc4951c5e9f4
https://github.com/llvm/llvm-project/commit/45b932a2d452c997d98b57e1aa31bc4951c5e9f4
Author: Katherine Rasmussen <krasmussen at lbl.gov>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/docs/Extensions.md
Log Message:
-----------
[flang] Update Flang Extension doc to reflect previous change (#188088)
Update Flang Extension doc to remove note about a warning that was
removed in a previous PR (PR #178088). It is an oversight that this doc
change was not made in that previous PR. The oversight was only recently
discovered and has led to this PR.
Commit: 66d1dc48ad7bc344e2656fcf3afb7470c70a9382
https://github.com/llvm/llvm-project/commit/66d1dc48ad7bc344e2656fcf3afb7470c70a9382
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
Log Message:
-----------
Revert "[lldb] Increase timeout on lldbutil.wait_for_file_on_target" (#190004)
Reverts llvm/llvm-project#189471 because it seems like this breaks the
Sanitized bots:
https://github.com/llvm/llvm-project/pull/189471#issuecomment-4171688975
Commit: 33ca7a4667d7f60a4692a2e03b3de94f66ff0d10
https://github.com/llvm/llvm-project/commit/33ca7a4667d7f60a4692a2e03b3de94f66ff0d10
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/test/Transforms/LICM/hoist-binop.ll
Log Message:
-----------
[LICM] Reassociate add/sub expressions to hoist invariant computations (#183082)
While `sub` is not associative, we can still reassociate `add` and
`sub`.
## Alive2 proofs
| Case | Transform | Proof |
|------|-----------|-------|
| 1 | `(x + c1) - c2` => `x + (c1 - c2)` |
[proof](https://alive2.llvm.org/ce/z/iofzYy) |
| 2 | `(x - c1) - c2` => `x - (c1 + c2)` |
[proof](https://alive2.llvm.org/ce/z/U4K_tE) |
| 3 | `(x - c1) + c2` => `x + (c2 - c1)` |
[proof](https://alive2.llvm.org/ce/z/moiJVw) |
Commit: 7c4b6dee7401769a359d2922629f7cd0103d6c72
https://github.com/llvm/llvm-project/commit/7c4b6dee7401769a359d2922629f7cd0103d6c72
Author: Sadaf Ebrahimi <sadafebrahimi at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[scudo] Ensure that reallocate copies everything
getUsableSize returns the actual capacity of the underlying block, which
may be larger than the size originally requested by the user. If the
user writes data into this extra space accessible via getUsableSize and
subsequently calls reallocate, the existing implementation only copies
the original requested number of bytes. This resulted in data loss for
any information stored beyond the requested size but within the usable
bounds.
Commit: 996157cb17a0f608590bdd2b3d8560d798acc188
https://github.com/llvm/llvm-project/commit/996157cb17a0f608590bdd2b3d8560d798acc188
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
Log Message:
-----------
Fully disable `preserve_none` under ASan (#190001)
This crashes Clang 19, 21, and 22 on x86-64 that I've tested and I don't
have a ready-to-test build of any other versions but it seems much safer
to just disable for now.
Commit: 26a5a494c3c97219ea94fd0ca47a648ab8b32472
https://github.com/llvm/llvm-project/commit/26a5a494c3c97219ea94fd0ca47a648ab8b32472
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] factor out repetitive code in GCD test (NFCI) (#189461)
The logic for recursively investigating the source and destination
AddRecs in GCD test is the same and can be factored out.
Commit: 07fc9b8155b4913c8fb235ae05898893ec7d388f
https://github.com/llvm/llvm-project/commit/07fc9b8155b4913c8fb235ae05898893ec7d388f
Author: Luke Lau <luke at igalia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmax-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmin-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vfmax-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vfmin-vp.ll
Log Message:
-----------
[RISCV] Remove codegen for vp_minnum, vp_maxnum (#189899)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off 2 intrinsics from #179622.
Commit: b71eacea7687f68c11299e3bda5654fbbaa1e20e
https://github.com/llvm/llvm-project/commit/b71eacea7687f68c11299e3bda5654fbbaa1e20e
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 91adaec (#189998)
This fixes 91adaeceb162357a33e2ea6155cb13a4198a981a.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 24b6ee90c1eed2f6f9f5d086b74a4e5fd55e0717
https://github.com/llvm/llvm-project/commit/24b6ee90c1eed2f6f9f5d086b74a4e5fd55e0717
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[SelectionDAG] Assert on non-FP operand to `computeKnownFPClass` (#189752)
Assert correct usage of `computeKnownFPClass` or users (i.e.,
`isKnownNeverNaN`).
Commit: fbf484009c782a3ecb8bae6526d4c10d006365fc
https://github.com/llvm/llvm-project/commit/fbf484009c782a3ecb8bae6526d4c10d006365fc
Author: Vito Secona <77039267+secona at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/SparseTensor/Pipelines/Passes.h
M mlir/lib/Dialect/SparseTensor/Pipelines/SparseTensorPipelines.cpp
Log Message:
-----------
[mlir][sparse] add GPU num threads to sparsifier options (#189078)
This change adds a `gpu-num-threads` option to the sparsifier. This
allows users to specify the number of threads used for GPU codegen,
similar to the `num-threads` option in the `-sparse-gpu-codegen` pass.
Commit: e55c85341d9f757021b4f31b910d2ad2175f7e6c
https://github.com/llvm/llvm-project/commit/e55c85341d9f757021b4f31b910d2ad2175f7e6c
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang/lib/Lower/Bridge.cpp
A flang/test/Lower/OpenMP/requires-usm.f90
Log Message:
-----------
[Flang][OpenMP] Extend omp requires detection in Bridge.cpp (#188106)
Currently, we do not check the module for requires directives, which
means we'll miss these and not set them on the OpenMP module.
Otherwise, due to the first come first serve method we currently check
the symbols, there is certain formats that would mean the compiler would
miss that a user had specified requires somewhere in the module. This is
partially but not fully avoided by the Semantics layer pushing the
requires on to the top most PFT symbol, as it is entirely possible to
create a legal Fortran program where you could have two or more of these
(e.g. module and main program in one file, standalone funcitons
intermixed with modules or main program). Some examples of this are
shown in the added Fortran test. This PR opts to resolve it by gathering
all of the relevant symbols and processing them.
Also removed gathering from BlockDataUnit as I don't think these symbols
ever get the requires applied.
Commit: 54e5803d0231211decb64105b10b4701dce938c2
https://github.com/llvm/llvm-project/commit/54e5803d0231211decb64105b10b4701dce938c2
Author: Zhige Chen <zhige_chen at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/tools/llubi/lib/CMakeLists.txt
A llvm/tools/llubi/lib/ExecutorBase.cpp
A llvm/tools/llubi/lib/ExecutorBase.h
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Extract reusable methods of InstExecutor into ExecutorBase (#186976)
This PR extracts the non-visitor methods of class InstExecutor into a
separate class ExecutorAPI. This reorganization allows library functions
(and any future extensions) to reuse the functionality of InstExecutor
without introducing cyclic dependencies.
See also #185645 and #185817.
Commit: 6c7c575556cbcd49d3fe6321b3bf55c30111b4d9
https://github.com/llvm/llvm-project/commit/6c7c575556cbcd49d3fe6321b3bf55c30111b4d9
Author: Jameson Nash <vtjnash at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGHLSLRuntime.cpp
Log Message:
-----------
[clang] fix OutputSemantic list in HLSL (#185550)
Normally sane front-ends with the common calling-conventions avoid
having multiple sret with a return value, so this is NFCI. However,
multiple can be valid. This rewrites an odd looking DenseMap of one
element that was needed for iteration into a more sensible vector.
Noted in https://github.com/llvm/llvm-project/pull/181740 review.
Commit: 01cf792d1e68b28104c777927acf18fda3d41a95
https://github.com/llvm/llvm-project/commit/01cf792d1e68b28104c777927acf18fda3d41a95
Author: PiJoules <leonardchan at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/test/SemaCXX/using-if-exists.cpp
Log Message:
-----------
[clang] Fix conflicting declaration error with using_if_exists (#167646)
This fixes an issue with using_if_exists where we would hit `conflicts
with target of using declaration already in scope` with a
using_if_exists attribute referring to a declaration which did not
exist. That is, if we have `using ::bar
__attribute__((using_if_exists))` but `bar` is not in the global
namespace, then nothing should actually be declared here.
This PR contains the following changes:
1. Ensure we only diagnose this error if the target decl and [Non]Tag
decl can be substitutes for each other.
2. Prevent LookupResult from considering UnresolvedUsingIfExistsDecls in
the event of ambiguous results.
3. Update tests. This includes the minimal repo for a regression test,
and changes to existing tests which also seem to exhibit this bug.
Fixes #85335
---------
Co-authored-by: Petr Hosek <phosek at google.com>
Commit: 3b3b556a12a79109785394233779d89982068705
https://github.com/llvm/llvm-project/commit/3b3b556a12a79109785394233779d89982068705
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
[mlir][NVVM] Add managed attribute for global variables (#189751)
Add support for the `nvvm.managed` attribute on `llvm.mlir.global` ops.
When present, the LLVM IR translation emits `!nvvm.annotations` metadata
with `!"managed"` for the global variable, which the NVPTX backend uses
to generate `.attribute(.managed)` in PTX output.
This enables CUDA managed memory support for frontends that lower
through MLIR.
Commit: 573935d7b3a2565605b22edd8a7a60d6d6638244
https://github.com/llvm/llvm-project/commit/573935d7b3a2565605b22edd8a7a60d6d6638244
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-delta-signed-min.ll
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-large-btc.ll
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-overflow.ll
Log Message:
-----------
[DA] Overflow check in WeakCrossing Delta calculation (#185046)
When subtracting the constant part of two addrecs, we need to ensure the
calculation won't overflow. If it may overflow, we conservatively stop
the analysis and return false.
Commit: b5745e1e28c0503069804ebb8921a4b66a4d0a3d
https://github.com/llvm/llvm-project/commit/b5745e1e28c0503069804ebb8921a4b66a4d0a3d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/amdgpu/headers.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/gpu/nvptx/headers.txt
Log Message:
-----------
[libc] Support basic 'complex.h' functionality on GPUs (#189999)
Summary:
This PR adds the basic complex functions needed by some targets. This is
an attempt to provide the standard interface needed by
'https://github.com/llvm/llvm-project/pull/187831'
Commit: d736e1bd0b98706ced9b689211c8df39abb7cd46
https://github.com/llvm/llvm-project/commit/d736e1bd0b98706ced9b689211c8df39abb7cd46
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/atomic.test
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/div.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/floating-point.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/integer.test
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/load.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/mask.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/mul-cpop.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/mul-div.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/arithmetic.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/bitwise.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/comparison.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/conversion.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/fma.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/fp.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/mask.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/minmax.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/mul-div.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/permutation.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/reduction.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/vle-vse-vlm.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/vlse-vsse.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/vlseg-vsseg.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/vlxe-vsxe.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvbb.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvbc.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvkg.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvkned.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvknhb.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvksed.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/zvksh.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vle-vse-vlm.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlse-vsse.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlxe-vsxe.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vmv.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zba.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zbb.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zbs.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zfhmin.test
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvbb.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvbc.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvkg.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvkned.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvknhb.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvksed.s
R llvm/test/tools/llvm-mca/RISCV/SiFiveP600/zvksh.s
Log Message:
-----------
[RISCV][MCA] Update sifive-p670 tests to consume input files instead (#189785)
Use the new input file system for `sifive-p670`'s llvm-mca tests. Some
of the vector crypto extension tests are left intact, due to the lack of
corresponding input files, and moved under the `rvv` sub-directory.
Commit: c794742bd7f41c80b764b58019258cafd87f4a6a
https://github.com/llvm/llvm-project/commit/c794742bd7f41c80b764b58019258cafd87f4a6a
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M flang-rt/lib/cuda/registration.cpp
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Runtime/CUDA/registration.h
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFOpConversionLate.cpp
M flang/test/Fir/CUDA/cuda-code-gen.mlir
M flang/test/Fir/CUDA/cuda-constructor-2.f90
M flang/test/Fir/CUDA/cuda-device-address.mlir
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Support non-allocatable module-level managed variables (#189753)
Add support for non-allocatable module-level CUDA managed variables
using pointer indirection through a companion global in
__nv_managed_data__. The CUDA runtime populates this pointer with the
unified memory address via __cudaRegisterManagedVar and
__cudaInitModule.
- Create a .managed.ptr companion global in the __nv_managed_data__
section and register it with _FortranACUFRegisterManagedVariable
- Call __cudaInitModule once after all variables are registered, only
when non-allocatable managed globals are present, to populate managed
pointers
- Annotate managed globals in gpu.module with nvvm.managed for PTX
.attribute(.managed) generation
- Suppress cuf.data_transfer for assignments to/from non-allocatable
module managed variables, since cudaMemcpy would target the shadow
address rather than the actual unified memory
- Preserve cuf.data_transfer for device_var = managed_var assignments
where explicit transfer is still required
Note: This PR depends on
[#189751](https://github.com/llvm/llvm-project/pull/189751) (MLIR:
nvvm.managed attribute).
Commit: e5d57ce707e388219f0341002b8d8c908095bad1
https://github.com/llvm/llvm-project/commit/e5d57ce707e388219f0341002b8d8c908095bad1
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaObjC.cpp
R clang/test/Sema/gh183974.c
Log Message:
-----------
Revert "[Clang] Fix assertion when __block is used on global variables in C mode" (#190018)
Reverts llvm/llvm-project#183988
Breaks ObjC code, see
https://github.com/llvm/llvm-project/pull/183988#issuecomment-4134934748
Commit: 35ceec6a785f623b0e7f20b46297a2509c4a4e5b
https://github.com/llvm/llvm-project/commit/35ceec6a785f623b0e7f20b46297a2509c4a4e5b
Author: lntue <lntue at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/config/gpu/config.json
M libc/src/__support/CMakeLists.txt
M libc/src/__support/time/CMakeLists.txt
M libc/src/time/linux/CMakeLists.txt
M libc/src/unistd/CMakeLists.txt
M libc/test/UnitTest/CMakeLists.txt
M libc/test/UnitTest/TestLogger.cpp
Log Message:
-----------
[libc] Finetune libc.src.__support.OSUtil.osutil dependency. (#189501)
Several key targets unconditionally depend on `OSUtil.osutil` target,
causing errors when it is unnecessarily linked, or not available. This
PR fine-tuning the dependency on `OSUtil.osutil` to cleanly decouple
those targets, and gracefully skip targets that need `osutil`. Main
changes include:
* Make `LIBC_COPT_USE_C_ASSERT` to a cmake config, allowing
`LIBC_ASSERT` to use system's `assert` and not depending on `osutil`.
* Adjust cmake dependency for the following targets:
- libc.src.__support.libc_assert
- libc.src.__support.time.*
- libc.src.time.linux.*
- libc.src.unistd.*
- LibcTest
* Give an option for `TestLogger` to use system's `fprintf` instead of
`osutil`.
Commit: 150aa6f2d385d9c1ffa378e16595d7a738f921fc
https://github.com/llvm/llvm-project/commit/150aa6f2d385d9c1ffa378e16595d7a738f921fc
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Add support for convert layout with scalar in Sg to WI distribution (#189721)
Commit: 34028294e49b732c15c75e3b812f3868e6a89da8
https://github.com/llvm/llvm-project/commit/34028294e49b732c15c75e3b812f3868e6a89da8
Author: Leandro Lacerda <leandrolcampos at yahoo.com.br>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M offload/include/Shared/RefCnt.h
M offload/liboffload/API/Event.td
M offload/liboffload/src/OffloadImpl.cpp
M offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp
M offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.h
M offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.h
M offload/plugins-nextgen/cuda/src/rtl.cpp
M offload/plugins-nextgen/host/src/rtl.cpp
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/unittests/OffloadAPI/CMakeLists.txt
A offload/unittests/OffloadAPI/event/olGetEventElapsedTime.cpp
Log Message:
-----------
[Offload] Add support for measuring elapsed time between events (#186856)
This patch adds `olGetEventElapsedTime` to the new LLVM Offload API, as
requested in
[#185728](https://github.com/llvm/llvm-project/issues/185728), and adds
the corresponding support in `plugins-nextgen`.
A main motivation for this change is to make it possible to measure the
elapsed time of work submitted to a queue, especially kernel launches.
This is relevant to the intended use of the new Offload API for
microbenchmarking GPU libc math functions.
### Summary
The new API returns the elapsed time, in milliseconds, between two
events on the same device.
To support the common pattern `create start event → enqueue kernel →
create end event → sync end event → get elapsed time`, `olCreateEvent`
now always creates and records a backend event through the device
interface. For backends that materialize real event state, this gives
the event concrete backend state that can be used for elapsed-time
measurement. For backends that do not materialize backend event state,
`EventInfo` may still remain null and existing event operations continue
to treat such events as trivially complete.
Previously, an event created on an empty queue could be represented only
as a logical event. That representation was sufficient for sync and
completion queries, but it was not suitable for elapsed-time measurement
because there was no backend event state to timestamp. The new behavior
preserves the meaning of completion of prior work while also allowing
backends with timing support to attach real event state.
### Changes in `plugins-nextgen`
#### Common interface
Add elapsed-time support to the common device and plugin interfaces:
* `GenericPluginTy::get_event_elapsed_time`
* `GenericDeviceTy::getEventElapsedTime`
* `GenericDeviceTy::getEventElapsedTimeImpl`
#### AMDGPU
* Add the required ROCr declarations and wrappers.
* Enable queue profiling at queue creation time.
* Record events by enqueuing a real barrier marker packet on the stream.
* Retain the timing signal needed to query the recorded marker later.
* Implement `getEventElapsedTimeImpl` using
`hsa_amd_profiling_get_dispatch_time`, converting the result to
milliseconds with `HSA_SYSTEM_INFO_TIMESTAMP_FREQUENCY`.
This follows the ROCm/HIP approach of enabling queue profiling at HSA
queue creation time, while keeping the AMDGPU queue path simpler than
the lazy-enable alternative discussed during review.
#### CUDA
* Add the required CUDA driver declarations and wrappers.
* Implement `getEventElapsedTimeImpl` with `cuEventElapsedTime`.
#### Host
* Add `getEventElapsedTimeImpl` that stores `0.0f` in the output
pointer, when present, and returns success.
Reason: the host plugin does not materialize backend event state and
already treats event operations as trivially successful. Returning
`0.0f` preserves that model without introducing a new failure mode.
#### Level Zero
* Add `getEventElapsedTimeImpl`, but leave it unimplemented.
Reason: the Level Zero plugin currently does not provide standalone
backend event support for this event model. For example, `waitEventImpl`
/ `syncEventImpl` are still unimplemented there.
---------
Signed-off-by: Leandro Augusto Lacerda Campos <leandrolcampos at yahoo.com.br>
Signed-off-by: Leandro A. Lacerda Campos <leandrolcampos at yahoo.com.br>
Commit: 75333a09818147f72387a6f93e3248595ab88048
https://github.com/llvm/llvm-project/commit/75333a09818147f72387a6f93e3248595ab88048
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/CMakeLists.txt
A libc/shared/CMakeLists.txt
Log Message:
-----------
[libc] Install the RPC headers so they can be used without LLVM source (#189996)
Summary:
The RPC headers are completely freestanding and can be installed and
used. This just places them in the standard compiler install directory
along with everything else. We put it under `shared/` so the usage
matches with using the upstream version. People using the installed
version will need to manuall `-isystem` into the include directory, but
this is part for the course for these LLVM extra headers.
Commit: 8ea475fdf923619760108a2109cc4dcee8041942
https://github.com/llvm/llvm-project/commit/8ea475fdf923619760108a2109cc4dcee8041942
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/include/clang/Serialization/ModuleCache.h
M clang/lib/DependencyScanning/InProcessModuleCache.cpp
M clang/lib/Serialization/ModuleCache.cpp
M clang/lib/Serialization/ModuleManager.cpp
Log Message:
-----------
[clang] Introduce `ModuleCache::read()` (#188876)
This PR introduces new `ModuleCache` API for reading PCM files. This
makes it so that we don't go through the `FileManager` and VFS, which is
problematic downstream. We interpose a VFS that unintentionally shuffles
implicitly-built modules in and out of the CAS database, leading to some
unnecessary storage and runtime overhead. Moreover, this (together with
a reading API) will enable adding a caching layer into the
`InProcessModuleCache` implementation, hopefully reducing IO cost.
Commit: 873d6bc3b415f1c2d942bbf4e4219c4bdcd4f2f8
https://github.com/llvm/llvm-project/commit/873d6bc3b415f1c2d942bbf4e4219c4bdcd4f2f8
Author: Marco Elver <elver at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Analysis/ThreadSafety.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
Log Message:
-----------
Thread Safety Analysis: Drop call-based alias invalidation (#187691)
Local variables passed by non-const pointer or reference to a function
were previously invalidated in the LocalVariableMap (VarMapBuilder), on
the assumption that the callee might change what they point to. This
caused false positives when the function also carries ACQUIRE/RELEASE
annotations: handleCall translates those annotations with the pre-call
context, while subsequent guard checks use the post-invalidation
context, producing an expansion mismatch and a spurious warning.
The invalidation rules were a heuristic with significant complexity
(including a special-case carve-out for std::bind/bind_front) and
unclear benefit. Instead of adding more heuristics, drop the
alias-invalidation rules entirely.
Discussion: https://github.com/llvm/llvm-project/pull/183640
Commit: 09c4d8ce0f9b9125d53340b7f9b7a5b0cf70f866
https://github.com/llvm/llvm-project/commit/09c4d8ce0f9b9125d53340b7f9b7a5b0cf70f866
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
A clang/test/CodeGenCXX/dead-on-return-deleting-destructor.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-virtual-dtor-call.cpp
Log Message:
-----------
[Clang] Fix miscompile with custom operator delete (#190017)
See discussion in #183347.
Added a separate test case rather than reusing
destructor-dead-on-return.cpp as we need to test functionality of the
deleting destructor which update_cc_test_checks.py does not add check
lines for.
Commit: 934438ad86fcd623e100a74ddfe7f05e829a5497
https://github.com/llvm/llvm-project/commit/934438ad86fcd623e100a74ddfe7f05e829a5497
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
Log Message:
-----------
[VPlanPatternMatch] Unify and clarify m_Isa (NFC) (#189941)
Commit: 95a76886c1b5da2af87bb28541d34def63a98d82
https://github.com/llvm/llvm-project/commit/95a76886c1b5da2af87bb28541d34def63a98d82
Author: Jeff Sandoval <jeffreysandoval at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
Log Message:
-----------
[OpenMP][MLIR] Fix GPU teams reduction buffer size for by-ref reductions (#185460)
The `ReductionDataSize` field in `KernelEnvironmentTy` and the
`MaxDataSize` used to compute the `reduce_data_size` argument to
`__kmpc_nvptx_teams_reduce_nowait_v2` were both computed using pointer
types for by-ref reductions instead of the actual element types. This
caused the global teams reduction buffer to be undersized relative to
the offsets used by the copy/reduce callbacks, resulting in
out-of-bounds accesses faults at runtime.
For example, a by-ref reduction over `[4 x i32]` (16 bytes) would
allocate buffer slots based on `sizeof(ptr)` = 8 bytes, but the
generated callbacks would access 16 bytes per slot.
Fix both computation sites:
1. In MLIR's `getReductionDataSize()`, use
`DeclareReductionOp::getByrefElementType()` instead of `getType()` when
the reduction is by-ref, so the reduction buffer struct layout (and more
importantly its size) matches that emitted by the `OMPIRBuilder`.
2. In `OMPIRBuilder::createReductionsGPU()`, use
`ReductionInfo::ByRefElementType` instead of `ElementType` for by-ref
reductions when computing `MaxDataSize`. It seems that `MaxDataSize`
isn't actually used in the deviceRTL, but it's better to fix it to avoid
future propagation of this bug.
Finally, add CHECK lines to the existing array-descriptor reduction test
to verify both the kernel environment `ReductionDataSize` and the
`reduce_data_size` call argument reflect the actual element type size.
Assisted-by: Claude Opus 4.6
---------
Co-authored-by: Jeffrey Sandoval <jeffrey.sandoval at hpe.com>
Commit: 75c6f4791c8c1031e5ab170a9987c4d300026e1e
https://github.com/llvm/llvm-project/commit/75c6f4791c8c1031e5ab170a9987c4d300026e1e
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/FrontendActions.h
M clang/include/clang/Serialization/ModuleCache.h
M clang/lib/DependencyScanning/InProcessModuleCache.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Serialization/ModuleCache.cpp
Log Message:
-----------
[clang] Introduce `ModuleCache::write()` (#188877)
This introduces new `ModuleCache` interface for writing PCM files.
Together with #188876, this will enable adding a caching layer into the
`InProcessModuleCache` implementation, hopefully reducing IO cost.
Moreover, this makes it super explicit that the PCM is written before
its timestamp, which is an important invariant that we've broken before.
Commit: 401ba6df84f66885fdf68d4d1fb52b422c338b89
https://github.com/llvm/llvm-project/commit/401ba6df84f66885fdf68d4d1fb52b422c338b89
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
Log Message:
-----------
[MLIR][XeGPU] Add Layout Propagation support for multi-reduction/reduction op with scalar result (#189133)
This PR add Layout Propagation support for multi-reduction/reduction op
with scalar result:
1) Enhance setupMultiReductionResultLayout() and
LayoutInfoPropagation::visitVectorMultiReductionOp() to support scalar
result
2) Add propagation support for vector.reduction op at the lane level,
since the op is only introduced at the lane level.
Commit: 84f23eb3113f2e75d1a2e45db1b5c570a5d2f4c5
https://github.com/llvm/llvm-project/commit/84f23eb3113f2e75d1a2e45db1b5c570a5d2f4c5
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/config/gpu/config.json
M libc/src/__support/CMakeLists.txt
M libc/src/__support/time/CMakeLists.txt
M libc/src/time/linux/CMakeLists.txt
M libc/src/unistd/CMakeLists.txt
M libc/test/UnitTest/CMakeLists.txt
M libc/test/UnitTest/TestLogger.cpp
Log Message:
-----------
Revert "[libc] Finetune libc.src.__support.OSUtil.osutil dependency." (#190033)
Reverts llvm/llvm-project#189501
Buildbot failure on libc for GPU buildbots
Commit: 791e68a6ad48201daff91ad7083803c1393395bd
https://github.com/llvm/llvm-project/commit/791e68a6ad48201daff91ad7083803c1393395bd
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/test/CodeGen/MLRegAlloc/Inputs/reference-log-noml.txt
M llvm/test/CodeGen/MLRegAlloc/Inputs/reference-prio-log-noml.txt
M llvm/test/CodeGen/MLRegAlloc/dev-mode-logging.ll
M llvm/test/CodeGen/MLRegAlloc/dev-mode-prio-logging.ll
Log Message:
-----------
[MLGO] Update regalloc tests after c245d764b8bd70ff78044f56b2dea619b0… (#190025)
…d428dc
This caused some codegen changes that caused different calculations in
places. Update the tests to adapat to the changes.
Commit: c5f67a0128a928af609b68e3b7d695037e306a84
https://github.com/llvm/llvm-project/commit/c5f67a0128a928af609b68e3b7d695037e306a84
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Perform `nsw` check for SIV AddRecs earlier (NFCI) (#189740)
The repetitive code at the start of each SIV test can be factored out to
`testSIV` function
Commit: a89c778a8b4639bc2efc3dfde5a10e1db4a9e9d5
https://github.com/llvm/llvm-project/commit/a89c778a8b4639bc2efc3dfde5a10e1db4a9e9d5
Author: Tharun V K <40231849+tharunvk at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/docs/ClangFormatStyleOptions.rst
M clang/include/clang/Format/Format.h
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Add SpaceBeforeEnumUnderlyingTypeColon for enum underlying types (#189011)
Introduce a new formatting option to control spacing before enum
underlying type colons. This preserves existing behavior while
allowing independent control from inheritance colon spacing.
Previously, enum underlying type colons were not configurable.
Fixes #188734
---------
Co-authored-by: Tharun V K <Tharun.V.K at ibm.com>
Commit: 4e76a7959493b97e6881f476278d43d1c67406ef
https://github.com/llvm/llvm-project/commit/4e76a7959493b97e6881f476278d43d1c67406ef
Author: Eugene Shalygin <eugene.shalygin at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/Format/ContinuationIndenter.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] fix aligning inheritance lists and binary operator operands with UT_AlignWithSpaces (#189218)
fix aligning inheritance lists with UT_AlignWithSpaces
fix aligning binary operator operands
---------
Co-authored-by: Eugene Shalygin <e.shalygin at abberior-instruments.com>
Commit: 2b87d02b035b97940474d0b3b27f3dcdb8934623
https://github.com/llvm/llvm-project/commit/2b87d02b035b97940474d0b3b27f3dcdb8934623
Author: Thorsten Klein <thorsten.klein at bshg.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
Log Message:
-----------
[clang-tidy] Properly escape printed clang-tidy command in `run-clang-tidy.py` (#189974)
The `run-clang-tidy.py` script now uses `shlex.join()` to construct the
command string for printing.
This ensures that arguments containing shell metacharacters, such as the
asterisk in `--warnings-as-errors=*`, are correctly quoted. This allows
the command to be safely copied and pasted into any shell for manual
execution, fixing errors previously seen with shells like `fish` that
are strict about wildcard expansion.
Before:
```
[ 1/15][0.2s] /usr/bin/clang-tidy -p=/home/user/work/project/build --warnings-as-errors=* /home/user/work/project/src/main.cpp
```
Note: When running this command in fish shell you get some error like
`fish: No matches for wildcard '--warnings-as-errors=*'. See `help
wildcards-globbing``
After:
```
[ 1/15][0.2s] /usr/bin/clang-tidy -p=/home/user/work/project/build '--warnings-as-errors=*' /home/user/work/project/src/main.cpp
```
Commit: d6d0876d1a9aa4364a9f684d3923253bd626e767
https://github.com/llvm/llvm-project/commit/d6d0876d1a9aa4364a9f684d3923253bd626e767
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Log Message:
-----------
[NFC][SelectionDAG] Refactor out common default `DemandedElts` calculation (#190031)
Deduplicating the repeated pattern
```cpp
APInt DemandedElts = VT.isFixedLengthVector()
? APInt::getAllOnes(VT.getVectorNumElements())
: APInt(1, 1);
```
in SelectionDAG.
Commit: 9f500046511e6e85345d9229bb2d4d2e627bb9d4
https://github.com/llvm/llvm-project/commit/9f500046511e6e85345d9229bb2d4d2e627bb9d4
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
M mlir/test/Dialect/XeGPU/peephole-optimize.mlir
Log Message:
-----------
[MLIR][XeGPU] Enhance the peephole optimization to remove the convert_layout after multi-reduction rewrite (#188849)
Commit: b75bf1e722b8dfeabe41074819786d7540f7466e
https://github.com/llvm/llvm-project/commit/b75bf1e722b8dfeabe41074819786d7540f7466e
Author: Marco Elver <elver at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Analysis/ThreadSafety.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
Log Message:
-----------
Revert "Thread Safety Analysis: Drop call-based alias invalidation (#187691)" (#190041)
This reverts commit 873d6bc3b415f1c2d942bbf4e4219c4bdcd4f2f8.
This causes Linux kernel build to fail because it relied on
alias-invalidation in kernel/core/sched.c.
Commit: 478a6abc0ceea812c9486d13fda4afbe876c670f
https://github.com/llvm/llvm-project/commit/478a6abc0ceea812c9486d13fda4afbe876c670f
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[lldb/test] Codesign executables built with custom Makefile rules (#189902)
Tests with custom a.out targets in their Makefile (i.e.
`TestBSDArchives.py`) bypass the standard Makefile.rules linking step
where `CODESIGN` is applied. This leaves the binary unsigned, causing
the process to get kill it on remote darwin devices.
This adds a codesigning step to the all target in Makefile.rules that
signs both $(EXE) and a.out if they exist. This ensures all test
binaries are signed regardless of how they were built.
rdar://173840592
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: 6c923741c1278348b257856ecf480124894997ba
https://github.com/llvm/llvm-project/commit/6c923741c1278348b257856ecf480124894997ba
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/Attributor/AMDGPU/nofpclass-amdgcn-fract.ll
Log Message:
-----------
ValueTracking: llvm.amdgcn.fract cannot introduce overflow (#189002)
This returns a value with an absolute value less than 1.
Commit: c6669c4993ee591e2414e3190cc8f0d623c1357a
https://github.com/llvm/llvm-project/commit/c6669c4993ee591e2414e3190cc8f0d623c1357a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/fma-conversion-multi-use-guard.ll
Log Message:
-----------
[SLP] Guard FMulAdd conversion to require single-use/non-reordered FMul operands
The FMulAdd (CombinedVectorize) transformation in transformNodes() marks
an FMul child entry with zero cost, assuming it is fully absorbed into
the fmuladd intrinsic. However, when any FMul scalar has multiple uses
(e.g., also stored separately), the FMul must survive as a separate
node.
Reviewers: hiraditya, RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/189692
Commit: a9df7c71866d379ea8bdd88c14bafcce90553add
https://github.com/llvm/llvm-project/commit/a9df7c71866d379ea8bdd88c14bafcce90553add
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/bf16-math.ll
Log Message:
-----------
[AMDGPU] True16 support for bf16 clamp pattern on gfx1250 (#190036)
Commit: 7d24b175ebe20b427dddbee5bf0e77bd7d0657f6
https://github.com/llvm/llvm-project/commit/7d24b175ebe20b427dddbee5bf0e77bd7d0657f6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
M llvm/test/CodeGen/RISCV/opt-w-instrs-p-ext.mir
Log Message:
-----------
[RISCV] Add SATI_RV64/USATI_RV64 to RISCVOptWInstrs. (#190030)
Note the immediates for these 2 instructions in their MachineInstr
representations both use the type width. The SATI_RV64 binary encoding
and the RISCVISD::SATI encoding uses the type width minus one.
Assisted-by: Claude Sonnet 4.5
Commit: 1a1fbf967addf3a1d7837a8f75fb3414daa34e73
https://github.com/llvm/llvm-project/commit/1a1fbf967addf3a1d7837a8f75fb3414daa34e73
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-rr.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
Log Message:
-----------
[MLIR][XeGPU] Support round-robin layout for constant and broadcast in wg-to-sg distribution (#189798)
As title.
Commit: b3ca423a78ec436936834170cd8b96a25d3f8b7e
https://github.com/llvm/llvm-project/commit/b3ca423a78ec436936834170cd8b96a25d3f8b7e
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
M mlir/test/Dialect/Vector/vector-unroll-options.mlir
Log Message:
-----------
[MLIR][Vector] Enhance vector.multi_reduction unrolling to handle scalar result (#188633)
Previously, UnrollMultiReductionPattern bailed out when all the
dimensions were reduced to a scalar. This PR adds support for this case
by tiling the source vector and chaining partial reductions through the
accumulator operand.
Commit: e5a7a9a95ffda04e4ce2398d1950662873b8cd65
https://github.com/llvm/llvm-project/commit/e5a7a9a95ffda04e4ce2398d1950662873b8cd65
Author: Prabhu Rajasekaran <prabhukr at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[Fuchsia] Cortex-m33 runtime libraries hard float ABI (#190023)
Make cortex-m33 runtime libraries build to use hard float ABI instead of
softfp.
Commit: e87ea848b7a00f8b020ff02c74a2f09e63b7c735
https://github.com/llvm/llvm-project/commit/e87ea848b7a00f8b020ff02c74a2f09e63b7c735
Author: lntue <lntue at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/src/__support/CMakeLists.txt
M libc/src/__support/time/CMakeLists.txt
M libc/src/assert/gpu/__assert_fail.cpp
M libc/src/time/linux/CMakeLists.txt
M libc/src/unistd/CMakeLists.txt
M libc/test/UnitTest/CMakeLists.txt
M libc/test/UnitTest/TestLogger.cpp
Log Message:
-----------
Reapply "[libc] Finetune libc.src.__support.OSUtil.osutil dependency." (#190033) (#190065)
This reverts commit 84f23eb3113f2e75d1a2e45db1b5c570a5d2f4c5 and fix GPU
builds.
Commit: 52fb23eef8e4c331ae7cfa21e26d07918cfebd5e
https://github.com/llvm/llvm-project/commit/52fb23eef8e4c331ae7cfa21e26d07918cfebd5e
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/src/__support/math/log1pf.h
Log Message:
-----------
[libc][math] Remove static from log1pf implementation (#190042)
Reflecting changes according to
https://github.com/llvm/llvm-project/commit/823e3e001724ca2e93ce410a675f3b538f8a74b3
Commit: 29391328ab66052b03babb2d147615f180827793
https://github.com/llvm/llvm-project/commit/29391328ab66052b03babb2d147615f180827793
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyCallLowering.cpp
A llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args-simd.ll
A llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args-swiftcc.ll
A llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args.ll
Log Message:
-----------
[WebAssembly][GlobalISel] CallLowering `lowerFormalArguments` (#180263)
Implements `WebAssemblyCallLowering::lowerFormalArguments`
Split from #157161
Commit: 7c260d3966534031f9fe3a35b54887f6d979606d
https://github.com/llvm/llvm-project/commit/7c260d3966534031f9fe3a35b54887f6d979606d
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/combined.h
Log Message:
-----------
[scudo] Fix reallocate for MTE. (#190086)
For MTE, we can't use the whole size or we might trigger a segfault.
Therefore, use the exact size when MTE is enabled or the exact usable
size parameter is true.
Also, optimize out the call to getUsableSize and use a simpler
calculation.
Commit: b9e01c26f0bb754307d12c19b957be576ff422a8
https://github.com/llvm/llvm-project/commit/b9e01c26f0bb754307d12c19b957be576ff422a8
Author: Jim Lin <jim at andestech.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-to-vmv.mir
Log Message:
-----------
[RISCV] Relax VL constraint in convertSameMaskVMergeToVMv (#189797)
When converting a PseudoVMERGE_VVM to PseudoVMV_V_V, we previously
required MIVL <= TrueVL to avoid losing False elements in the tail.
Relax this constraint when the vmerge's False operand equals its
Passthru operand and the True instruction's tail policy is TU
(tail undisturbed). In this case, True's tail lanes preserve its
passthru value (which equals False and Passthru), so the conversion
is safe even when MIVL > TrueVL.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 3d7eedce5658c41a1b22775938359bfafac47fc9
https://github.com/llvm/llvm-project/commit/3d7eedce5658c41a1b22775938359bfafac47fc9
Author: Jim Lin <jim at andestech.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/test/CodeGen/RISCV/rv64-stackmap-nops.ll
Log Message:
-----------
[RISCV] Fix stackmap shadow trimming NOP size for compressed targets (#189774)
The shadow trimming loop in LowerSTACKMAP hardcoded a 4-byte decrement
per instruction, but when Zca is enabled NOPs are 2 bytes. Use NOPBytes
instead of the hardcoded 4 so the shadow is correctly trimmed on
compressed targets.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: fd609e5d33eae0df48d37a215f13a78bab3f8ebb
https://github.com/llvm/llvm-project/commit/fd609e5d33eae0df48d37a215f13a78bab3f8ebb
Author: Zhaoxuan Jiang <jiangzhaoxuan94 at gmail.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lld/ELF/BPSectionOrderer.cpp
M lld/ELF/BPSectionOrderer.h
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Options.td
M lld/ELF/Writer.cpp
M lld/MachO/BPSectionOrderer.cpp
M lld/MachO/BPSectionOrderer.h
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
M lld/MachO/SectionPriorities.cpp
M lld/docs/ReleaseNotes.rst
A lld/include/lld/Common/BPSectionOrdererBase.h
M lld/include/lld/Common/BPSectionOrdererBase.inc
A lld/test/ELF/bp-section-orderer-cold.s
M lld/test/ELF/bp-section-orderer.s
M lld/test/MachO/bp-section-orderer-errs.s
A lld/test/MachO/compression-order-sections.s
Log Message:
-----------
[lld] Glob-based BP compression sort groups (#185661)
Add
--bp-compression-sort-section=<glob>[=<layout_priority>[=<match_priority>]]
to let users split input sections into multiple compression groups, run
balanced partitioning independently per group, and leave out sections
that are poor candidates for BP. This replaces the old coarse
--bp-compression-sort with a more explicit, user-controlled one.
In ELF, the glob matches input section names (.text.unlikely.cold1). In
Mach-O, it matches the concatenated segment+section name (__TEXT__text).
layout_priority controls group placement in the final layout.
match_priority resolves conflicts when multiple globs match the same
section: explicit priority beats positional matching, and among
positional specs the last match wins.
A CRTP hook getCompressionSubgroupKey() allows backends to further
subdivide glob groups into independent BP instances. This allows Mach-O
backend to separate cold functions via N_COLD_FUNC in the future.
The deprecated --bp-compression-sort option keeps its existing
function/data behavior by assigning sections to fixed legacy groups.
Commit: 096f9d0aa8edb8bad77e8061a6aa9cbf61bcb5ac
https://github.com/llvm/llvm-project/commit/096f9d0aa8edb8bad77e8061a6aa9cbf61bcb5ac
Author: lntue <lntue at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCArchitectures.cmake
A libc/config/linux/power/config.json
A libc/config/linux/power/entrypoints.txt
A libc/config/linux/power/headers.txt
M libc/src/__support/FPUtil/generic/sqrt.h
Log Message:
-----------
[libc] Initial support so that libc-shared-tests can be built with pp64le (#188882)
Commit: c97e08e331736ae8c7d17bf1f24954570f564ad0
https://github.com/llvm/llvm-project/commit/c97e08e331736ae8c7d17bf1f24954570f564ad0
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclContextInternals.h
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclBase.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
A clang/test/Modules/include-between-imports-enums.cppm
Log Message:
-----------
[C++20] [Modules] Add VisiblePromoted module ownership kind (#189903)
This patch adds a new ModuleOwnershipKind::VisiblePromoted to handle
declarations that are not visible to the current TU but are promoted to
be visible to avoid re-parsing.
Originally we set the visible visiblity directly in such cases. But
https://github.com/llvm/llvm-project/issues/188853 shows such decls may
be excluded later if we import #include and then import. So we have to
introduce a new visibility to express the intention that the visibility
of the decl is intentionally promoted.
Close https://github.com/llvm/llvm-project/issues/188853
Commit: e27e7e433974b24c90fed9f0b646bed84e47681e
https://github.com/llvm/llvm-project/commit/e27e7e433974b24c90fed9f0b646bed84e47681e
Author: Anshul Nigham <nigham at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
Log Message:
-----------
[NFC][AAarch64] Remove PreLegalizerCombiner pass dependency on TargetPassConfig (#190073)
This will enable NewPM porting.
Replaced with the definition in
[AArch64PassConfig::getCSEConfig](https://github.com/llvm/llvm-project/blob/1d549d9a777a6faef6d425cb6482ab1fa6b91bb7/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp#L614)
Commit: dee982d6c872d3985acede6fe8cb914ad87801c2
https://github.com/llvm/llvm-project/commit/dee982d6c872d3985acede6fe8cb914ad87801c2
Author: Anshul Nigham <nigham at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64PostCoalescerPass.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/test/CodeGen/AArch64/aarch64-post-coalescer.mir
Log Message:
-----------
[NewPM] Adds a port for AArch64PostCoalescerPass (#189520)
Adds a standard porting for AArch64PostCoalescer to NewPM.
Commit: 8daaa26efdda3802f73367d844b267bda3f84cbe
https://github.com/llvm/llvm-project/commit/8daaa26efdda3802f73367d844b267bda3f84cbe
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lld/test/ELF/merge-piece-oob.s
M llvm/include/llvm/Support/Parallel.h
M llvm/lib/Support/Parallel.cpp
M llvm/unittests/Support/ParallelTest.cpp
Log Message:
-----------
[Support] Support nested parallel TaskGroup via work-stealing (#189293)
Nested TaskGroups run serially to prevent deadlock, as documented by
https://reviews.llvm.org/D61115 and refined by
https://reviews.llvm.org/D148984 to use threadIndex.
Enable nested parallelism by having worker threads actively execute
tasks from the work queue while waiting (work-stealing), instead of
just blocking. Root-level TaskGroups (main thread) keep the efficient
blocking Latch::sync(), so there is no overhead for the common
non-nested case.
In lld, https://reviews.llvm.org/D131247 worked around the limitation
by passing a single root TaskGroup into OutputSection::writeTo and
spawning 4MB-chunked tasks into it. However, SyntheticSection::writeTo
calls with internal parallelism (e.g. GdbIndexSection,
MergeNoTailSection) still ran serially on worker threads. With this
change, their internal parallelFor/parallelForEach calls parallelize
automatically via helpSync work-stealing.
The increased parallelism can reorder error messages from parallel
phases (e.g. relocation processing during section writes), so one lld
test is updated to use --threads=1 for deterministic output.
Commit: c8c7186b462e32724bf7942d9345b2cb922b8af8
https://github.com/llvm/llvm-project/commit/c8c7186b462e32724bf7942d9345b2cb922b8af8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-512.ll
Log Message:
-----------
[X86] LowerRotate - expand vXi8 non-uniform variable rotates using uniform constant rotates (#189986)
We expand vXi8 non-uniform variable rotates as a sequence of uniform
constant rotates along with a SELECT depending on whether the original
rotate amount needs it
This patch removes premature uniform constant rotate expansion to the
OR(SHL,SRL) sequences to allow GFNI targets to use single VGF2P8AFFINEQB
calls
Commit: d52daeac796637ee4578bae728d867c60902a882
https://github.com/llvm/llvm-project/commit/d52daeac796637ee4578bae728d867c60902a882
Author: lntue <lntue at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M libc/test/shared/shared_math_test.cpp
Log Message:
-----------
[libc] Fix the remaining long double issue in shared_math_test.cpp. (#190098)
Commit: 495e1a42579c8f540303ab72e6449a448b89e537
https://github.com/llvm/llvm-project/commit/495e1a42579c8f540303ab72e6449a448b89e537
Author: yebinchon <86588366+yebinchon at users.noreply.github.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Math/Transforms/SincosFusion.cpp
M mlir/test/Dialect/Math/sincos-fusion.mlir
Log Message:
-----------
[mlir] added a check in the walk to prevent catching a cos in a nested region (#190064)
The walk in SincosFusion may detect a cos within a nested region of the
sin block. This triggers an assertion in `isBeforeInBlock` later on.
Added a check within the walk so it filters operations in nested
regions, which are not in the same block and should not be fused anyway.
---------
Co-authored-by: Yebin Chon <ychon at nvidia.com>
Commit: 8c2feea2f746de8e3afc101d5621c7ab60a74644
https://github.com/llvm/llvm-project/commit/8c2feea2f746de8e3afc101d5621c7ab60a74644
Author: wangjue <wangjue.wangjue at alibaba-inc.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
M bolt/runtime/instr.cpp
M bolt/runtime/sys_riscv64.h
Log Message:
-----------
[BOLT] Delete unnecessary instructions (#189297)
Commit: 18a065763d267354bafe1d0a41325f50500d5b29
https://github.com/llvm/llvm-project/commit/18a065763d267354bafe1d0a41325f50500d5b29
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
M llvm/test/CodeGen/RISCV/xqcilsm-lwmi-swmi-multiple.mir
Log Message:
-----------
[RISCV] Move unpaired instruction back in RISCVLoadStoreOptimizer (#189912)
There are cases when the `Xqcilsm` vendor extension is enabled that we
are unable to pair non-adjacent load/store instructions. The
`RISCVLoadStoreOptimizer` moves the instruction adjacent to the other
before attempting to pair them but does not move them back when it
fails. This can sometimes prevent the generation of the `Xqcilsm`
load/store multiple instructions. This patch ensures that we move the
unpaired instruction back to it's original location.
Commit: 06aae40c6dee03741f96c1b09ccc57f7fb110dd1
https://github.com/llvm/llvm-project/commit/06aae40c6dee03741f96c1b09ccc57f7fb110dd1
Author: Diego Novillo <dnovillo at nvidia.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
A clang/test/CodeGenHLSL/debug/source-language.hlsl
M llvm/docs/SPIRVUsage.rst
M llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
M llvm/test/CodeGen/SPIRV/debug-info/debug-compilation-unit.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-type-basic.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll
A llvm/test/CodeGen/SPIRV/debug-info/hlsl-debug-info-auto-activation.ll
A llvm/test/CodeGen/SPIRV/debug-info/no-nonsemantic-without-extension.ll
M llvm/test/CodeGen/SPIRV/hlsl-resources/SampleErrorsDebug.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
Log Message:
-----------
[HLSL][SPIRV] Restore support for -g to generate NSDI (#190007)
The original attempt (#187051) produced a regression for
`intel-sycl-gpu` because `SPIRVEmitNonSemanticDI` will now self-activate
whenever `llvm.dbg.cu` is present. This removed the need for the
explicit `--spv-emit-nonsemantic-debug-info` flag.
The pass is now entered unconditionally for all SPIR-V targets, but
`NonSemantic.Shader.DebugInfo.100` requires the
`SPV_KHR_non_semantic_info`. Targets like `spirv64-intel` do not enable
that extension by default. When `checkSatisfiable()` ran on those
targets, it issued a fatal error rather than silently skipping.
Adds an early-out from `emitGlobalDI()`: if
`SPV_KHR_non_semantic_info` is not available for the current target, the
pass returns without emitting anything.
Commit: dbc206f35d36370b9adac7868eb319799de7abe1
https://github.com/llvm/llvm-project/commit/dbc206f35d36370b9adac7868eb319799de7abe1
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Interfaces/CIROpInterfaces.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/global-section.c
Log Message:
-----------
[CIR][CIRGen] Support for section atttribute on cir.global (#188200)
Upstreaming clangIR PR: https://github.com/llvm/clangir/pull/422
This PR implement support for `__attribute__((section("name")))` on
global variables in ClangIR, matching OGCG behavior.
Commit: 9a354fc5a16cb68ac61c1963d1d12123aa5a6dbf
https://github.com/llvm/llvm-project/commit/9a354fc5a16cb68ac61c1963d1d12123aa5a6dbf
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/fneg-modifier-casting.ll
M llvm/unittests/Target/AArch64/AArch64SelectionDAGTest.cpp
Log Message:
-----------
[SelectionDAG] Use `KnownBits` to determine if an operand may be NaN. (#188606)
Given a bitcast into a fp type, use the known bits of the operand to
infer whether the resulting value can never be NaN.
Commit: 3346a76d32ee6de1324d570be912c935fdcee265
https://github.com/llvm/llvm-project/commit/3346a76d32ee6de1324d570be912c935fdcee265
Author: Lang Hames <lhames at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
Log Message:
-----------
[JITLink] Remove unnecessary SymbolStringPtr copy. (#190101)
This was probably intended to be a `const SymbolStringPtr&` originally,
but if we were going to copy it anyway it's better to just take the
argument by value and std::move it.
Commit: 0bde74ab04992bcd63bc0bfd8b79e2ef5eab270b
https://github.com/llvm/llvm-project/commit/0bde74ab04992bcd63bc0bfd8b79e2ef5eab270b
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lld/ELF/InputSection.cpp
Log Message:
-----------
[ELF] Pass SectionPiece by reference in getSectionPiece. NFC (#190110)
The generated assembly looks more optimized. In addition, this avoids
widened load, which would cause a TSan-detected data race with parallel
--gc-sections (#189321).
Commit: 2a7ca3a3fa46c544704e9ca6d8006b110af652ab
https://github.com/llvm/llvm-project/commit/2a7ca3a3fa46c544704e9ca6d8006b110af652ab
Author: Luke Lau <luke at igalia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
M llvm/test/CodeGen/RISCV/rvv/ctpop-vp.ll
M llvm/test/CodeGen/RISCV/rvv/cttz-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctpop-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-vp.ll
Log Message:
-----------
[RISCV] Remove codegen for vp_ctlz, vp_cttz, vp_ctpop (#189904)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off 3 intrinsics from #179622.
Note that vp.cttz is the elementwise version, not vp.cttz.elts.
Commit: 2118499a898b514f70fb1754ad8713a4267f7bd3
https://github.com/llvm/llvm-project/commit/2118499a898b514f70fb1754ad8713a4267f7bd3
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lld/ELF/InputFiles.cpp
M lld/ELF/InputFiles.h
M lld/ELF/MarkLive.cpp
Log Message:
-----------
[ELF] Decouple SharedFile::isNeeded from GC mark. NFC (#190112)
... out of the per-relocation resolveReloc and into a post-GC scan of
global symbols. This decouples the --as-needed logic from the mark
algorithm, simplifying the imminent parallel GC mark.
Commit: 68cbcf7ec2010a6fc4ad825ecf55e86b3c49f5fb
https://github.com/llvm/llvm-project/commit/68cbcf7ec2010a6fc4ad825ecf55e86b3c49f5fb
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
A llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-whole-reg-move.ll
Log Message:
-----------
[RISCV] Check EnsureWholeVectorRegisterMoveValidVTYPE in RISCVInsertVSETVLI::transferBefore. (#190022)
Fixes #189786
Commit: 802d4631e02b35a5890802a83459607d42cf4e98
https://github.com/llvm/llvm-project/commit/802d4631e02b35a5890802a83459607d42cf4e98
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.cpp
Log Message:
-----------
[clang-doc] Update lookup routines for consistency (#190043)
When filtering is enabled, its possible an Info doesn't have a
Parent USR. Use `find()` to safely handle that case.
Additionally, I noticed the comparison code for the index
poorly reimplemented the existing comparison from StringRef.
We can just use the one from ADT.
Commit: 6a874161621ec52b8efa125790e3e8e72bb9167a
https://github.com/llvm/llvm-project/commit/6a874161621ec52b8efa125790e3e8e72bb9167a
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-01 (Wed, 01 Apr 2026)
Changed paths:
M lld/ELF/Arch/Hexagon.cpp
M lld/ELF/MarkLive.cpp
M lld/ELF/Symbols.h
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Move Symbol::used to atomic flags field (#190117)
Move the `used` bitfield into the existing `std::atomic<uint16_t>
flags`,
making it safe for concurrent access from parallel GC mark (#189321).
Commit: 083f9c158a6ecc3a0a1d9bb5c0997af036a4efbd
https://github.com/llvm/llvm-project/commit/083f9c158a6ecc3a0a1d9bb5c0997af036a4efbd
Author: David Green <david.green at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/ctlz.ll
Log Message:
-----------
[AArch64][GISel] Widen non-power2 element sizes for ctlz. (#189371)
This addresses an illegal mutation kind, where gisel would hit an
assert. It expands vector elements for non-power2 elements or elements
less that i8 to a power of 2.
A fix to handle vector types correctly was needed in LegalizerHandler.
Fixes #185411
Commit: 6f9646a598f25efa3c4db066d2d51fb248b13526
https://github.com/llvm/llvm-project/commit/6f9646a598f25efa3c4db066d2d51fb248b13526
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lld/ELF/MarkLive.cpp
Log Message:
-----------
[ELF] Parallelize --gc-sections mark phase (#189321)
Add `markParallel` using level-synchronized `parallelFor`. Each BFS
level is processed in parallel; newly discovered sections are collected
in per-thread queues and merged for the next level.
The parallel path is used when `!TrackWhyLive && partitions.size()==1`.
`parallelFor` naturally degrades to serial when `--threads=1`.
Uses depth-limited inline recursion (depth<3) and optimistic
load-then-exchange dedup for best performance.
Linking a Release+Asserts clang (--gc-sections, --time-trace) on an old
x86-64:
8 threads: markLive 315ms -> 82ms (-234ms). Total 1562ms -> 1350ms
(1.16x).
16 threads: markLive 199ms -> 50ms (-149ms). Total 1017ms -> 862ms
(1.18x).
and on Apple M4: markLive 61ms -> 13ms. Total 317.3ms -> 272.7ms
(1.16x).
Commit: e3cbd9984a78422c3799629eb6b5f7f7818c1a11
https://github.com/llvm/llvm-project/commit/e3cbd9984a78422c3799629eb6b5f7f7818c1a11
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CMakeLists.txt
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/TargetLoweringInfo.h
A clang/lib/CIR/Dialect/Transforms/TargetLowering/Targets/AMDGPU.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/amdgpu-address-spaces.cpp
A clang/test/CIR/CodeGen/amdgpu-target-lowering-as.cpp
M clang/test/CIR/CodeGenCUDA/address-spaces.cu
R clang/test/CIR/Lowering/global-address-space.cir
Log Message:
-----------
[CIR][AMDGPU] Lower Language specific address spaces and implement AMDGPU target (#179084)
Commit: 3b81be803f613f5b316945b1fbdb783333cdd4ff
https://github.com/llvm/llvm-project/commit/3b81be803f613f5b316945b1fbdb783333cdd4ff
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/test/Transforms/WholeProgramDevirt/export-vcp.ll
M llvm/test/Transforms/WholeProgramDevirt/import.ll
Log Message:
-----------
WholeProgramDevirt: Import/export the CVP byte directly in the summary (#188979)
rather than using absolute symbol constants on ELF/x86.
This leads to better codegen as the absolute symbol constants were not
resolved until link time (see bug for example).
Fixes #188470
Commit: 40e7fa632dbca6bb7ed0b3d50e47315256488865
https://github.com/llvm/llvm-project/commit/40e7fa632dbca6bb7ed0b3d50e47315256488865
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
A llvm/test/Transforms/FunctionSpecialization/function-specialization-optsize.ll
Log Message:
-----------
[Passes][FuncSpec] Move optsize/minsize handling into pass (#189952)
Instead of using the Os/Oz level during pass pipeline construction,
query the optsize/minsize attribute on the function to determine whether
specialization is allowed to take place. This ensures consistent
behavior for per-function attributes.
It's worth noting that FuncSpec *already* checks for minsize, but at the
call-site level.
Commit: 1662c200a5b151ad15b7efc82837076d8967dc11
https://github.com/llvm/llvm-project/commit/1662c200a5b151ad15b7efc82837076d8967dc11
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Scalar/LoopRotation.cpp
M llvm/test/Transforms/LoopRotate/oz-disable.ll
M llvm/test/Transforms/PhaseOrdering/enable-loop-header-duplication-oz.ll
Log Message:
-----------
[Passes][LoopRotate] Move minsize handling fully into pass (#189956)
Make this dependent only on the minsize attribute and drop the pipeline
handling.
Rename the enable-loop-header-duplication option to
enable-loop-header-duplication-at-minsize to clarify that it controls
header duplication at minsize only (in other cases it is enabled by
default, independently of this option).
Commit: 7ccd1cb9a470525570b5759fd7e9ef85e0b9dbba
https://github.com/llvm/llvm-project/commit/7ccd1cb9a470525570b5759fd7e9ef85e0b9dbba
Author: Weibo He <NewSigma at 163.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower-invoke.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
Log Message:
-----------
Reland "[CoroSplit] Erase trivially dead allocas after spilling (#189295)" (#190124)
The original PR contained a use-after-delete issue, which has been
resolved in #189521.
Reland #189295, which is reverted in #189311
Commit: a599a06e7cc3c6801f5bc755a33517299cacda4c
https://github.com/llvm/llvm-project/commit/a599a06e7cc3c6801f5bc755a33517299cacda4c
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M libc/test/src/math/CMakeLists.txt
Log Message:
-----------
[libc] Indentation consistency in CMake (#190120)
This PR just fixes the indentation/style for the whole CMake file for
consistency.
No other changes.
c698f55b0245ffbaae55c7f854fadba33df16e9d
Commit: 5e0a06b34d09e44ced6a6820862a424efd2bd163
https://github.com/llvm/llvm-project/commit/5e0a06b34d09e44ced6a6820862a424efd2bd163
Author: Gabriel Baraldi <baraldigabriel at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
R llvm/include/llvm/CodeGen/ExpandMemCmp.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/LinkAllPasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Target/CGPassBuilderOption.h
M llvm/include/llvm/Transforms/Scalar.h
A llvm/include/llvm/Transforms/Scalar/ExpandMemCmp.h
M llvm/lib/CodeGen/CMakeLists.txt
M llvm/lib/CodeGen/CodeGen.cpp
R llvm/lib/CodeGen/ExpandMemCmp.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Scalar/CMakeLists.txt
A llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp
M llvm/lib/Transforms/Scalar/MergeICmps.cpp
M llvm/lib/Transforms/Scalar/Scalar.cpp
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/bcmp-inline-small.ll
M llvm/test/CodeGen/AArch64/bcmp.ll
M llvm/test/CodeGen/AArch64/dag-combine-setcc.ll
M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
M llvm/test/CodeGen/AArch64/memcmp.ll
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/BPF/memcmp.ll
M llvm/test/CodeGen/Generic/llc-start-stop.ll
M llvm/test/CodeGen/LoongArch/expandmemcmp-optsize.ll
M llvm/test/CodeGen/LoongArch/expandmemcmp.ll
M llvm/test/CodeGen/LoongArch/memcmp.ll
M llvm/test/CodeGen/LoongArch/opt-pipeline.ll
M llvm/test/CodeGen/M68k/pipeline.ll
M llvm/test/CodeGen/PowerPC/O3-pipeline.ll
M llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
M llvm/test/CodeGen/PowerPC/memcmp-mergeexpand.ll
M llvm/test/CodeGen/PowerPC/memcmp.ll
M llvm/test/CodeGen/PowerPC/memcmp32_fixsize.ll
M llvm/test/CodeGen/PowerPC/memcmp64_fixsize.ll
M llvm/test/CodeGen/PowerPC/memcmpIR.ll
M llvm/test/CodeGen/RISCV/O3-pipeline.ll
M llvm/test/CodeGen/RISCV/memcmp-optsize.ll
M llvm/test/CodeGen/RISCV/memcmp.ll
M llvm/test/CodeGen/RISCV/pr186969.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
M llvm/test/CodeGen/WebAssembly/memcmp-expand.ll
M llvm/test/CodeGen/WebAssembly/simd-memcmp.ll
M llvm/test/CodeGen/WebAssembly/simd-setcc.ll
M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
M llvm/test/CodeGen/X86/memcmp-constant.ll
M llvm/test/CodeGen/X86/memcmp-mergeexpand.ll
M llvm/test/CodeGen/X86/memcmp-more-load-pairs-x32.ll
M llvm/test/CodeGen/X86/memcmp-more-load-pairs.ll
M llvm/test/CodeGen/X86/memcmp-optsize-x32.ll
M llvm/test/CodeGen/X86/memcmp-optsize.ll
M llvm/test/CodeGen/X86/memcmp-pgso-x32.ll
M llvm/test/CodeGen/X86/memcmp-pgso.ll
M llvm/test/CodeGen/X86/memcmp-x32.ll
M llvm/test/CodeGen/X86/memcmp.ll
M llvm/test/CodeGen/X86/opt-pipeline.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll
M llvm/test/Transforms/ExpandMemCmp/X86/bcmp.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp-x32.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp.ll
A llvm/test/Transforms/ExpandMemCmp/X86/sanitizer-skip.ll
A llvm/test/Transforms/PhaseOrdering/X86/expand-memcmp-middle-end.ll
M llvm/test/tools/llc/new-pm/option-conflict.ll
M llvm/test/tools/llc/new-pm/start-stop.ll
M llvm/tools/opt/optdriver.cpp
M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn
Log Message:
-----------
Move ExpandMemCmp and MergeIcmp to the middle end (#77370)
Moving these into the middle-end pipeline will allow for additional
optimization of the expansion result, such as CSE of redundant loads
(c.f. https://godbolt.org/z/bEna4Md9r). For now, we conservatively place
the passes at the end of the middle-end pipeline, so we mostly don't
benefit from additional optimizations yet. The pipeline position will be
moved in a future change.
This builds on work done by legrosbuffle in
https://reviews.llvm.org/D60318.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: e3cfcf48d0c966f163c9807839a900936af0e759
https://github.com/llvm/llvm-project/commit/e3cfcf48d0c966f163c9807839a900936af0e759
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticCrossTUKinds.td
M clang/include/clang/CrossTU/CrossTranslationUnit.h
M clang/lib/CrossTU/CrossTranslationUnit.cpp
A clang/test/Analysis/ctu/diag/Inputs/third.cpp
M clang/test/Analysis/ctu/diag/invlist-ambiguous.cpp
M clang/test/Analysis/ctu/diag/invlist-empty.cpp
M clang/test/Analysis/ctu/diag/invlist-lookup-miss.cpp
M clang/test/Analysis/ctu/diag/invlist-missing.cpp
A clang/test/Analysis/ctu/diag/invlist-wrong-format-late.cpp
M clang/test/Analysis/ctu/diag/invlist-wrong-format.cpp
M clang/test/Analysis/ctu/diag/lang-dialect-mismatch.cpp
M clang/test/Analysis/ctu/diag/lang-mismatch.c
M clang/test/Analysis/ctu/diag/load-threshold.cpp
M clang/test/Analysis/ctu/import-type-decl-definition.c
M clang/test/Analysis/ctu/invalid-ast.cpp
M clang/test/Analysis/ctu/main.c
M clang/test/Analysis/ctu/missing-ast.cpp
M clang/test/Analysis/ctu/on-demand-parsing.c
M clang/test/Analysis/ctu/test-import-failure.cpp
M clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
Log Message:
-----------
[clang][analyzer] Forward CTU-import failure conditions
Forward all CTU-import failures as diagnostics (remarks, warnings,
errors), except for `index_error_code::missing_definition` which has the
potential of generating too many diagnostics.
--
CPP-7804
Commit: 76fc936175304b521d8f5d9f0a67fe479237b4ac
https://github.com/llvm/llvm-project/commit/76fc936175304b521d8f5d9f0a67fe479237b4ac
Author: wanglei <wanglei at loongson.cn>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsLoongArchLASX.def
M clang/include/clang/Basic/BuiltinsLoongArchLSX.def
A clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c
A clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c
Log Message:
-----------
[Clang][LoongArch] Align LSX/LASX built-in signatures with intrinsic types to avoid lax conversions (#189900)
Update the built-in signatures in BuiltinsLoongArchLSX.def and
BuiltinsLoongArchLASX.def to precisely match the vector types used in
the corresponding intrinsic headers (lsxintrin.h and lasxintrin.h).
This alignment ensures that these intrinsics can be compiled
successfully even when -flax-vector-conversions=none is specified, since
the built-in arguments no longer rely on implicit vector type
conversions.
Added new test cases to verify the macro-defined LSX/LASX
intrinsic interfaces under -flax-vector-conversions=none.
Fixes #189898
Commit: 5f6835daf481948f42740f5167221dba608a6493
https://github.com/llvm/llvm-project/commit/5f6835daf481948f42740f5167221dba608a6493
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
Log Message:
-----------
[lldb][AArch64][Linux] Qualify uses of user_sve_header (#190130)
Fixes #165413. Where a build failure was reported:
```
/b/s/w/ir/x/w/llvm-llvm-project/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp:1182:9: error: unknown type name 'user_sve_header'; did you mean 'sve::user_sve_header'?
1182 | user_sve_header *header =
| ^~~~~~~~~~~~~~~
| sve::user_sve_header
```
To fix this, add sve:: as we do for all other uses of this.
This is LLDB's copy of a structure that Linux also defines. I think the
build worked on some machines because that version ended up being
included, but with a more isolated build, it may not.
We have our own definition of it so we can be sure what we're using in
case Linux extends it later.
Commit: 703d43ca3b66279b4ad81b88d6805f6f27edc557
https://github.com/llvm/llvm-project/commit/703d43ca3b66279b4ad81b88d6805f6f27edc557
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
M llvm/lib/Target/X86/X86TargetTransformInfo.h
Log Message:
-----------
[CostModel] Move default expand cost for partial reductions to BasicTTIImpl (#189905)
This is a follow-up of the suggestion left here:
https://github.com/llvm/llvm-project/pull/181707#discussion_r2995733831
The override functions in AMDGPU/ARM/SystemZ/X86 are required to avoid
enabling partial reductions where they were previously disabled (I've
added this for all targets that implement getArithmeticReductionCost).
Commit: 81691d23cd1895436bcf2bdbf1b92adf1dcb761e
https://github.com/llvm/llvm-project/commit/81691d23cd1895436bcf2bdbf1b92adf1dcb761e
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/extract-last-active.ll
Log Message:
-----------
[RISCV][TTI] Update cost and prevent exceed m8 for vector.extract.last.active (#188160)
This patch contains two parts.
1. Update costs reflect to the codegen changes. This is not that
accurate since the step vector can use smaller type if there is a
vscale_range attribute. But we cannot get that in the type-based query
in TTI.
2. Return invalid cost for the vector.extract.last.active that needs
vector split for the step vector. But currently this is not handled
correctly and will hit the assertion.
For not blocking the FindLast reduction in LV
(https://github.com/llvm/llvm-project/pull/184931). We should land this
first and fix the SelectionDAG for vector.extract.last.active lowering.
Commit: 018e048daf9dcc5e21f1372b85e9f0a6e4597c64
https://github.com/llvm/llvm-project/commit/018e048daf9dcc5e21f1372b85e9f0a6e4597c64
Author: Julian Oppermann <julian.oppermann at intel.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.h
M mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp
M mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp
M mlir/test/Dialect/Linalg/roundtrip-morphism-linalg-category-ops.mlir
M mlir/test/Dialect/Linalg/specialize-generic-ops.mlir
Log Message:
-----------
[MLIR][Linalg] Generic to category specialization for unary elementwise ops (#187217)
Handle specialization of `linalg.generic` ops representing a unary
elementwise computation to the `linalg.elementwise` category op. This
implements a previously absent path in the linalg morphism.
Commit: d835dd2b430c259020e2fc5ce4b1eb1f5a464a07
https://github.com/llvm/llvm-project/commit/d835dd2b430c259020e2fc5ce4b1eb1f5a464a07
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[LV] Strip createStepForVF (NFC) (#185668)
The mul -> shl simplification is already done in VPlan.
Commit: 4c9a739c5ea72eb37a7c998e25d9a0a096042c73
https://github.com/llvm/llvm-project/commit/4c9a739c5ea72eb37a7c998e25d9a0a096042c73
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M bolt/test/AArch64/compare-and-branch-inversion.S
M bolt/test/AArch64/compare-and-branch-reorder-blocks.S
M bolt/test/AArch64/compare-and-branch-split-functions.S
M bolt/test/AArch64/compare-and-branch-unsupported.S
Log Message:
-----------
[BOLT][AArch64] Strip uneeded labels from FEAT_CMPBR tests. (#189931)
Eliminates the temporary labels so that BOLT does not recognize them as
secondary entry points.
Commit: dc9be4ee30d07060a21273bdf8c64e4f34165562
https://github.com/llvm/llvm-project/commit/dc9be4ee30d07060a21273bdf8c64e4f34165562
Author: Simi Pallipurath <simi.pallipurath at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lld/ELF/Arch/ARM.cpp
A lld/test/ELF/arm-be8-data-mapsym.s
Log Message:
-----------
[LLD][ELF] Skip non-inputsections to avoid invalid cast in Arm BE8 handling (#188154)
This patch fixes https://github.com/llvm/llvm-project/issues/187033
In BE8 mode, instruction bytes are reversed for sections containing
code. This logic currently assumes that arm mapping symbols (e.g. $a,
$t, $d) are always associated with InputSections.
However, mapping symbols can also be defined in other section types such
as mergeable sections (SHF_MERGE). These are not represented as
InputSection, and attempting to cast them using
cast_if_present<InputSection> results in an assertion failure.
Commit: d0bf354828717ee7228527237e61e0fcccfe0f15
https://github.com/llvm/llvm-project/commit/d0bf354828717ee7228527237e61e0fcccfe0f15
Author: Jiachen Yuan <jiacheny at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/ADT/Bitset.h
M llvm/unittests/ADT/BitsetTest.cpp
Log Message:
-----------
[ADT] Reinstate "Refactor Bitset to Be More Constexpr-Usable" (#189497)
Reland of #172062 (a71b1d2), which was reverted in b0234d1.
This patch makes essential Bitset member functions constexpr (`set()`,
`any()`, `none()`, `count()`, `operator==`, `!=`, `<`, `\~`) and adds a
new `all()` method. It also introduces a `maskLastWord()` invariant to
ensure unused high bits in the last word are always zero, which is
required for correctness of `operator~`, `set()`, `all()`, and
comparisons on non-word-aligned sizes (e.g., `Bitset<33>`).
Changes from the original reverted PR:
- Replaced `llvm::any_of` with an inline loop to avoid depending on
constexpr `any_of`/`none_of` from `STLExtras` (#172536), which was also
reverted due to a GCC 15.2.1 bootstrap miscompile.
- The patch is now fully self-contained with no prerequisite changes.
Motivation: This is a prerequisite for making `LaneBitmask` a wrapper
around `Bitset`, enabling scalable lane bitmasks beyond 64 bits
(https://discourse.llvm.org/t/rfc-out-of-lanebitmask-bits-again/88613).
Commit: 9ff2ef97111bf3b281b1b8950ddfa7ba4d01c281
https://github.com/llvm/llvm-project/commit/9ff2ef97111bf3b281b1b8950ddfa7ba4d01c281
Author: Ricardo Jesus <rjj at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-bitselect.ll
M llvm/test/CodeGen/AArch64/sve-mask-partition.ll
M llvm/test/CodeGen/AArch64/sve-stepvector.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-bitselect.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-build-vector.ll
M llvm/test/CodeGen/AArch64/sve2-bsl.ll
M llvm/test/CodeGen/AArch64/sve2-rsh.ll
M llvm/test/CodeGen/AArch64/sve2-xar.ll
Log Message:
-----------
[AArch64][SVE] Define pseudos for arithmetic immediate instructions. (#188579)
This patch uses DestructiveBinaryShImmUnpred (which was previously
unused as far as I could tell) to define pseudos for arithmetic
immediate instructions such as ADD (immediate), which allows using
MOVPRFX with these instructions.
Commit: c329cc59d91b3f9774383e5e933d812539f17d1e
https://github.com/llvm/llvm-project/commit/c329cc59d91b3f9774383e5e933d812539f17d1e
Author: David Spickett <david.spickett at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
A lldb/test/API/commands/register/TestRegistersUnavailable.py
A lldb/test/API/commands/register/aarch64_dynamic_regset/Makefile
A lldb/test/API/commands/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
A lldb/test/API/commands/register/aarch64_dynamic_regset/main.c
A lldb/test/API/commands/register/aarch64_mte_ctrl_register/Makefile
A lldb/test/API/commands/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
A lldb/test/API/commands/register/aarch64_mte_ctrl_register/main.c
A lldb/test/API/commands/register/aarch64_sme_z_registers/save_restore/Makefile
A lldb/test/API/commands/register/aarch64_sme_z_registers/save_restore/TestSMEZRegistersSaveRestore.py
A lldb/test/API/commands/register/aarch64_sme_z_registers/save_restore/main.c
A lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/Makefile
A lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
A lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/main.c
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/Makefile
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_static_config/Makefile
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_static_config/TestSVERegisters.py
A lldb/test/API/commands/register/aarch64_sve_registers/rw_access_static_config/main.c
A lldb/test/API/commands/register/aarch64_sve_simd_registers/Makefile
A lldb/test/API/commands/register/aarch64_sve_simd_registers/TestSVESIMDRegisters.py
A lldb/test/API/commands/register/aarch64_sve_simd_registers/main.c
R lldb/test/API/commands/register/register/TestRegistersUnavailable.py
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
R lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
R lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/Makefile
R lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
R lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/main.c
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/save_restore/Makefile
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/save_restore/TestSMEZRegistersSaveRestore.py
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/save_restore/main.c
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/za_dynamic_resize/Makefile
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
R lldb/test/API/commands/register/register/aarch64_sme_z_registers/za_dynamic_resize/main.c
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/Makefile
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/Makefile
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/TestSVERegisters.py
R lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c
R lldb/test/API/commands/register/register/aarch64_sve_simd_registers/Makefile
R lldb/test/API/commands/register/register/aarch64_sve_simd_registers/TestSVESIMDRegisters.py
R lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c
R lldb/test/API/commands/register/register/register_command/Makefile
R lldb/test/API/commands/register/register/register_command/TestRegisters.py
R lldb/test/API/commands/register/register/register_command/a.cpp
R lldb/test/API/commands/register/register/register_command/main.cpp
A lldb/test/API/commands/register/register_command/Makefile
A lldb/test/API/commands/register/register_command/TestRegisters.py
A lldb/test/API/commands/register/register_command/a.cpp
A lldb/test/API/commands/register/register_command/main.cpp
Log Message:
-----------
[lldb][test][NFC] Move register command tests (#190144)
For whatever reason we ended up with register/register but the first
register just had the second register folder in it.
Move the files up one level so we have register/<test files>.
Commit: 91b90652bb022417bc1f34c1231ca4b50128f735
https://github.com/llvm/llvm-project/commit/91b90652bb022417bc1f34c1231ca4b50128f735
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter-tests/nrvo.cpp
M cross-project-tests/lit.cfg.py
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
M llvm/lib/IR/DebugInfoMetadata.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/test/CodeGen/MIR/X86/diexpr-win32.mir
A llvm/test/DebugInfo/COFF/indirect-local.ll
M llvm/test/DebugInfo/COFF/nrvo.ll
M llvm/test/DebugInfo/COFF/pieces.ll
M llvm/test/DebugInfo/COFF/types-array-advanced.ll
Log Message:
-----------
Reland "[CodeView] Generate `S_DEFRANGE_REGISTER_REL_INDIR`" (#189401)
Initially added in #187709. It was reverted in #188833, because
[llvm-clang-x86_64-sie-win](https://lab.llvm.org/buildbot/#/builders/46/builds/32873)
was failing in
`cross-project-tests/debuginfo-tests/dexter-tests/nrvo.cpp`.
The test passed for me locally. After checking on another machine, I
found that `S_DEFRANGE_REGISTER_REL_INDIR` is only supported by
dbgeng/WinDbg from Windows 10.0 Build 19041 (released 2020) onwards.
SDKs before this will fail to read the value. That buildbot is on
Windows 10.0 Build 17763.
I'm not sure if we should make the generation of that record
conditional. Debuggers that can't read the record will skip it. They'll
still see that there's some local variable, but won't be able to display
the value.
As far as I know, users of older Windows 10 builds should be able to
install a newer Windows SDK and use the WinDbg from that version. But I
haven't tested that.
Commit: 57ee29a2a1fc33add3e1736614e6e666c432a840
https://github.com/llvm/llvm-project/commit/57ee29a2a1fc33add3e1736614e6e666c432a840
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/AST/DeclCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CodeGen/CGClass.cpp
A clang/test/CIR/CodeGen/copy-constructor-memcpy.cpp
M clang/test/CIR/CodeGen/coro-task.cpp
M clang/test/CIR/CodeGen/cxx-special-member-attr.cpp
M clang/test/CIR/CodeGen/nrvo.cpp
M clang/test/CIR/CodeGenOpenACC/combined-firstprivate-clause.cpp
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause-templates.cpp
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause.cpp
Log Message:
-----------
[CIR] Implement isMemcpyEquivalentSpecialMember for trivial copy/move ctors (#186700)
Implements isMemcpyEquivalentSpecialMember in CIR codegen so that
trivial copy/move constructors and defaulted union copy/move ops emit a
cir.copy directly instead of making a real constructor call. The logic
is shared with OG codegen by moving the implementation into ASTContext,
where it also gains the pointer field protection (PFP) check that was
previously missing in CIR.
Commit: afb80bddf147c134c5e3cf3f357f8d00bdfd526c
https://github.com/llvm/llvm-project/commit/afb80bddf147c134c5e3cf3f357f8d00bdfd526c
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
A cmake/Modules/GetToolchainDirs.cmake
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
M compiler-rt/cmake/base-config-ix.cmake
M flang-rt/CMakeLists.txt
M flang-rt/cmake/modules/AddFlangRT.cmake
R flang-rt/cmake/modules/GetToolchainDirs.cmake
M flang-rt/test/lit.site.cfg.py.in
M libc/CMakeLists.txt
M libcxx/CMakeLists.txt
M libcxxabi/CMakeLists.txt
M libsycl/CMakeLists.txt
M libunwind/CMakeLists.txt
M llvm-libgcc/CMakeLists.txt
M offload/CMakeLists.txt
M openmp/CMakeLists.txt
M orc-rt/lib/executor/CMakeLists.txt
M runtimes/CMakeLists.txt
Log Message:
-----------
[Runtimes] Introduce variables containing resource dir paths (#177953)
Introduce common infrastructure for runtimes that determines compiler
resource path locations. These variables introduced are:
* RUNTIMES_OUTPUT_RESOURCE_DIR
* RUNTIMES_INSTALL_RESOURCE_PATH
That contain the location for the compiler resource path (typically
`lib/clang/<version>`) in the build tree and the install tree (the
latter relative to CMAKE_INSTALL_PREFIX).
Additionally, define
* RUNTIMES_OUTPUT_RESOURCE_LIB_DIR
* RUNTIMES_INSTALL_RESOURCE_LIB_PATH
as for the location of clang/flang version-locked libraries (typically
`lib${LLVM_LIBDIR_SUFFIX}/<targer-triple>`, but also depends on `APPLE`
and `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR`). This code is moved from
flang-rt and initially becomes its only user.
Refactored out of #171610 as requested
[here](https://github.com/llvm/llvm-project/pull/171610#discussion_r2687382481).
Extracted `get_runtimes_target_libdir_common` from compiler-rt as
requested
[here](https://github.com/llvm/llvm-project/pull/171610#discussion_r2689565634).
Added TODO comments to all runtimes as requested
[here](https://github.com/llvm/llvm-project/pull/171610#issuecomment-3789598635).
Commit: f51e343ed5896c05af0feee3d27d37dca7e94c32
https://github.com/llvm/llvm-project/commit/f51e343ed5896c05af0feee3d27d37dca7e94c32
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/bswap.ll
M llvm/test/CodeGen/AArch64/memcmp.ll
Log Message:
-----------
[AArch64] Select REV16 for zext(bswap(i16)) (#189576)
Extend the existing any_extend(bswap i16) -> rev16 combine to also
handle zero_extend. REV16 preserves a zero upper half, so for i16 loads
this saves one instruction: ldrh+rev+lsr#16 -> ldrh+rev16.
Commit: 0ef3906aea92d86aa958c3a18e1e2f82f39ff353
https://github.com/llvm/llvm-project/commit/0ef3906aea92d86aa958c3a18e1e2f82f39ff353
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Driver/ModulesDriver.cpp
Log Message:
-----------
[clang][modules-driver] Avoid copy of -cc1 command & const correctness (NFC) (#190142)
Commit: 5613f7729311da94568e469412418450b695bc18
https://github.com/llvm/llvm-project/commit/5613f7729311da94568e469412418450b695bc18
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
R libcxx/test/libcxx/diagnostics/ranges.nodiscard.verify.cpp
A libcxx/test/libcxx/ranges/range.utility/range.utility.conv/nodiscard.verify.cpp
Log Message:
-----------
[libc++][ranges] Updated `ranges::to` `[[nodiscard]]` tests (#173574)
- Updated and moved `ranges::to` `[[nodiscard]]` tests to the new
conventinional location.
- Removed libcxx/test/libcxx/diagnostics/ranges.nodiscard.verify.cpp,
which is now obsolete in favor of more specific test files.
# References:
- https://wg21.link/range.utility.conv
- https://wg21.link/range.utility.conv.to
- https://wg21.link/range.utility.conv.adaptors
Towards #172124
Commit: 94ec7ffa46d351b86fbbe3a445ceef37f331c4a2
https://github.com/llvm/llvm-project/commit/94ec7ffa46d351b86fbbe3a445ceef37f331c4a2
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
Log Message:
-----------
[SLP] Do not skip tiny trees with gathered loads to vectorize
The isTreeTinyAndNotFullyVectorizable check for 2-node trees
(insertelement root + gather child) was too aggressive: it rejected
trees even when LoadEntriesToVectorize was non-empty, preventing
gathered loads from being vectorized into masked loads/strided loads, etc.
Reviewers: RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/190040
Commit: bed2761bc012b23e652c1f9377a7fd0a9a302bee
https://github.com/llvm/llvm-project/commit/bed2761bc012b23e652c1f9377a7fd0a9a302bee
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M polly/include/polly/CodeGen/IslNodeBuilder.h
M polly/include/polly/CodeGen/RuntimeDebugBuilder.h
M polly/lib/CodeGen/BlockGenerators.cpp
M polly/lib/CodeGen/CodeGeneration.cpp
M polly/lib/CodeGen/IslNodeBuilder.cpp
M polly/test/CodeGen/RuntimeDebugBuilder/stmt_tracing.ll
Log Message:
-----------
[Polly] Print params with stmt tracing (#189362)
It was helpful for #189350.
Commit: 3468ee025ed5934f5fb224b497da15227c3de447
https://github.com/llvm/llvm-project/commit/3468ee025ed5934f5fb224b497da15227c3de447
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticCrossTUKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/test/Analysis/ctu/diag/load-threshold.cpp
Log Message:
-----------
fixup! [publish-sphinx-docs] Forward CTU-import failure conditions
Fix the Sphinx build failure
https://lab.llvm.org/buildbot/#/builders/45/builds/24533
introduced in e3cfcf48d0c966f163c9807839a900936af0e759 (PR #189064)
by using a dedicated group for CTU remarks.
Commit: 64b728128df355b9838eb7f6c19082628fb30dbe
https://github.com/llvm/llvm-project/commit/64b728128df355b9838eb7f6c19082628fb30dbe
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/include/bolt/Passes/LivenessAnalysis.h
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M bolt/unittests/Passes/CMakeLists.txt
A bolt/unittests/Passes/LivenessAnalysis.cpp
Log Message:
-----------
[BOLT][AArch64] Add minimal support for liveness analysis. (#183298)
In this patch I am adding the missing target hooks required for the
liveness analysis to run on AArch64. These are
- getFlagsReg()
- getRegsUsedAsParams()
- getDefaultLiveOut()
- getGPRegs()
- isCleanRegXOR()
I am also introducing the following API in LivenessAnalysis
- BitVector getLiveIn/Out(const MCInst &)
- MCPhysReg scavengeRegFromState(BitVector &)
My intention is to allow the LongJmp pass scavenge usable registers when
injecting code.
Commit: 72e8c9b78f01439d34cbd05ed8d269a2758834de
https://github.com/llvm/llvm-project/commit/72e8c9b78f01439d34cbd05ed8d269a2758834de
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
R llvm/test/CodeGen/Generic/llc-start-stop.ll
A llvm/test/CodeGen/X86/llc-start-stop.ll
Log Message:
-----------
[CodeGen] Move llc-start-stop.ll test to X86 (#190151)
The pass pipeline differs across targets, so make this test use
one specific pipeline, instead of trying to cater to cross-target
differences. Those differences are not relevant to the intent of
the test.
Commit: c4b0f9959abe998f4985c1ef4ccfa22dc9096864
https://github.com/llvm/llvm-project/commit/c4b0f9959abe998f4985c1ef4ccfa22dc9096864
Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M libsycl/docs/index.rst
M libsycl/src/CMakeLists.txt
A libsycl/src/detail/device_binary_structures.hpp
A libsycl/src/detail/device_image_wrapper.hpp
M libsycl/src/detail/device_impl.hpp
M libsycl/src/detail/global_objects.cpp
M libsycl/src/detail/global_objects.hpp
A libsycl/src/detail/kernel_id.hpp
A libsycl/src/detail/program_manager.cpp
A libsycl/src/detail/program_manager.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/src/usm_functions.cpp
Log Message:
-----------
[libsycl] Add device image registration & compatibility check (#187528)
This is part of the SYCL support upstreaming effort. The relevant RFCs
can be found here:
https://discourse.llvm.org/t/rfc-add-full-support-for-the-sycl-programming-model/74080
https://discourse.llvm.org/t/rfc-sycl-runtime-upstreaming/74479
---------
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Commit: 803d1d66094c9d2e543f5e62a426ef972e100a93
https://github.com/llvm/llvm-project/commit/803d1d66094c9d2e543f5e62a426ef972e100a93
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
A clang/test/Analysis/Scalable/call-graph.cpp
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
A clang/test/Analysis/Scalable/ssaf-format/call-graph-invalid-json-format.test
M clang/test/Analysis/Scalable/ssaf-format/list.test
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn
Log Message:
-----------
[clang][ssaf] Implement JSON format for CallGraph summary (#189681)
rdar://170258016
Commit: 7410a81fbd72e0eb525d7b09ef2cbfa55ee4f973
https://github.com/llvm/llvm-project/commit/7410a81fbd72e0eb525d7b09ef2cbfa55ee4f973
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/2011-12-15-vec_shift.ll
M llvm/test/CodeGen/X86/avx-shift.ll
M llvm/test/CodeGen/X86/avx2-vector-shifts.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/known-never-zero.ll
M llvm/test/CodeGen/X86/pr162812.ll
M llvm/test/CodeGen/X86/prefer-avx256-shift.ll
M llvm/test/CodeGen/X86/sshl_sat_vec.ll
M llvm/test/CodeGen/X86/ushl_sat_vec.ll
M llvm/test/CodeGen/X86/vec_shift4.ll
M llvm/test/CodeGen/X86/vector-fshl-256.ll
M llvm/test/CodeGen/X86/vector-fshl-512.ll
M llvm/test/CodeGen/X86/vector-fshl-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
M llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
M llvm/test/CodeGen/X86/vector-fshr-128.ll
M llvm/test/CodeGen/X86/vector-fshr-256.ll
M llvm/test/CodeGen/X86/vector-fshr-512.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
M llvm/test/CodeGen/X86/vector-mul-i8-decompose.ll
M llvm/test/CodeGen/X86/vector-mul.ll
M llvm/test/CodeGen/X86/vector-rotate-128.ll
M llvm/test/CodeGen/X86/vector-rotate-256.ll
M llvm/test/CodeGen/X86/vector-rotate-512.ll
M llvm/test/CodeGen/X86/vector-shift-lut.ll
M llvm/test/CodeGen/X86/vector-shift-shl-128.ll
M llvm/test/CodeGen/X86/vector-shift-shl-256.ll
M llvm/test/CodeGen/X86/vector-shift-shl-512.ll
M llvm/test/CodeGen/X86/vector-shift-shl-sub128.ll
M llvm/test/CodeGen/X86/vshift-6.ll
Log Message:
-----------
[X86] LowerShiftByScalarImmediate - vXi8 shl(X,2) - prefer PADDB+PADDB pair over PSLLW+PAND (#186095)
For all targets, (V)PADDB is always as fast as (V)PSLLW (usually faster)
- and usually as fast as (V)PAND, and avoids having to load a mask - so
for shift lefts by 2, a pair of (V)PADDB is a better choice vs
(V)PSLLW+(V)PAND
This is only necessary if we're avoiding a (V)PAND mask - otherwise we
just need a single (V)PSLLW.
Commit: eaa3ef9ddc20edbe6a99be7ea53d0d2ea0585f77
https://github.com/llvm/llvm-project/commit/eaa3ef9ddc20edbe6a99be7ea53d0d2ea0585f77
Author: dibrinsofor <64705019+dibrinsofor at users.noreply.github.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/X86/known-pow2.ll
Log Message:
-----------
[DAG] Propagate OrZero and DemandedElts for min/max in isKnownToBeAPowerOfTwo (#182369)
Fixes #181643
For queries like `isKnownToBeAPowerOfTwo(V, OrZero=true)`, if an operand
is known to be "pow2-or-zero" but not strictly non-zero power-of-two,
the min/max case currently returns false even when the result remains
pow2-or-zero.
For instance:
- `A = select cond, 4, 0` (A is pow2-or-zero)
- `R = umin(A, 16)`
`R` is always in `{0, 4}` and querying `isKnownToBeAPowerOfTwo(R,
OrZero=true)` should be true.
Added unitests for baseline and failing case and now propagating
correctly to `OrZero` and `DemandedElts`
Commit: 329af7d2b785e0c7032427fdd11881f8c7280a52
https://github.com/llvm/llvm-project/commit/329af7d2b785e0c7032427fdd11881f8c7280a52
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/test/CodeGenCXX/ext-int.cpp
Log Message:
-----------
[clang] Fix array filler lowering for _BitInt arrays (#189954)
Sometimes we use array of bytes to represent `_BitInt` types in memory.
When this is the case the lowered array filler expression reaches
`ConstantEmitter::emitForMemory` already with memory type which will be
array of i8 instead of a single iN, so `cast<llvm::ConstantInt>` was
failing within `ConstantEmitter::emitForMemory`. This patch fixes the
assertion failure by not attempting any type changes if the type is
right already.
Fixes https://github.com/llvm/llvm-project/issues/189643
Assisted-by: claude in FileCheck CHECK lines fixing
Commit: 3200d64c33de2ae3bba136c6ea3b80cdad3a30f8
https://github.com/llvm/llvm-project/commit/3200d64c33de2ae3bba136c6ea3b80cdad3a30f8
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/test/Analysis/Scalable/call-graph.cpp
Log Message:
-----------
[clang][ssaf] Fix nondeterministic test failures of clang/test/Analysis/Scalable/call-graph.cpp (#190155)
fixup! [clang][ssaf] Implement JSON format for CallGraph summary
The order of checks were unspecified in the test.
Consequently, "polymorphic" may have appeared before "caller" failing
the test.
This patch splits the test into separate files so these wouldn't
interfere.
Example bot failures:
https://lab.llvm.org/buildbot/#/builders/225/builds/4974
https://lab.llvm.org/buildbot/#/builders/144/builds/50732
https://lab.llvm.org/buildbot/#/builders/190/builds/39773
https://lab.llvm.org/buildbot/#/builders/46/builds/33213
Fixes up #189681
Commit: b0230f59969b9e8e7e0aff44cd34718987098462
https://github.com/llvm/llvm-project/commit/b0230f59969b9e8e7e0aff44cd34718987098462
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
Log Message:
-----------
[VPlan] Cleanup and generalize VPPhiAccessors CastInfo (NFC) (#190027)
Commit: 905f23c9f89a7c04c0a9a11e4968fd621e42f54e
https://github.com/llvm/llvm-project/commit/905f23c9f89a7c04c0a9a11e4968fd621e42f54e
Author: Steven Perron <stevenperron at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl
M clang/test/AST/HLSL/Texture2D-vector-AST.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-CalculateLevelOfDetail.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-CalculateLevelOfDetail.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
Log Message:
-----------
[HLSL] Add CalculateLevelOfDetail methods to Texture2D (#188574)
This adds the CalculateLevelOfDetail and CalculateLevelOfDetailUnclamped
methods to Texture2D using the establish pattern used for other methods.
Assisted-by: Gemini
Commit: 710d647586a4accef82a72c32c45a9cc77bbef53
https://github.com/llvm/llvm-project/commit/710d647586a4accef82a72c32c45a9cc77bbef53
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
A clang/test/CIR/CodeGen/vtable-null-func-ptr.cpp
Log Message:
-----------
[CIR] Implement 'null' function-pointer vtable entries (#190013)
This functionality is described in the Itanium C++ABI 2.5.2 (and is also
where the test comes from). See also VTableBuilder.cpp's documentation
on the declaration of IsOverriderUsed for further details.
However, the explaination is:
When B and C are declared, A is a primary base in each case, so although
vcall offsets are allocated in the A-in-B and A-in-C vtables, no this
adjustment is required and no thunk is generated. However, inside D
objects, A is no longer a primary base of C, so if we allowed calls to
C::f() to use the copy of A's vtable in the C subobject, we would need
to adjust this from C* to B::A*, which would require a third-party
thunk. Since we require that a call to C::f() first convert to A*,
C-in-D's copy of A's vtable is never referenced, so this is not
necessary.
The short of that is: there is no way to call these, so we just emit a
nullptr rather than the required thunk.
Commit: 58b719660c8d4137f5c7f280731a324f142e75e7
https://github.com/llvm/llvm-project/commit/58b719660c8d4137f5c7f280731a324f142e75e7
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
A clang/test/CIR/CodeGen/union-agg-init.c
A clang/test/CIR/CodeGen/union-agg-init.cpp
Log Message:
-----------
[CIR] Implement union aggregate init (#190057)
This ends up being a pretty trivial amount of work, since we just have
to forward the initialization for a union on to the 'active' field,
which this patch does.
Commit: 862ceaa793f8f8e86914595cb518ffbfd182dea7
https://github.com/llvm/llvm-project/commit/862ceaa793f8f8e86914595cb518ffbfd182dea7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Headers/__clang_hip_math.h
M clang/test/Headers/__clang_hip_math.hip
Log Message:
-----------
clang/AMDGPU: Use f64 exp10 builtin in hip math headers (#185947)
Commit: 99786f20ee6e66de8279cb3e371876937524a800
https://github.com/llvm/llvm-project/commit/99786f20ee6e66de8279cb3e371876937524a800
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
Log Message:
-----------
[LLVM][Intrinsics] Refactor `IITDescriptor` (#190011)
The main change is to eliminate the use of "Argument" terminology when
dealing with overloaded types since overloaded types can be either
argument or return values, and some additional renaming for clarity.
1. Rename `Tys` argument to various intrinsic APIs to `OverloadTys` to
better reflect its meaning.
2. Rename `IITDescriptorKind::Argument` to
`IITDescriptorKind::Overloaded` to better convey that it's an overloaded
type. Removed "Argument" suffix for other kinds for dependent types.
3. Rename `ArgKind` to `AnyKind`, `getArgumentNumber` to
`getOverloadIndex`, `getArgumentKind` to `getOverloadKind`,
`getRefArgNumber` to `getRefOverloadIndex`, and `IIT_ARG` to `IIT_ANY`.
4. Rename `IIT_ANYPTR` (used to represent a pointer qualified with
address space) to `IIT_PTR_AS` to clearly distinguish it from
`llvm_anyptr_ty`
5. Change the packing of [ref overload index & overload index] for
`VecOfAnyPtrsToElt` to pack the overload index into the lower bits, so
we can use the `getOverloadIndex` function to get the overload index.
Commit: dc2d25f80b1526481995191506eecc74ec83bd53
https://github.com/llvm/llvm-project/commit/dc2d25f80b1526481995191506eecc74ec83bd53
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
Log Message:
-----------
Revert "[SLP] Do not skip tiny trees with gathered loads to vectorize"
This reverts commit 94ec7ffa46d351b86fbbe3a445ceef37f331c4a2 to fix
reported issue https://github.com/llvm/llvm-project/pull/190040#issuecomment-4177827078
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190176
Commit: 682a217d7473518b83be7eee8342fe2a0084fa0b
https://github.com/llvm/llvm-project/commit/682a217d7473518b83be7eee8342fe2a0084fa0b
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Extract the logic shared by the Exact SIV/RDIV test (#189951)
The Exact SIV test and the Exact RDIV test behave almost identically,
except that the Exact SIV test also explores the directions in the final
step. This patch consolidates the two duplicate implementations into a
single function that can be used by both tests. While this change
slightly affects things like debug output and metrics, it is not
intended to alter the actual test results.
Commit: 60efb5c0a3f510515253a2106d0784f2be6c4d4b
https://github.com/llvm/llvm-project/commit/60efb5c0a3f510515253a2106d0784f2be6c4d4b
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/unittests/Debuginfod/CMakeLists.txt
M llvm/unittests/Support/HTTP/CMakeLists.txt
Log Message:
-----------
[llvm] Fix SupportHTTP linkage with libLLVM in unit-tests (#190097)
Since libSupportHTTP is part of the LLVM dylib, we must link it as a
component now. Fixes https://github.com/llvm/llvm-project/issues/189978
Commit: aff601aed894dadd71ae8049502f964d0554173f
https://github.com/llvm/llvm-project/commit/aff601aed894dadd71ae8049502f964d0554173f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h
Log Message:
-----------
[lldb][windows] fix duplicate OnLoadModule events (#189376)
Commit: c2f97c591753b821318092c974efe57ed92f4181
https://github.com/llvm/llvm-project/commit/c2f97c591753b821318092c974efe57ed92f4181
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
Log Message:
-----------
[SLP] Do not skip tiny trees with gathered loads to vectorize
The isTreeTinyAndNotFullyVectorizable check for 2-node trees
(insertelement root + gather child) was too aggressive: it rejected
trees even when LoadEntriesToVectorize was non-empty, preventing
gathered loads from being vectorized into masked loads/strided loads, etc.
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/190181
Commit: b87be02cc74db3a929b4b72a26f2577dc8b7fa11
https://github.com/llvm/llvm-project/commit/b87be02cc74db3a929b4b72a26f2577dc8b7fa11
Author: Dhruv Chauhan <dhruv.chauhan at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tensor/Transforms/Transforms.h
M mlir/lib/Dialect/Tensor/Transforms/ConcatOpPatterns.cpp
M mlir/lib/Dialect/Tensor/Transforms/FoldTensorSubsetOps.cpp
M mlir/test/Dialect/Tensor/fold-tensor-subset-ops.mlir
Log Message:
-----------
Revert "[mlir][tensor] Forward concat insert_slice destination into DPS provider" (#190143)
This reverts commit 1418f80.
The change can cause an infinite rewrite loop when
ForwardConcatInsertSliceDest interacts with
FoldEmptyTensorWithExtractSliceOp.
Commit: 0625467c63c557a9fda7e5d4ea64ef6d739b1c04
https://github.com/llvm/llvm-project/commit/0625467c63c557a9fda7e5d4ea64ef6d739b1c04
Author: Jean-Didier PAILLEUX <jean-didier.pailleux at sipearl.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
A flang/test/Fir/MIF/change_team2.mlir
M flang/test/Lower/MIF/change_team2.f90
Log Message:
-----------
[Flang] Fix lowering failure for some constructs inside a CHANGE TEAM (#184342)
This PR is here to fix the `CHANGE_TEAM` construct if it contains an
IF/ELSE (construct with a body too) in its body, for example.
Commit: a36f821e7749618e6910b39778911c907dcd2c6f
https://github.com/llvm/llvm-project/commit/a36f821e7749618e6910b39778911c907dcd2c6f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/invalid.mlir
Log Message:
-----------
[mlir][linalg] Add test for ReduceOp empty-input verifier; remove dead empty-output check (#189614)
Add a FileCheck test covering the 'expected at least one input' error in
ReduceOp::verify(). The companion 'expected at least one output' check
was dead code: SameVariadicOperandSize fires first whenever
inputs.size() \!= inits.size(), and when both are empty the input check
fires first; remove the unreachable branch.
Assisted-by: Claude Code
Commit: 3d359887c44f2001fb43f07a282191064e2b66a6
https://github.com/llvm/llvm-project/commit/3d359887c44f2001fb43f07a282191064e2b66a6
Author: lntue <lntue at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M .github/workflows/libc-shared-tests.yml
Log Message:
-----------
[libc] Add powerpc64le to libc-shared-tests precommit CI. (#190096)
Commit: 91b3b67a9e1967587c9701a20f04d513dc2552bd
https://github.com/llvm/llvm-project/commit/91b3b67a9e1967587c9701a20f04d513dc2552bd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/test/CodeGen/X86/known-pow2.ll
Log Message:
-----------
[X86] known-pow2.ll - adjust pow2_trunc_vec to show failure to pass through demanded elts mask to determine pow2orzero mask (#190170)
Commit: 75359e1e1f0df601b7bde98be327970fcd5b1b1a
https://github.com/llvm/llvm-project/commit/75359e1e1f0df601b7bde98be327970fcd5b1b1a
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Add static to analyzeCoefficientsForGCD (NFC) (#190172)
Commit: 5226289b8ea27ba53586d2c4db6d72368b0924d4
https://github.com/llvm/llvm-project/commit/5226289b8ea27ba53586d2c4db6d72368b0924d4
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
Log Message:
-----------
Revert "AMDGPU: Codegen for v_dual_dot2acc_f32_f16/bf16 from VOP3" (#190159)
This reverts commit 47f6a19181b426baa03182ab6a7a41e16b35301d.
Breaks MIOpen, don't have propper fix yet.
Commit: 29c083a61f2e2d821e339d7b370d0d4e5e8d7594
https://github.com/llvm/llvm-project/commit/29c083a61f2e2d821e339d7b370d0d4e5e8d7594
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/source/Host/windows/PseudoConsole.cpp
Log Message:
-----------
[lldb][windows] simplify the ConPTY draining subprocess (#190178)
In some environments like swiftlang, the `''` causes the command used to
drain the init sequence of the ConPTY to fail. Replacing with a `cls`
invocation removes the need for quotation marks and works just as well.
Commit: d59356aac5aee1d827d405b5611bb51cdcf72001
https://github.com/llvm/llvm-project/commit/d59356aac5aee1d827d405b5611bb51cdcf72001
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
M flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
R mlir/test/Target/LLVMIR/openmp-simd-linear.mlir
Log Message:
-----------
Revert "Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#183794)"" (#190180)
Reverts llvm/llvm-project#188851
Commit: c1fd7d7a1f573477d86a716bacda01ed1d8c7a43
https://github.com/llvm/llvm-project/commit/c1fd7d7a1f573477d86a716bacda01ed1d8c7a43
Author: Aditya Medhane <153186739+flash1729 at users.noreply.github.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/APINotes/Types.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesTypes.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
A clang/test/APINotes/Inputs/Headers/BoundsUnsafe.apinotes
A clang/test/APINotes/Inputs/Headers/BoundsUnsafe.h
M clang/test/APINotes/Inputs/Headers/module.modulemap
A clang/test/APINotes/bounds-safety.c
Log Message:
-----------
[APINotes][BoundsSafety] Upstream API notes format for bounds-safety function parameters
Related: #183340
Upstream from swiftlang/llvm-project at 721e6a3 with some modifications.
Since __counted_by and related attributes aren't supported upstream yet
in function signatures, this only upstreams the format part — YAML
parsing, binary serialization, and deserialization. Semantic application
is a follow-up.
Modifications from downstream:
- Renamed local YAML struct from `BoundsSafety` to `BoundsSafetyNotes`
to avoid name collision with `Param::BoundsSafety` field (downstream
fixed this in a subsequent commit)
- `Level` in `BoundsSafetyNotes` is now `std::optional<unsigned>` so we
can actually tell apart "user didn't write Level:" from "Level: 0"
- `asdf_sized` and `asdf_sized_n` use `void *buf` — makes more sense for
sized_by
- Added `asdf_counted_indirect` with `int **` and `Level: 1` to test the
indirection level path
- Removed a vacuous assert (`CountedBy == 0`, always true for unsigned)
- Added `operator!=` for `BoundsSafetyInfo` to match other types in
`Types.h`
- Added doc comments for `LevelAudited` and `Level`
Commit: 9dc1da6e8788ef8e639342be7cb2933987eb1d45
https://github.com/llvm/llvm-project/commit/9dc1da6e8788ef8e639342be7cb2933987eb1d45
Author: Trung Nguyen <57174311+trungnt2910 at users.noreply.github.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
A clang/test/CodeGen/attr-ms-forceinline.cpp
A clang/test/Sema/attr-ms-forceinline.c
A clang/test/Sema/attr-ms-forceinline.cpp
Log Message:
-----------
[clang] Add support for MSVC force inline attrs (#185282)
Add support for `[[msvc::forceinline]]` and
`[[msvc::forceinline_calls]]`.
`[[msvc::forceinline]]` is equivalent to Microsoft's `__forceinline`
when placed before a function declaration.
Unlike `__forceinline`, `[[msvc::forceinline]]` works with lambdas.
`[[msvc::forceinline_calls]]` is simliar to `[[clang::always_inline]]`
but only works on statements.
Both are implemented as aliases of `[[clang::always_inline]]` with
special checks.
Fixes #186539.
Commit: e9a62c7698f1e9d813842f5d0682895800ecbd4d
https://github.com/llvm/llvm-project/commit/e9a62c7698f1e9d813842f5d0682895800ecbd4d
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
Log Message:
-----------
[DAG] `computeKnownFPClass`: handle `ISD::FABS` (#190069)
Use `KnownFPClass::fabs` to handle `ISD::FABS`.
This case will help with updating #188356 to use `computeKnownFPClass`.
Commit: bb2a63a673fff0ad90eda49144320d0066040e9d
https://github.com/llvm/llvm-project/commit/bb2a63a673fff0ad90eda49144320d0066040e9d
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Use m_Isa to improve code (NFC) (#190149)
Commit: 87104ee51450e5c6417b80cfd9a0771c9a690a1c
https://github.com/llvm/llvm-project/commit/87104ee51450e5c6417b80cfd9a0771c9a690a1c
Author: Kartik Ohlan <kartik7ohlan at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaStmt.cpp
A clang/test/SemaCXX/void-lambda-return-init.cpp
Log Message:
-----------
[Clang] [Sema] Diagnose returning an initializer list from a lambda with a return type of void (#188904)
We previously didn’t diagnose attempts to return an initializer list from
a lambda with an explicit return type of `void`. This patch fixes that. It also
cleans up the error message so it actually says "lambda" instead of "block".
Fixes #188661
Signed off by: Kartik
Commit: 97dbf38c9c495ce9fb958137957cb7794ef3285b
https://github.com/llvm/llvm-project/commit/97dbf38c9c495ce9fb958137957cb7794ef3285b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Log Message:
-----------
[SCEVExpander] Add SCEVUseVisitor and use it in SCEVExpander (NFC) (#188863)
Add SCEVUseVisitor, a new visitor class where all visit methods receive
a SCEVUse instead of a const SCEV*. Use it for SCEVExpander, so it can
use use-specific flags in the future.
PR: https://github.com/llvm/llvm-project/pull/188863
Commit: 5ecc7e1e57e4e36c1b722f2f1751ecf118be25b5
https://github.com/llvm/llvm-project/commit/5ecc7e1e57e4e36c1b722f2f1751ecf118be25b5
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
Log Message:
-----------
[AMDGPU][NFC] Update gating target feature for SWMMAC instructions (#190012)
Commit: ef409e649c929a3daf97f2b2bd26329d9c69406a
https://github.com/llvm/llvm-project/commit/ef409e649c929a3daf97f2b2bd26329d9c69406a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpFrame.cpp
Log Message:
-----------
[clang][bytecode] Add an assertion in initScope() op (#189972)
I've run into a problem in a branch lately that would've benefitted from
this assertion.
Commit: deaef1c1b71728d321913797b8bb447fa769cb6e
https://github.com/llvm/llvm-project/commit/deaef1c1b71728d321913797b8bb447fa769cb6e
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/unittests/Transforms/Vectorize/VPlanTestBase.h
M llvm/unittests/Transforms/Vectorize/VPlanUncountableExitTest.cpp
Log Message:
-----------
[LV] Adjust exit recipe detection to run on early vplan (#183318)
Splitting out some work from #178454; this covers the enums for
early exit loop type (none, readonly, readwrite) and the style
used (readonly with multiple exit blocks, or masking with the
last iteration done in scalar code), along with changing the early
exit recipe detection to suit moving the transform for handling
early exit readwrite loops earlier in the vplan pipeline.
Commit: 42b6a6faaa0014f7e39c57c6221fec1855ec4409
https://github.com/llvm/llvm-project/commit/42b6a6faaa0014f7e39c57c6221fec1855ec4409
Author: Tony Guillot <tony.guillot at protonmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/test/C/C23/n3006.c
M clang/test/C/C23/n3007.c
M clang/test/CodeGen/auto.c
M clang/test/Sema/auto-type.c
M clang/test/Sema/c2x-auto.c
Log Message:
-----------
[Clang] Fixed the behavior of C23 auto when an array type was specified for a `char *` (#189722)
At the time of the implementation of
[N3007](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm) in
Clang, when an array type was specified, an error was emitted unless the
deduced type was a `char *`.
After further inspection in the C standard, it turns out that the
inferred type of an `char[]` should be deduced to a `char *`, which
should emit an error if an array type is specified with `auto`.
This now invalidates the following cases:
```c
auto s1[] = "test";
auto s2[4] = "test";
auto s3[5] = "test";
```
Fixes #162694
Commit: 8991ce9cff7b4e1b72c19e202b7bfe3d36499aba
https://github.com/llvm/llvm-project/commit/8991ce9cff7b4e1b72c19e202b7bfe3d36499aba
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
A llvm/test/CodeGen/AMDGPU/clmul.ll
Log Message:
-----------
[AMDGPU] Add basic clmul test coverage (#190205)
Commit: 24146ce5cf8512cdecc8703be0160b3faea17526
https://github.com/llvm/llvm-project/commit/24146ce5cf8512cdecc8703be0160b3faea17526
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/srem-seteq-vec-nonsplat.ll
M llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
Log Message:
-----------
[TargetLowering] Remove INT_MIN special case from prepareSREMEqFold. (#188653)
If the divisor is INT_MIN, we can still treat it like any other power of
2. We'll fold i32 (seteq (srem X, INT_MIN)) to
(setule (rotr (add (mul X, 1), INT_MIN), 31), 1). Alive2 says this is
correct https://alive2.llvm.org/ce/z/vjzqKk.
The multiply is a NOP, the add toggles the sign bits. The rotate puts
the lowest 31 bits of into the upper 31 bits. The sign bit is now in the
LSB. The compare checks if the upper 31 bits are 0.
srem X, INT_MIN has a remainder of 0 if X is 0 or INT_MIN which is
equivalent to checking if the uppper 31 bits are 0 after the rotate.
I don't think we need to add any constant for power of 2 but toggling
the sign bit like we do now doesn't hurt.
Commit: a9158af0a3148a1a6df3fe7820388bd87efc30a0
https://github.com/llvm/llvm-project/commit/a9158af0a3148a1a6df3fe7820388bd87efc30a0
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][SIInsertWaitcnt][NFC] Replace LastFlat array with distinct variables (#185993)
We only seem to be using LastFlat[LOAD_CNT] and LastFlat[DS_CNT] so it
doesn't look like there is a good reason for using an array. Also, we
seem to be operating on all elements of the array while merging, which
is not great.
Commit: 5124dd2536c81a62fff7b9710ae5dd929be95757
https://github.com/llvm/llvm-project/commit/5124dd2536c81a62fff7b9710ae5dd929be95757
Author: Steven Perron <stevenperron at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/SPIRV/hlsl-resources/GetDimensions.ll
Log Message:
-----------
[SPIRV] Add get dimension intrinsics. (#189746)
Add the intrinsics in the wg-hlsl proposal
[[0033] - GetDimensions mapping to built-ins functions and LLVM
intrinsics](https://github.com/llvm/wg-hlsl/blob/main/proposals/0033-resources-get-dimensions.md#lowering-to-spir-v) to the SPIR-V backend. This enabled us to implement the GetDimensions
methods in textures in Clang.
Assisted-by: Gemini
Commit: d8bfd7c63a266d5533388c1e4ee07270f7df4d1c
https://github.com/llvm/llvm-project/commit/d8bfd7c63a266d5533388c1e4ee07270f7df4d1c
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/for_non_rectangular_codegen.c
M clang/test/OpenMP/for_private_reduction_codegen.cpp
M clang/test/OpenMP/loop_collapse_codegen.cpp
Log Message:
-----------
[OpenMP] Fix iteration count for nested triangular OpenMP loops (#190153)
This patch restricts the triangular loop iteration count optimization to
only apply to nested triangular loops (`depth >= 2`), not first-level
triangular loops.
The optimization computes iterations as `(Upper - Lower + 1`) for
triangular loops where the inner loop bound depends on an outer loop
counter. However, this formula only works correctly for deeply nested
triangular dependencies: `k` depends on `j`, and `j` itself depends on
`i` For first-level triangular loops: `k` depends directly on `i`, the
standard iteration count formula handles the calculation correctly.
Commit: 598029333d88611a9e7b26808cf41a55d6e4f991
https://github.com/llvm/llvm-project/commit/598029333d88611a9e7b26808cf41a55d6e4f991
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CMakeLists.txt
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/TargetLoweringInfo.h
A clang/lib/CIR/Dialect/Transforms/TargetLowering/Targets/NVPTX.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGenCUDA/address-spaces.cu
Log Message:
-----------
[CIR][NVPTX] NVPTX lowering info skeleton, PTX AS mapping and Poison attr lowering (#186562)
Commit: 2fc712d8d91590c1aa12d9d0c0774c0a1ee12d94
https://github.com/llvm/llvm-project/commit/2fc712d8d91590c1aa12d9d0c0774c0a1ee12d94
Author: Anshul Nigham <nigham at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/salvage-debug-info-dead.mir
Log Message:
-----------
[NewPM] Adds a port for AArch64O0PreLegalizerCombiner (#189776)
Adds a standard porting for AArch64O0PreLegalizerCombiner.
Note:
- Moves the AArch64GenO0PreLegalizeGICombiner.inc import outside of
anonymous namespace to use it as a member in the NewPM class (which
needs to be declared in AArch64.h)
- Test update needed a requires directive for the libcall-lowering-info
dependency
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: bd9e0e8fcf6950c81b6bda42f05988db1ed940c0
https://github.com/llvm/llvm-project/commit/bd9e0e8fcf6950c81b6bda42f05988db1ed940c0
Author: PiJoules <leonardchan at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/AST/VTableBuilder.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CGVTables.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
Log Message:
-----------
[clang] Consolidate the relative vtable layout getters (#139315)
We have 3 different getters to get the vtable component type. This
consolidates them into just the one in LangOpts.
Commit: 8e61085291c6f41815a7f1af4702807e61c2bf3f
https://github.com/llvm/llvm-project/commit/8e61085291c6f41815a7f1af4702807e61c2bf3f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
M llvm/test/Transforms/LowerMatrixIntrinsics/data-layout-multiply-fused.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-differing-addr-spaces.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-dominance.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-multiple-blocks.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused.ll
Log Message:
-----------
[Matrix] Place allocas in function entry. (#190032)
Create allocas for temporary matrixes in the function entry. Limit the
lifetime via lifetime.start & lifetime.end. This avoids dynamic allocas.
Improvement suggested in
https://github.com/llvm/llvm-project/pull/188721.
PR: https://github.com/llvm/llvm-project/pull/190032
Commit: 43233b8aae2554141e6ad4b02528fe4a1b28dc3c
https://github.com/llvm/llvm-project/commit/43233b8aae2554141e6ad4b02528fe4a1b28dc3c
Author: Justin Stitt <justinstitt at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/test/CodeGen/overflow-behavior-types-scl.c
M clang/test/CodeGen/overflow-behavior-types.c
Log Message:
-----------
[Clang] Add missing __ob_trap check for sign change (#188340)
Add a missing OBTrapInvolved check before EmitIntegerSignChangeCheck().
This is considered "missing" as a previous attempt (https://github.com/llvm/llvm-project/pull/185772) to properly add an `__ob_trap` backdoor missed this particular instance.
This backdoor is needed because we want `__ob_trap` types to be picky about implicit conversions (including implicit sign change):
```c
unsigned int __ob_trap big = 4294967295;
(signed int)big; // should trap!
```
Move the `OBTrapInvolved` setup to the top of the function so it can be used in all the places we need it.
Commit: e6bb6d906a75745fdd6fac861c6d073d113bd9b4
https://github.com/llvm/llvm-project/commit/e6bb6d906a75745fdd6fac861c6d073d113bd9b4
Author: Karthik Senthil <ksenthilkuma at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
A llvm/test/CodeGen/NVPTX/asm-printer-ptx-module-directives.ll
Log Message:
-----------
[NVPTX][AsmPrinter] Demonstrate usage of NVPTXTargetAsmStreamer in NVPTXAsmPrinter. (#188539)
Currently NVPTXAsmPrinter uses intermediate strings to generate ASM and
emit directly to output streamer as raw text. This PR demonstrates how
the printer can be updated to use NVPTXTargetAsmStreamer instead,
thereby getting rid of the intermediate strings. This is shown only for
the PTX header and module level directives.
Commit: d0e265f20d5d0e1f0df039005ce6d1376c8d5e5f
https://github.com/llvm/llvm-project/commit/d0e265f20d5d0e1f0df039005ce6d1376c8d5e5f
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
Log Message:
-----------
[VPlan] Cleanup and generalize VPIRMetadata CastInfo (NFC) (#190162)
Similar to b0230f59 ([VPlan] Cleanup and generalize VPPhiAccessors
CastInfo, #190027).
Commit: 343210656cf7c2b89336adf1c063d7e8a305be4b
https://github.com/llvm/llvm-project/commit/343210656cf7c2b89336adf1c063d7e8a305be4b
Author: Alex Langford <alangford at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
R lldb/test/API/commands/expression/vector_of_enums/Makefile
R lldb/test/API/commands/expression/vector_of_enums/TestVectorOfEnums.py
R lldb/test/API/commands/expression/vector_of_enums/main.cpp
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vector_of_enums/Makefile
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vector_of_enums/TestVectorOfEnums.py
A lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vector_of_enums/main.cpp
Log Message:
-----------
[lldb] Standardize TestVectorOfEnums.py as a C++ data formatter test (#189757)
This is explicitly marked as a libc++ test and functionally tests the
formatter for a vector of enums. I put it in the generic directory
because there's no reason this couldn't work for other c++ stdlibs.
Additionally, this should be using the custom libc++ like the other
tests.
Commit: e0e439ce9fb8a64f1c9d61c937374fe9dd7527db
https://github.com/llvm/llvm-project/commit/e0e439ce9fb8a64f1c9d61c937374fe9dd7527db
Author: Alex Langford <alangford at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/test/API/commands/frame/select-hidden/TestNavigateHiddenFrame.py
Log Message:
-----------
[lldb] Remove libc++ category from TestNavigateHiddenFrame.py (#190016)
This test technically does not require libc++. The test binary mimics
libc++'s namespace layout to trigger some frame hiding logic in lldb,
but it does not require libc++ to function.
Commit: 6331bfa41ab529558ec9d645c0effb7a4146591c
https://github.com/llvm/llvm-project/commit/6331bfa41ab529558ec9d645c0effb7a4146591c
Author: Steven Perron <stevenperron at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl
M clang/test/AST/HLSL/Texture2D-vector-AST.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-GetDimensions.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-GetDimensions.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
Log Message:
-----------
[HLSL] Add GetDimensions to Texture2D. (#189991)
This commit add the GetDimensions methods to Texture2D. For DXIL, it
requires intrinsics that are not yet available. They are added, but not
implemented.
Assisted-by: Gemini
Co-authored-by: Helena Kotas <hekotas at microsoft.com>
Commit: 533d0ac21658c01936f45321d037f6878dff5580
https://github.com/llvm/llvm-project/commit/533d0ac21658c01936f45321d037f6878dff5580
Author: Tamir Duberstein <tamird at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/cmake/modules/AddLLVM.cmake
Log Message:
-----------
[CMake] Group SOVERSION logic (#190224)
There are two blocks whose conditions are coupled; combine them to make
the conditional logic less error prone.
Commit: 4642a6183d5db4c5236326969d3372ab0caa59ef
https://github.com/llvm/llvm-project/commit/4642a6183d5db4c5236326969d3372ab0caa59ef
Author: Tamir Duberstein <tamird at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/tools/libclang/CMakeLists.txt
M llvm/cmake/modules/AddLLVM.cmake
M llvm/tools/llvm-shlib/CMakeLists.txt
M llvm/tools/lto/CMakeLists.txt
M llvm/tools/remarks-shlib/CMakeLists.txt
Log Message:
-----------
[CMake] Extract Mach-O version helper (#190225)
Use CMake's native MACHO_COMPATIBILITY_VERSION and MACHO_CURRENT_VERSION
properties rather than manually pass linker flags. These properties are
available since CMake 3.17.0, released in 2020.
Commit: fdc54c9a1e2fb6a775caf724f582794291ed6391
https://github.com/llvm/llvm-project/commit/fdc54c9a1e2fb6a775caf724f582794291ed6391
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
Log Message:
-----------
[CIR][NFC] Use RelativeCXXABIVTables after isRelativeLayout is removed (#190229)
Update the ClangIR side after changes related to removing
isRelativeLayout and using RelativeCXXABIVTables directly from #139315
Commit: f7b6cc1efab188a375a6932d879cb5510618d698
https://github.com/llvm/llvm-project/commit/f7b6cc1efab188a375a6932d879cb5510618d698
Author: Dominik Montada <dominik.montada at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
A llvm/test/tools/llvm-reduce/mir/set-triple-on-module.mir
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
Log Message:
-----------
[llvm-reduce] Set the target triple before parsing machine functions (#189989)
Make sure that the module has a target triple set before trying to parse
machine functions. This can be required for (downstream) targets if MIR
parsing relies on features guarded by the target triple.
Commit: 86b5f11eccaf89c73a63a56ba5e5305600798c3c
https://github.com/llvm/llvm-project/commit/86b5f11eccaf89c73a63a56ba5e5305600798c3c
Author: Bangtian Liu <liubangtian at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M mlir/docs/Dialects/GPU.md
M mlir/include/mlir/Dialect/GPU/IR/GPUBase.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Conversion/GPUCommon/AttrToSPIRVConverter.cpp
M mlir/lib/Conversion/GPUToLLVMSPV/GPUToLLVMSPV.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
A mlir/test/Conversion/GPUToLLVMSPV/constant-address-space.mlir
M mlir/test/Conversion/GPUToLLVMSPV/gpu-to-llvm-spv.mlir
A mlir/test/Conversion/GPUToNVVM/constant-address-space.mlir
A mlir/test/Conversion/GPUToROCDL/constant-address-space.mlir
M mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl-barrier.mlir
A mlir/test/Dialect/GPU/constant-address-space.mlir
M mlir/test/Dialect/GPU/ops.mlir
Log Message:
-----------
[mlir][GPU] Add constant address space to GPU dialect (#190211)
This PR adds a `constant` address space to the` GPU dialect and
lowerings to all GPU backends.
Signed-off-by: Bangtian Liu <liubangtian at gmail.com>
Commit: e97a42d5f9fe51de50aabd4d9bf6874a4955f9fa
https://github.com/llvm/llvm-project/commit/e97a42d5f9fe51de50aabd4d9bf6874a4955f9fa
Author: Prabhu Rajasekaran <prabhukr at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/UEFI.cpp
M clang/test/Driver/cl-options.c
M clang/test/Driver/incremental-linker-compatible.c
M clang/test/Driver/uefi-constructed-args.c
M llvm/include/llvm/TargetParser/Triple.h
Log Message:
-----------
[Driver] UEFI -mno-incremental-linker-compatible (#188800)
The `-mno-incremental-linker-compatible` switch translates to Brepro
linker flag and must be passed on to the underlying linker to match the
behavior of the Windows triples that produce PE COFF.
Commit: e2e5db840109e9a5d5bb190fcae350161a6e5481
https://github.com/llvm/llvm-project/commit/e2e5db840109e9a5d5bb190fcae350161a6e5481
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Speculative fix for a non-determinism issue between different compilers. (#190219)
The evaluation order of function arguments is unspecified by the C++
standard. We had two getNode calls as function arguments which causes
the nodes to be created in a different order depending on the compiler
used. This patch moves them to their own variables to ensure they are
called in the same order on all compilers.
Possible fix for #190148.
Commit: 0abef30c80f06a965ad69771cd69907d07a9405d
https://github.com/llvm/llvm-project/commit/0abef30c80f06a965ad69771cd69907d07a9405d
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Fix warning introduced by #189740 (#190226)
The following warning is issued for llvm/lib/Analysis/DependenceAnalysis.cpp:2004
warning: suggest parentheses around ‘&&’ within ‘||’
Commit: 2ec19b86b5379a85133da25562ee560135e30de1
https://github.com/llvm/llvm-project/commit/2ec19b86b5379a85133da25562ee560135e30de1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/Attributor/nofpclass-fmul.ll
Log Message:
-----------
ValueTracking: x - floor(x) cannot introduce overflow (#189003)
This returns a value with an absolute value less than 1 so it
should be possible to propagate no-infs.
Commit: 43a8b7de88a069babecf46894c7495dbe8294dca
https://github.com/llvm/llvm-project/commit/43a8b7de88a069babecf46894c7495dbe8294dca
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Intrinsics.cpp
Log Message:
-----------
[NFC][LLVM] Rename several `ArgsTys` arguments to `OverloadTys`. (#190210)
Rename several arguments to intrinsic related functions from `ArgsTys`
to `OverloadTys` to better reflect their meaning. The only variables
left with name `ArgTys` now actually mean function argument types.
Also reamove an incorrect comment in Intrinsics.td. Dependent types do
allow forward references starting with
https://github.com/llvm/llvm-project/commit/7957fc6547e1b8af8e6586e2c25446b724eabb75
Commit: a68ae7b0cc0922b79114aabe8cf1ec8dc68524d7
https://github.com/llvm/llvm-project/commit/a68ae7b0cc0922b79114aabe8cf1ec8dc68524d7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Basic/Diagnostic.h
M llvm/include/llvm/IR/DiagnosticInfo.h
M llvm/lib/IR/DiagnosticInfo.cpp
Log Message:
-----------
DiagnosticInfo: Use Twine for resource name (#190228)
Allow more flexibility in phrasing of the overallocated
resource.
Commit: 1474e3e4f46550f66ed7ab4c5b2810ffadb630f1
https://github.com/llvm/llvm-project/commit/1474e3e4f46550f66ed7ab4c5b2810ffadb630f1
Author: xys-syx <xuyuansui at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/test/Target/LLVMIR/Import/nvvmir.ll
Log Message:
-----------
[MLIR][NVVM] Derive NVVM_SyncWarpOp from NVVM_IntrOp for import support (#188415)
Change `NVVM_SyncWarpOp` base class from `NVVM_Op` to
`NVVM_IntrOp<"bar.warp.sync">`, which auto-generates `llvmEnumName =
nvvm_bar_warp_sync` and registers it with
`-gen-intr-from-llvmir-conversions` and
`-gen-convertible-llvmir-intrinsics`. This enables LLVM IR to MLIR
import. The hand-written `llvmBuilder` is removed as the default
`LLVM_IntrOpBase` builder is equivalent.
Commit: b2d3a6574c9f9c784d71f1a36f8ab6ec44b0e18c
https://github.com/llvm/llvm-project/commit/b2d3a6574c9f9c784d71f1a36f8ab6ec44b0e18c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M flang-rt/lib/runtime/io-api-server.cpp
M libc/shared/rpc.h
M libc/src/__support/RPC/rpc_server.h
M offload/plugins-nextgen/common/src/RPC.cpp
Log Message:
-----------
[libc] Rename rpc::Status to rpc::RPCStatus to reduce conflicts (#190239)
Summary:
`Status` is unfortunately heavily overloaded in practice. Things like
X11 define it as a macro. Best to just remove that possibility entirely.
Commit: 148cb22dd75f25b87e4d8621f83e087dcdf98e78
https://github.com/llvm/llvm-project/commit/148cb22dd75f25b87e4d8621f83e087dcdf98e78
Author: Karthik Senthil <ksenthilkuma at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/test/CodeGen/NVPTX/asm-printer-ptx-module-directives.ll
Log Message:
-----------
[NVPTX] Fix missing arch version for ptxas in LIT test. (#190231)
Recently added LIT test in #188539 missed -arch option for ptxas causing
post commit build failure. This PR addresses that failure.
Commit: 75a354ba5549d2f830e71c5977c07b6d3178bf39
https://github.com/llvm/llvm-project/commit/75a354ba5549d2f830e71c5977c07b6d3178bf39
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/fpcast.ll
Log Message:
-----------
[InstCombine] Use ComputeNumSignBits in isKnownExactCastIntToFP (#190235)
For signed int-to-FP casts, ComputeNumSignBits can prove exactness where
computeKnownBits cannot -- e.g. through ashr(shl x, a), b where sign propagation is
tracked precisely but individual known bits are all unknown.
Commit: 45ac2db4e5a54d5274647a87f8487e05114a011b
https://github.com/llvm/llvm-project/commit/45ac2db4e5a54d5274647a87f8487e05114a011b
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Sema/Initialization.h
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaInit.cpp
Log Message:
-----------
[clang][NFC] Clean up InitializedEntity booleans. (#185335)
As discussed in #182203, use enums instead.
I tried to name/use them appropriately, but I'm not sure sure I'm really
happy with the results; suggestions welcome.
Commit: eed1f2749d0defc815344531e9e234e620323eae
https://github.com/llvm/llvm-project/commit/eed1f2749d0defc815344531e9e234e620323eae
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_atan2.cl
M libclc/clc/lib/generic/math/clc_atan2.inc
Log Message:
-----------
libclc: Use special division for atan2 for DAZ (#190248)
The AMDGPU DAZ fdiv works fine in this case, so there's
maybe something better we could do here.
Commit: 2f9ac440618bb13e05728fbe6391861f5695930e
https://github.com/llvm/llvm-project/commit/2f9ac440618bb13e05728fbe6391861f5695930e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
Log Message:
-----------
clang: Reorder linker aux-triple handling (#189462)
Move the IsCuda check out from the IsCuda || isHIP block. Keep
this from splitting the aux-triple handling for future convenience.
Commit: 3fc4d4481650f08a028eb42b3022052e98b88e70
https://github.com/llvm/llvm-project/commit/3fc4d4481650f08a028eb42b3022052e98b88e70
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3cx.txt
Log Message:
-----------
[AMDGPU] Update gfx1250_dasm_vop3cx.txt test for true16. NFC (#190240)
Commit: dbde0ba1509fc85485d4b81db3bcd1672b6b84bd
https://github.com/llvm/llvm-project/commit/dbde0ba1509fc85485d4b81db3bcd1672b6b84bd
Author: Sirish Pande <sirpande at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
Log Message:
-----------
[AMDGPU] Rename 1_5xVGPRs to 1536VGPRs to be more contextual. NFC (#190245)
Renaming feature from 1_5xVGPRs to 1536VGPRs to to be more contextual.
Commit: 7d2f2a3f4db0b8b1aa4ff73321dc9b69effa9f92
https://github.com/llvm/llvm-project/commit/7d2f2a3f4db0b8b1aa4ff73321dc9b69effa9f92
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/test/CIR/CodeGen/array-dtor.cpp
M clang/test/CIR/CodeGen/delete-array.cpp
M clang/test/CIR/CodeGen/destructors.cpp
M clang/test/CIR/CodeGen/global-array-dtor.cpp
M clang/test/CIR/CodeGen/global-init.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-array-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
Log Message:
-----------
[CIR] Fix off-by-one dtor loop bug (#190242)
We had an off-by-one error in the CIR generation for array destructor
loops, causing us to miss destructing one element of the array. This
change fixes the problem.
Commit: a413a40150275f61b99c52f66b063e2a66eb6c8b
https://github.com/llvm/llvm-project/commit/a413a40150275f61b99c52f66b063e2a66eb6c8b
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove another ad-hoc exclusion for system headers (#190094)
This is another ad-hoc approach made obsolete by #151035.
Commit: f2dff15995b38dc4649a258ead3865c0b79a1abe
https://github.com/llvm/llvm-project/commit/f2dff15995b38dc4649a258ead3865c0b79a1abe
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/test/CodeGen/complex.c
Log Message:
-----------
[clang] Fixed a crash when explicitly casting between atomic complex types (#172210)
Fixed a crash when explicitly casting between atomic complex types
resolve: #172208
Commit: d34e84700a7db98b3372de5139e82de53a934ec8
https://github.com/llvm/llvm-project/commit/d34e84700a7db98b3372de5139e82de53a934ec8
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
Log Message:
-----------
clang: Use MakeArgStringRef more often (#189463)
Avoid an intermediate copy by using MakeArgStringRef. Also
use better use of Twine with MakeArgString.
Commit: 5669dfc68b5df3f3c6db6428d48c898358707982
https://github.com/llvm/llvm-project/commit/5669dfc68b5df3f3c6db6428d48c898358707982
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Propagate loans through pointer arithmetic (#189546)
This PR adds loan propagation for pointer arithmetic.
It also updates the tests to match the new behavior.
Fixes #180933
Commit: c0cfe546a1a55b361e86add5b481d17ee624202a
https://github.com/llvm/llvm-project/commit/c0cfe546a1a55b361e86add5b481d17ee624202a
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang/Serialization/ModuleCache.h
Log Message:
-----------
[clang] Include header providing `off_t` (#190259)
This should fix the modules build.
Commit: 71122d8694cad3ae4450368be3e89bb62aa78173
https://github.com/llvm/llvm-project/commit/71122d8694cad3ae4450368be3e89bb62aa78173
Author: Roland McGrath <mcgrathr at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M libc/src/__support/CPP/new.h
M libc/src/__support/CPP/string_view.h
M libc/src/__support/common.h
M libc/src/__support/libc_assert.h
M libc/src/__support/macros/CMakeLists.txt
A libc/src/__support/macros/is_defined.h
A libc/src/__support/macros/macro-utils.h
M libc/src/string/memory_utils/CMakeLists.txt
M libc/src/string/memory_utils/op_aarch64.h
M libc/src/string/memory_utils/op_x86.h
M libc/src/string/memory_utils/x86_64/inline_memcpy.h
M libc/src/string/memory_utils/x86_64/inline_memset.h
Log Message:
-----------
[libc] Move LLVM_LIBC_IS_DEFINED macro to its own header (#190081)
This moves the LLVM_LIBC_IS_DEFINED macro to its own header is
__support/macros. Its implementation leverages cpp::string_view
instead of rolling its own strcmp; this necessitated fixing
several missing constexpr in the string_view implementation.
The new __support/macros/macro-utils.h is also broken out to hold
the stringification macro and can be used in future for token
pasting shenanigans and other such generic macro machinery.
Commit: bf50e847fb88292f8a7123683c6955da1bbd8291
https://github.com/llvm/llvm-project/commit/bf50e847fb88292f8a7123683c6955da1bbd8291
Author: David Green <david.green at arm.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
A llvm/test/CodeGen/AArch64/st1-lane.ll
Log Message:
-----------
[AArch64] Add tests for st1 from subvector extracts. NFC (#190265)
Commit: b1ef47f45966f06f263dc96d83c869393952cbf8
https://github.com/llvm/llvm-project/commit/b1ef47f45966f06f263dc96d83c869393952cbf8
Author: Michael Spencer <bigcheesegs at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/include/clang-c/BuildSystem.h
M clang/lib/Serialization/ModuleCache.cpp
M clang/tools/libclang/BuildSystem.cpp
M clang/tools/libclang/libclang.map
M clang/unittests/libclang/LibclangTest.cpp
Log Message:
-----------
[libclang] Add clang_ModuleCache_prune (#190067)
This allows a build system to direct Clang to prune a module cache
directory using the same method Clang does internally.
This also changes `clang::maybePruneImpl` to clean up files directly in
the directory, not just subdirectories.
Commit: 72cc5a670e34137e429c832115923e0f20acbf94
https://github.com/llvm/llvm-project/commit/72cc5a670e34137e429c832115923e0f20acbf94
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/Headers/CMakeLists.txt
Log Message:
-----------
[HLSL] Add TableGen-generated header files to the HLSL distribution (#190222)
This PR adds the TableGen-generated headers from
https://github.com/llvm/llvm-project/pull/187610 to the HLSL
distribution.
Currently the HLSL distribution is incomplete due to missing these
generated headers, preventing successful compilation:
```
Command Output (stderr):
--
In file included from <built-in>:1:
In file included from D:\a\_work\1\ClangHLSL\Binaries\lib\clang\23\include\hlsl.h:24:
D:\a\_work\1\ClangHLSL\Binaries\lib\clang\23\include\hlsl/hlsl_alias_intrinsics.h:42:10: fatal error: 'hlsl_alias_intrinsics_gen.inc' file not found
42 | #include "hlsl_alias_intrinsics_gen.inc"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
This PR fixes the error by including `hlsl_alias_intrinsics_gen.inc` and
`hlsl_inline_intrinsics_gen.inc` in the HLSL distribution.
Commit: 842464e7a9aa9e958bd2c8192f69fc9cad5d724c
https://github.com/llvm/llvm-project/commit/842464e7a9aa9e958bd2c8192f69fc9cad5d724c
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 71122d8 (#190264)
This fixes 71122d8694cad3ae4450368be3e89bb62aa78173.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 6c4149dba70f52673dd05345e02daf4aaa523f72
https://github.com/llvm/llvm-project/commit/6c4149dba70f52673dd05345e02daf4aaa523f72
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
A clang/test/CIR/CodeGen/try-catch-all-with-cleanup.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
M clang/test/CIR/Transforms/flatten-try-op.cir
Log Message:
-----------
[CIR] Fix handling of catch-all with cleanups (#190233)
We had a bug where exceptions caught with catch-all were not properly
handling a thrown exception if the catch-all handler enclosed a cleanup
handler. The structured CIR was generated correctly, but when we
flattened the CFG and introduced cir.eh.initiate operations, the
cir.eh.initiate for the cleanup's EH path was incorrectly marked as
cleanup-only, even though it chained to the dispatch for the catch-all
handler. This resulted in the landing pad generated for the cleanup not
being marked as having a catch-all handler, so the exception was not
caught.
This change fixes the problem in the FlattenCFG pass.
Assisted-by: Cursor / claude-4.6-opus-high
Commit: 8fa4b3d601d80df4c8c01db4d62ed1f2c01f754e
https://github.com/llvm/llvm-project/commit/8fa4b3d601d80df4c8c01db4d62ed1f2c01f754e
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/test/API/commands/disassemble/basic/TestFrameDisassemble.py
M lldb/test/API/commands/frame/language/TestGuessLanguage.py
M lldb/test/API/commands/frame/var/TestFrameVar.py
M lldb/test/API/functionalities/ptr_refs/TestPtrRefs.py
M lldb/test/API/functionalities/step-avoids-no-debug/TestStepNoDebug.py
M lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
M lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
M lldb/test/API/lang/c/anonymous/TestAnonymous.py
M lldb/test/API/lang/c/step-target/TestStepTarget.py
M lldb/test/API/lang/cpp/global_operators/TestCppGlobalOperators.py
Log Message:
-----------
[lldb] Simplify some tests to run_to_source_breakpoint (NFC) (#190082)
Many tests have ad hoc forms of the launch & break steps done by
`lldbutil.run_to_source_breakpoint`. This changes some of those tests to
use `run_to_source_breakpoint` instead.
Assisted-by: claude
Commit: 9d18702cd88aa29ca1bb96a3b14e25a816f19c39
https://github.com/llvm/llvm-project/commit/9d18702cd88aa29ca1bb96a3b14e25a816f19c39
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Port b1ef47f45966f06f263dc96d83c869393952cbf8 (#190278)
Commit: a76750e6de6aba2223097dc505578556ec245d50
https://github.com/llvm/llvm-project/commit/a76750e6de6aba2223097dc505578556ec245d50
Author: hjagasiaAMD <harsha.jagasia at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/test/CodeGenObjC/exceptions.m
M clang/test/Headers/__clang_hip_math.hip
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
R llvm/test/Transforms/SimplifyCFG/jump-threading-live-on-exit.ll
R llvm/test/Transforms/SimplifyCFG/jump-threading-max-jump-threading-live-blocks.ll
Log Message:
-----------
Revert "[SimplifyCFG] Extend jump-threading to allow live local defs … (#190269)
…(#135079)"
This reverts commit a757f23404c594f4a48b4ddb6625f88b349d11d5. Commit
causes reduce.cu file in hipcub/warp go from 2 minutes of compilation to
taking several hours.
Commit: 2600533a66748717f84ffc71945dcedf8baefe0a
https://github.com/llvm/llvm-project/commit/2600533a66748717f84ffc71945dcedf8baefe0a
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/Serialize.h
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-doc/benchmarks/ClangDocBenchmark.cpp
M clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp
Log Message:
-----------
[clang-doc] Switch to string internment (#190044)
This is the first step in migrating all the Info types to be POD. We
introduced a shared string saver that can be used safely across threads,
and updated the internal represntation of various data types to use
these over owned strings, like SmallString or std::string.
This also required changes to YAMLGenerator to keep the single quoted
string formatting and to update the YAML traits.
This change gives an almost 50% reduction in peak memory when building
documentation for clang, at about a 10% performance loss. Future patches
can mitigate the performance penalties, and further reduce memory use.
| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 920.5s | 1011.0s | +9.8% | +9.8% |
| Memory | 86.0G | 86.0G | 44.9G | -47.8% | -47.8% |
| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 67.9us | 70.0us | +3.0% | +3.0% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 70.5ms | 21.3ms | -69.8% |
-69.8% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 23.2ms | 4.5ms | -80.7% |
-80.7% |
| BM_BitcodeReader_Scale/512 | 509.4us | 509.4us | 538.8us | +5.8% |
+5.8% |
| BM_BitcodeReader_Scale/64 | 114.8us | 114.8us | 118.0us | +2.8% |
+2.8% |
| BM_Index_Insertion/10 | 2.3us | 2.3us | 4.0us | +71.6% | +71.6% |
| BM_Index_Insertion/10000 | 3.1ms | 3.1ms | 5.0ms | +60.6% | +60.6% |
| BM_Index_Insertion/4096 | 1.3ms | 1.3ms | 2.0ms | +57.1% | +57.1% |
| BM_Index_Insertion/512 | 153.6us | 153.6us | 245.0us | +59.6% | +59.6%
|
| BM_Index_Insertion/64 | 18.1us | 18.1us | 28.9us | +60.0% | +60.0% |
| BM_JSONGenerator_Scale/10 | 36.8us | 36.8us | 36.4us | -1.3% | -1.3% |
| BM_Mapper_Scale/10000 | 104.3ms | 104.3ms | 105.4ms | +1.0% | +1.0% |
| BM_Mapper_Scale/512 | 7.6ms | 7.6ms | 7.7ms | +1.9% | +1.9% |
| BM_MergeInfos_Scale/10000 | 12.2ms | 12.2ms | 1.4ms | -88.2% | -88.2%
|
| BM_MergeInfos_Scale/2 | 1.9us | 1.9us | 1.7us | -10.3% | -10.3% |
| BM_MergeInfos_Scale/4096 | 2.8ms | 2.8ms | 495.6us | -82.2% | -82.2% |
| BM_MergeInfos_Scale/512 | 68.9us | 68.9us | 34.6us | -49.7% | -49.7% |
| BM_MergeInfos_Scale/64 | 10.3us | 10.3us | 6.0us | -41.6% | -41.6% |
| BM_MergeInfos_Scale/8 | 2.8us | 2.8us | 2.1us | -24.4% | -24.4% |
| BM_SerializeFunctionInfo | 25.5us | 25.5us | 26.8us | +4.9% | +4.9% |
note: I used an LLM to help generate the test code adjustments and the
YAML traits.
Commit: 1f75f318aee5aab080af2892c837fbabc850b129
https://github.com/llvm/llvm-project/commit/1f75f318aee5aab080af2892c837fbabc850b129
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M cmake/Modules/GetToolchainDirs.cmake
Log Message:
-----------
[Runtimes] Gracefully handle invalid LLVM_TARGET_TRIPLE (#190284)
In some situations such as reported at
https://github.com/llvm/llvm-project/pull/177953#issuecomment-4179014239,
LLVM_(DEFAULT_)TARGET_TRIPLE is not set. It is used to derive the output
directory in #177953. Only flang-rt currently uses
RUNTIMES_(INSTALL|OUTPUT)_RESOURCE_LIB_PATH, we should not fail building
other despite a missing LLVM_TARGET_TRIPLE.
Compiler-rt uses COMPILER_RT_DEFAULT_TARGET_TRIPLE instead which it
derives itself. Most other LLVM runtimes libraries just skip the target
portion of the library path (explicitly so since #93354). Do the same
for RUNTIMES_(INSTALL|OUTPUT)_RESOURCE_LIB_PATH which we hope eventually
can replace the other mechanisms.
Commit: 124b0a8fbb540c85e3a47d235a8ce10c48d1c7ca
https://github.com/llvm/llvm-project/commit/124b0a8fbb540c85e3a47d235a8ce10c48d1c7ca
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
Log Message:
-----------
[lldb][kernel debug] Add a missing call to scan local fs for kexts (#190281)
A kernel developer noticed that I missed a call to index the local
filesystem in one of our codepaths, and had a use case that depended on
that working.
rdar://173814556
Commit: 89f31f26c82354c6f478c0acfb493139510e3e16
https://github.com/llvm/llvm-project/commit/89f31f26c82354c6f478c0acfb493139510e3e16
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
A llvm/test/CodeGen/AArch64/sme-agnostic-za-without-sme.ll
Log Message:
-----------
[AArch64][SME] Preserve ZA in agnostic ZA functions without +sme (#190141)
`__arm_agnostic("sme_za_state")` does not require +sme, but we must
still preserve ZA in case the function is used with code that makes use
of ZA:
> The use of `__arm_agnostic("sme_za_state")` allows writing functions
> that are compatible with ZA state without having to share ZA state
> with the caller, as required by `__arm_preserves`. The use of this
> attribute does not imply that SME is available.
Commit: f20b40ef97961204130cf38c92aa1dd663094e71
https://github.com/llvm/llvm-project/commit/f20b40ef97961204130cf38c92aa1dd663094e71
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Options/BUILD.gn
Log Message:
-----------
gn build: Port f63d33da0a51 more
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190289
Commit: 935f21e1d5f4bdcb88362730b000895edeb49bd7
https://github.com/llvm/llvm-project/commit/935f21e1d5f4bdcb88362730b000895edeb49bd7
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn
Log Message:
-----------
gn build: Port d8e9e0af1cb6
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190290
Commit: 7084f18f27149b8b8be8d27230c81945281c71da
https://github.com/llvm/llvm-project/commit/7084f18f27149b8b8be8d27230c81945281c71da
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sat.pk.ll
Log Message:
-----------
[AMDGPU] Fix i16/i8 flat store in true16 with sramecc (#190238)
The pattern was guarded by the D16PreservesUnusedBits predicate
which is not needed for stores.
Commit: 72b00e60b867fdece17bb39a797fcd956a812845
https://github.com/llvm/llvm-project/commit/72b00e60b867fdece17bb39a797fcd956a812845
Author: Tamir Duberstein <tamird at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/CMakeLists.txt
M clang/tools/libclang/CMakeLists.txt
M llvm/CMakeLists.txt
M llvm/cmake/modules/AddLLVM.cmake
M llvm/cmake/modules/LLVMConfig.cmake.in
M llvm/docs/CMake.rst
M llvm/tools/lto/CMakeLists.txt
Log Message:
-----------
[CMake] Version Darwin dylib identities (#189004)
Commit: 8b903fe38b6b73afdc51588413847dfe28bcf8d7
https://github.com/llvm/llvm-project/commit/8b903fe38b6b73afdc51588413847dfe28bcf8d7
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M clang/test/DebugInfo/CXX/hotpatch.cpp
Log Message:
-----------
[clang][DebugInfo][test] Set -fuse-lld for test matching linker invocation. (#190291)
This test doesn't work as intended when an alternative default linker is
specified via `-DCLANG_DEFAULT_LINKER=ld`. If this test isn't intended
to support alternate default linker, lmk I can just change the
downstream usage I'm seeing, though I figure other folks may have
similar configurations. Repro:
```
cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS="clang" -DCLANG_DEFAULT_LINKER=ld -GNinja
ninja -C build
./build/bin/llvm-lit -v clang/test/DebugInfo/CXX/hotpatch.cpp
...
possible intended match
# | 6: "/usr/bin/ld" "-out:hotpatch.exe" "-libpath:lib/amd64" "-libpath:atlmfc/lib/amd64" "-nologo" "-functionpadmin" "/tmp/lit-tmp-o7x0r1o_/hotpatch-4595de.obj"
```
afaict it passed before because `-mincremental-linker-compatible` was
being used until e97a42d5f9fe51de50aabd4d9bf6874a4955f9fa, which would
match on the compilation line.
Commit: bc11c85b6b16f1daabfc9e8b326c9568c3318cb9
https://github.com/llvm/llvm-project/commit/bc11c85b6b16f1daabfc9e8b326c9568c3318cb9
Author: Weibo He <NewSigma at 163.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/test/CodeGenCoroutines/coro-elide.cpp
Log Message:
-----------
[clang][CodeGen] Emit coro.dead intrinsic to improve coroutine allocation elision (#190295)
Part 4/4: Implement HALO for coroutines that flow off final suspend.
Parent PR: #185336
Commit: 2f7bd4fa97232dfab7f2347c745005eb9e2ffd2d
https://github.com/llvm/llvm-project/commit/2f7bd4fa97232dfab7f2347c745005eb9e2ffd2d
Author: Fangrui Song <i at maskray.me>
Date: 2026-04-02 (Thu, 02 Apr 2026)
Changed paths:
M lld/ELF/Arch/PPC64.cpp
M lld/ELF/Relocations.cpp
M lld/ELF/SyntheticSections.cpp
M lld/test/ELF/combreloc.s
Log Message:
-----------
[ELF] Enable parallel relocation scanning for -z nocombreloc and PPC64 (#190309)
The `bool serial` condition in scanRelocations disabled parallelism for
three cases: -z nocombreloc, MIPS, and PPC64. Resolve two cases:
- nocombreloc: .rela.dyn is now always created with combreloc=true so
non-relative relocations are sorted deterministically. Since
#187964 already separates relative relocations unconditionally,
the only remaining effect of -z nocombreloc is suppressing
DT_RELACOUNT (gated on ctx.arg.zCombreloc in DynamicSection).
- PPC64: After #181496 moved scanning into scanSectionImpl, the
sole thread-unsafe access is ctx.ppc64noTocRelax (DenseSet::insert).
Protect it with ctx.relocMutex, which is already used for rare
operations during parallel scanning.
MIPS retains serial scanning due to `MipsGotSection` mutations.
Commit: 1972cf64fd18227bd8c3cc94ad96164cae9a163a
https://github.com/llvm/llvm-project/commit/1972cf64fd18227bd8c3cc94ad96164cae9a163a
Author: Amit Tiwari <amtiwari at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/bindings/python/clang/cindex.py
M clang/include/clang-c/Index.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/AST/ast-dump-openmp-split.c
A clang/test/Index/openmp-split.c
A clang/test/OpenMP/split_analyze.c
A clang/test/OpenMP/split_ast_print.cpp
A clang/test/OpenMP/split_codegen.cpp
A clang/test/OpenMP/split_composition.cpp
A clang/test/OpenMP/split_compound_associated.cpp
A clang/test/OpenMP/split_counts_constexpr.cpp
A clang/test/OpenMP/split_counts_ice.c
A clang/test/OpenMP/split_counts_verify.c
A clang/test/OpenMP/split_diag_errors.c
A clang/test/OpenMP/split_distribute_inner_split.cpp
A clang/test/OpenMP/split_driver_smoke.c
A clang/test/OpenMP/split_iv_types.c
A clang/test/OpenMP/split_loop_styles.cpp
A clang/test/OpenMP/split_member_ctor.cpp
A clang/test/OpenMP/split_messages.cpp
A clang/test/OpenMP/split_nested_outer_only.c
A clang/test/OpenMP/split_offload_codegen.cpp
A clang/test/OpenMP/split_omp_fill.c
A clang/test/OpenMP/split_openmp_version.cpp
A clang/test/OpenMP/split_opts_simd_debug.cpp
A clang/test/OpenMP/split_parallel_split.cpp
A clang/test/OpenMP/split_pch_codegen.cpp
A clang/test/OpenMP/split_range_for_diag.cpp
A clang/test/OpenMP/split_serialize_module.cpp
A clang/test/OpenMP/split_teams_nesting.cpp
A clang/test/OpenMP/split_template_nttp.cpp
A clang/test/OpenMP/split_templates.cpp
A clang/test/OpenMP/split_trip_volatile.c
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTest.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
A openmp/runtime/test/transform/split/fill_first.c
A openmp/runtime/test/transform/split/foreach.cpp
A openmp/runtime/test/transform/split/intfor.c
A openmp/runtime/test/transform/split/intfor_negstart.c
A openmp/runtime/test/transform/split/iterfor.cpp
A openmp/runtime/test/transform/split/leq_bound.c
A openmp/runtime/test/transform/split/negative_incr.c
A openmp/runtime/test/transform/split/nonconstant_count.c
A openmp/runtime/test/transform/split/nonconstant_incr.c
A openmp/runtime/test/transform/split/parallel-split-intfor.c
A openmp/runtime/test/transform/split/single_fill.c
A openmp/runtime/test/transform/split/three_segments.c
A openmp/runtime/test/transform/split/trip_one.c
A openmp/runtime/test/transform/split/unsigned_iv.c
A openmp/runtime/test/transform/split/zero_first_segment.c
Log Message:
-----------
[Clang][OpenMP] Implement Loop splitting `#pragma omp split` directive (#183261)
OpenMP 6.0 Loop-splitting directive `#pragma omp split` construct with `counts`
clause
Commit: 4b2623d03c2e5c155610afea5d1fb37434ece5c2
https://github.com/llvm/llvm-project/commit/4b2623d03c2e5c155610afea5d1fb37434ece5c2
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Introduce TransientArena for short lived allocations (#190045)
With strings interned, we can move the StringRefs in various Info
structs into a new short lived arena. This change migrates the remaining
SmallVectors in CommentInfo to use an ArrayRef backed by the new
transient arena.
This results in further minor reductions in overall memory usage, but no
significant effect on runtime performance.
| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1011.0s | 1005.7s | +9.2% | -0.5% |
| Memory | 86.0G | 44.9G | 42.1G | -51.0% | -6.2% |
| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 70.0us | 68.6us | +1.0% | -2.0% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 21.3ms | 21.3ms | -69.8% |
-0.0% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 4.5ms | 4.6ms | -80.2% | +2.8%
|
| BM_BitcodeReader_Scale/512 | 509.4us | 538.8us | 546.3us | +7.3% |
+1.4% |
| BM_BitcodeReader_Scale/64 | 114.8us | 118.0us | 117.9us | +2.7% |
-0.1% |
| BM_EmitInfoFunction | 1.6us | 1.6us | 1.5us | -5.5% | -6.2% |
| BM_Index_Insertion/10 | 2.3us | 4.0us | 3.9us | +70.3% | -0.7% |
| BM_Index_Insertion/10000 | 3.1ms | 5.0ms | 5.3ms | +68.6% | +5.0% |
| BM_Index_Insertion/4096 | 1.3ms | 2.0ms | 2.1ms | +64.2% | +4.5% |
| BM_Index_Insertion/512 | 153.6us | 245.0us | 253.0us | +64.8% | +3.2%
|
| BM_Index_Insertion/64 | 18.1us | 28.9us | 30.1us | +67.0% | +4.4% |
| BM_JSONGenerator_Scale/10 | 36.8us | 36.4us | 37.0us | +0.4% | +1.7% |
| BM_JSONGenerator_Scale/10000 | 89.6ms | 90.4ms | 91.7ms | +2.3% |
+1.5% |
| BM_JSONGenerator_Scale/4096 | 33.7ms | 34.0ms | 35.1ms | +4.0% | +3.0%
|
| BM_JSONGenerator_Scale/64 | 222.4us | 220.5us | 223.3us | +0.4% |
+1.3% |
| BM_Mapper_Scale/10000 | 104.3ms | 105.4ms | 105.6ms | +1.3% | +0.3% |
| BM_Mapper_Scale/4096 | 44.3ms | 44.7ms | 44.8ms | +1.0% | +0.1% |
| BM_Mapper_Scale/512 | 7.6ms | 7.7ms | 7.6ms | +0.7% | -1.2% |
| BM_MergeInfos_Scale/10000 | 12.2ms | 1.4ms | 1.4ms | -88.2% | +0.1% |
| BM_MergeInfos_Scale/2 | 1.9us | 1.7us | 1.7us | -8.5% | +2.1% |
| BM_MergeInfos_Scale/4096 | 2.8ms | 495.6us | 487.3us | -82.5% | -1.7%
|
| BM_MergeInfos_Scale/512 | 68.9us | 34.6us | 38.7us | -43.9% | +11.6% |
| BM_MergeInfos_Scale/64 | 10.3us | 6.0us | 6.4us | -37.4% | +7.2% |
| BM_MergeInfos_Scale/8 | 2.8us | 2.1us | 2.2us | -20.6% | +5.1% |
| BM_SerializeFunctionInfo | 25.5us | 26.8us | 25.9us | +1.4% | -3.3% |
Commit: a52a504e69332d9d05cbff21bdc4d2a42939226d
https://github.com/llvm/llvm-project/commit/a52a504e69332d9d05cbff21bdc4d2a42939226d
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/Representation.h
Log Message:
-----------
[clang-doc] Prepare Info types for Arena allocation (#190046)
To allocate Info structures directly in an Arena, they cannot have
members with nontrivial destructors, or we will leak memory. Before we
migrate them, we can replace growable vector types with intrusive lists.
This introduces some slight overhead as these types now have new pointer
members for use in ilists in later patches.
| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1005.7s | 1010.5s | +9.8% | +0.5% |
| Memory | 86.0G | 42.1G | 42.9G | -50.2% | +1.8% |
| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 68.6us | 69.2us | +1.9% | +0.9% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 21.3ms | 21.9ms | -68.9% |
+2.8% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 4.6ms | 4.6ms | -80.0% | +0.8%
|
| BM_BitcodeReader_Scale/512 | 509.4us | 546.3us | 541.8us | +6.4% |
-0.8% |
| BM_BitcodeReader_Scale/64 | 114.8us | 117.9us | 117.6us | +2.5% |
-0.2% |
| BM_EmitInfoFunction | 1.6us | 1.5us | 1.6us | -1.9% | +3.9% |
| BM_Index_Insertion/10 | 2.3us | 3.9us | 4.0us | +75.3% | +3.0% |
| BM_Index_Insertion/10000 | 3.1ms | 5.3ms | 5.4ms | +72.7% | +2.4% |
| BM_Index_Insertion/4096 | 1.3ms | 2.1ms | 2.1ms | +67.1% | +1.8% |
| BM_Index_Insertion/512 | 153.6us | 253.0us | 259.0us | +68.6% | +2.4%
|
| BM_Index_Insertion/64 | 18.1us | 30.1us | 30.3us | +67.8% | +0.5% |
| BM_JSONGenerator_Scale/10 | 36.8us | 37.0us | 38.2us | +3.6% | +3.2% |
| BM_JSONGenerator_Scale/10000 | 89.6ms | 91.7ms | 90.7ms | +1.2% |
-1.1% |
| BM_JSONGenerator_Scale/4096 | 33.7ms | 35.1ms | 34.7ms | +2.9% | -1.1%
|
| BM_JSONGenerator_Scale/512 | 1.9ms | 1.9ms | 2.0ms | +3.9% | +4.0% |
| BM_JSONGenerator_Scale/64 | 222.4us | 223.3us | 230.1us | +3.5% |
+3.1% |
| BM_Mapper_Scale/10000 | 104.3ms | 105.6ms | 100.9ms | -3.2% | -4.4% |
| BM_Mapper_Scale/4096 | 44.3ms | 44.8ms | 42.8ms | -3.5% | -4.4% |
| BM_Mapper_Scale/512 | 7.6ms | 7.6ms | 7.4ms | -2.6% | -3.2% |
| BM_Mapper_Scale/64 | 3.1ms | 3.0ms | 3.0ms | -2.0% | -1.3% |
| BM_MergeInfos_Scale/10000 | 12.2ms | 1.4ms | 1.6ms | -86.7% | +12.5% |
| BM_MergeInfos_Scale/2 | 1.9us | 1.7us | 1.7us | -10.2% | -1.9% |
| BM_MergeInfos_Scale/4096 | 2.8ms | 487.3us | 503.4us | -81.9% | +3.3%
|
| BM_MergeInfos_Scale/512 | 68.9us | 38.7us | 38.1us | -44.6% | -1.4% |
| BM_MergeInfos_Scale/64 | 10.3us | 6.4us | 6.4us | -37.6% | -0.4% |
| BM_MergeInfos_Scale/8 | 2.8us | 2.2us | 2.2us | -21.7% | -1.5% |
| BM_SerializeFunctionInfo | 25.5us | 25.9us | 26.0us | +1.9% | +0.4% |
Commit: e09d1e3ff1616b4f25fbca8f64d65f046883b1fd
https://github.com/llvm/llvm-project/commit/e09d1e3ff1616b4f25fbca8f64d65f046883b1fd
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Use not_equal_to to improve code (NFC) (#190262)
Commit: df48719df3d0071a37a9d024121776c14fe1e90f
https://github.com/llvm/llvm-project/commit/df48719df3d0071a37a9d024121776c14fe1e90f
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
A llvm/test/CodeGen/AMDGPU/lower-kernel-arguments-noalias-call-no-ptr-args.ll
Log Message:
-----------
[AMDGPU] Add !noalias metadata to mem-accessing calls w/o pointer args (#188949)
addAliasScopeMetadata in AMDGPULowerKernelArguments skips instructions
with empty PtrArgs, including memory-accessing calls that have no
pointer arguments (e.g. builtins like threadIdx()). Because these calls
never receive !noalias metadata, ScopedNoAliasAA cannot prove they don't
alias noalias kernel arguments. MemorySSA then conservatively reports
them as clobbers, which prevents AMDGPUAnnotateUniformValues from
marking loads as noclobber, blocking scalarization (s_load) and forcing
expensive vector loads (global_load) instead.
Fix by adding all noalias kernel argument scopes to !noalias metadata
for memory-accessing instructions with no pointer arguments. Since such
instructions cannot access memory through any kernel pointer argument,
all noalias scopes are safe to apply.
This fixes a performance regression in rocFFT introduced by bd9668df0f00
("[AMDGPU] Propagate alias information in AMDGPULowerKernelArguments").
Assisted-by: Claude Opus
Commit: 8db1f6492a9139ae5f521a508a9496ea36627bf3
https://github.com/llvm/llvm-project/commit/8db1f6492a9139ae5f521a508a9496ea36627bf3
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/include/mlir/Reducer/Passes.td
M mlir/include/mlir/Reducer/Tester.h
M mlir/lib/Reducer/OptReductionPass.cpp
M mlir/lib/Reducer/Tester.cpp
R mlir/test/mlir-reduce/dce-test.mlir
M mlir/test/mlir-reduce/invalid.mlir
A mlir/test/mlir-reduce/opt-reduction/cse-test.mlir
A mlir/test/mlir-reduce/opt-reduction/dce-test.mlir
Log Message:
-----------
[mlir][reducer] Remove the restriction that OptReductionPass must be a ModuleOp (#189038)
This PR aims to make the pass more generic by removing the ModuleOp
restriction. This PR reimplements the logic using a standalone
PassManager. Additionally, the isInteresting method has been updated to
accept Operation* for better flexibility. Finally, a dedicated test
directory has been added to improve the organization of OptReductionPass
tests.
Commit: f91124a55b365284ad0e8fd8169bfa3b041bbbd8
https://github.com/llvm/llvm-project/commit/f91124a55b365284ad0e8fd8169bfa3b041bbbd8
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Core/ModuleList.h
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Core/ModuleList.cpp
M lldb/source/Target/Target.cpp
Log Message:
-----------
[lldb][Module] Only call LoadScriptingResourceInTarget via ModuleList (#190136)
This patch is motivated by
https://github.com/llvm/llvm-project/pull/189943, where we would like to
print the "these module scripts weren't loaded" warning for *all*
modules batched together. I.e., we want to print the warning *after* all
the script loading attempts, not from within each attempt.
To do so we want to hoist the `ReportWarning` calls in
`Module::LoadScriptingResourceInTarget` out into the callsites. But if
we do that, the callers have to remember to print the warnings. To avoid
this, we redirect all callsites to use
`ModuleList::LoadScriptingResourceInTarget`, which will be responsible
for printing the warnings.
To avoid future accidental uses of
`Module::LoadScriptingResourceInTarget` I moved the API into
`ModuleList` and made it `private`.
Commit: e46c5a831ec1f0243f164ade69ae84b3a0dfa072
https://github.com/llvm/llvm-project/commit/e46c5a831ec1f0243f164ade69ae84b3a0dfa072
Author: David Green <david.green at arm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/arm64-stur.ll
Log Message:
-----------
[AArch64] Regenerate arm64-stur.ll. NFC (#190317)
Commit: c80443cd37b2e2788cba67ffa180a6331e5f0791
https://github.com/llvm/llvm-project/commit/c80443cd37b2e2788cba67ffa180a6331e5f0791
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/Analysis/switch-basics.c
Log Message:
-----------
[NFC][analyzer] Eliminate SwitchNodeBuilder (#188096)
This commit removes the class `SwitchNodeBuilder` because it just
obscured the logic of switch handling by hiding some parts of it in
another source file.
Commit: a7bf24919f879fed809b16bff33623d821b11226
https://github.com/llvm/llvm-project/commit/a7bf24919f879fed809b16bff33623d821b11226
Author: Zhewen Yu <zhewenyu at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
M mlir/test/Dialect/Affine/int-range-interface.mlir
Log Message:
-----------
[mlir][IntRangeAnalysis] Fix assertion in inferAffineExpr for mod with range crossing modulus boundary (#188842)
The "small range with constant divisor" optimization in
`inferAffineExpr` for `AffineExprKind::Mod` assumed that if the dividend
range span (`lhsMax - lhsMin`) is less than the divisor, then the mod
results form a contiguous range. This is not always true, as the range
can straddle a modulus boundary.
For example, `[14, 17] mod 8`:
- Span is 3 < 8, so the old condition passed
- But `14%8=6` and `17%8=1` (wraps at 16)
- `umin=6, umax=1` → assertion `umin.ule(umax)` fails
The fix adds a same-quotient check (`lhsMin/rhs == lhsMax/rhs`) to
ensure both endpoints fall within the same modular period. When they
don't, we fall back to the conservative `[0, divisor-1]` range.
Assisted-by: Cursor (Claude)
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
Commit: d725513e7d92a2f815eb19c3aee06b599b42e834
https://github.com/llvm/llvm-project/commit/d725513e7d92a2f815eb19c3aee06b599b42e834
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Analysis/Utils.cpp
M mlir/test/Dialect/SCF/foreach-thread-canonicalization.mlir
Log Message:
-----------
[MLIR][Affine] Fix null operands in simplifyConstrainedMinMaxOp (#189246)
`mlir::affine::simplifyConstrainedMinMaxOp` called
`canonicalizeMapAndOperands` with `newOperands` that could contain null
`Value()`s. These nulls came from
`unpackOptionalValues(constraints.getMaybeValues(), newOperands)` where
internal constraint variables added by `appendDimVar` (for `dimOp`,
`dimOpBound`, and `resultDimStart*`) have no associated SSA values.
Passing null Values to `canonicalizeMapAndOperands` risks undefined
behavior:
- `seenDims.find(null_value)` in the DenseMap causes all null operands
to collide at the same key, producing incorrect dim remapping.
- Any null operand that remains referenced in the result map would
propagate as a null Value into `AffineValueMap`, crashing callers that
try to use those operands to create ops.
Fix: Before calling `canonicalizeMapAndOperands`, filter null operands
from `newOperands` by replacing their dim/symbol positions in `newMap`
with constant 0 (safe because internal constraint dims should not appear
in the bound map expression) and compacting `newOperands` to contain
only non-null Values.
Fixes #127436
Assisted-by: Claude Code
Commit: 7c1d91c435a34ece250d47feadf4cef17fb97ad9
https://github.com/llvm/llvm-project/commit/7c1d91c435a34ece250d47feadf4cef17fb97ad9
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M bolt/runtime/instr.cpp
Log Message:
-----------
[BOLT] Move extern "C" out of unnamed namespace (#190282)
GCC 15 changes how it interprets extern "C" in unnamed namespaces and
gives the variable internal linkage.
Commit: ff86be21de109403175caf6d906be856210df494
https://github.com/llvm/llvm-project/commit/ff86be21de109403175caf6d906be856210df494
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/FlattenMemRefs.cpp
M mlir/test/Dialect/MemRef/flatten_memref.mlir
Log Message:
-----------
[MLIR][MemRef] Fix AllocOp/AllocaOp flattening domination violation (#188980)
The generic MemRefRewritePattern handles AllocOp/AllocaOp by calling
getFlattenMemrefAndOffset with the op's own result as the source memref.
This inserts ExtractStridedMetadataOp and ReinterpretCastOp that consume
op.result before the alloc op itself in the block. After
replaceOpWithNewOp, op.result is RAUW'd to the new ReinterpretCastOp
result, leaving those earlier ops with forward references — a domination
violation caught by MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Replace the AllocOp/AllocaOp cases in MemRefRewritePattern with a
dedicated AllocLikeFlattenPattern that never touches op.result until the
final replaceOpWithNewOp:
- sizes come from op.getMixedSizes() (operands, not the result)
- strides come from getStridesAndOffset on the MemRefType
- the flat allocation size is computed via
getLinearizedMemRefOffsetAndSize plus the static base offset so the
buffer covers [0, offset+extent)
- castAllocResult is simplified to take the pre-computed sizes and
strides rather than inserting an ExtractStridedMetadataOp on the
original op
- non-zero static base offsets are now correctly preserved in the
reinterpret_cast (the old code hardcoded offset=0, which was a verifier
error for layouts with offset \!= 0)
- dynamic offsets or strides bail out via notifyMatchFailure
Also remove the now-dead AllocOp/AllocaOp branches from replaceOp() and
the constexpr specialisation in getIndices().
Assisted-by: Claude Code
Commit: a2d3783b451c0c19a5eb09b1ab9a1c66d81ab6ca
https://github.com/llvm/llvm-project/commit/a2d3783b451c0c19a5eb09b1ab9a1c66d81ab6ca
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M offload/test/libc/rpc_callback.cpp
Log Message:
-----------
[offload][libc] Adapt test to changes in #190239 (#190330)
Commit: 9e516f5c583a4f5beabe5591018306a2d1120235
https://github.com/llvm/llvm-project/commit/9e516f5c583a4f5beabe5591018306a2d1120235
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/lib/CodeGen/MachinePipeliner.cpp
R llvm/test/CodeGen/AArch64/sms-instruction-scheduled-at-correct-cycle.mir
Log Message:
-----------
[MachinePipeliner] Remove isLoopCarriedDep and use DDG (#174394)
This patch completely removes `isLoopCarriedDep`, which was used
previously to identify loop-carried dependencies in the DAG. Now that we
have the DDG representation, this special handling is no longer
necessary. Simply replacing its usage with the DDG causes several tests
to fail, since cycle detection takes some of the validation-only edges
in the DDG into account. To address this, this patch introduces extra
edges in the DDG, which are used only for cycle detection and not for
other parts of the pass (e.g., scheduling). The extra edges are
determined to preserve the existing behavior of the pass as closely as
possible, which makes the predicates for adding them somewhat complex.
Split off from #135148, and the final patch in the series for #135148
Commit: 73bcfb6824a9bfdeee215590c541cce745e556ef
https://github.com/llvm/llvm-project/commit/73bcfb6824a9bfdeee215590c541cce745e556ef
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp
M mlir/test/Dialect/Affine/affine-loop-invariant-code-motion.mlir
Log Message:
-----------
[mlir][Affine] Fix LICM incorrectly hoisting stores from zero-trip-count loops (#189165)
The affine-loop-invariant-code-motion pass was hoisting side-effectful
operations (e.g. affine.store) out of loops whose trip count is
statically known to be zero. This caused stores to execute
unconditionally even though the loop body should never run, producing
incorrect results.
The fix skips hoisting of non-memory-effect-free ops when
getConstantTripCount returns 0. Pure/side-effect-free ops are still
eligible for hoisting because they cannot change observable program
state.
Fixes #128273
Assisted-by: Claude Code
Commit: 273e8d85fe47b9647a109d7151f10bcea86595ba
https://github.com/llvm/llvm-project/commit/273e8d85fe47b9647a109d7151f10bcea86595ba
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/DiagnosticInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Log Message:
-----------
DiagnosticInfo: Fix missing LLVM_LIFETIME_BOUND on Twine arguments (#190331)
Fix use after free errors in DiagnosticInfoResourceLimit uses.
Commit: c2ec012098df051e698d57b3ec9b58c625761bf6
https://github.com/llvm/llvm-project/commit/c2ec012098df051e698d57b3ec9b58c625761bf6
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
M mlir/test/Dialect/Linalg/transform-tile-reduction.mlir
Log Message:
-----------
[mlir][linalg] Fix crash in tile_reduction when output map has constant exprs (#189166)
`generateInitialTensorForPartialReduction` and the `getInitSliceInfo*`
helpers unconditionally cast every result expression of the partial
result AffineMap to `AffineDimExpr`. When the original output indexing
map contains a constant (e.g. `affine_map<(d0,d1,d2)->(d0,0,d2)>`), the
constant expression propagates into the partial map and the cast
triggers an assertion.
Fixes #173025
Assisted-by: Claude Code
Commit: 03b9c7278ec632817b69c1f72de7ba04f13577cb
https://github.com/llvm/llvm-project/commit/03b9c7278ec632817b69c1f72de7ba04f13577cb
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/builtin-var-dominance.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpGroupAsyncCopy.ll
A llvm/test/CodeGen/SPIRV/transcoding/builtin-var-dominance.ll
Log Message:
-----------
[SPIR-V] Emit builtin variable OpVariable into entry block (#189958)
Commit: e24936b7ad5c6b1fdcc35d98c682fa5bd745e65b
https://github.com/llvm/llvm-project/commit/e24936b7ad5c6b1fdcc35d98c682fa5bd745e65b
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/source/ValueObject/DILParser.cpp
M lldb/test/Shell/Commands/Inputs/main.c
A lldb/test/Shell/Commands/command-dil-diagnostics.test
Log Message:
-----------
[lldb] Fix DIL error diagnostics output (#187680)
* Correctly return the result when used from the console, so that
`DiagnosticsRendering` could use it to output the error.
* Add location pointer to `DILDiagnosticError` internal formatting to
show diagnostics when called from the API.
Commit: f1d167123c6f3628db632c993df3f35c6c0fd164
https://github.com/llvm/llvm-project/commit/f1d167123c6f3628db632c993df3f35c6c0fd164
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
Log Message:
-----------
[lldb] Return 0 instead of false from a function returning size_t (NFC) (#190334)
Commit: 15ed4f6c493c3d43ee6a9188814d6b1650f63497
https://github.com/llvm/llvm-project/commit/15ed4f6c493c3d43ee6a9188814d6b1650f63497
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/X86/known-pow2.ll
Log Message:
-----------
[DAG] isKnownToBeAPowerOfTwo - add missing DemandedElts handling to ISD::TRUNCATE and hidden m_Neg pattern (#190190)
Use MaskedVectorIsZero to match X & -X pattern when only DemandedElts
match the negation pattern
Fixes #181654 (properly)
Commit: 00aede8f19c1714e637ec65c9cf15e4f5559571a
https://github.com/llvm/llvm-project/commit/00aede8f19c1714e637ec65c9cf15e4f5559571a
Author: theRonShark <ron.lieberman at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/bindings/python/clang/cindex.py
M clang/include/clang-c/Index.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenMP.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
R clang/test/AST/ast-dump-openmp-split.c
R clang/test/Index/openmp-split.c
R clang/test/OpenMP/split_analyze.c
R clang/test/OpenMP/split_ast_print.cpp
R clang/test/OpenMP/split_codegen.cpp
R clang/test/OpenMP/split_composition.cpp
R clang/test/OpenMP/split_compound_associated.cpp
R clang/test/OpenMP/split_counts_constexpr.cpp
R clang/test/OpenMP/split_counts_ice.c
R clang/test/OpenMP/split_counts_verify.c
R clang/test/OpenMP/split_diag_errors.c
R clang/test/OpenMP/split_distribute_inner_split.cpp
R clang/test/OpenMP/split_driver_smoke.c
R clang/test/OpenMP/split_iv_types.c
R clang/test/OpenMP/split_loop_styles.cpp
R clang/test/OpenMP/split_member_ctor.cpp
R clang/test/OpenMP/split_messages.cpp
R clang/test/OpenMP/split_nested_outer_only.c
R clang/test/OpenMP/split_offload_codegen.cpp
R clang/test/OpenMP/split_omp_fill.c
R clang/test/OpenMP/split_openmp_version.cpp
R clang/test/OpenMP/split_opts_simd_debug.cpp
R clang/test/OpenMP/split_parallel_split.cpp
R clang/test/OpenMP/split_pch_codegen.cpp
R clang/test/OpenMP/split_range_for_diag.cpp
R clang/test/OpenMP/split_serialize_module.cpp
R clang/test/OpenMP/split_teams_nesting.cpp
R clang/test/OpenMP/split_template_nttp.cpp
R clang/test/OpenMP/split_templates.cpp
R clang/test/OpenMP/split_trip_volatile.c
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTest.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
R openmp/runtime/test/transform/split/fill_first.c
R openmp/runtime/test/transform/split/foreach.cpp
R openmp/runtime/test/transform/split/intfor.c
R openmp/runtime/test/transform/split/intfor_negstart.c
R openmp/runtime/test/transform/split/iterfor.cpp
R openmp/runtime/test/transform/split/leq_bound.c
R openmp/runtime/test/transform/split/negative_incr.c
R openmp/runtime/test/transform/split/nonconstant_count.c
R openmp/runtime/test/transform/split/nonconstant_incr.c
R openmp/runtime/test/transform/split/parallel-split-intfor.c
R openmp/runtime/test/transform/split/single_fill.c
R openmp/runtime/test/transform/split/three_segments.c
R openmp/runtime/test/transform/split/trip_one.c
R openmp/runtime/test/transform/split/unsigned_iv.c
R openmp/runtime/test/transform/split/zero_first_segment.c
Log Message:
-----------
Revert "[Clang][OpenMP] Implement Loop splitting `#pragma omp split` directive " (#190335)
Reverts llvm/llvm-project#183261
15 new lit tests failing in openmp
Commit: a44c15874dbd22b4eeb99b5bbf604b569c41f63f
https://github.com/llvm/llvm-project/commit/a44c15874dbd22b4eeb99b5bbf604b569c41f63f
Author: Lakreite <lakreite at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/test/CodeGen/AMDGPU/always-uniform.ll
A llvm/test/CodeGen/AMDGPU/amdgpu-simplify-demanded-bits-readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-wwm.ll
Log Message:
-----------
[AMDGPU][CodeGen] Implement SimplifyDemandedBitsForTargetNode for readfirstlane. (#190009)
Propagate demanded bits through readfirstlane intrinsic in
AMDGPUISelLowering with SimplifyDemandedBitsForTargetNode
implementation.
This allows upstream zero/sign extensions to be eliminated when only a
subset of bits is used after the intrinsic.
Partially addresses #128390.
Commit: b9924c76da9126cdf1e4345cbb6b061c65c920db
https://github.com/llvm/llvm-project/commit/b9924c76da9126cdf1e4345cbb6b061c65c920db
Author: alexpaniman <alexpaniman at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/Lex/Preprocessor.cpp
A clang/test/Preprocessor/dump-tokens.cpp
Log Message:
-----------
[clang] Make -dump-tokens option align tokens (#164894)
When using `-Xclang -dump-tokens`, the lexer dump output is currently
difficult to read because the data are misaligned. The existing
implementation simply separates the token name, spelling, flags, and
location using `'\t'`, which results in inconsistent spacing.
For example, the current output looks like this on provided in this
patch example **(BEFORE THIS PR)**:
<img width="2936" height="632" alt="image"
src="https://github.com/user-attachments/assets/ad893958-6d57-4a76-8838-7fc56e37e6a7"
/>
# Changes
This small PR improves the readability of the token dump by:
+ Adding padding after the token name and after the spelling (the
padding amount was chosen empirically to produce good average
alignment).
+ Swapping the order of location and flags (since flags can take up a
lot of space and disrupt alignment).
The result is a more readable output **(AFTER THIS PR)**:
<img width="1470" height="315" alt="image"
src="https://github.com/user-attachments/assets/c24f24e5-a431-42cc-b5b6-232bac5c635e"
/>
Commit: 0932472f3b034780bec98302c09a51d58368c825
https://github.com/llvm/llvm-project/commit/0932472f3b034780bec98302c09a51d58368c825
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenStmtOpenMP.cpp
Log Message:
-----------
[CIR][NFC] Add NYI for OMPSplitDirective stmt (#190329)
Fix the warning of missing OMPSplitDirective statement in the emitStmt
switch
Commit: 2c734b3951380fda0e5708bc628564e79250ae12
https://github.com/llvm/llvm-project/commit/2c734b3951380fda0e5708bc628564e79250ae12
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/export-decl.cppm
Log Message:
-----------
[CIR] Implement top level 'ExportDecl' emission (#190286)
This is a pretty simple one, its just a type of decl-context. The actual
exporty-ness is handled on a per-declaration basis.
This patch just makes sure we emit them, as I suspect this will reveal
quite a bit more issues in module code I suspect.
Commit: 0a3fdd30e58e9467205aca6133a13b7077a9ce68
https://github.com/llvm/llvm-project/commit/0a3fdd30e58e9467205aca6133a13b7077a9ce68
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
A clang/test/CIR/CodeGen/vtable-nyi-nonconvertible-functype.cpp
Log Message:
-----------
[CIR] Handle vtable-lowering-with-incomplete types (#190216)
The NYI diagnostic in getFunctionTypeForVTable showed up a few times in
testing, so this patch is attempting to fix that up.
The reproducer here is a function type for a vtable that has an
incomplete type in it(return or parameter). Classic codegen chooses to
represent this as an opaque type.
This patch instead removes the special v-table handling here, so that we
can instead just represent the types as incomplete record types.
At the moment, this patch ends up lowering incomplete types as 'empty'
types in LLVM-IR, which we may find we need to modify in the future,
however at the moment, it seems to work.
This patch ALSO changes the definition of RecordType::isSized to only be
true for complete types, which prevents a number of other things from
attempting to add attributes/check the size of the type/etc, but those
are irrelevant for the purposes of vtable emission.
Commit: c963092b0c67318f6e18a6e955f293f96aa38f46
https://github.com/llvm/llvm-project/commit/c963092b0c67318f6e18a6e955f293f96aa38f46
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Mark VPCanonicalIVPHI as not reading memory (NFCI). (#190338)
The canonical IV does not access any memory. Mark accordingly. This
should be NFC end-to-end.
PR: https://github.com/llvm/llvm-project/pull/190338
Commit: 5674755cb6f33601e206e57666c3edbb4e73830d
https://github.com/llvm/llvm-project/commit/5674755cb6f33601e206e57666c3edbb4e73830d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Log Message:
-----------
[DAG] visitMUL - cleanup pattern matchers to use m_Shl and (commutative) m_Mul directly (#190339)
Based on feedback on #190215
Commit: d8d2e3358cf573f1ebcc3e0b24a3757c4a86a1ba
https://github.com/llvm/llvm-project/commit/d8d2e3358cf573f1ebcc3e0b24a3757c4a86a1ba
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/test/Shell/Commands/command-dil-diagnostics.test
Log Message:
-----------
[lldb] Make command-dil-diagnostics.test UNSUPPORTED on Windows (#190341)
The test from #187680 passes on some Windows buildbots, but fails on
others.
Commit: fd65b3ef7737ee06445088d5c716fc20a1776e2e
https://github.com/llvm/llvm-project/commit/fd65b3ef7737ee06445088d5c716fc20a1776e2e
Author: Yuta Saito <kateinoigakukun at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SwiftErrorValueTracking.cpp
Log Message:
-----------
[GlobalISel] Fix UMR in `SwiftErrorValueTracking` (#190273)
Fix issue reported on
https://github.com/llvm/llvm-project/pull/188296#issuecomment-4179103756
`SwiftErrorValueTracking` holds per-function state used by
`IRTranslator`.
On targets where `TargetLowering::supportSwiftError()` is false, (e.g.
wasm) `SwiftErrorValueTracking::setFunction()` exits early.
Historically, that early return happened before clearing per-function
containers, and pointer members (including `SwiftErrorArg`) had no
in-class initialization.
The bad case is a function with a swifterror argument on such a target:
`IRTranslator` uses `SwiftError.getFunctionArg()` without checking
`supportSwiftError()` and this could read an uninitialized
`SwiftErrorArg` value. (SelectionDAG gates the `getFunctionArg` usages
behind `supportSwiftError()`, so it's specific to GlobalISel)
29391328ab66 added [a first test
case](llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args-swiftcc.ll)
that satisfies:
- the target is `supportSwiftError` = false
- use swiftcc
- use GlobalISel
and it made the issue observable with sanitizer builds. This commit
fixes the per-function container reinitialization and defensively add
explicit pointer member initializations.
Commit: e1f6dc4b2361ab6815f15c08e9a8b97f152a82cf
https://github.com/llvm/llvm-project/commit/e1f6dc4b2361ab6815f15c08e9a8b97f152a82cf
Author: Willem Kaufmann <willem.kaufmann at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines.rst
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capturing-lambda-coroutines-allow-explicit-object-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capturing-lambda-coroutines.cpp
Log Message:
-----------
[clang-tidy] Add `AllowExplicitObjectParameters` option to `avoid-capturing-lambda-coroutines` (#182916)
Add an off-by-default `AllowExplicitObjectParameters` option to the
existing `cppcoreguidelines-avoid-capturing-lambda-coroutines` check.
When enabled, lambda coroutines that use C++23 "deducing this" (explicit
object parameter) are not flagged, since captures are moved into the
coroutine frame ([1], [2], [3]). In C++23 mode, the check also provides
fix-it hints to add `this auto` as the first parameter for lambdas that
don't use it.
The option is off by default to match the current C++ Core Guidelines,
which do not yet recognize explicit object parameters as a solution
([4]). Once the guidelines adopt the proposal, the default can be
flipped.
[1]:
https://github.com/scylladb/seastar/blob/master/doc/lambda-coroutine-fiasco.md#solution-c23-and-up
[2]: https://www.scs.stanford.edu/~dm/blog/vexing-capture.html
[3]: https://lists.isocpp.org/std-proposals/2020/05/1391.php
[4]:
https://github.com/isocpp/CppCoreGuidelines/pull/2289#issuecomment-3756500251
Commit: 8c81064169c5c864f5a3e4b9474164e025b274b7
https://github.com/llvm/llvm-project/commit/8c81064169c5c864f5a3e4b9474164e025b274b7
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
M mlir/test/Conversion/ArithToLLVM/convert-nd-vector-to-llvmir.mlir
M mlir/test/Dialect/Arith/canonicalize.mlir
M mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir
Log Message:
-----------
[MLIR][Arith] Fix index_cast/index_castui chain folding to check intermediate width (#189042)
The patterns `IndexCastOfIndexCast` and `IndexCastUIOfIndexCastUI` in
ArithCanonicalization.td incorrectly eliminated a pair of index casts
whenever the outer result type equalled the original source type,
without verifying that the intermediate cast was lossless.
For example, the following was wrong folded to `%arg0`:
%0 = index_castui %arg0 : i64 to index
%1 = index_castui %0 : index to i8 ← truncates to 8 bits
%2 = index_castui %1 : i8 to index ← incorrectly removed
The pattern matched `%1`/`%2` because `i8.to(index)` has the same result
type as `i64.to(index)`, even though the i8 intermediate silently drops
56 bits. The same bug existed for the signed `index_cast` variant.
Fix: move the optimization into the `fold` methods of `IndexCastOp` and
`IndexCastUIOp` with an explicit check that the intermediate type is at
least as wide as the source type (using
`IndexType::kInternalStorageBitWidth` as the representative width for
`index`). Only then is the round-trip guaranteed lossless and the chain
can be collapsed.
Fixes #90238
Fixes #90296
Assisted-by: Claude Code
Commit: 34ec1870ae46a7f0bdd11123a2ac08e3878758e3
https://github.com/llvm/llvm-project/commit/34ec1870ae46a7f0bdd11123a2ac08e3878758e3
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/ToolChain.cpp
A clang/lib/Driver/ToolChains/Arch/AMDGPU.cpp
A clang/lib/Driver/ToolChains/Arch/AMDGPU.h
Log Message:
-----------
clang/AMDGPU: Refactor triple adjustments (#190343)
Factor this similar to the ARM case for future
expansion. The difference being -mcpu is treated as
an alias for -mcpu instead of something separately
useful.
I don't understand this mutation of the triple into
spirv64. The only test where this appears to matter
does not use -mcpu. Previously this would only match
for -mcpu, but this would change the behavior to prefer
-march before falling back to -mcpu.
Commit: 5d08beaec851adde3a51963733bc31861a1c61be
https://github.com/llvm/llvm-project/commit/5d08beaec851adde3a51963733bc31861a1c61be
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Remove NeedToApplyOffset from prepareSREMEqFold. NFC (#190256)
For a given element, I believe A is only 0 when the divisor is INT_MIN.
The only way for NeedToApplyOffset to be false after processing all
elements, is for all divisors to be INT_MIN. If all divisors are
INT_MIN, then all divisors are a power of 2 and we wouldn't do the
transform.
Commit: 11d65dc8c299761c79b437f16d5299c06b77f352
https://github.com/llvm/llvm-project/commit/11d65dc8c299761c79b437f16d5299c06b77f352
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenStmtOpenMP.cpp
Log Message:
-----------
Revert "[CIR][NFC] Add NYI for OMPSplitDirective stmt" (#190346)
Reverts llvm/llvm-project#190329
The patch this depends on got reverted.
Commit: 1484e0f16a14421de6fa46a5425f7b07da9eeaac
https://github.com/llvm/llvm-project/commit/1484e0f16a14421de6fa46a5425f7b07da9eeaac
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M libc/CMakeLists.txt
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/cmake/modules/prepare_libc_gpu_build.cmake
M libc/docs/gpu/building.rst
M libc/docs/gpu/testing.rst
M libc/test/CMakeLists.txt
M libc/test/lit.site.cfg.py.in
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[libc] Use CMAKE_CROSSCOMPILING_EMULATOR instead searching for `llvm-gpu-loader' (#189417)
Summary:
We already handle this with other targets, we should be able to unify
the handling here.
Commit: 62bbe3fffc16d77a07cfbbb9333ef19fd01b135b
https://github.com/llvm/llvm-project/commit/62bbe3fffc16d77a07cfbbb9333ef19fd01b135b
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/R600TargetTransformInfo.h
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h
M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
M llvm/lib/Target/Mips/MipsTargetTransformInfo.h
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
M llvm/lib/Target/SPIRV/SPIRVTargetTransformInfo.h
M llvm/lib/Target/Sparc/SparcTargetTransformInfo.h
M llvm/lib/Target/VE/VETargetTransformInfo.h
Log Message:
-----------
Fix buildbot failure by explicitly disabling partial reductions in TTI. (#190165)
Partial reductions were previously disabled by default, but by
implementing a generic cost-model in BasicTTIImpl (#189905) this now
accidentally enables the use of those when vectorising loops for targets
that may not support this yet.
Commit: 5b56352757434eb6756cf0211c32832a2ced4ea3
https://github.com/llvm/llvm-project/commit/5b56352757434eb6756cf0211c32832a2ced4ea3
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/EHScopeStack.h
M clang/test/CIR/CodeGen/cleanup.cpp
Log Message:
-----------
[CIR] Implement cleanups for temporaries with automatic duration (#189754)
This implements handling for cleanup of temporary variables with
automatic storage duration. This is a simplified implementation that
doesn't yet handle the possibility of exceptions being thrown within
this cleanup scope or the cleanup scope being inside a conditional
operation. Support for those cases will be added later.
Commit: 641276751d44affb0c207c510c13e0eb655eb3ec
https://github.com/llvm/llvm-project/commit/641276751d44affb0c207c510c13e0eb655eb3ec
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/try-catch-all-with-cleanup.cpp
M clang/test/CIR/IR/eh-inflight.cir
M clang/test/CIR/Lowering/eh-inflight.cir
M clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
Log Message:
-----------
[CIR] Fix mixing of catch-all and type-specific catch handlers (#190285)
If a try block has a catch-all handler and one or more type-specific
catch handlers, we were failing to generate the null type specifier when
lowering from CIR to LLVM IR. This change fixes that problem.
Assisted-by: Cursor / claude-4.6-opus-high
Commit: d8ba56ce3f98871ae4e5782c4af2df4c98bebde7
https://github.com/llvm/llvm-project/commit/d8ba56ce3f98871ae4e5782c4af2df4c98bebde7
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
A compiler-rt/cmake/caches/AMDGPU.cmake
R compiler-rt/cmake/caches/GPU.cmake
A compiler-rt/cmake/caches/NVPTX.cmake
M offload/cmake/caches/AMDGPULibcBot.cmake
M offload/cmake/caches/FlangOffload.cmake
M offload/cmake/caches/Offload.cmake
Log Message:
-----------
[compiler-rt] Split the GPU.cmake cache file to AMDGPU and NVPTX (#190349)
Summary:
These will have different functionality going forward. They should be
split so we can more easily support things only feasible in AMDGPU.
Commit: 7edf8a7b51bb411a7e13bcd5496fc70d3c6be888
https://github.com/llvm/llvm-project/commit/7edf8a7b51bb411a7e13bcd5496fc70d3c6be888
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Utils/LoopConstrainer.cpp
M polly/lib/Support/SCEVAffinator.cpp
Log Message:
-----------
[SCEV] Replace some hasFlags calls with hasNo(Un)SignedWrap (NFC). (#190352)
This is slightly more compact and reduces diff when switching to enum
class (https://github.com/llvm/llvm-project/pull/190199).
PR: https://github.com/llvm/llvm-project/pull/190352
Commit: fd68fa98fc0d4b32011e636ff5cdf04a10db5d71
https://github.com/llvm/llvm-project/commit/fd68fa98fc0d4b32011e636ff5cdf04a10db5d71
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/include/lldb/DataFormatters/FormattersContainer.h
M lldb/source/Breakpoint/BreakpointLocation.cpp
M lldb/source/Core/Address.cpp
M lldb/source/Core/Disassembler.cpp
M lldb/source/Core/Mangled.cpp
M lldb/source/DataFormatters/ValueObjectPrinter.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
M lldb/source/Plugins/SymbolLocator/DebugSymbols/SymbolLocatorDebugSymbols.cpp
M lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTBundleSaver.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Symbol/Function.cpp
M lldb/source/Symbol/SymbolContext.cpp
M lldb/source/Symbol/Variable.cpp
M lldb/source/Target/ModuleCache.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Target/Trace.cpp
M lldb/source/Target/TraceDumper.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/tools/lldb-test/lldb-test.cpp
M lldb/unittests/Symbol/TestTypeSystemClang.cpp
M lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
Log Message:
-----------
[lldb] Remove unnecessary calls to ConstString::AsCString (NFC) (#190298)
Replace calls to `ConstString::AsCString` with
`ConstString::GetString(Ref)` where appropriate.
Assisted-by: Claude Code
Commit: dc83ad2b376a58f07c7aed140f4621e499fc59b5
https://github.com/llvm/llvm-project/commit/dc83ad2b376a58f07c7aed140f4621e499fc59b5
Author: Artemiy <notlebedev at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
A clang/test/CIR/CodeGen/attribute-visibility.c
A clang/test/CIR/IR/attribute-visibility.cir
Log Message:
-----------
[CIR] Fix incorrect CIR_GlobalOp.global_visibility assembly format (#189673)
Closes #189666 .
Fix incorrect printing and parsing of `cir.global` if
`global_visibility` attribute is present. Incorrect assembly format
```
(`` $global_visibility^)?
```
Resulted in keyword sticking to previous word and producing incorrect
cir like this:
```
cir.globalhidden external dso_local @hidden_var = #cir.int<10> : !s32i {alignment = 4 : i64} loc(#loc22)
cir.global "private"hidden internal dso_local @hidden_static_var = #cir.int<10> : !s32i {alignment = 4 : i64} loc(#loc24)
```
Using custom parser/printer that is used in `cir.func` parser fixes this
issue and makes printed/parsed attribute for functions and global values
consistent.
Also added tests for both global values and functions.
Commit: 7f9e4fe70872f926c1f88830ce9656645b949d51
https://github.com/llvm/llvm-project/commit/7f9e4fe70872f926c1f88830ce9656645b949d51
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Serialization/ASTWriter.h
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/GeneratePCH.cpp
M clang/unittests/Frontend/FrontendActionTest.cpp
Log Message:
-----------
[clang] Extract in-memory module cache writes from `ASTWriter` (#190062)
This PR extracts the write to the in-memory module cache from within
`ASTWriter` into `CompilerInstance.` This brings it closer to other
module cache manipulations, making the ordering much more clear and
explicit.
Commit: 85e2a3650185cf68be1ff2df74b447ca4899a96d
https://github.com/llvm/llvm-project/commit/85e2a3650185cf68be1ff2df74b447ca4899a96d
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Remove dead code from the Weak Crossing SIV test (#190355)
The ConstantRange intersection check can now handle cases where the
condition of this branch is satisfied. The check is performed before
entering this function, so this part is no longer necessary.
Commit: 730a07f225ab29c41e7db2e9db99aa619874ff46
https://github.com/llvm/llvm-project/commit/730a07f225ab29c41e7db2e9db99aa619874ff46
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
Log Message:
-----------
[LV] Only create partial reductions when profitable. (#181706)
We want the LV cost-model to make the best possible decision of VF and
whether or not to use partial reductions. At the moment, when the LV can
use partial reductions for a given VF range, it assumes those are always
preferred. After transforming the plan to use partial reductions, it
then chooses the most profitable VF. It is possible for a different VF
to have been more profitable, if it wouldn't have chosen to use partial
reductions.
This PR changes that, to first decide whether partial reductions are
more profitable for a given chain. If not, then it won't do the
transform.
This causes some regressions for AArch64 which are addressed in a
follow-up PR to keep this one simple.
Commit: df1e67b3799a69ab191324c75b9b05e799fdfb02
https://github.com/llvm/llvm-project/commit/df1e67b3799a69ab191324c75b9b05e799fdfb02
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.get.waveid.in.workgroup.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.memtime.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.get.waveid.in.workgroup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for s_memtime, s_get_waveid (#190268)
Commit: 150042141c5036fa37e1596d13a61406e581fea1
https://github.com/llvm/llvm-project/commit/150042141c5036fa37e1596d13a61406e581fea1
Author: Osman Yasar <osmanyas05 at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/test/CodeGen/AArch64/GlobalISel/combine-sub.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-sub.mir
M llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
Log Message:
-----------
[GlobalISel] Add `sub(-1, x) -> (xor x, -1)` from SelectionDAG (#181014)
This PR adds the pattern `// (sub -1, x) -> (xor x, -1)` to GlobalISel
from SelectionDAG.
Original SelectionDAG rewrite:
https://github.com/llvm/llvm-project/blob/5b4811eddb28264ef1ccacc93c0f7d8cb0da31c8/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L4305
---------
Co-authored-by: Jay Foad <jay.foad at gmail.com>
Commit: 7da3a66c06d4e16b2f07bbc9a9a92c76db3f1730
https://github.com/llvm/llvm-project/commit/7da3a66c06d4e16b2f07bbc9a9a92c76db3f1730
Author: Rafael Auler <rafaelauler at meta.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT] Check for write errors before keeping output file (#190359)
Summary:
When the disk runs out of space during output file writing, BOLT would
crash with SIGSEGV/SIGABRT because raw_fd_ostream silently records write
errors and only reports them via abort() in its destructor. This made it
difficult to distinguish real BOLT bugs from infrastructure issues in
production monitoring.
Add an explicit error check on the output stream before calling
Out->keep(), so BOLT exits cleanly with exit code 1 and a clear error
message instead.
Test: manually verified with a full filesystem that BOLT now prints
"BOLT-ERROR: failed to write output file: No space left on device" and
exits with code 1.
Commit: 271a08889b3e408037db15491b0390e472f003dc
https://github.com/llvm/llvm-project/commit/271a08889b3e408037db15491b0390e472f003dc
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/include/lldb/Host/macosx/HostInfoMacOSX.h
M lldb/include/lldb/Target/Platform.h
M lldb/include/lldb/Target/Target.h
M lldb/source/Core/ModuleList.cpp
M lldb/source/Host/macosx/objcxx/CMakeLists.txt
M lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
M lldb/source/Target/Platform.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Target/TargetProperties.td
A lldb/test/API/macosx/dsym_codesign/Makefile
A lldb/test/API/macosx/dsym_codesign/TestdSYMCodesign.py
A lldb/test/API/macosx/dsym_codesign/dsym_script.py
A lldb/test/API/macosx/dsym_codesign/main.c
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb] Load scripts from code signed dSYM bundles (#189444)
LLDB automatically discovers, but doesn't automatically load, scripts in
the dSYM bundle. This is to prevent running untrusted code. Users can
choose to import the script manually or toggle a global setting to
override this policy. This isn't a great user experience: the former
quickly becomes tedious and the latter leads to decreased security.
This PR offers a middle ground that allows LLDB to automatically load
scripts from trusted dSYM bundles. Trusted here means that the bundle
was signed with a certificate trusted by the system. This can be a
locally created certificate (but not an ad-hoc certificate) or a
certificate from a trusted vendor.
Commit: dec90ffbc99926a5db8b3fee6d837eb788722153
https://github.com/llvm/llvm-project/commit/dec90ffbc99926a5db8b3fee6d837eb788722153
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/test/CIR/CodeGen/assign-operator.cpp
M clang/test/CIR/CodeGen/dtors.cpp
A clang/test/CIR/CodeGen/no-unique-address.cpp
Log Message:
-----------
[CIR] Fix record layout for [[no_unique_address]] fields (#186701)
Fix two bugs in CIR's handling of `[[no_unique_address]]` fields:
- Record layout: Use the base subobject type (without tail padding)
instead of the complete object type for [[no_unique_address]] fields,
allowing subsequent fields to overlap with tail padding.
- Field access: Insert bitcasts from the base subobject pointer to the
complete object pointer after cir.get_member for potentially-overlapping
fields, so downstream code sees the expected type.
- Zero-sized fields: Handle truly empty [[no_unique_address]] fields by
computing their address via byte offsets rather than cir.get_member,
since they have no entry in the record layout.
A known gap (CIR copies 8 bytes where OG copies 5 via
`ConstructorMemcpyizer`) is noted for follow-up.
Commit: 853ea940ae8ff4678c578e6074d0e5938c3a0140
https://github.com/llvm/llvm-project/commit/853ea940ae8ff4678c578e6074d0e5938c3a0140
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Log Message:
-----------
[InstCombine][NFC] Expose isKnownExactCastIntToFP as a public method (#190327)
Commit: 2108252f0e23c4e3adc61ab8097a73223a80843a
https://github.com/llvm/llvm-project/commit/2108252f0e23c4e3adc61ab8097a73223a80843a
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/test/CodeGen/complex.c
Log Message:
-----------
[clang] Fixed a crash when explicitly casting to atomic complex (#172163)
Fixed a crash when explicitly casting a scalar to an atomic complex.
resolve: #114885
Commit: f26b30ea35a64382a9c8e80fc0e1e2b62b6c4399
https://github.com/llvm/llvm-project/commit/f26b30ea35a64382a9c8e80fc0e1e2b62b6c4399
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/utils/TableGen/CIRLoweringEmitter.cpp
Log Message:
-----------
[CIR] Auto-generate matchAndRewrite for one-to-one CIR-to-LLVM lowerings (#190326)
When a CIR op specifies a non-empty `llvmOp` field, the lowering
emitter now generates the `matchAndRewrite` body that converts the
result type and forwards all operands to the corresponding LLVM op.
This removes 27 boilerplate lowering patterns from LowerToLLVM.cpp.
Ops needing custom logic (FMaxNumOp/FMinNumOp for FastmathFlags::nsz)
override `llvmOp = ""` to retain hand-written implementations.
Also fixes llvmOp names (TruncOp -> FTruncOp, FloorOp -> FFloorOp)
and adds a diagnostic rejecting conflicting llvmOp + custom constructor.
Commit: ffd29734cc41f6dc8aa340de047f221e30d312c9
https://github.com/llvm/llvm-project/commit/ffd29734cc41f6dc8aa340de047f221e30d312c9
Author: Md Abdullah Shahneous Bari <md.abdullah.shahneous.bari at intel.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/ExecutionEngine/CudaRuntimeWrappers.cpp
M mlir/lib/ExecutionEngine/LevelZeroRuntimeWrappers.cpp
M mlir/lib/ExecutionEngine/RocmRuntimeWrappers.cpp
M mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
Log Message:
-----------
[mlir][gpu] Extend `mgpumoduleLoadJIT` API to add assemblySize parameter (#189429)
When JITing SPIR-V using LevelZero API, it expects the length of the
string since passed input data is a `void *`. Problem is, getting the
length of the string is not possible using something like
`strlen(reinterpret_cast<char *>(data))` in `mgpuModuleLoadJIT`
implementation. Becasuse the SPIR-V binary contains null bytes (i.e.,
the data is binary SPIR-V, not null-terminated text).
As a result we need to pass the `assmeblySize` via the
`mgpuModuleLoadJIT(void* data, int optLevel, size_t assmeblySize)`.
Commit: 68b6a27771be9fca4eabf60212714bd6509df8cf
https://github.com/llvm/llvm-project/commit/68b6a27771be9fca4eabf60212714bd6509df8cf
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/no-proto-fn-ptr-global-init.c
Log Message:
-----------
[CIR] Use destination type when emitting constant function ptrs (#189741)
This updates the CIR constant emitter to use the correct destination
type when emitting a constant initializer for a structure that might be
initialized with non-prototyped function pointers. We were previously
using the type from whatever function declaration we had, but this may
not be the correct type.
This change also updates the `replaceUsesOfNonProtoTypeWithRealFunction`
to ignore global initializer uses, which do not need to be updated after
this change.
Commit: 6832709dc0ccf73a97ca5e2029d9a289f2d6437c
https://github.com/llvm/llvm-project/commit/6832709dc0ccf73a97ca5e2029d9a289f2d6437c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SDPatternMatch.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
[DAG] SDPatternMatch - rename m_Opc -> m_SpecificOpc (#190215)
Match naming convention for other m_Specific* matchers, and frees up the
m_Opc() matcher for future use in #84940 to allow us to capture the
opcode of a unknown binop
Moving to m_SpecificOpc does mess up the formatting in a few places,
I've tried to refactor to use the m_Value(SDValue, ....) matcher where I
can to retrieve some whitespace
Commit: 61115200435b24ed2917f5bdce55560b6bd6c595
https://github.com/llvm/llvm-project/commit/61115200435b24ed2917f5bdce55560b6bd6c595
Author: Björn Svensson <bjorn.a.svensson at est.tech>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
Log Message:
-----------
[clang-tidy] Fix readability-identifier-naming for C++17 structured bindings (#189500)
`BindingDecl` nodes, i.e. the individual names in a structured binding,
were not handled in `IdentifierNamingCheck::findStyleKind()`, causing
them to fall through to the Default style or be silently ignored.
This led to incorrect renames, e.g. applying member variable conventions
to local bindings.
---------
Signed-off-by: Björn Svensson <bjorn.a.svensson at est.tech>
Commit: f29d23844c32cdb1ee793e6f00818f4685289fd3
https://github.com/llvm/llvm-project/commit/f29d23844c32cdb1ee793e6f00818f4685289fd3
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M offload/ci/openmp-offload-amdgpu-clang-flang.py
Log Message:
-----------
[Buildbot][AMDGPU] Adapt to recent CMake change (#190381)
Make changes to adapt to
https://github.com/llvm/llvm-project/pull/190349
Commit: b8ea714224daa13b0b74e2bfea3851ad25db14ea
https://github.com/llvm/llvm-project/commit/b8ea714224daa13b0b74e2bfea3851ad25db14ea
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/source/Core/ModuleList.cpp
Log Message:
-----------
[lldb] Fix formatting in ModuleList (NFC) (#190382)
I had auto-merge enabled in #189444 and since the formatter is
non-blocking it got merged despite the issue. Given I'm already here, I
just formatted the whole file.
Commit: 4ad1844304d94bc5d695975214741662fe84d605
https://github.com/llvm/llvm-project/commit/4ad1844304d94bc5d695975214741662fe84d605
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeWriter.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
Log Message:
-----------
[clang-doc] Refactor FriendInfo parameters to use ArrayRef (#190047)
This also adapts readBlock for the new layouts.
Commit: 85fb6ba2b794f948180f7b4c288b2d98468d0688
https://github.com/llvm/llvm-project/commit/85fb6ba2b794f948180f7b4c288b2d98468d0688
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/include/lldb/Host/StreamFile.h
M lldb/include/lldb/Utility/GDBRemote.h
M lldb/include/lldb/Utility/Stream.h
M lldb/include/lldb/Utility/StreamBuffer.h
M lldb/include/lldb/Utility/StreamString.h
M lldb/source/Commands/CommandObjectMemory.cpp
M lldb/source/Commands/CommandObjectSource.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/DumpDataExtractor.cpp
M lldb/source/Core/EmulateInstruction.cpp
M lldb/source/Core/StreamAsynchronousIO.cpp
M lldb/source/Host/common/StreamFile.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
M lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp
M lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp
M lldb/source/Utility/GDBRemote.cpp
M lldb/source/Utility/Stream.cpp
M lldb/source/Utility/StreamString.cpp
M lldb/unittests/Symbol/PostfixExpressionTest.cpp
M lldb/unittests/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpressionTests.cpp
Log Message:
-----------
[lldb][Utility] Remove address size from Stream class (NFC) (#190375)
It violates abstraction. Luckily, it was used only in two places, see
DumpDataExtractor.cpp and CommandObjectMemory.cpp.
Commit: f33e9faa5d65a16c7366bfec3b11abddee9d6a08
https://github.com/llvm/llvm-project/commit/f33e9faa5d65a16c7366bfec3b11abddee9d6a08
Author: Wei Wang <apollo.mobility at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-lineshift.prof
M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
Log Message:
-----------
[SampleProfile] Fix FuncMappings key mismatch for renamed functions in stale profile matching (#187899)
Fix a bug where `distributeIRToProfileLocationMap` fails to find
location mappings from IR to profile for renamed functions because
`FuncMappings` is indexed by the IR function name while
`distributeIRToProfileLocationMap` looks up by the profile function
name. Fixed by making `FuncMappings` to use profile function name as
key.
Commit: 8d345457927330fbfdf7bdfa0ad7ee5b4ee27935
https://github.com/llvm/llvm-project/commit/8d345457927330fbfdf7bdfa0ad7ee5b4ee27935
Author: Tom Tromey <tromey at adacore.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
A llvm/test/Verifier/dbg-type-line-without-file.ll
M mlir/test/Target/LLVMIR/Import/debug-info.ll
Log Message:
-----------
Introduce and use Verifier::visitDIType (#189067)
This adds a new method Verifier::visitDIType, and then changes method
for subclasses of DIType to call it. The new method just dispatches to
DIScope and adds a file/line check inspired by
Verifier::visitDISubprogram.
Commit: a4632f6294fa79bb83dcfa487d94f7f5d4d49cff
https://github.com/llvm/llvm-project/commit/a4632f6294fa79bb83dcfa487d94f7f5d4d49cff
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaChecking.cpp
A clang/test/Sema/implicit-cast-complex-to-vector.c
Log Message:
-----------
[Clang][Sema] Prevent implicit casting Complex type to Vector (#187954)
Emitting an error message in case of implicit casting of a complex type
to a built-in vector type in C
Fixes: #186805
Commit: 94545a7c638d080bfc7dcdcc8c73ad4b46bda08e
https://github.com/llvm/llvm-project/commit/94545a7c638d080bfc7dcdcc8c73ad4b46bda08e
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
Log Message:
-----------
[SandboxVec][Legality][NFC] Outline differentBlock() and areUnique() (#190024)
And reuse them in LoadStoreVec.
Commit: 88f6b181b6ab2b7a1ca813a6effa56ec7c45c8fc
https://github.com/llvm/llvm-project/commit/88f6b181b6ab2b7a1ca813a6effa56ec7c45c8fc
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/bolt/unittests/Passes/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/sources.gni
M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
M llvm/utils/gn/secondary/llvm/tools/llubi/lib/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/DebugInfo/PDB/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#190392)
0cecacd971a5
2cff995e91c3
34ec1870ae46
54e5803d0231
64b728128df3
76ed0ad3577e
d95292f67b48
Commit: 418ae6c60007c710a2b3df9d0c1e01d05314eb7e
https://github.com/llvm/llvm-project/commit/418ae6c60007c710a2b3df9d0c1e01d05314eb7e
Author: Daniil Dudkin <unterumarmung at yandex.ru>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/include-cleaner/lib/Types.cpp
M clang-tools-extra/include-cleaner/lib/TypesInternal.h
M clang-tools-extra/include-cleaner/unittests/TypesTest.cpp
Log Message:
-----------
[include-cleaner][NFC] expose and test `normalizePath` helper (#189364)
Also fix a bug where the root `/` path would become an empty string.
Commit: 6f464d1b3a936ed767eaadb6a4001d8194a42fcd
https://github.com/llvm/llvm-project/commit/6f464d1b3a936ed767eaadb6a4001d8194a42fcd
Author: Alexey Karyakin <akaryaki at qti.qualcomm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/test/Driver/hexagon-toolchain-elf.c
M clang/test/Driver/hexagon-toolchain-linux.c
Log Message:
-----------
[Hexagon] Clean up library and include paths and fix --sysroot (#188824)
Unify include and library paths by reusing common code to compute path
prefixes. First, determine the effective sysroot by choosing a
user-provided sysroot, "../target/<triple>", or "../target/hexagon",
in the order of precedence. Based on the sysroot, derive the standard
include path, C++ include path, and base library path.
Fix the default -L library paths so they are taken from the external
sysroot, when one specified. Previously, these paths were always
relative to the install directory and sysroot was ignored.
Remove certain locations from considerations, as there are never used
for the corresponding purpose in existing sysroots:
- fallback to install path, typically "../target/bin", as the base path
when other sysroot cannot be found;
- similarly, fallback to "../target/" for startup files;
- "../target/bin" for program paths as there are no program files in
current sysroots.
Other minor changes:
- use windows-correct path delimiting;
- enable hexagon-toolchain-linux.c test for windows hosts.
Commit: 6c82b72db63b9b2327e929d7921a8b78b4a98cc9
https://github.com/llvm/llvm-project/commit/6c82b72db63b9b2327e929d7921a8b78b4a98cc9
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
Log Message:
-----------
[SROA][NFC] Don't materialize name when discarding names (#190368)
SetValuePrefix has to materialize the prefix into a std::string, which
is non-free and pointless when value names are discarded.
Commit: 6476619f301a563f73f1d0ce552b8fb3e054ee2d
https://github.com/llvm/llvm-project/commit/6476619f301a563f73f1d0ce552b8fb3e054ee2d
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/test/CodeGen/tbaa-matrix.c
Log Message:
-----------
[Matrix] Use matrix element type for TBAA nodes. (#190029)
Matrix loads and stores are accesses of their element types. Emit TBAA
nodes using their element type to allow more precise TBAA alias
analysis.
PR: https://github.com/llvm/llvm-project/pull/190029
Commit: efdbf7b815b7c8fa161819e87050154d62b3d146
https://github.com/llvm/llvm-project/commit/efdbf7b815b7c8fa161819e87050154d62b3d146
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonPatterns.td
M llvm/test/CodeGen/Hexagon/trap-crash.ll
Log Message:
-----------
[Hexagon] Use trap0(#0xDB) for debugtrap instead of brkpt (#189446)
The brkpt instruction is intended for the in-silicon debugger (ISDB).
When ISDB is not enabled, brkpt is treated as a NOP, so
__builtin_debugtrap() would silently do nothing in user-mode Linux
processes.
Use trap0(#0xDB) instead.
Commit: 4a7213867abe6a61e3c0baed27fcfc1015270cfa
https://github.com/llvm/llvm-project/commit/4a7213867abe6a61e3c0baed27fcfc1015270cfa
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
Log Message:
-----------
[Analysis] No block map in MemoryDependenceAnalysis (#190367)
Avoid expensive hash map of block to value by using a vector. To avoid
allocating and clearing the entire vector per query, cache the
allocation and use an epoch to identify stale values from previous
queries.
Commit: 8a8434f22a8cf9a0b5ce7214ca621f3a5f4b1390
https://github.com/llvm/llvm-project/commit/8a8434f22a8cf9a0b5ce7214ca621f3a5f4b1390
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetLibraryInfo.td
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Analysis/MemoryBuiltins.cpp
M llvm/lib/Analysis/TargetLibraryInfo.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
M llvm/test/Transforms/OpenMP/add_attributes.ll
M llvm/test/Transforms/OpenMP/nested_parallelism.ll
M llvm/test/Transforms/OpenMP/remove_globalization.ll
M llvm/test/Transforms/OpenMP/replace_globalization.ll
M llvm/test/Transforms/OpenMP/spmdization.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml
M llvm/unittests/Analysis/TargetLibraryInfoTest.cpp
Log Message:
-----------
[OpenMP] Move alloc / free shared from TLI to alloc tags (#190365)
Summary:
Allocation kinds were added after these were introduced. We only needed
the TLI to identify these in the attributor so we can now just use
attributes. Update the usage in OpenMP and drop the TLI interface.
Fixes: https://github.com/llvm/llvm-project/issues/190072
Commit: 98ced6cfd0eb2c4b266161b6f13ace5da9c3e436
https://github.com/llvm/llvm-project/commit/98ced6cfd0eb2c4b266161b6f13ace5da9c3e436
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/Inputs/elf32-basic.yaml
A bolt/test/elf32-basic.test
Log Message:
-----------
[BOLT] Template patchELFPHDRTable and rewriteNoteSections for ELF32 (#189715)
Template patchELFPHDRTable, rewriteNoteSections, markGnuRelroSections,
and discoverStorage to support both ELF32LE and ELF64LE binaries.
Previously these functions were hardcoded for ELF64LE, causing crashes
when processing 32-bit ELF binaries.
The RewriteInstance constructor now accepts ELF32LE objects in addition
to ELF64LE. The ELF_FUNCTION macro is reused (and moved earlier in the
header) to dispatch to the correct template instantiation.
These changes are preparation for adding support to hexagon architecture
in Bolt.
Commit: 1deab59f6f82e75c6f3afd895a222e328ec51150
https://github.com/llvm/llvm-project/commit/1deab59f6f82e75c6f3afd895a222e328ec51150
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Migrate Namespaces to arena allocation (#190048)
This patch allocates the NamespaceInfo types in the local arenas, and
adapts the merging logic for the new list type and its children.
Memory use and performance improve slightly. Micro-benchmarks show a
regression in merge operations due to the more complex list operations.
## Build Clang-Doc Documentation
| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1009.2s | 1002.4s | +8.9% | -0.7% |
| Memory | 86.0G | 43.2G | 43.9G | -49.0% | +1.6% |
## Microbenchmarks (Filtered for >1% Delta)
| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 69.7us | 69.3us | +1.9% | -0.7% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 22.3ms | 24.8ms | -64.8% |
+11.4% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 4.7ms | 4.4ms | -80.9% | -5.7%
|
| BM_BitcodeReader_Scale/512 | 509.4us | 558.7us | 540.2us | +6.0% |
-3.3% |
| BM_BitcodeReader_Scale/64 | 114.8us | 119.2us | 117.0us | +1.9% |
-1.8% |
| BM_EmitInfoFunction | 1.6us | 1.6us | 1.6us | -1.1% | +0.8% |
| BM_Index_Insertion/10 | 2.3us | 4.2us | 3.7us | +61.7% | -11.3% |
| BM_Index_Insertion/10000 | 3.1ms | 5.4ms | 4.9ms | +56.8% | -9.1% |
| BM_Index_Insertion/4096 | 1.3ms | 2.2ms | 2.0ms | +54.5% | -8.2% |
| BM_Index_Insertion/512 | 153.6us | 259.6us | 236.7us | +54.1% | -8.8%
|
| BM_Index_Insertion/64 | 18.1us | 30.7us | 27.9us | +54.5% | -9.0% |
| BM_JSONGenerator_Scale/10 | 36.8us | 37.6us | 36.6us | -0.7% | -2.7% |
| BM_JSONGenerator_Scale/4096 | 33.7ms | 34.3ms | 34.2ms | +1.4% | -0.3%
|
| BM_JSONGenerator_Scale/64 | 222.4us | 225.6us | 220.2us | -1.0% |
-2.4% |
| BM_Mapper_Scale/10 | 2.5ms | 2.5ms | 2.5ms | -1.4% | -1.7% |
| BM_Mapper_Scale/10000 | 104.3ms | 109.3ms | 105.9ms | +1.6% | -3.1% |
| BM_Mapper_Scale/4096 | 44.3ms | 43.9ms | 44.7ms | +0.8% | +1.8% |
| BM_Mapper_Scale/512 | 7.6ms | 7.6ms | 7.6ms | +0.8% | +1.2% |
| BM_MergeInfos_Scale/10000 | 12.2ms | 1.6ms | 2.0ms | -83.6% | +28.7% |
| BM_MergeInfos_Scale/2 | 1.9us | 1.7us | 1.7us | -8.1% | +0.9% |
| BM_MergeInfos_Scale/4096 | 2.8ms | 520.5us | 557.4us | -79.9% | +7.1%
|
| BM_MergeInfos_Scale/512 | 68.9us | 37.9us | 39.9us | -42.0% | +5.3% |
| BM_MergeInfos_Scale/64 | 10.3us | 6.3us | 6.5us | -36.7% | +2.7% |
| BM_MergeInfos_Scale/8 | 2.8us | 2.2us | 2.2us | -20.7% | +1.2% |
| BM_SerializeFunctionInfo | 25.5us | 25.8us | 26.1us | +2.1% | +1.1% |
Commit: c34c0442ee1fe400dc35a7dd7776d48ad65768dd
https://github.com/llvm/llvm-project/commit/c34c0442ee1fe400dc35a7dd7776d48ad65768dd
Author: lntue <lntue at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M libc/src/__support/FPUtil/FPBits.h
M libc/src/__support/RPC/rpc_server.h
M libc/src/__support/float_to_string.h
M libc/src/stdio/printf_core/float_dec_converter.h
M libc/src/stdio/printf_core/float_dec_converter_limited.h
M libc/src/stdio/printf_core/float_hex_converter.h
M libc/src/stdio/printf_core/float_inf_nan_converter.h
M libc/src/stdio/printf_core/parser.h
M libc/src/stdio/scanf_core/converter_utils.h
M libc/test/shared/CMakeLists.txt
A libc/test/shared/shared_rpc_test.cpp
A libc/test/shared/shared_str_to_num_test.cpp
Log Message:
-----------
[libc] Add str_to_* and rpc_* shared tests. (#190351)
Also fix several things for LIBC_TYPES_LONG_DOUBLE_IS_DOUBLE_DOUBLE to
make them build.
Commit: 1bbcc5ea51b17b402c75382dddf9cf1cd7dac3a1
https://github.com/llvm/llvm-project/commit/1bbcc5ea51b17b402c75382dddf9cf1cd7dac3a1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
Log Message:
-----------
[lldb] Fix the macOS builld after address size was removed from Stream (#190399)
This fixes the macOS build after #190375.
Commit: 073284144047657f75121c59682f67601775370c
https://github.com/llvm/llvm-project/commit/073284144047657f75121c59682f67601775370c
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
Revert "[lldb/test] Codesign executables built with custom Makefile rules" (#190398)
Reverts llvm/llvm-project#189902 because this seems to cause hangs.
Commit: c061f33f66320f09cd5ffdebfc01b958a97e0cef
https://github.com/llvm/llvm-project/commit/c061f33f66320f09cd5ffdebfc01b958a97e0cef
Author: SiliconA-Z <gfunni234 at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
A llvm/test/CodeGen/ARM/cmp-to-cmn.ll
Log Message:
-----------
[ARM] Add new test that will demonstrate the cmn node in the ARM backend (NFC) (#179282)
No code changes yet, but this is going to change once the cmn node lands
in the backend.
Commit: 9471fabf8ab15b1dc03834a1b7b7d20a038a4656
https://github.com/llvm/llvm-project/commit/9471fabf8ab15b1dc03834a1b7b7d20a038a4656
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGen/struct-passing.c
Log Message:
-----------
[clang] Fix issues with const/pure on varargs function. (#190252)
There are two related issues here. On the declaration/definition side,
we need to make sure the markings are conservative. Then on the caller
side, we need to make sure we don't access parameters that don't exist.
Fixes #187535.
Commit: 77e32a749f3eff940908afe4e2f44ab4199ce35e
https://github.com/llvm/llvm-project/commit/77e32a749f3eff940908afe4e2f44ab4199ce35e
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M flang/lib/Semantics/check-cuda.cpp
M flang/test/Semantics/cuf09.cuf
Log Message:
-----------
[flang][cuda] Avoid false semantic error on unified array component (#190389)
Commit: 6f68e585196529152a31252610bcf0e0f3d048bb
https://github.com/llvm/llvm-project/commit/6f68e585196529152a31252610bcf0e0f3d048bb
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
Log Message:
-----------
offload: Parse triple using to identify amdgcn-amd-amdhsa (#190319)
Avoid hardcoding the exact triple.
Commit: c7824ac669fce1c9334d8dac7d1c6b579cbf2c98
https://github.com/llvm/llvm-project/commit/c7824ac669fce1c9334d8dac7d1c6b579cbf2c98
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Remove stale comment. NFC (#190275)
Missed removing in #188653
Commit: 64987a9cccd62c082c6271e7c815794a61cdcad3
https://github.com/llvm/llvm-project/commit/64987a9cccd62c082c6271e7c815794a61cdcad3
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang-tools-extra/clang-doc/Representation.h
Log Message:
-----------
[clang-doc] Enforce arena allocated types are trivially destructible (#190049)
We can enforce at compile-time that the types we want to place in the
arenas are always safe to allocate there.
Commit: 36e781ceb4c09e69e407d9c80f7ae0a83ed89f03
https://github.com/llvm/llvm-project/commit/36e781ceb4c09e69e407d9c80f7ae0a83ed89f03
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
Log Message:
-----------
clang: Remove dead null toolchain check (#190402)
Commit: 26e1df20f8a0b5fe0a967c345f6316bd794b9729
https://github.com/llvm/llvm-project/commit/26e1df20f8a0b5fe0a967c345f6316bd794b9729
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/unittests/Support/raw_socket_stream_test.cpp
Log Message:
-----------
[llvm][SupportTests] Fix a race condition in temporary socket construction (#190404)
createUniquePath doesn't make an exclusive lock on the filename until
the socket is created, and thus the removal step in these tests was
creating a TOCTOU race. Instead, arrange for the file to be cleaned up
*after* we're done with it.
rdar://142847430
Commit: 55bcc05a72c2a822d6085d8898c5699d0f4c28dc
https://github.com/llvm/llvm-project/commit/55bcc05a72c2a822d6085d8898c5699d0f4c28dc
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
A llvm/utils/create_template_mca_tests.py
Log Message:
-----------
[utils][MCA] Add a helper script to create input-file-based tests (#190074)
This is a helper script to create llvm-mca tests that follow the style
described in #173926 . That is, instead of putting both the input
instructions and CHECK lines in the same file, we consolidate all input
(files) into a single place, read by their `.test` files counterpart to
check the per-processor results.
The script added by this patch will enumerate each (`.s`) input files
and create the corresponding `.test` file, parameterized by the provided
`--triple` and `--cpu` options. Users also have the option to exclude
certain input files or add additional `llvm-mca` / `FileCheck`
arguments.
Commit: 3f37512c8fcfd4c26b7eed46a04edec8d763e2b1
https://github.com/llvm/llvm-project/commit/3f37512c8fcfd4c26b7eed46a04edec8d763e2b1
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/include/clang/Basic/Diagnostic.h
M clang/unittests/Basic/DiagnosticTest.cpp
Log Message:
-----------
[DiagnosticInfo] Allow std::string_view in DiagnosticBuilder operator<<. (#190374)
After a68ae7b0cc0922b79114aabe8cf1ec8dc68524d7, calling `<<` with a
`std::string_view` gives:
```
clang/include/clang/Basic/Diagnostic.h:1319:8: error: use of overloaded operator '<<' is ambiguous (with operand types 'const StreamingDiagnostic' and 'const std::string_view')
1319 | DB << V;
| ~~ ^ ~
```
Commit: beb8b67a6a133cbd5ab1364d51ab5a337c7b34ee
https://github.com/llvm/llvm-project/commit/beb8b67a6a133cbd5ab1364d51ab5a337c7b34ee
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
M llvm/test/CodeGen/RISCV/rvv/expandload.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-int.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-select-addsub.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-concat.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-fp-interleave.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int-interleave.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmadd-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vitofp-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmax-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmaxu-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmin-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vminu-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu-vp.ll
Log Message:
-----------
[RISCV] Allow coalesceVSETVLIs to move an LI if it allows a vsetvli to be mutated. (#190287)
If the AVL is provided by an LI, move it earlier if it allows us to
mutate the prior vsetvli.
Assisted-by: Claude Sonnet 4.5
Commit: 52568a54d98b6c12b0cbc062ff24f5d7b986ffdc
https://github.com/llvm/llvm-project/commit/52568a54d98b6c12b0cbc062ff24f5d7b986ffdc
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/source/Core/ModuleList.cpp
M lldb/test/Shell/Platform/AutoLoad/Darwin/dsym-python-script-name-warnings.test
Log Message:
-----------
[lldb] Keep the existing behavior for untrusted dSYMs (#190407)
This patch does two thing:
- It reverts to the previous behavior of warning for untrusted dSYMs.
- It includes whether a dSYM is trusted or untrusted in the warning
output.
My reasoning is that there's no tooling for automatically signing dSYMs
and therefore we shouldn't change the behavior until this is more
common. The inclusion of whether the dSYM is signed or not is the first
step towards advertising the existence of the feature.
This now also means the release note I added in #189444 is correct
(again).
Commit: 5c355ef216b20c9b80811987c7daf1fa27cf54cd
https://github.com/llvm/llvm-project/commit/5c355ef216b20c9b80811987c7daf1fa27cf54cd
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/test/CodeGenCXX/pfp-load-store.cpp
Log Message:
-----------
Remove unnecessary -O1 from clang command.
It is generally inappropriate to pass -O flags to IRGen tests because
it makes them sensitive to optimizer behavior. #186548 makes a change to
optimizer behavior that would cause this test to fail without this change.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190417
Commit: a7aa857e9b577350051b07118705f137b4aa4a60
https://github.com/llvm/llvm-project/commit/a7aa857e9b577350051b07118705f137b4aa4a60
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-format/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker/BUILD.gn
Log Message:
-----------
gn build: Port d08ebbe8eba1
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190418
Commit: 18268ebc760d4a07dc54858f28791dcf130300ee
https://github.com/llvm/llvm-project/commit/18268ebc760d4a07dc54858f28791dcf130300ee
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Frontend/OpenMP/BUILD.gn
Log Message:
-----------
gn build: Port 7b2aa02a33df
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190419
Commit: 463f6cb576fc90bd4ffdf56fe9b19e42ea02604d
https://github.com/llvm/llvm-project/commit/463f6cb576fc90bd4ffdf56fe9b19e42ea02604d
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M libc/src/signal/linux/CMakeLists.txt
M libc/src/signal/linux/sigaction.cpp
M libc/src/signal/linux/signal_utils.h
M libc/src/spawn/linux/CMakeLists.txt
M libc/src/spawn/linux/posix_spawn.cpp
M libc/src/stdlib/linux/CMakeLists.txt
M libc/src/stdlib/linux/abort.cpp
A libc/src/stdlib/linux/abort_utils.h
M libc/test/integration/src/stdlib/CMakeLists.txt
A libc/test/integration/src/stdlib/abort_test.cpp
Log Message:
-----------
[libc] update abort implementation and lift it for internal usage (#189756)
Commit: b0a54bec9b2daf4a736d77799d4589c84dd4cccb
https://github.com/llvm/llvm-project/commit/b0a54bec9b2daf4a736d77799d4589c84dd4cccb
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Fixes c34c0442ee1fe400dc35a7dd7776d48ad65768dd (#190416)
Commit: d6534f437d6319c67cdb6b7df4358f9b3e738df0
https://github.com/llvm/llvm-project/commit/d6534f437d6319c67cdb6b7df4358f9b3e738df0
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M libc/src/signal/linux/signal_utils.h
Log Message:
-----------
[libc][signal] remove wrongly added constexpr (#190424)
Hotfix for CI failure
Commit: 00d713446e2398358406c1b8824516b23669bff4
https://github.com/llvm/llvm-project/commit/00d713446e2398358406c1b8824516b23669bff4
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M flang/lib/Semantics/check-cuda.cpp
A flang/test/Semantics/cuf25.cuf
Log Message:
-----------
[flang][cuda] Do not flag dummy arg component as host array (#190431)
Commit: 46411f384d68939f666c3464b63694dce5671a97
https://github.com/llvm/llvm-project/commit/46411f384d68939f666c3464b63694dce5671a97
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M lldb/test/Shell/Platform/AutoLoad/Darwin/dsym-python-script.test
Log Message:
-----------
[lldb] Update dsym-python-script.test for #190407 (#190432)
Commit: 9c0a9bb3c6073c39b90e77963eab6792342b9984
https://github.com/llvm/llvm-project/commit/9c0a9bb3c6073c39b90e77963eab6792342b9984
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Add support for reducing to scalar in sg to wi pass (#190193)
Commit: b5936d49892aad74601f0d806c64252c42b5e536
https://github.com/llvm/llvm-project/commit/b5936d49892aad74601f0d806c64252c42b5e536
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
Log Message:
-----------
[MLIR][XeGPU] Remove verifyLayouts from sg to wi pass (#190360)
The verifyLayouts function walked the IR before distribution and failed
the pass if any XeGPU anchor op or vector-typed result was missing a
layout attribute. This was added as a temporary guard while the pass was
being developed.
Now we add target check for each op.
Commit: 6f68502a98bb0fdc38b05cd992268e1245a9722c
https://github.com/llvm/llvm-project/commit/6f68502a98bb0fdc38b05cd992268e1245a9722c
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental.mlir
Log Message:
-----------
[MLIR][XeGPU] Port tests from the XeGPUSubgroupDistribute to XeGPUSgToWiDistributeExperimental (#189747)
This PR ports tests from subgroup-distribute.mlir (old pass) to
sg-to-wi-experimental.mlir (new pass)
Commit: 5cd98f966e7883212ef161d8986d42a23297cfc3
https://github.com/llvm/llvm-project/commit/5cd98f966e7883212ef161d8986d42a23297cfc3
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
Log Message:
-----------
[RISCV] Select add(vec, splat(scalar)) to PADD_*S for P extension (#190303)
Commit: 3080198cc372da34191c7f4bf21d9c2a9ab18f1a
https://github.com/llvm/llvm-project/commit/3080198cc372da34191c7f4bf21d9c2a9ab18f1a
Author: Petr Hosek <phosek at google.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/test/SemaCXX/using-if-exists.cpp
Log Message:
-----------
Revert "[clang] Fix conflicting declaration error with using_if_exists" (#190441)
Reverts llvm/llvm-project#167646
Commit: e6e388cff07fdcea4cfae75dc205bba19d397af3
https://github.com/llvm/llvm-project/commit/e6e388cff07fdcea4cfae75dc205bba19d397af3
Author: Zachary Yedidia <zyedidia at gmail.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M llvm/include/llvm/MC/MCLFI.h
M llvm/include/llvm/MC/TargetRegistry.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCLFI.cpp
A llvm/test/MC/AArch64/LFI/abi-note.s
Log Message:
-----------
[LFI][MC] Call setLFIRewriter during LFIMCStreamer initialization (#188625)
Calls `Streamer.setLFIRewriter` during generic LFIMCStreamer
initialization rather than requiring it to be done during
backend-specific initialization. This better follows the existing
conventions in `create*` functions in `TargetRegistry.h`.
Also re-adds the call to initSections for LFI in `llvm-mc.cpp`
(necessary in order to emit the ABI Note section), along with a test to
make sure ABI note emission with the rewriter is working.
Commit: 38f89453620eade48d8486483a0ccebfff446f80
https://github.com/llvm/llvm-project/commit/38f89453620eade48d8486483a0ccebfff446f80
Author: Yue Huang <30948580+AdUhTkJm at users.noreply.github.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
M mlir/lib/Analysis/Presburger/Matrix.cpp
Log Message:
-----------
[MLIR][Presburger] Fix stale pivot in Smith normal form (#189789)
The pivot used to fix divisibility in Smith normal form is stale. This
will not affect correctness, but can lower efficiency since the outer
loop will be executed more times.
Thanks for @benquike of discovering this.
Commit: bc3386c1b9a5bff82ce4baaf4254fc4268f69ff4
https://github.com/llvm/llvm-project/commit/bc3386c1b9a5bff82ce4baaf4254fc4268f69ff4
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-04-03 (Fri, 03 Apr 2026)
Changed paths:
A llvm/test/tools/dsymutil/AArch64/pseudo-probe.test
M llvm/tools/dsymutil/MachOUtils.cpp
Log Message:
-----------
[dsymutil] Add support for pseudo probes (#186877)
This patch teaches dsymutil to transfer the `__PSEUDO_PROBE` segment and
`__probes` and `__probe_descs` section when creating dSYMs. Without this, both probe sections will get an invalid offset in the dsym bundle.
Commit: e0908cd7a5297bd85fea80c9ccc0aa707aacc761
https://github.com/llvm/llvm-project/commit/e0908cd7a5297bd85fea80c9ccc0aa707aacc761
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-sin-cos-f16-f32.ll
M llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
M llvm/test/CodeGen/AMDGPU/bf16-conversions.ll
M llvm/test/CodeGen/AMDGPU/code-size-estimate-gfx1250.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.bf16.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_elt.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cos.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.log.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.make.buffer.rsrc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sin.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sqrt.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.cos.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.sin.bf16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-bf16.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi-bf16.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo-bf16.ll
M llvm/test/CodeGen/AMDGPU/preload-implicit-kernargs.ll
M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-flat.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-global.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-scratch.ll
M llvm/test/CodeGen/AMDGPU/vgpr-lowering-gfx1250.mir
Log Message:
-----------
[AMDGPU] Specialize gfx1250 codegen tests for fake and real t16. NFC. (#190390)
This is preparation of turning on real true16, so we can easily
apply it or revert.
Commit: 093c6391b2f69ea85e6baabdfc4e3cdc95a3321c
https://github.com/llvm/llvm-project/commit/093c6391b2f69ea85e6baabdfc4e3cdc95a3321c
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-liveout.ll
Log Message:
-----------
[LV] Add additional tests with IV live-outs. (NFC) (#190395)
Add additional tests with IV live-out users, for which epilogue
vectorization is not enabled yet.
Also modernize check lines.
Commit: da0aec299056b858e92ed0dc252e934ecdd659ea
https://github.com/llvm/llvm-project/commit/da0aec299056b858e92ed0dc252e934ecdd659ea
Author: Anders Waldenborg <anders at 0x63.nu>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
A clang/test/Driver/Inputs/fake_ld/ld
M clang/test/Driver/solaris-ld-sld.c
Log Message:
-----------
[clang][test] Fix solaris ld driver test to not assume gnu ld location (#186250)
Commit: 48c59d1a9781107b219d0afee91f64a51758856c
https://github.com/llvm/llvm-project/commit/48c59d1a9781107b219d0afee91f64a51758856c
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
A llvm/test/Transforms/DeadStoreElimination/dead-stores-via-dom-conditions.ll
Log Message:
-----------
[DSE] Introduce tests for PR181709 (NFC) (#190454)
Commit: d27cbc5fa924595b28468630eb58ad01c5628694
https://github.com/llvm/llvm-project/commit/d27cbc5fa924595b28468630eb58ad01c5628694
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/test/Transforms/DeadStoreElimination/dead-stores-via-dom-conditions.ll
Log Message:
-----------
[DSE] Introduce `eliminateRedundantStoresViaDominatingConditions` (#181709)
While optimizing tautological assignments, if there exists a dominating
condition that implies the value being stored in a pointer, and such a
condition appears in a node that dominates the store via equality edge,
then subsequent stores may be redundant, if no write occurs in between.
This is achieved via a DFS top-down walk of the dom-tree, collecting
dominating conditions and propagating them to each subtree, popping them
upon backtracking.
This also generalizes `dominatingConditionImpliesValue` transform, which
was previously taking into account only the immediate dominator.
Compile-time:
https://llvm-compile-time-tracker.com/compare.php?from=f8906704104e446a7482aeca32d058b91867e05c&to=24c5d61f1e28acbe6a59ea4e9a5da0ffcee3bf1a&stat=instructions:u.
Compile-time w/ limit on recursion:
https://llvm-compile-time-tracker.com/compare.php?from=24c5d61f1e28acbe6a59ea4e9a5da0ffcee3bf1a&to=9889567fe8a0515ab895b22003c93fabfd9ac4e5&stat=instructions:u.
Seems to alleviate the small regression in stage2-O3, but seemingly adds
one in stage2-O0-g.
Commit: a955b3cabab66bba586fdd14f56ab251c50dfc05
https://github.com/llvm/llvm-project/commit/a955b3cabab66bba586fdd14f56ab251c50dfc05
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
A llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment-fold-tail.ll
A llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment.ll
M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
Log Message:
-----------
[LV] Enable scalable FindLast on RISCV. (#184931)
This patch enables FindLast reduction vectorization with scalable vectors
on RISCV.
Commit: 4066590d8ef3ef52b5654a891a7c8073452d280d
https://github.com/llvm/llvm-project/commit/4066590d8ef3ef52b5654a891a7c8073452d280d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/hip-toolchain-no-rdc.hip
Log Message:
-----------
clang: Stop assuming one toolchain covers all GPUArchs (#190369)
Commit: 948a64720b1ec018e13b4bb8250482f9615d7856
https://github.com/llvm/llvm-project/commit/948a64720b1ec018e13b4bb8250482f9615d7856
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M polly/include/polly/ScopBuilder.h
M polly/include/polly/ScopInfo.h
M polly/include/polly/Support/SCEVAffinator.h
M polly/lib/Analysis/ScopBuilder.cpp
M polly/lib/Analysis/ScopInfo.cpp
M polly/lib/Support/SCEVAffinator.cpp
M polly/lib/Support/ScopHelper.cpp
A polly/test/ScopInfo/issue190128.ll
M polly/test/ScopInfo/zero_ext_of_truncate.ll
M polly/test/ScopInfo/zero_ext_of_truncate_2.ll
Log Message:
-----------
[Polly] Assumptions used to derive domain must not be pruned by that domain (#190436)
The code that emits the conditions for whether a statement is executed
by checking whether we are in the statement's domain may apply
assumptions (such as an integer truncation being reversible). Later code
then assumes that these assumptions are only relevent for then the
statement is executed, but actually it is used for determining whether
it is executed.
Break this circular reasoning by introducing an `IsInsideDomain` flag
that can be set when the domain has not been verified yet.
Fixes #190128
Thanks to @thapgua for the bug report
Commit: 6565e08c1ec76359f88ca87b790218e7a8ea7cbb
https://github.com/llvm/llvm-project/commit/6565e08c1ec76359f88ca87b790218e7a8ea7cbb
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M lld/COFF/Config.h
M lld/COFF/Driver.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/Options.td
A lld/test/COFF/discard-section.test
Log Message:
-----------
[lld][COFF] Add /discard-section option to discard input sections by name (#189542)
This provides a general mechanism similar to ELF linker scripts'
/DISCARD/ for COFF. Though the intention is to explicitly discard
.llvmbc and .llvmcmd sections. (See discussion in #150897, #188398
for more details.)
Commit: 47d80039483c60040d0931df69813e15480ff7b2
https://github.com/llvm/llvm-project/commit/47d80039483c60040d0931df69813e15480ff7b2
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M polly/include/polly/ScopInfo.h
M polly/lib/Analysis/ScopBuilder.cpp
M polly/lib/Analysis/ScopInfo.cpp
Log Message:
-----------
[Polly][NFC] Use factory pattern (#190456)
To (theoretically) reduce coupling of Scop and ScopBuilder.
Commit: 5e0efc0f1d79f6d0050efa0d21a47dd95ace5ddf
https://github.com/llvm/llvm-project/commit/5e0efc0f1d79f6d0050efa0d21a47dd95ace5ddf
Author: Alan Li <me at alanli.org>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
M llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/LowLevelTypeUtils.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGenTypes/LowLevelType.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-subvector.ll
M llvm/test/CodeGen/AArch64/GlobalISel/pr168872.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-gep.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument-multiple.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument.ll
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid0.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid1.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid2.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err0.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err1.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err10.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err11.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err12.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err13.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err14.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err15.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err2.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err4.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err5.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err6.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err7.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err8.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err9.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid0.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid1.mir
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
M llvm/test/TableGen/GlobalISelEmitter/HwModes.td
M llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
A llvm/unittests/CodeGen/GlobalISel/IRTranslatorBF16Test.cpp
M llvm/unittests/CodeGen/LowLevelTypeTest.cpp
M llvm/utils/TableGen/Common/CMakeLists.txt
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.h
Log Message:
-----------
Reland "[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)" (#188502)
This is a reland of https://github.com/llvm/llvm-project/pull/155107
along with a fix for old gcc builds.
This patch is reverted in
https://github.com/llvm/llvm-project/pull/188344 due to compilation
failures described in
https://github.com/llvm/llvm-project/pull/155107#issuecomment-4121292756
The fix to old gcc builds is to remove `constexpr` modifiers in the
original patch in 0721d8e7768c011b8cf2d4d223ca6eca3392b1f9
Commit: fb3fada084c100bbba711a259cc795f110fa8bff
https://github.com/llvm/llvm-project/commit/fb3fada084c100bbba711a259cc795f110fa8bff
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M polly/include/polly/ScopBuilder.h
M polly/lib/Analysis/ScopBuilder.cpp
Log Message:
-----------
[Polly][NFC] Convert ScopBuilder::getPwAff() to isl++ (#190458)
Commit: 230d757a134b3a1c144db2a9bad2a91e3b7f438e
https://github.com/llvm/llvm-project/commit/230d757a134b3a1c144db2a9bad2a91e3b7f438e
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M mlir/lib/Reducer/OptReductionPass.cpp
Log Message:
-----------
[mlir][reducer] make opt-reduction pass clone topOp after check (NFC) (#189356)
To avoid potential memory leaks, this PR defers the ModuleOp cloning
until after the verification check. If the check fails, the
moduleVariant might not be properly deallocated(original
implementation), leading to a memory leak. Therefore, this PR ensures
that the clone operation is only performed after a successful check. It
is part of https://github.com/llvm/llvm-project/pull/189353.
Commit: a8ad2a7d7311e9ed3b238f533085b046f9f5f31d
https://github.com/llvm/llvm-project/commit/a8ad2a7d7311e9ed3b238f533085b046f9f5f31d
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M lldb/include/lldb/lldb-defines.h
M lldb/source/Interpreter/Options.cpp
A lldb/test/Shell/Commands/command-alias-joined-arg.test
Log Message:
-----------
[lldb] Fix alias parsing with joined options (#190301)
Fixes a crash with the following alias, which I use for printing the
contents of pointer variables:
```
command alias vp v -P1
```
At some point in the recent-ish past, parsing this alias has started
crashing lldb. The problem is code that assumes the option and its value
are separate. This assumption causes an index past the end of a vector.
This fix changes `FindArgumentIndexForOption`. The function now returns
a pair of indexes, the first index is the option, the second index is
the index of the value. In the case of joined options like `-P1`, the
two indexes are the same.
Commit: ee405335f07c864e8f8340f9ae91db401423a447
https://github.com/llvm/llvm-project/commit/ee405335f07c864e8f8340f9ae91db401423a447
Author: Jinsong Ji <jinsong.ji at intel.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/include/llvm/IR/DiagnosticInfo.h
Log Message:
-----------
DiagnosticInfo: Fix stack-use-after-scope in DiagnosticInfoStackSize (#190442)
The string literal "stack frame size" passed to the base class
constructor created a temporary Twine that was destroyed after
the base constructor completed, leaving a dangling reference.
Fix by storing the Twine as a member variable in the derived class,
ensuring it lives as long as the diagnostic object itself.
Fixes ASAN stack-use-after-scope error in
Clang :: Misc/backend-stack-frame-diagnostics-fallback.cpp
LLVM :: CodeGen/X86/2007-04-24-Huge-Stack.ll
LLVM :: CodeGen/X86/huge-stack-offset.ll
LLVM :: CodeGen/X86/huge-stack-offset2.ll
LLVM :: CodeGen/X86/huge-stack.ll
LLVM :: CodeGen/X86/large-displacements.ll
LLVM :: CodeGen/X86/stack-clash-extra-huge.ll
LLVM :: CodeGen/X86/warn-stack.ll
LLVM :: CodeGen/X86/win64-stackprobe-overflow.ll
Commit: 7c60d08056e13ac9ab0282887e0d44b6928caff5
https://github.com/llvm/llvm-project/commit/7c60d08056e13ac9ab0282887e0d44b6928caff5
Author: Kartik Ohlan <kartik7ohlan at gmail.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/known-fpclass-splat-vector.ll
M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
Log Message:
-----------
[DAG] computeKnownFPClass - add ISD::SPLAT_VECTOR handling (#189780)
Fixes #189481
Implement ISD::SPLAT_VECTOR in SelectionDAG::computeKnownFPClass to
correctly propagate floating-point properties from scalar operands to
vectors.
Added AArch64 and RISC-V test coverage
Commit: 47cd798670142a475337275c5edc3564a3bc1589
https://github.com/llvm/llvm-project/commit/47cd798670142a475337275c5edc3564a3bc1589
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
R llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment-fold-tail.ll
R llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment.ll
M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
Log Message:
-----------
Revert "[LV] Enable scalable FindLast on RISCV." (#190463)
Reverts llvm/llvm-project#184931 since it crash llvm-test-suite.
https://lab.llvm.org/buildbot/#/builders/210/builds/9807
Commit: ff4c6fe24ecb7857d119fe4bcaa8189f755973d7
https://github.com/llvm/llvm-project/commit/ff4c6fe24ecb7857d119fe4bcaa8189f755973d7
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
M polly/lib/Support/SCEVAffinator.cpp
M polly/test/CodeGen/non_affine_float_compare.ll
Log Message:
-----------
[SCEV] Move NoWrapFlags definition outside SCEV scope, use for SCEVUse. (#190199)
The patch moves out of SCEV's scope so they can be re-used for SCEVUse.
SCEVUse gets an additional getNoWrapFlags helper that returns the union
of the expressions SCEV flags and the use-specific flags.
SCEVExpander has been updated to use this new helper.
In order to avoid other changes, the original names are exposed via
constexpr in SCEV. Not sure if there's a nicer way. One alternative
would be to define the enum in struct, and have SCEV inherit from it.
The patch also clarifies that the SCEVUse flags encode NUW/NSW, and
hides getInt, setInt, etc to avoid potential mis-use.
PR: https://github.com/llvm/llvm-project/pull/190199
Commit: 420111e9e4159bdf13fc4014c437aa712eba85ad
https://github.com/llvm/llvm-project/commit/420111e9e4159bdf13fc4014c437aa712eba85ad
Author: Ivan R. Ivanov <iivanov at nvidia.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/test/Dialect/LLVMIR/roundtrip.mlir
Log Message:
-----------
[mlir][LLVM] Fix incorrect verification of atomicrmw f{min,max}imumnum (#190474)
Fix llvm.atomicrmw fminimumnum and fmaximumnum to correctly take the
float operation verification path.
Commit: 27a762c1a31726219f00c52ed957f1a48b3cd390
https://github.com/llvm/llvm-project/commit/27a762c1a31726219f00c52ed957f1a48b3cd390
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M lldb/source/Target/Process.cpp
Log Message:
-----------
[lldb][NFC] Add helper function for computing whether to show Process error (#190189)
Commit: ba3dbbfff3afda3e3d3fa2a2380e41d0a8a95c17
https://github.com/llvm/llvm-project/commit/ba3dbbfff3afda3e3d3fa2a2380e41d0a8a95c17
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M lldb/include/lldb/Utility/Log.h
M lldb/source/Breakpoint/BreakpointResolverName.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Target/ThreadPlan.cpp
M lldb/source/Utility/Log.cpp
Log Message:
-----------
[lldb] Remove Log::Error and Log::Warning (NFC) (#190440)
Commit: b5e7dbb30ace6c9f7b7920462e209bb08e7ffa56
https://github.com/llvm/llvm-project/commit/b5e7dbb30ace6c9f7b7920462e209bb08e7ffa56
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/lib/IR/Value.cpp
Log Message:
-----------
[IR] Use iteration limit in stripPointerCastsAndOffsets (#190472)
Using a SmallPtrSet is not quite free for such a frequently called
operation. However, calls on ill-formed IR are not particularly rare, so
some iteration limit is needed. Therefore, use a simple counter.
Termination statistics on a Clang Release build for N>5:
2448 N=6
1295 N=7
480 N=8
294 N=9
160 N=10
14350 (endless loop)
Therefore, bound the number of iterations by 12, which should cover most
practically relevant cases.
It is worth noting that _all_ of the endless loop cases have the
following form:
%incdec.ptr = getelementptr inbounds nuw i8, ptr %incdec.ptr, i64 <N>
I haven't investigated where exactly this comes from, though; but it
occurred frequent enough to add a special case for this.
Commit: f959327bc8a0cc4d88d7db58367d5bfde12eb7c2
https://github.com/llvm/llvm-project/commit/f959327bc8a0cc4d88d7db58367d5bfde12eb7c2
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M polly/include/polly/ScopBuilder.h
M polly/lib/Analysis/ScopBuilder.cpp
Log Message:
-----------
[Polly][NFC] Convert ScopBuilder::buildUnsignedConditionSets() to isl++ (#190487)
Commit: 0996887138b2c926660d346a561a37ae38ba73fa
https://github.com/llvm/llvm-project/commit/0996887138b2c926660d346a561a37ae38ba73fa
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M llvm/test/tools/dsymutil/AArch64/pseudo-probe.test
Log Message:
-----------
[dsymutil] Add REQUIRES: host-byteorder-little-endian to pseudo-probe test (#190482)
Commit: d400080063de2923bf1ae95c95c5b17975e5c66a
https://github.com/llvm/llvm-project/commit/d400080063de2923bf1ae95c95c5b17975e5c66a
Author: Maarten Steevens <maarten.steevens at gmail.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
Log Message:
-----------
[lldb] Inherit Host::GetEnvironment() when launching a wasm runtime (#190476)
Some WebAssembly runtimes might use environment variables such as `HOME`
or `XDG_CONFIG_HOME` to store configuration files, additionally some VMs
might allow wasm modules to read environment variables from the host.
Currently, if a runtime is launched using the WebAssembly platform it
doesn't inherit the environment. As a result wasm runtimes and modules
are unable to read from environment variables and might even fail to
launch (if the config file is required). This PR aims to resolve this
issue, I have tested this with the WARDuino runtime and my WIP gdbstub.
Commit: 7fd02b32f9016473e4ff8478c90fc395a930429c
https://github.com/llvm/llvm-project/commit/7fd02b32f9016473e4ff8478c90fc395a930429c
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M clang/test/SemaCXX/source_location.cpp
Log Message:
-----------
[clang] NFC: Add test case for #178324 and mark it as fixed (#190490)
Issue #178324 was actually fixed by #187755
We lost the "declaration does not declare anything" warning since the
regression was introduced, but that was because:
1) Since #78436 we treat __builtin_FUNCSIG in a dependent context
effectivelly as if it contained a template parameter.
2) Our decltype implementation treats eexpressions containing template
parameters as if they were completely opaque (but alas this goes against
the spec, which says in [temp.type]p4 this should be looking only at
type dependence).
3) Since the decltype is opaque, we don't know what lookup will find, so
we can't issue the warning because we don't know if we are going to end
up with a type or an expression.
Fixes #178324
Commit: 17ed1e6c4b0a5f88e087b0868c3972d4d2a4d8bf
https://github.com/llvm/llvm-project/commit/17ed1e6c4b0a5f88e087b0868c3972d4d2a4d8bf
Author: Serosh <janmejayapanda400 at gmail.com>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplate.cpp
M clang/test/SemaCXX/blocks.cpp
Log Message:
-----------
[clang] diagnose block pointer types as invalid for constant template parameters (#190464)
Fixes a crash by making it ill-formed to have a constant template
parameter with a block pointer type.
Fixes #189247
Commit: 00d5f660f46a636bf7130fb8c5a6ea78b5a7f0d0
https://github.com/llvm/llvm-project/commit/00d5f660f46a636bf7130fb8c5a6ea78b5a7f0d0
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-04-04 (Sat, 04 Apr 2026)
Changed paths:
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp
Log Message:
-----------
[offload][CUDA] Fix DLWRAP for memory routines (#190500)
Commit: 257cc5ad89840cdfba4affcc8fe62cf9d02d9017
https://github.com/llvm/llvm-project/commit/257cc5ad89840cdfba4affcc8fe62cf9d02d9017
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang/lib/Sema/SemaConcept.cpp
M clang/test/SemaCXX/cxx2c-fold-exprs.cpp
Log Message:
-----------
[Clang] Fix concept cache for normalized fold expressions (#190312)
When both outer and inner pack substitution indexes are present, we
should cache both. Otherwise we will have wrong cached result.
This is a regression fix so no release note.
Fixes https://github.com/llvm/llvm-project/issues/190169
Commit: 66483dfe34529f990fdf68d8ae7355e3e1cc5e67
https://github.com/llvm/llvm-project/commit/66483dfe34529f990fdf68d8ae7355e3e1cc5e67
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang/include/clang/AST/Expr.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Log Message:
-----------
[clang][AST][NFC] Add default value to `Expr::isConstantInitializer()` parameter (#190313)
Almost every caller passes `false` for `ForRef`, or rather, doesn't care
what the value is. Use a default value instead.
Commit: d08bb68080506f7f270a4dfc27e955a14e30ddfb
https://github.com/llvm/llvm-project/commit/d08bb68080506f7f270a4dfc27e955a14e30ddfb
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M mlir/include/mlir/Reducer/Passes.td
M mlir/lib/Reducer/OptReductionPass.cpp
A mlir/test/mlir-reduce/opt-reduction/dce-pipeline
M mlir/test/mlir-reduce/opt-reduction/dce-test.mlir
Log Message:
-----------
[mlir][reducer] Add opt-pass-file option to opt-reduction pass (#189353)
Currently, the opt-reduction-pass only supports inputting the
optimization pipeline via the command line, which becomes cumbersome
when the pipeline is long. To address this, this PR introduces the
opt-pass-file option. This allows users to save the pipeline in a file
and provide the filename to parse the pipeline.
Commit: 942e1082ac6dccc760af4426491d00015a223c61
https://github.com/llvm/llvm-project/commit/942e1082ac6dccc760af4426491d00015a223c61
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Log Message:
-----------
[CIR] Convert global_visibility from attribute to property (#190488)
Replace CIR_VisibilityAttr with
DefaultValuedProp<EnumProp<CIR_VisibilityKind>>
for global_visibility on GlobalOp and FuncOp. This removes the need for
custom
parse/print functions and simplifies callers to use direct enum values
instead
of wrapping/unwrapping VisibilityAttr.
Commit: e3e4b8481d97880dd595bbc48eff372777053f12
https://github.com/llvm/llvm-project/commit/e3e4b8481d97880dd595bbc48eff372777053f12
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lld/test/wasm/Inputs/libsearch-dyn.s
M lld/test/wasm/dylink.s
M lld/wasm/InputFiles.cpp
M lld/wasm/SymbolTable.cpp
M lld/wasm/SymbolTable.h
M lld/wasm/Symbols.cpp
M lld/wasm/Symbols.h
M llvm/lib/Object/WasmObjectFile.cpp
Log Message:
-----------
[WebAssembly] Add support for shared tags (#188367)
Mostly following the structure of other Shared* constructs
Fixes: #188120
Commit: 199ac48f7373ffb527c84429eacdac9ab68f82ef
https://github.com/llvm/llvm-project/commit/199ac48f7373ffb527c84429eacdac9ab68f82ef
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Target/StackFrame.cpp
Log Message:
-----------
[lldb] Replace ResolveValue() with GetScalar() in DWARFExpression (NFCI) (#185841)
Value::ResolveValue() only does something if the value has an associated
compiler type, which is never set on values used in DWARF expressions.
Simplify code by inlining the method.
Commit: df2de0a26d187d42f55f2d340309c552b1bb0186
https://github.com/llvm/llvm-project/commit/df2de0a26d187d42f55f2d340309c552b1bb0186
Author: serge-sans-paille <sguelton at mozilla.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
Log Message:
-----------
[clang-tidy] Improve bugprone.use-after-move interaction with explicit destructor call. (#188866)
It is valid (although niche) to call an explicit destructor after moving
the object.
Commit: 6bf8279dc2181916907e5f09fdb5c00620412ebd
https://github.com/llvm/llvm-project/commit/6bf8279dc2181916907e5f09fdb5c00620412ebd
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC] correct comment for isScalarEpilogueAllowed() (#190254)
The comment had the opposite meaning of what the function actually does.
Commit: c5a904946a1d5f6eda5eb1f0ceb440135700faa6
https://github.com/llvm/llvm-project/commit/c5a904946a1d5f6eda5eb1f0ceb440135700faa6
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Log Message:
-----------
[LV][NFC] remove dead code in canFoldTailByMasking() (#190263)
Remove unused ReductionLiveOuts variable in `canFoldTailByMasking()`.
The set was being populated with reduction loop exit instructions but
was never actually used anywhere in the function.
Commit: 792fce7cc3d68dc4b304f70df09995839a4b4319
https://github.com/llvm/llvm-project/commit/792fce7cc3d68dc4b304f70df09995839a4b4319
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M libcxx/test/std/ranges/range.adaptors/range.filter/ctor.view_pred.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.view.pass.cpp
Log Message:
-----------
[libc++][ranges][NFC] Format a couple of tests as a prerequisite (#190514)
to https://llvm.org/PR190513 to avoid friction.
Commit: 144c3243800bf2364ace3b3226b4679b03deec4f
https://github.com/llvm/llvm-project/commit/144c3243800bf2364ace3b3226b4679b03deec4f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang/test/Driver/cuda-arch-translation.cu
A clang/test/Driver/offload-arch-translation-amdgpu.cu
Log Message:
-----------
clang: Make --cuda-gpu-arch translation test comprehensive for AMDGPU (#190509)
Commit: 9b5c7d1f91964335b427b26fa43205c4143f87a1
https://github.com/llvm/llvm-project/commit/9b5c7d1f91964335b427b26fa43205c4143f87a1
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M libc/shared/rpc.h
M libc/shared/rpc_util.h
Log Message:
-----------
[libc] Allow RPC interface to be compiled with MSVC (#190483)
Summary:
This should be portable to other compilers so it can support Windows
infrastructure.
I don't really use MSVC but godbolt seems happy:
https://godbolt.org/z/Ysdx1Y1rq
Commit: 0b7f01ad515d83f1f3144a44a1b0145187eff484
https://github.com/llvm/llvm-project/commit/0b7f01ad515d83f1f3144a44a1b0145187eff484
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp
M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-treat-functions-without-specification-as-throwing.cpp
Log Message:
-----------
[clang-tidy] Add frames for bugprone-exception-escape options (#187971)
This patch adds frames emitting for
`bugprone-exception-escape.TreatFunctionsWithoutSpecificationAsThrowing`.
As of AI Usage: Gemini 3 is used for pre-commit reviewing.
Closes https://github.com/llvm/llvm-project/issues/184781
Commit: ba286040c95ea7a15673d6a7f731dc090ffe1fde
https://github.com/llvm/llvm-project/commit/ba286040c95ea7a15673d6a7f731dc090ffe1fde
Author: Devajith <devajith.valaparambil.sreeramaswamy at cern.ch>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M clang/lib/AST/QualTypeNames.cpp
M clang/lib/Interpreter/InterpreterValuePrinter.cpp
M clang/test/Interpreter/pretty-print.cpp
Log Message:
-----------
[clang-repl] Use canonical types in QualTypeToString (#190528)
Use the canonical type when generating type strings to ensure sugared
(e.g. `AutoType`, `DecltypeType`) are resolved before calling
getFullyQualifiedType.
This will revert a few commits that were added to fix these assertions.
---------
Co-authored-by: Harald van Dijk <hdijk at accesssoftek.com>
Commit: eaf0135b77f37974f4d4647eced4c98c076865b3
https://github.com/llvm/llvm-project/commit/eaf0135b77f37974f4d4647eced4c98c076865b3
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
R llvm/test/Transforms/SLPVectorizer/X86/multi-use-bicasted-reduction.ll
A llvm/test/Transforms/SLPVectorizer/X86/multi-use-bitcasted-reduction.ll
Log Message:
-----------
[SLP][NFC]Fix run line for the test, fix test name, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/190537
Commit: a2c16bb59f8f54543f2f89c55e0e7f5f303a43d7
https://github.com/llvm/llvm-project/commit/a2c16bb59f8f54543f2f89c55e0e7f5f303a43d7
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Rename CondSelect to FindLastSelect (NFC). (#190536)
…ns (NFC).
Use the more descriptive name FindLastSelect for the conditional select
that picks between the reduction phi and the IV value.
Split off from approved
https://github.com/llvm/llvm-project/pull/183911/ as suggested.
Commit: 36e495dd903cea000f6c4f51954554c22f39d7da
https://github.com/llvm/llvm-project/commit/36e495dd903cea000f6c4f51954554c22f39d7da
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Use APSInt in CheckSentinel directly (NFC). (#190534)
Simplify the sentinel checking logic by using APSInt and checking for
both a signed and unsigned sentinel in a single call.
Removes the IsSigned argument
Split off from approved
https://github.com/llvm/llvm-project/pull/183911/ as suggested.
Commit: f866ef202c435e38b01992f458286766aae69dfc
https://github.com/llvm/llvm-project/commit/f866ef202c435e38b01992f458286766aae69dfc
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lldb/source/DataFormatters/TypeSynthetic.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Expression/Expression.cpp
M lldb/source/Expression/IRExecutionUnit.cpp
M lldb/source/Host/common/Socket.cpp
M lldb/source/Host/common/TCPSocket.cpp
M lldb/source/Host/macosx/objcxx/Host.mm
M lldb/source/Host/posix/DomainSocket.cpp
M lldb/source/Host/posix/PipePosix.cpp
M lldb/source/Interpreter/Options.cpp
M lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
M lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
M lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
M lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibStdcppSpan.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlAtomic.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlSpan.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlTree.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlUnordered.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
M lldb/source/Plugins/Language/ObjC/NSError.cpp
M lldb/source/Plugins/Language/ObjC/NSException.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp
M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Symbol/CompilerType.cpp
M lldb/source/Symbol/SymbolContext.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/ValueObject/ValueObject.cpp
M lldb/source/ValueObject/ValueObjectRegister.cpp
M lldb/source/ValueObject/ValueObjectSynthetic.cpp
M lldb/test/Shell/SymbolFile/DWARF/x86/DW_TAG_variable-invalid_location.s
M lldb/test/Shell/SymbolFile/DWARF/x86/class-type-nullptr-deref.s
M lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-signature-loop.s
M lldb/test/Shell/Target/target-label.test
M lldb/unittests/Expression/DWARFExpressionTest.cpp
M lldb/unittests/Expression/ExpressionTest.cpp
Log Message:
-----------
[lldb] Bring more diagnostics in compliance with our coding standards (#190410)
The LLVM Coding Standards [1] specify that:
> [T]o match error message styles commonly produced by other tools,
> start the first sentence with a lowercase letter, and finish the last
> sentence without a period, if it would end in one otherwise.
Historically, that hasn't been something we've enforced in LLDB, but in
the past year or so I've started to pay more attention to this in code
reviews. This PR brings more error messages in compliance, further
increasing consistency.
I also adopted `createStringErrorV` where it improved the code as a
drive-by for lines I was already touching.
[1] https://llvm.org/docs/CodingStandards.html#error-and-warning-messages
Assisted-by: Claude Code
Commit: 353ab41001c236593123a5c5c4ad51d5ff40f6ae
https://github.com/llvm/llvm-project/commit/353ab41001c236593123a5c5c4ad51d5ff40f6ae
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lldb/unittests/Host/SocketTest.cpp
Log Message:
-----------
[lldb] Update error message in SocketTest::CreatePair (#190544)
Commit: f8e394b6f8f40b9372aca465c7f198529338ee55
https://github.com/llvm/llvm-project/commit/f8e394b6f8f40b9372aca465c7f198529338ee55
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
Log Message:
-----------
[lldb] Fix section offset of synthesized entry point symbol (#190348)
In the non-ARM case, the offset was left unset, so the symbol
synthesized for the entry point pointed to the start of the containing
section.
As a drive-by change, simplify offset adjustment in ARM case.
Commit: 11e7a49a58e18aded5ebe513b8cd095be440e800
https://github.com/llvm/llvm-project/commit/11e7a49a58e18aded5ebe513b8cd095be440e800
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M lldb/include/lldb/Symbol/DWARFCallFrameInfo.h
R lldb/include/lldb/Utility/VMRange.h
M lldb/source/Core/Section.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Utility/CMakeLists.txt
R lldb/source/Utility/VMRange.cpp
M lldb/unittests/Utility/CMakeLists.txt
M lldb/unittests/Utility/RangeTest.cpp
R lldb/unittests/Utility/VMRangeTest.cpp
Log Message:
-----------
[lldb] Remove VMRange class (NFC) (#190475)
We have a template class `Range` that provides similar functionality and
is much more widely used.
Commit: 9ce30c8dc3ab8718d9818e8995d677e5b883302a
https://github.com/llvm/llvm-project/commit/9ce30c8dc3ab8718d9818e8995d677e5b883302a
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
Log Message:
-----------
[Orc][LibResolver] Fix GNU/Hurd build (#184470)
GNU/Hurd does not put a PATH_MAX static constraint on path lengths. We can instead check the symlink length.
Commit: 4bd1facaed1587929fbbb0833243b5e0d1130c18
https://github.com/llvm/llvm-project/commit/4bd1facaed1587929fbbb0833243b5e0d1130c18
Author: Hicham Omari <hichamomari at hotmail.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/docs/GettingStarted.rst
Log Message:
-----------
[llvm][docs] Fix typo (#190150)
This commit corrects a typo in the project documentation.
Commit: c109dd1e9a168ea75fa5940cb74c1d455118f9de
https://github.com/llvm/llvm-project/commit/c109dd1e9a168ea75fa5940cb74c1d455118f9de
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Refactor FindLastSelect matching to use m_Specific(PhiR) (NFC). (#190547)
Match the select operands directly against PhiR using m_Specific,
binding only the non-phi IV expression. This replaces the generic
TrueVal/FalseVal matching followed by an assert and conditional
extraction.
Split off from approved
https://github.com/llvm/llvm-project/pull/183911/ as suggested.
Commit: 58208a0cc165c23d2fad4ed46950b342156875ac
https://github.com/llvm/llvm-project/commit/58208a0cc165c23d2fad4ed46950b342156875ac
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-05 (Sun, 05 Apr 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-live-outs.ll
A llvm/test/Transforms/LoopVectorize/AArch64/find-last-iv-sinkable-expr-epilogue.ll
A llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-expr-epilogue.ll
Log Message:
-----------
[LV] Additional epilogue tests for find-iv and with uses of IV.(NFC) (#190548)
Additional test coverage for loops not yet supported, with sinkable
find-iv expressions (github.com/llvm/llvm-project/pull/183911) and uses
of the IV.
PR: https://github.com/llvm/llvm-project/pull/190548
Commit: 1839b755ddf0993ab1fd962028b21986097e3ccd
https://github.com/llvm/llvm-project/commit/1839b755ddf0993ab1fd962028b21986097e3ccd
Author: Wenju He <wenju.he at intel.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
[runtimes] Skip custom linker validation for gpu/offload targets (#189933)
This fixes `Host compiler does not support '-fuse-ld=lld'` error when
cross-build libclc for gpu target. Cmake configure command is:
-DRUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES=libclc \
-DLLVM_RUNTIME_TARGETS="amdgcn-amd-amdhsa-llvm"
libclc targets only support offload target cross-build and can't link
host executable. The configuration error is false positive for offload.
This PR adds a baseline test to first check if the target can link
executable. If it fails (typical for gpu/offload), we skip the custom
linker validation.
Commit: 26697f4d07eb921aebabdaa7d064c5165c70717e
https://github.com/llvm/llvm-project/commit/26697f4d07eb921aebabdaa7d064c5165c70717e
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M polly/lib/CodeGen/IslExprBuilder.cpp
A polly/test/CodeGen/issue190459_1.ll
Log Message:
-----------
[Polly] Correct integer comparison bit width (#190493)
For making an integer compareable to bool, don't compare it to bool.
Bug occured during the reduction of #190459
Commit: 5e14916fa6ab8dbafd06f4d3b7b8f9eb3abb767d
https://github.com/llvm/llvm-project/commit/5e14916fa6ab8dbafd06f4d3b7b8f9eb3abb767d
Author: Yashwant Singh <yashwants at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M bolt/lib/Profile/DataReader.cpp
A bolt/test/empty-fdata-file.test
Log Message:
-----------
Early exit llvm-bolt when coming across empty data files (#176859)
perf2bolt generates empty fdata files for small binaries and right now
BOLT does this check while parsing by calling `((!hasBranchData() &&
!hasMemData()))`. Instead, early exit as soon as the buffer finishes
reading the data file and exit with error message.
Commit: ce1a9fd76640929fe340c5c5d1bb493ea09ca9bc
https://github.com/llvm/llvm-project/commit/ce1a9fd76640929fe340c5c5d1bb493ea09ca9bc
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
M mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
M mlir/include/mlir/Reducer/ReductionNode.h
M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
M mlir/lib/Reducer/CMakeLists.txt
M mlir/lib/Reducer/ReductionNode.cpp
M mlir/lib/Reducer/ReductionTreePass.cpp
M mlir/test/mlir-reduce/reduction-tree.mlir
Log Message:
-----------
Reland "[mlir][reducer] Add eraseRedundantBlocksInRegion and getSuccessorForwardOperands API to BranchOpInterface" (#189253)
After fixing undefined symbol and memory leak issues(You can see
previous issue https://github.com/llvm/llvm-project/pull/189150), the PR
would like to reland
it(https://github.com/llvm/llvm-project/pull/187864).
Commit: e326ff2a88d5ca4037c6c1b7be05e406f5408026
https://github.com/llvm/llvm-project/commit/e326ff2a88d5ca4037c6c1b7be05e406f5408026
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-member-init.cpp
Log Message:
-----------
[clang-tidy] Fix FP on cppcoreguidelines-pro-type-member-init with forward decl (#190521)
Fixes https://github.com/llvm/llvm-project/issues/155416.
Commit: 63231ebfe7af6a4f95648e4856ab6b0ae1f69563
https://github.com/llvm/llvm-project/commit/63231ebfe7af6a4f95648e4856ab6b0ae1f69563
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Dialect/LLVMIR/nvvm/invalid-convert-stochastic-rounding.mlir
M mlir/test/Target/LLVMIR/nvvm/convert_fp4x2.mlir
A mlir/test/Target/LLVMIR/nvvm/convert_fp4x2_invalid.mlir
M mlir/test/Target/LLVMIR/nvvm/convert_fp6x2.mlir
A mlir/test/Target/LLVMIR/nvvm/convert_fp6x2_invalid.mlir
M mlir/test/Target/LLVMIR/nvvm/convert_fp8x2.mlir
A mlir/test/Target/LLVMIR/nvvm/convert_fp8x2_invalid.mlir
A mlir/test/Target/LLVMIR/nvvm/convert_s2f6x2.mlir
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
Log Message:
-----------
[MLIR][NVVM] Add new narrow FP convert Ops (#184291)
This change adds the following NVVM Ops for new narrow FP conversions
introduced in PTX 9.1:
- `convert.{f32x2/bf16x2}.to.s2f6x2`
- `convert.s2f6x2.to.bf16x2`
- `convert.bf16x2.to.f8x2` (extended for `f8E4M3FN` and `f8E5M2` types)
- `convert.{f16x2/bf16x2}.to.f6x2`
- `convert.{f16x2/bf16x2}.to.f4x2`
PTX ISA Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-cvt
Commit: f7cdebb47863ae413f24ebd727a1dd075688d011
https://github.com/llvm/llvm-project/commit/f7cdebb47863ae413f24ebd727a1dd075688d011
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Mark unary ops as not having side-effects (NFC). (#190554)
Mark unary ops (only FNeg current) to neither read nor write memory,
similar to binary and cast ops.
Should currently be NFC end-to-end.
Commit: 4cce6f85fb4adf956cdbe3b22cccd1edd83bcf3d
https://github.com/llvm/llvm-project/commit/4cce6f85fb4adf956cdbe3b22cccd1edd83bcf3d
Author: Nishant Sachdeva <32475507+nishant-sachdeva at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmbMap.py
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncNames.py
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py
M llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py
M llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
Log Message:
-----------
[llvm-ir2vec] Added Enum for ir2vec embedding mode (#190466)
Currently, the initEmbedding() takes mode as an input. This input is a
string input. This PR introduces a patch to take the input as an enum
value.
Commit: 64a0bd1227419a849afa49f6c9d28bb09ddfc8ff
https://github.com/llvm/llvm-project/commit/64a0bd1227419a849afa49f6c9d28bb09ddfc8ff
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Return best VPlan together with VF from computeBestVF (NFC). (#190385)
computeBestVF iterates over all VPlans and picks the VF of the most
profitable VPlan. This VPlan is later needed for execution and
additional checks. Instead of retrieving it multiple times later, just
directly return it from computeBestVF.
This removes some redundant lookups.
PR: https://github.com/llvm/llvm-project/pull/190385
Commit: 3b0221090c9cfee94c699d7c9f3fd8cda44960fb
https://github.com/llvm/llvm-project/commit/3b0221090c9cfee94c699d7c9f3fd8cda44960fb
Author: Nico Weber <thakis at chromium.org>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
Log Message:
-----------
[gn] fix mistake from 88f6b181b6ab2 (#190601)
Commit: 05ff170026eb9164f8157a655a041bbe622efd0a
https://github.com/llvm/llvm-project/commit/05ff170026eb9164f8157a655a041bbe622efd0a
Author: 陈子昂 <2802328816 at qq.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/test/Transforms/InstCombine/apint-shift.ll
M llvm/test/Transforms/InstCombine/icmp-select.ll
A llvm/test/Transforms/InstCombine/icmp-shl-add-to-add.ll
Log Message:
-----------
[InstCombine] Fix #163110: Support peeling off matching shifts from icmp operands via canEvaluateShifted (#165975)
Consider a pattern like `icmp (shl nsw X, L), (add nsw (shl nsw Y, L),
K)`. When the constant K is a multiple of 2^L, this can be simplified to
`icmp X, (add nsw Y, K >> L)`.
This patch extends canEvaluateShifted to support `Instruction::Add` and
updates its signature to accept `Instruction::BinaryOps` instead of a
boolean. This change allows the function to distinguish between LShr and
AShr requirements, ensuring that information is preserved according to
the signedness and overflow flags (nsw/nuw) of the operands.
The logic is integrated into `foldICmpCommutative` to enable peeling off
matching shifts from both sides of a comparison even when an offset is
present.
Fixes: #163110
Commit: 040363966799ab37d8a228becb630460160f4865
https://github.com/llvm/llvm-project/commit/040363966799ab37d8a228becb630460160f4865
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/test/Transforms/LoopVectorize/early_exit_with_outer_loop.ll
Log Message:
-----------
[VPlan] Skip successors outside any loop when updating LoopInfo. (#190553)
Successors outside of any loop do not contribute to the innermost loop,
skip them to avoid incorrect results due to
getSmallestCommonLoop(nullptr, X) returning nullptr.
Commit: b6e7c475cb44057c71297e38833ffc448194c002
https://github.com/llvm/llvm-project/commit/b6e7c475cb44057c71297e38833ffc448194c002
Author: Trung Nguyen <57174311+trungnt2910 at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
A llvm/test/CodeGen/ARM/pr190497.ll
Log Message:
-----------
[CodeGen] Ignore `ANNOTATION_LABEL` in scheduler (#190499)
This fixes a crash in `clang` for `armv7` targets when optimizations are
enabled.
Fixes #190497
Commit: 74ad441a8001f349194d2c5487d24623784b6cfe
https://github.com/llvm/llvm-project/commit/74ad441a8001f349194d2c5487d24623784b6cfe
Author: Lei Huang <lei at ca.ibm.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
A llvm/test/DebugInfo/Generic/debug-info-enum-dwarf2.ll
M llvm/test/DebugInfo/Generic/debug-info-enum.ll
A llvm/test/DebugInfo/Generic/incorrect-variable-debugloc1-dwarf2.ll
M llvm/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll
A llvm/test/DebugInfo/Generic/restrict-dwarf2.ll
M llvm/test/DebugInfo/Generic/restrict.ll
Log Message:
-----------
Split DWARF v2 tests to exclude 64-bit AIX targets (#189077)
64-bit AIX requires DWARF64 format, which was only introduced in DWARF
v3. DWARF v2 only supports 32-bit DWARF format, making it incompatible
with 64-bit AIX (the compiler throws a fatal error). These changes split
DWARF v2 tests into separate files that exclude 64-bit AIX targets while
still running on 32-bit AIX and other 64-bit platforms where DWARF v2 is
supported.
Commit: 2ccc9415498e19dff55ace88b7c24fd41eb32d08
https://github.com/llvm/llvm-project/commit/2ccc9415498e19dff55ace88b7c24fd41eb32d08
Author: Joe Nash <joseph.nash at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
Log Message:
-----------
[AMDGPU] Mark two instructions as DPMACC (#190391)
It appears these were accidentally missed in #170319
Commit: 59e899e16b7492698bd7673a7cdbe3a54368b703
https://github.com/llvm/llvm-project/commit/59e899e16b7492698bd7673a7cdbe3a54368b703
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/cxx26.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][bytecode] Don't unref constexpr-unknown references (#190177)
If the pointer for a reference is constexpr-unknown, use the pointer
itself instead, instead of dereferencing it. Unfortunately, that means
constexpr-unknown pointers to reach a lot more places than before.
Commit: c4281fd5af49229376e33726730b308a6fa81032
https://github.com/llvm/llvm-project/commit/c4281fd5af49229376e33726730b308a6fa81032
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/lib/Support/KnownFPClass.cpp
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fadd.ll
M llvm/test/Transforms/InstSimplify/known-never-nan.ll
Log Message:
-----------
[Support][ValueTraking] Improve KnownFPClass for fadd. Handle infinity signs (#190559)
Improve KnownFPClass reasoning for fadd:
- Refine NaN handling for infinities by checking opposite-sign cases:
- `-inf` + `+inf` --> `nan`
- `+inf` + `-inf` --> `nan`
- `+inf` + `+inf` --> `+inf`
- `-inf` + `-inf` --> `-inf`
- Introduce `cannotBeOrderedLessEqZero` as pair to
`cannotBeOrderedGreaterEqZero`.
Commit: 297a70c9b54781ac2b08ed5dc11a13c13ffb9b80
https://github.com/llvm/llvm-project/commit/297a70c9b54781ac2b08ed5dc11a13c13ffb9b80
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/global-decomp-decls.cpp
Log Message:
-----------
[CIR] Implement global decomposition declarations (#190364)
No real challenge to these, it is effectively a copy/paste of the
classic codegen as it just requires we properly emit the holding
variable. The rest falls out of the rest of our handling of variables.
Commit: bf2a97a0dd2744000d4b39db2d36f150b52924cb
https://github.com/llvm/llvm-project/commit/bf2a97a0dd2744000d4b39db2d36f150b52924cb
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/test/Transforms/InstCombine/AMDGPU/canonicalize-add-to-gep.ll
M llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wave.shuffle.ll
M llvm/test/Transforms/InstCombine/AMDGPU/mbcnt.ll
Log Message:
-----------
AMDGPU: Add range attribute to mbcnt intrinsic callsites (#189191)
It seems the known bits handling added in
686987a540bc176bceaad43ffe530cb3e88796d5
is insufficient to perform many range based optimizations. For some
reason
computeConstantRange doesn't fall back on KnownBits, and has a separate,
less used form which tries to use computeKnownBits.
Commit: 4994a971358f5b722c32e356854491f3ab8fc833
https://github.com/llvm/llvm-project/commit/4994a971358f5b722c32e356854491f3ab8fc833
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Remove namespace qualification from GetUpperName, NFC (#190619)
This applies to flang/lib/Semantics/openmp-utils.cpp, since it contains
`using namespace Fortran::parser::omp`.
Commit: 34a16392fa4f131a4329c4ffb5f62a199d4fcd66
https://github.com/llvm/llvm-project/commit/34a16392fa4f131a4329c4ffb5f62a199d4fcd66
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Use SmallVector instead of raw new/delete (NFC) (#190586)
Some functions used `new`/`delete` to allocate/free arrays. To avoid
memory leaks, it would be better to avoid using raw pointers. This patch
replaces the use of them with `SmallVector`.
Commit: 8d7823ea8f40cf5df1c623018bf9c0a308fa4a36
https://github.com/llvm/llvm-project/commit/8d7823ea8f40cf5df1c623018bf9c0a308fa4a36
Author: albertbolt1 <45144020+albertbolt1 at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
Log Message:
-----------
[CIR][AArch64] Added vector intrinsics for shift left (#187516)
Added vector intrinsics for
vshlq_n_s8
vshlq_n_s16
vshlq_n_s32
vshlq_n_s64
vshlq_n_u8
vshlq_n_u16
vshlq_n_u32
vshlq_n_u64
vshl_n_s8
vshl_n_s16
vshl_n_s32
vshl_n_s64
vshl_n_u8
vshl_n_u16
vshl_n_u32
vshl_n_u64
these cover all the vector intrinsics for constant shift
the method followed
1) the vectors for quad words are of the form `64x2`, `32x4`, `16x8`,
`8x16` and the shift is a constant value but for shift left we need both
of them to be vectors so we take the constant shift and convert it into
a vector of respective form, for `64x2` we convert the constant to
`64x2`, I have learnt that this process is also called **splat**
2) After splat we have that the lhs and rhs are of the same size hence
the shift left can be applied
3) There is one issue though, the ops[0] is not of the right size, for
quad words it falls back to the default int8*16 in the function, so I am
converting it to the required size using bit casting, `8x16` = `64x2` so
we can bitcast and get the vector array in the right form.
Wrote the test cases for all the intrinsics listed above
#185382
Commit: 06e666a8f6c1a6555650cdbe641e0bbd5d0a00f0
https://github.com/llvm/llvm-project/commit/06e666a8f6c1a6555650cdbe641e0bbd5d0a00f0
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/banerjee-overflow.ll
Log Message:
-----------
[DA] Add overflow test for BanerjeeMIVtest (#190468)
Commit: 930ef7736e0bb4550821e4d66beb498f974bb837
https://github.com/llvm/llvm-project/commit/930ef7736e0bb4550821e4d66beb498f974bb837
Author: Eric Feng <55723758+efric at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] Add optional write mask to amdgpu.global_load_async_to_lds (#190498)
Commit: 348295ac056cb7ac3a9a9641d2b670866ddcf01b
https://github.com/llvm/llvm-project/commit/348295ac056cb7ac3a9a9641d2b670866ddcf01b
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/aggregate-copy-overlap.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/IR/copy.cir
M clang/test/CIR/IR/invalid-copy.cir
Log Message:
-----------
[CIR] Use data size in emitAggregateCopy for overlapping copies (#186702)
Add skip_tail_padding property to cir.copy to handle
potentially-overlapping
subobject copies directly, instead of falling back to cir.libc.memcpy.
When
set, the lowering uses the record's data size (excluding tail padding)
for
the memcpy length. This keeps typed semantics and promotability of
cir.copy.
Also fix CXXABILowering to preserve op properties when recreating
operations,
and expose RecordType::computeStructDataSize() for computing data size
of
padded record types.
Commit: 9265f9284c1306d30f5e63efaec805b308fe0457
https://github.com/llvm/llvm-project/commit/9265f9284c1306d30f5e63efaec805b308fe0457
Author: adams381 <adams at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td
M mlir/lib/Target/LLVMIR/AttrKindDetail.h
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[mlir][ABI] Add writable, dead_on_unwind, dead_on_return, nofpclass param attrs to LLVM dialect (#188374)
The MLIR LLVM dialect is missing support for several parameter
attributes that
exist in LLVM IR: `writable`, `dead_on_unwind`, `dead_on_return`, and
`nofpclass`. This adds them to the kind-to-name mapping in
`AttrKindDetail.h`
and the corresponding name accessors in `LLVMDialect.td`.
The existing generic conversion infrastructure in `ModuleTranslation`
and
`ModuleImport` picks them up automatically — `writable` and
`dead_on_unwind`
round-trip as `UnitAttr`, while `dead_on_return` and `nofpclass`
round-trip as
`IntegerAttr`.
CIR needs these to match classic codegen's ABI output (sret gets
`writable
dead_on_unwind`, indirect args get `dead_on_return`, fast-math FP args
get
`nofpclass`).
Commit: baa1e5008bba4bf9a6204b7d0620a95312cb304b
https://github.com/llvm/llvm-project/commit/baa1e5008bba4bf9a6204b7d0620a95312cb304b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M flang/lib/Semantics/check-cuda.cpp
M flang/test/Semantics/cuf25.cuf
Log Message:
-----------
[flang][cuda] Do not consider kernel result as host variable (#190626)
Commit: e7ac60c56b2310288921e05b977e1cd4796b115a
https://github.com/llvm/llvm-project/commit/e7ac60c56b2310288921e05b977e1cd4796b115a
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes ce1a9fd (#190577)
This fixes ce1a9fd76640929fe340c5c5d1bb493ea09ca9bc.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 5b33f85a08d2ed9bf6230e64ed968cec8f07840d
https://github.com/llvm/llvm-project/commit/5b33f85a08d2ed9bf6230e64ed968cec8f07840d
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/Target/AMDGPU/AMDGPUAttributes.def
M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/always_uniform.ll
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/workitem-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-constantexpr.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-attributor-flat-scratch-init-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-attributor-min-agpr-alloc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-attributor-nocallback-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-attributor-trap-leaf.ll
A llvm/test/CodeGen/AMDGPU/amdgpu-uniform-intrinsic-wwm-single-lane.ll
M llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll
M llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll
M llvm/test/CodeGen/AMDGPU/annotate-kernel-features.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_single_lane.ll
M llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit.ll
A llvm/test/CodeGen/AMDGPU/attributor-wwm.ll
M llvm/test/CodeGen/AMDGPU/direct-indirect-call.ll
M llvm/test/CodeGen/AMDGPU/duplicate-attribute-indirect.ll
M llvm/test/CodeGen/AMDGPU/implicitarg-offset-attributes.ll
M llvm/test/CodeGen/AMDGPU/indirect-call-set-from-other-function.ll
M llvm/test/CodeGen/AMDGPU/issue120256-annotate-constexpr-addrspacecast.ll
M llvm/test/CodeGen/AMDGPU/load-constant-always-uniform.ll
M llvm/test/CodeGen/AMDGPU/propagate-flat-work-group-size.ll
M llvm/test/CodeGen/AMDGPU/propagate-waves-per-eu.ll
M llvm/test/CodeGen/AMDGPU/recursive_global_initializer.ll
M llvm/test/CodeGen/AMDGPU/remove-no-kernel-id-attribute.ll
M llvm/test/CodeGen/AMDGPU/simple-indirect-call-2.ll
M llvm/test/CodeGen/AMDGPU/simple-indirect-call.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-attribute-missing.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-multistep.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-nested-function-calls.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-prevent-attribute-propagation.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-propagate-attribute.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-recursion-test.ll
M llvm/test/CodeGen/AMDGPU/uniform-work-group-test.ll
M llvm/test/Transforms/JumpThreading/divergent-target-test.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/nontrivial-unswitch-divergent-target.ll
M llvm/test/Transforms/SpeculativeExecution/single-lane-execution.ll
Log Message:
-----------
[AMDGPU] Change isSingleLaneExecution to account for WWM enabling lanes even if there's only one workitem (#188316)
This issue was discovered during some downstream work around Vulkan CTS
tests, specifically
`dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float`
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 0bef4c7aabd085e38a0c42857168b05716674329
https://github.com/llvm/llvm-project/commit/0bef4c7aabd085e38a0c42857168b05716674329
Author: Wooseok Lee <wolee at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/test/CodeGen/AMDGPU/and_or.ll
M llvm/test/CodeGen/AMDGPU/or3.ll
Log Message:
-----------
[AMDGPU] Add v2i32 and/or patterns for VOP3 AND_OR and OR3 operations (#188375)
Add ThreeOp_v2i32_Pats pattern class to support v2i32 vector operations
for AND_OR_B32 and OR3_B32 instructions. The new patterns check the
v2i32 and-or or or-or instruction sequence, extract individual 32-bit
elements from v2i32 operands, and applies the and_or or or3 vop3
operations.
Commit: 0d14772a91a5c0bbefb59d6dd5a6c0f54f8ed4ea
https://github.com/llvm/llvm-project/commit/0d14772a91a5c0bbefb59d6dd5a6c0f54f8ed4ea
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
Log Message:
-----------
[RISCV][P-ext] Add isel patterns for for macc*.h00/macc*.w00. (#190444)
The RV32 macc*.h00 instructions take the lower half words from rs1 and
rs2, compute the full word product by extending the inputs, and
add to rd. The RV64 macc*.w00 is similar but operates on words
and produces a double word result.
I've restricted this to case where the multiply has a single use.
We don't have a general macc that multiplies the full xlen bits
of rs1 and rs2, so I'm allowing the input to be sext_inreg/and or
have sufficient sign/zero bits according to
ComputeNumSignBits/computeKnownBits.
We should also add mul*.h00/mul.*w00 patterns, but those we should
restrict to at least one input being sext_inreg/and and prefer
regular mul when there are no sext_inreg/and.
Commit: b44d2c977ce2e5dbf9f227bd6ade5d85ae69a463
https://github.com/llvm/llvm-project/commit/b44d2c977ce2e5dbf9f227bd6ade5d85ae69a463
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/pr189037.ll
Log Message:
-----------
[RISCV] Use a vector MemVT when converting store+extractelt into a vector store. (#190107)
This is needed so that `allowsMemoryAccessForAlignment` checks for
unaligned vector memory
support instead of unaligned scalar memory support when called from
`RISCVTargetLowering::expandUnalignedVPStore`
While there remove incorrect setting of the truncating store flag
on the vector instruction. And restrict the transform to simple stores
since we don't have tests for volatile or atomic.
Fixes #189037
Commit: 38c53b3eb9f8dc25dd82f7918884a319a3aa597d
https://github.com/llvm/llvm-project/commit/38c53b3eb9f8dc25dd82f7918884a319a3aa597d
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon/intrinsics.c
Log Message:
-----------
[clang][cir][nfc] Fix comments, add missing EOF (#190623)
Commit: eb065bf028af8a1eb64dcf8f9ecb72138d221706
https://github.com/llvm/llvm-project/commit/eb065bf028af8a1eb64dcf8f9ecb72138d221706
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-extract-vector-elt.mir
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for G_EXTRACT_VECTOR_ELT (#189144)
Commit: 72d4ce9889a0bae9645de1a07cb051d0205cb964
https://github.com/llvm/llvm-project/commit/72d4ce9889a0bae9645de1a07cb051d0205cb964
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/Analysis/InlineOrder.h
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/lib/Analysis/InlineOrder.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/IPO/AlwaysInliner.cpp
M llvm/lib/Transforms/IPO/Inliner.cpp
M llvm/lib/Transforms/IPO/ModuleInliner.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Transforms/Inline/debug-invoke.ll
A llvm/test/Transforms/Inline/inline-history-2.ll
R llvm/test/Transforms/Inline/inline-history-noinline.ll
A llvm/test/Transforms/Inline/inline-history.ll
M llvm/test/Transforms/Inline/inline-recursive-fn2.ll
A llvm/test/Verifier/inline-history-metadata.ll
M llvm/unittests/Analysis/InlineOrderPlugin/InlineOrderPlugin.cpp
Log Message:
-----------
[Inliner] Put inline history into IR as !inline_history metadata (#190092)
So that it's preserved across all inline invocations rather than just
one inliner pass run.
This prevents cases where devirtualization in the simplification
pipeline uncovers inlining opportunities that should be discarded due to
inline history, but we dropped the inline history between inliner pass
runs, causing code size to blow up, sometimes exponentially.
For compile time reasons, we want to limit this to only call sites that
have the potential to inline through SCCs, potentially with the help of
devirtualization. This means that the callee is in a non-trivial
(Ref)SCC, or the call site was previously an indirect call, which can
potentially be devirtualized to call any function.
The CGSCCUpdater::InlinedInternalEdges logic still seems to be relevant
even with this change, as monster_scc.ll blows up if I remove that code.
http://llvm-compile-time-tracker.com/compare.php?from=e830d88e8ae5f44a97cc76136a0a4e83aa9157c0&to=ed535e732fc41b79ab8efda2417886cbd0812f7f&stat=instructions:u
Fixes #186926.
Commit: 37801e9e99c8b8aeb2c94f128d231ed7eee601a6
https://github.com/llvm/llvm-project/commit/37801e9e99c8b8aeb2c94f128d231ed7eee601a6
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/MCA/Stages/InstructionTables.h
M llvm/include/llvm/MCA/Support.h
M llvm/lib/MCA/HardwareUnits/ResourceManager.cpp
M llvm/lib/MCA/Support.cpp
A llvm/test/tools/llvm-exegesis/analysis-processor-resource-masks-debug.test
A llvm/test/tools/llvm-mca/processor-resource-masks-debug.s
A llvm/test/tools/llvm-mca/processor-resources-debug.s
M llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp
Log Message:
-----------
[MCA] Enhance debug prints of processor resources (#190132)
Previously, `computeProcResourceMasks()` would print resource masks on
debug mode from multiple call sites, creating noise in the debug output.
This patch aims to fix this and also print more info about the
resources.
It splits to 2 types of debug prints for resources:
1. No simulation - mask only
2. Simulation - mask + other info
For 2, it shares printing on a single place in `ResourceManager`
constructor, that should cover all the other simulation cases
indirectly:
1. `llvm/lib/MCA/HardwareUnits/ResourceManager` - covered
2. `llvm/lib/MCA/InstrBuilder.c` - should be covered indirectly - only
used by `llvm-mca` before simulation that constructs a `ResourceManager`
3. `llvm/tools/llvm-mca/Views/SummaryView.cpp` - after simulation that
constructs a `ResourceManager`
4. `llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp` - after simulation
that constructs a `ResourceManager`
It also adds `BufferSize` to the output, which should be useful to debug
scheduling model + MCA integration.
For 1, it inlines mask-only printing into 2 other callers:
1. `llvm/include/llvm/MCA/Stages/InstructionTables.h`
2. `llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp`
as they only use the masks there. I think this is a reasonable
duplication across distinguishably different users/tools.
Now every pair of callers, even across groups (1 and 2), effectively
print in a mutually exclusive way.
The patch adds debug tests for the 3 new callers, in the corresponding
root test directories, to drive further location of logically
target-independent tests that just require some target at the root. I
think this convention is more discoverable, and is pretty widely used in
the project.
Commit: 12e957fd7feb388b266fd71ab7960450df6884c1
https://github.com/llvm/llvm-project/commit/12e957fd7feb388b266fd71ab7960450df6884c1
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll
Log Message:
-----------
[AMDGPU][GISel] RegBankLegalize rules for amdgcn_inverse_ballot (#190629)
Commit: 38034d42bdc68b0397531d6c05e21051c2e84ae9
https://github.com/llvm/llvm-project/commit/38034d42bdc68b0397531d6c05e21051c2e84ae9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int.ll
Log Message:
-----------
[RISCV] Use EVT instead of MVT in compressShuffleOfShuffles. (#190636)
For the test case I just grabbed a test that exercised this code path
and made the VT non-simple.
Fixes #190605.
Commit: 5c13d2f099353d66d98ed97b482d8d64f907fa7b
https://github.com/llvm/llvm-project/commit/5c13d2f099353d66d98ed97b482d8d64f907fa7b
Author: SiliconA-Z <gfunni234 at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMFeatures.h
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMInstrThumb.td
M llvm/lib/Target/ARM/ARMInstrThumb2.td
M llvm/lib/Target/ARM/ARMLatencyMutations.cpp
M llvm/lib/Target/ARM/ARMScheduleM55.td
M llvm/lib/Target/ARM/ARMScheduleM7.td
M llvm/lib/Target/ARM/ARMScheduleM85.td
M llvm/lib/Target/ARM/ARMScheduleR52.td
M llvm/lib/Target/ARM/Thumb2SizeReduction.cpp
M llvm/test/CodeGen/ARM/cmp-to-cmn.ll
M llvm/test/MC/ARM/arm-shift-encoding.s
M llvm/test/MC/ARM/thumb-shift-encoding.s
Log Message:
-----------
[ARM] Enable creation of ARMISD::CMN nodes (#163223)
Map ARMISD::CMN to tCMN instead of armcmpz.
Rename the cmn instructions to match this new reality.
Please note that I do not have merge permissions.
Commit: e11a31f4c7f61a3abb0f9101f3269e5622195788
https://github.com/llvm/llvm-project/commit/e11a31f4c7f61a3abb0f9101f3269e5622195788
Author: neonetizen <justin at neonetizen.net>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
A clang/test/CodeGen/AArch64/neon/f16-getset.c
M clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics-generic.c
Log Message:
-----------
[CIR][AArch64] Lower FP16 vduph lane intrinsics (#186955)
>From #185382
Lower `vduph_lane_f16` and `vduph_laneq_f16` to `cir::VecExtractOp`
Tests moved from `v8.2a-neon-instrinsics-generic.c` to a new CIR-enabled
test file.
I tried following from notes made in #185852 (BF16)
Commit: 8d442bc5b58c9c8e2a5c321a06c8d9017630ca44
https://github.com/llvm/llvm-project/commit/8d442bc5b58c9c8e2a5c321a06c8d9017630ca44
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
M llvm/test/Transforms/SandboxVectorizer/load_store_vec.ll
Log Message:
-----------
[SandboxVec][LoadStoreVec] Add support for constants (#189769)
Up until now the pass would only vectorize load-store pairs. This patch
implements vectorization of constant-store pairs.
Commit: cdbb1f50142151155096c6b8d2d591f940fe91d1
https://github.com/llvm/llvm-project/commit/cdbb1f50142151155096c6b8d2d591f940fe91d1
Author: Kirill Stoimenov <87100199+kstoimenov at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/test/Transforms/InstCombine/apint-shift.ll
M llvm/test/Transforms/InstCombine/icmp-select.ll
R llvm/test/Transforms/InstCombine/icmp-shl-add-to-add.ll
Log Message:
-----------
Revert "[InstCombine] Fix #163110: Support peeling off matching shifts from icmp operands via canEvaluateShifted" (#190638)
Reverts llvm/llvm-project#165975
Breaks Sanitizer bots:
https://lab.llvm.org/buildbot/#/builders/52/builds/16329
Commit: a105f27f611c2a51cb9a16c3af40488061acf947
https://github.com/llvm/llvm-project/commit/a105f27f611c2a51cb9a16c3af40488061acf947
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
Log Message:
-----------
[Scheduler][NFC] Don't use set to track visited nodes (#190480)
The visited set can grow rather large and we can use an unused field in
SDNode to store the same information without the use of a hash set.
This improves compile times: stage2-O3 -0.14%.
Commit: de0a81091bb65d93c86bf5206fda1daaa4b891f8
https://github.com/llvm/llvm-project/commit/de0a81091bb65d93c86bf5206fda1daaa4b891f8
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
A llvm/test/MC/AMDGPU/vop3-literal-gfx1250.s
M llvm/test/MC/AMDGPU/vop3-literal.s
Log Message:
-----------
[AMDGPU] Update vop3-literal.s to use fake16 on gfx1250. NFC (#190243)
16-bit instructions there are in fake16 mode and shall also be
compatible with older targets. The purpose of the test is to
check literals, so fake16 or real16 is not important.
Commit: ab43cb8520c065cddbb5ce59a29987602255a2f5
https://github.com/llvm/llvm-project/commit/ab43cb8520c065cddbb5ce59a29987602255a2f5
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/test/Driver/hexagon-toolchain-linux.c
Log Message:
-----------
[Hexagon] Pass -pie to linker when PIE is the toolchain default (#189723)
The Hexagon driver only checked for an explicit -pie flag when
constructing the link command, ignoring the toolchain's PIE default. For
linux-musl targets, isPIEDefault() returns true (via the Linux toolchain
base class), so the compiler generates PIC/PIE code (-pic-level 2
-pic-is-pie) but the linker never received -pie.
This mismatch caused LTO failures: without -pie the linker sets
Reloc::Static for the LTO backend, which generates GP-relative
(small-data) references that lld cannot resolve.
Use hasFlag() to respect the toolchain default, and guard the -pie
emission against -shared and -r (relocatable) modes.
Commit: 04e2be73a69ff43bb0fe5e8a9bf05a99c5b957fb
https://github.com/llvm/llvm-project/commit/04e2be73a69ff43bb0fe5e8a9bf05a99c5b957fb
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/third-party/unittest/BUILD.bazel
Log Message:
-----------
[bazel] Fix TestingSupport layering_check (#190630)
I'm not sure if this header is public API upstream but we are using it
that way anyways.
Commit: 412d6941e356f8fa01c8d5fca396881290e16436
https://github.com/llvm/llvm-project/commit/412d6941e356f8fa01c8d5fca396881290e16436
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CrossTU/CrossTranslationUnit.cpp
M clang/lib/Tooling/JSONCompilationDatabase.cpp
A clang/test/VFS/Inputs/invalid-key.yaml
A clang/test/VFS/Inputs/invalid-top-level-key.yaml
M clang/test/VFS/parse-errors.c
M llvm/lib/Remarks/YAMLRemarkParser.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Support/YAMLTraits.cpp
M llvm/lib/Transforms/Utils/SymbolRewriter.cpp
M llvm/tools/sancov/sancov.cpp
Log Message:
-----------
[VFS] Guard against null key/value nodes when parsing YAML overlay (#190506)
When a VFS overlay YAML file contains malformed content such as tabs,
the YAML parser can produce KeyValueNode entries where `getKey` returns
nullptr. The VFS overlay parser then passes the nullptr to
`parseScalarString`, which then calls dyn_cast.
Switch to `dyn_cast_if_present` for the above callsites and a few more.
Commit: fecf609998340a5a2c27346468beba67e58afcc2
https://github.com/llvm/llvm-project/commit/fecf609998340a5a2c27346468beba67e58afcc2
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/LTO.cpp
M lld/COFF/LTO.h
M lld/COFF/SymbolTable.cpp
M lld/ELF/Driver.cpp
M lld/ELF/LTO.cpp
M lld/ELF/LTO.h
A lld/test/COFF/lto-libcall-archive-bitcode.test
A lld/test/ELF/lto/libcall-archive-bitcode.test
A lld/test/wasm/lto/libcall-archive-bitcode.ll
M lld/wasm/LTO.cpp
M lld/wasm/LTO.h
M lld/wasm/SymbolTable.cpp
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/LTO/LTOBackend.h
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/LTO/LTOCodeGenerator.cpp
M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
A llvm/test/LTO/Resolution/X86/libcall-external.ll
A llvm/test/LTO/Resolution/X86/libcall-in-thin-link.ll
A llvm/test/LTO/Resolution/X86/libcall-in-tu.ll
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
Reland "[LTO][LLD] Prevent invalid LTO libfunc transforms (#164916)" (#190642)
This reverts commit 1ec7e86b3a779df2a0af3f37e58c8f5b3a398d7f after issue
#190072 was fixed.
Commit: a2c9146da14919c187e2c11becbbf2933621d9b6
https://github.com/llvm/llvm-project/commit/a2c9146da14919c187e2c11becbbf2933621d9b6
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
A lldb/test/Shell/SymbolFile/NativePDB/structured-bindings-clang.test
M lldb/test/Shell/SymbolFile/NativePDB/structured-bindings-msvc.test
Log Message:
-----------
[lldb][NativePDB] Handle `S_DEFRANGE_REGISTER_REL_INDIR` (#190336)
Since #189401, LLVM and Clang generate `S_DEFRANGE_REGISTER_REL_INDIR`
for indirect locations. This adds support in LLDB.
The offset added after dereferencing is signed here - unlike in
`S_REGREL32_INDIR` (at least that's the assumption). So I updated
`MakeRegisterBasedIndirectLocationExpressionInternal` to handle the
signedness. This is the reason the MSVC test was changed here.
I didn't find a test case where LLVM emits the record with the `VFRAME`
register. Other than that, the clang test is similar to the MSVC one
except that the locations are slightly different.
Commit: 5e1162eebc2b943a0e5730bd91f7cbfe4bde58eb
https://github.com/llvm/llvm-project/commit/5e1162eebc2b943a0e5730bd91f7cbfe4bde58eb
Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/Rematerializer.h
M llvm/lib/CodeGen/Rematerializer.cpp
M llvm/unittests/CodeGen/RematerializerTest.cpp
Log Message:
-----------
[CodeGen] Move rollback capabilities outside of the rematerializer (#184341)
The rematerializer implements support for rolling back
rematerializations by modifying MIs that should normally be deleted in
an attempt to make them "transparent" to other analyses. This involves:
1. setting their opcode to DBG_VALUE and
2. setting their read register operands to the sentinel register.
This approach has several drawbacks.
1. It forces the rematerializer to support tracking these "dead MIs"
(even if support is optional, these data-structures have to exist).
2. It is not actually clear whether this mechanism will interact well
with all other analyses. This is an issue since the intent of the
rematerializer is to be usable in as many contexts as possible.
3. In practice, it has shown itself to be relatively error-prone.
This commit removes rollback support from the rematerializer and moves
those capabilities to a rematerializer listener than can be instantiated
on-demand and implements the same functionality on top of standard
rematerializer operations. The rematerializer now actually deletes MIs
that are no longer useful after rematerializations, and has support for
re-creating them on-demand without requiring additional tracking on its
part.
Commit: 326593b4b47cab59d64acbd456e88abfb77a0f4c
https://github.com/llvm/llvm-project/commit/326593b4b47cab59d64acbd456e88abfb77a0f4c
Author: Aadarsh Keshri <120744385+Aadarsh-Keshri at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/include/clang/Serialization/ModuleCache.h
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/InProcessModuleCache.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Serialization/ModuleCache.cpp
M llvm/lib/Support/LockFileManager.cpp
M llvm/unittests/Support/LockFileManagerTest.cpp
Log Message:
-----------
[Support][Modules] Removed prepareForGetLock and its usages. Ensured parent directory exists when creating lock file. (#189888)
Following #187372
Commit: 40d5a7d69e957750a2d45ae9dd68f486b5306f77
https://github.com/llvm/llvm-project/commit/40d5a7d69e957750a2d45ae9dd68f486b5306f77
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
M llvm/test/CodeGen/AMDGPU/fix-wwm-vgpr-copy.ll
Log Message:
-----------
[AMDGPU][UniformityAnalysis] Mark set_inactive and set_inactive_chain_arg as SourceOfDivergence (#190640)
`set_inactive` produces a result that varies per-lane based on the EXEC mask, even when both inputs are uniform.
Commit: 2aa4100fa710ed83c5acd7505c27b4498f727c8e
https://github.com/llvm/llvm-project/commit/2aa4100fa710ed83c5acd7505c27b4498f727c8e
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
Log Message:
-----------
[compiler-rt] Add hexagon to libFuzzer supported architectures (#190297)
LibFuzzer builds successfully for Hexagon Linux.
Commit: 950f1de70bbfff9d4581c3102d2107ca6a4512a7
https://github.com/llvm/llvm-project/commit/950f1de70bbfff9d4581c3102d2107ca6a4512a7
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M lldb/include/lldb/Utility/UUID.h
Log Message:
-----------
[lldb] Fix UUID thombstone Key (#190551)
This changes `DenseMapInfo<UUID>::getTombstoneKey()` to return a 1-byte
`{0xFF}` sentinel instead of the empty, default constructed UUID().
Returning the same key for the empty and tombstone value apparently
violates the `DenseMap` invariant.
Commit: 40d394916264903073bccdf0b208f9565cad3ef8
https://github.com/llvm/llvm-project/commit/40d394916264903073bccdf0b208f9565cad3ef8
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
A llvm/tools/llvm-cas-fuzzer/CMakeLists.txt
A llvm/tools/llvm-cas-fuzzer/DummyCASFuzzer.cpp
A llvm/tools/llvm-cas-fuzzer/cas-fuzzer.cpp
Log Message:
-----------
[CAS] Add llvm-cas-fuzzer for ObjectStore::validate() (#190635)
Add a fuzzer that creates an on-disk CAS database, stores objects, then
corrupts the on-disk data files using fuzzer-provided bytes and calls
validate(). The goal is that validate() should either succeed or return
an error, never crash.
The fuzzer supports 6 corruption modes: byte-level mutations, file
truncation, appending garbage, zeroing ranges, standalone file
corruption, and combined mutations with continued CAS operations.
Assisted-By: Claude
Commit: 70d3dcaa6441e6bee4a6982fe900ecaf2f643788
https://github.com/llvm/llvm-project/commit/70d3dcaa6441e6bee4a6982fe900ecaf2f643788
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/Analysis/InlineOrder.h
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/lib/Analysis/InlineOrder.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/IPO/AlwaysInliner.cpp
M llvm/lib/Transforms/IPO/Inliner.cpp
M llvm/lib/Transforms/IPO/ModuleInliner.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Transforms/Inline/debug-invoke.ll
R llvm/test/Transforms/Inline/inline-history-2.ll
A llvm/test/Transforms/Inline/inline-history-noinline.ll
R llvm/test/Transforms/Inline/inline-history.ll
M llvm/test/Transforms/Inline/inline-recursive-fn2.ll
R llvm/test/Verifier/inline-history-metadata.ll
M llvm/unittests/Analysis/InlineOrderPlugin/InlineOrderPlugin.cpp
Log Message:
-----------
Revert "[Inliner] Put inline history into IR as !inline_history metadata" (#190666)
Reverts llvm/llvm-project#190092
Crashes reported in
https://github.com/llvm/llvm-project/pull/190092#issuecomment-4194546908
Commit: 1a0ca1019d214a24b55a45704dc71fa183672362
https://github.com/llvm/llvm-project/commit/1a0ca1019d214a24b55a45704dc71fa183672362
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/CAS/MappedFileRegionArena.h
M llvm/lib/CAS/DatabaseFile.cpp
M llvm/lib/CAS/MappedFileRegionArena.cpp
M llvm/lib/CAS/OnDiskGraphDB.cpp
M llvm/lib/CAS/OnDiskTrieRawHashMap.cpp
Log Message:
-----------
[CAS] Harden validate() against on-disk corruption (#190634)
Fixes found by fuzzer:
OnDiskTrieRawHashMap:
- Bounds-check data slot offsets in TrieVerifier::visitSlot() before
calling getRecord(), preventing asData() assertion on out-of-bounds
trie entries.
- Validate subtrie headers (NumBits, bounds) before constructing
SubtrieHandle, preventing SEGV in getSlots() from corrupt NumBits.
- Validate arena bump pointer alignment, catching misaligned BumpPtr
that would crash store() with an alignment assertion.
- Fix comma operator bug in getOrCreateRoot() where the
compare_exchange_strong result was discarded, causing asSubtrie()
assertion when RootTrieOffset was corrupted to zero.
OnDiskGraphDB:
- Reject invalid (zero) ref offsets in validate callback, preventing
asData() assertion when corrupt data pool refs are resolved via
recoverFromFileOffset().
- Validate DataRecordHandle layout flags before calling getTotalSize(),
preventing llvm_unreachable on corrupt NumRefsFlags/DataSizeFlags.
- Validate data pool bump pointer alignment, catching misaligned
BumpPtr that would crash store() in DataRecordHandle::constructImpl().
- Check data record refs offset alignment before calling getRefs(),
preventing PointerUnion assertion from misaligned refs pointer.
MappedFileRegionArena:
- Convert assertions in initializeHeader() to errors so corrupted
arena headers return an error on CAS open instead of crashing.
Assisted-By: Claude
Commit: fbe6d794650a3c9d586c020fcf2b4fba3faa2dad
https://github.com/llvm/llvm-project/commit/fbe6d794650a3c9d586c020fcf2b4fba3faa2dad
Author: Congzhe <congzhe.cao at huawei.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
Log Message:
-----------
[LoopFusion] Fix out-of-date LoopInfo being used during fusion (#189452)
This is fix for
[187902](https://github.com/llvm/llvm-project/issues/187902), where
`LoopInfo` is not in a valid state at the beginning of `ScalarEvolution::createSCEVIter`.
The reason for the bug is that, `mergeLatch()` is called at a place
where control flow and dominator trees have been updated but `LoopInfo`
has not completed the update yet. `mergeLatch()` calls into
`ScalarEvolution` that uses `LoopInfo`, where out-of-date `LoopInfo` would
result in crash or unpredictable results.
This patch moves `mergeLatch()` to the place where `LoopInfo` has
completed its update and hence is in a valid state.
Commit: 92b595b9b4ca71aad9e7cc7d32e4b90a9b051a5b
https://github.com/llvm/llvm-project/commit/92b595b9b4ca71aad9e7cc7d32e4b90a9b051a5b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M flang/lib/Semantics/check-cuda.cpp
M flang/test/Semantics/cuf25.cuf
Log Message:
-----------
[flang][cuda] Take associate into account for host array diagnostic (#190673)
Commit: 89665812f54feeab985c0c8b72cf3063128e65b2
https://github.com/llvm/llvm-project/commit/89665812f54feeab985c0c8b72cf3063128e65b2
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
Log Message:
-----------
[Analysis][NFC] Use block numbers in BlockFrequencyInfo (#190669)
Block pointers are only stored while constructing the analysis, so the
value handle to catch erased blocks is no longer needed when using
stable block numbers.
Commit: 9033e872fd779e682320fe1ad923ea25e7c636f9
https://github.com/llvm/llvm-project/commit/9033e872fd779e682320fe1ad923ea25e7c636f9
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.update.dpp.mir
Log Message:
-----------
[AMDGPU][GISel] RegBankLegalize rules for update_dpp (#190662)
Commit: d91702733445ea8bc6d6a8f2f50dd6b65e52d106
https://github.com/llvm/llvm-project/commit/d91702733445ea8bc6d6a8f2f50dd6b65e52d106
Author: Zile Xiong <xiongzile at bytedance.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
A llvm/test/tools/llvm-cov/Inputs/main-view-fileid-regression.covmapping
A llvm/test/tools/llvm-cov/Inputs/main-view-fileid-regression.proftext
A llvm/test/tools/llvm-cov/main-view-fileid-regression.test
Log Message:
-----------
[llvm-cov] Guard against empty CountedRegions in findMainViewFileID (#189270)
When processing coverage generated from branch coverage mode, some
functions can reach findMainViewFileID with an empty CountedRegions
list. In that case the current logic still proceeds to infer the main
view file, even though there is no regular counted region available to
do so.
Return std::nullopt early when CountedRegions is empty.
This was observed when reproducing issue #189169 with:
cargo llvm-cov --lib --branch
The issue appears related to branch-only coverage information being
recorded separately in CountedBranchRegions, while
findMainViewFileID currently only consults CountedRegions.
This patch is a defensive fix for the empty-region case; further
investigation may still be needed to determine whether branch regions
should participate in main view file selection.
Co-authored-by: Zile Xiong <xiongzile99 at gmail.com>
Commit: ee51de9836894f829a0811307901434ee592c9be
https://github.com/llvm/llvm-project/commit/ee51de9836894f829a0811307901434ee592c9be
Author: Andrew <dota2drot at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
M llvm/test/tools/llvm-cov/mcdc-const.test
M llvm/test/tools/llvm-cov/mcdc-export-json.test
M llvm/test/tools/llvm-cov/mcdc-general-none.test
M llvm/test/tools/llvm-cov/mcdc-general.test
M llvm/test/tools/llvm-cov/mcdc-macro.test
M llvm/tools/llvm-cov/CodeCoverage.cpp
M llvm/tools/llvm-cov/CoverageExporterJson.cpp
M llvm/tools/llvm-cov/CoverageViewOptions.h
M llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
M llvm/tools/llvm-cov/SourceCoverageViewText.cpp
Log Message:
-----------
[llvm-cov] add ability to show non executed test vectors for mc/dc coverage (#187517)
- Added `-show-mcdc-non-executed-vectors` option
- Non-executed test vectors now are tracked
- When the opt is present it's get written to UI
Commit: 97d50c149070d104e301159b825657af60613fa4
https://github.com/llvm/llvm-project/commit/97d50c149070d104e301159b825657af60613fa4
Author: Anshul Nigham <nigham at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/combine-2-icmps-of-0-and-or.mir
Log Message:
-----------
[NewPM] Adds a port for AArch64PreLegalizerCombiner (#190567)
Standard porting (note that TargetPassConfig dependency was [removed
earlier](https://github.com/llvm/llvm-project/commit/e27e7e433974b24c90fed9f0b646bed84e47681e)).
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 9bddf47198582459f954e10fd4920f2afac10e15
https://github.com/llvm/llvm-project/commit/9bddf47198582459f954e10fd4920f2afac10e15
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
Log Message:
-----------
[MLIR][XeGPU] Extend Wg-to-Sg Distribution of Multi-Reduction Op for round-robin layout (#189988)
This PR enhance the multi-reduction op pattern of wg-to-sg distribution
pass:
1. allows each sg have multiple distribution of sg_data tiles.
2. expand the slm buffer size.
3. construct the layout based on the partial reduced vector and use
layout.computeDistributedCoords() to compute coordinates. the layout is
constructed so that the store is cooperative, and load overlapps with
neighbour threads.
4. perform save and load.
Commit: af95b0a615260a2868e5581d5fa18b9379b1c8ff
https://github.com/llvm/llvm-project/commit/af95b0a615260a2868e5581d5fa18b9379b1c8ff
Author: Joe Nash <joseph.nash at amd.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_minmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_udec_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_uinc_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-short-clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.set.inactive.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
M llvm/test/CodeGen/AMDGPU/av_movimm_pseudo_expansion.mir
M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
M llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll
M llvm/test/CodeGen/AMDGPU/combine_andor_with_cmps.ll
M llvm/test/CodeGen/AMDGPU/dag-divergence-atomic.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/ds-sub-offset.ll
M llvm/test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll
M llvm/test/CodeGen/AMDGPU/extract_vector_elt-i8.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx1200.ll
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
M llvm/test/CodeGen/AMDGPU/inflate-av-remat-imm.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.pk.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.quadmask.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.set.inactive.chain.arg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.set.inactive.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/lrint.ll
M llvm/test/CodeGen/AMDGPU/lround.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/memset-pattern.ll
M llvm/test/CodeGen/AMDGPU/misaligned-vgpr-regsequence.mir
M llvm/test/CodeGen/AMDGPU/move-to-valu-lshl_add.ll
M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
M llvm/test/CodeGen/AMDGPU/packed-fp32.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/AMDGPU/roundeven.ll
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
M llvm/test/CodeGen/AMDGPU/sdiv64.ll
M llvm/test/CodeGen/AMDGPU/shift-i128.ll
M llvm/test/CodeGen/AMDGPU/siloadstoreopt-misaligned-regsequence.ll
M llvm/test/CodeGen/AMDGPU/srem64.ll
M llvm/test/CodeGen/AMDGPU/swdev380865.ll
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/udiv.ll
M llvm/test/CodeGen/AMDGPU/udiv64.ll
M llvm/test/CodeGen/AMDGPU/urem64.ll
M llvm/test/CodeGen/AMDGPU/v_mov_b64_expand_and_shrink.mir
M llvm/test/CodeGen/AMDGPU/v_mov_b64_expansion.mir
M llvm/test/CodeGen/AMDGPU/vgpr-mark-last-scratch-load.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
Log Message:
-----------
[AMDGPU] Remove implicit super-reg defs on mov64 pseudos (#190379)
The mov64 pseudo is split into two 32 bit movs, but those 32 bit movs
had the full 64-bit register still implicitly defined. VOPD formation is
affected, so we can emit more of them.
Commit: 7087ece044f1313206ce5d5e5115862fe29143c1
https://github.com/llvm/llvm-project/commit/7087ece044f1313206ce5d5e5115862fe29143c1
Author: Jared Hoberock <jaredhoberock at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M mlir/lib/ExecutionEngine/CudaRuntimeWrappers.cpp
M mlir/test/Integration/GPU/CUDA/async.mlir
Log Message:
-----------
[MLIR][ExecutionEngine] Tolerate CUDA_ERROR_DEINITIALIZED in mgpuModuleUnload (#190563)
`mgpuModuleUnload` may be called from a global destructor (registered by
`SelectObjectAttr`'s `appendToGlobalDtors`) after the CUDA primary
context has already been destroyed during program shutdown. In this
case, `cuModuleUnload` returns `CUDA_ERROR_DEINITIALIZED`, which is
benign since the module's resources are already freed with the context.
## Reproduction
Any program that uses `gpu.launch_func` and is AOT-compiled (via
`mlir-translate --mlir-to-llvmir | llc | cc -lmlir_cuda_runtime`) will
print `'cuModuleUnload(module)' failed with '<unknown>'` on exit. This
is because `SelectObjectAttr` registers the module unload as a global
destructor, which runs after the CUDA primary context is released.
This script reproduces the error message from `mgpuModuleUnload` on my
system:
```
#!/bin/bash
set -e
LLVM_BUILD=${LLVM_BUILD:-$HOME/dev/git/llvm-project-22/build}
cat > /tmp/repro.mlir << 'MLIR'
func.func @main() {
%c1 = arith.constant 1 : index
gpu.launch blocks(%bx, %by, %bz) in (%gx = %c1, %gy = %c1, %gz = %c1)
threads(%tx, %ty, %tz) in (%bsx = %c1, %bsy = %c1, %bsz = %c1) {
gpu.terminator
}
return
}
MLIR
$LLVM_BUILD/bin/mlir-opt /tmp/repro.mlir \
-gpu-lower-to-nvvm-pipeline="cubin-format=fatbin" \
| $LLVM_BUILD/bin/mlir-translate --mlir-to-llvmir -o /tmp/repro.ll
$LLVM_BUILD/bin/llc -relocation-model=pic -filetype=obj /tmp/repro.ll -o /tmp/repro.o
cc /tmp/repro.o \
-L$LLVM_BUILD/lib -Wl,-rpath,$LLVM_BUILD/lib \
-lmlir_cuda_runtime -lmlir_runner_utils -o /tmp/repro
echo "Running:"
/tmp/repro 2>&1
echo "Exit code: $?"
```
## Context
This matches how other projects handle the same shutdown ordering issue:
- Clang CUDA (D48613) switched module cleanup from
`__attribute__((destructor))` to `atexit()`
- GCC libgomp checks context validity before `cuModuleUnload`
- Apache TVM silently ignores `CUDA_ERROR_DEINITIALIZED` on module
unload
Fixes #170833
Commit: ef715849d7962eebfe591f54faeeaf4ffd703954
https://github.com/llvm/llvm-project/commit/ef715849d7962eebfe591f54faeeaf4ffd703954
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Log Message:
-----------
[NFC][AMDGPU] Add some debug prints to SIMemoryLegalizer (#190658)
Commit: 62ce560f68b0a1149d73e56d5d0927d5546b6e20
https://github.com/llvm/llvm-project/commit/62ce560f68b0a1149d73e56d5d0927d5546b6e20
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-04-07 (Tue, 07 Apr 2026)
Changed paths:
M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
Log Message:
-----------
[lldb] Remove some unreachable code (NFC) (#190529)
`isRISCV()` check always returns false because we only get here if
`min_op_byte_size` and `max_op_byte_size` are equal, which is not true
for RISC-V.
Also, replase `if (!got_op)` check with an `else`. The check is
equivalent to
`if (min_op_byte_size != max_op_byte_size)`, and the `if` above checks
for the opposite condition.
Commit: 8a11fe97a299b8b384195d52f317e198bb3a27d4
https://github.com/llvm/llvm-project/commit/8a11fe97a299b8b384195d52f317e198bb3a27d4
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
M llvm/test/Analysis/DependenceAnalysis/exact-rdiv-addrec-wrap.ll
Log Message:
-----------
[DA] Require `nsw` for AddRecs involved in GCD test (#186892)
Similar to other tests, we are adding code that the AddRecs used in GCD
test are `nsw`. In this case, all recursively identified `AddRec`s are
also checked. Note that there is already a similar check in
`getConstantCoefficient` for expressions processed in that function.
Commit: 79e669f000c1b8539b4ae1e7be35e74a41144698
https://github.com/llvm/llvm-project/commit/79e669f000c1b8539b4ae1e7be35e74a41144698
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/CAS/DatabaseFile.cpp
Log Message:
-----------
[CAS] Revert an unintentional change in #190634 (#190686)
Revert an unintentional change in #190634 that did an unintentional
implicit signed to unsigned cast.
Commit: a8cf1a0352a080b62c3eee1d3aac213bf9d6b416
https://github.com/llvm/llvm-project/commit/a8cf1a0352a080b62c3eee1d3aac213bf9d6b416
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M bolt/lib/Profile/DataReader.cpp
A bolt/test/X86/Inputs/pre-aggregated-buildid-empty.txt
M bolt/test/X86/pre-aggregated-perf-buildid.test
Log Message:
-----------
[BOLT] Allow empty buildid in pre-aggregated profile addresses (#190675)
Allow `parseString()` to return an empty `StringRef` when the delimiter
appears at position 0. This enables parsing pre-aggregated profile
addresses with an omitted buildid but preserved colon (`:addr` format),
where the empty buildid corresponds to the main binary.
Previously, `parseString()` rejected zero-length fields by treating
`StringEnd == 0` the same as `StringRef::npos` (delimiter not found).
These are distinct situations: `npos` means no delimiter exists, while
`0` means the field before the delimiter is empty. The fix removes the
`StringEnd == 0` sub-condition so only the missing-delimiter case
errors.
The existing test for buildid-prefixed addresses is extended to also
verify that `:addr` input produces identical output to the plain-address
and non-empty-buildid variants.
Test Plan:
Added empty-buildid input file and extended
`pre-aggregated-perf-buildid.test` to run perf2bolt with `:addr` format
and diff the fdata output against the existing buildid-prefixed result.
Commit: df461c164ccf48854aa3e3898399f355d3fe210a
https://github.com/llvm/llvm-project/commit/df461c164ccf48854aa3e3898399f355d3fe210a
Author: Yeongu Choe <yeongu.choe at icloud.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-fpclassify.c
Log Message:
-----------
[CIR][CodeGen] Implement __builtin_fpclassify (#187977)
I implemented CIR version of __builtin_fpclassify function.
Commit: e8566f83d2541734ad9b66c474e7f500ce98a280
https://github.com/llvm/llvm-project/commit/e8566f83d2541734ad9b66c474e7f500ce98a280
Author: Piyush Jaiswal <piyushjais98 at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M lldb/bindings/interface/SBModuleSpecListExtensions.i
M lldb/test/API/python_api/sbmodule/TestSBModule.py
Log Message:
-----------
[lldb][python] Add polymorphic `__getitem__` to `SBModuleSpecList` for Pythonic indexing (#189125)
### Summary
`SBModuleSpecList` already supports `len()` and iteration via `__len__`
and `__iter__`, but is not subscriptable — `specs[0]` raises
`TypeError`.
This adds a `__getitem__` method that supports integer indexing (with
negative index support) and string lookup using `endswith()` matching,
which works for both Unix and Windows paths.
### Supported key types
| Key type | Example | Behavior |
|---|---|---|
| `int` | `specs[0]`, `specs[-1]` | Direct index with negative index
support |
| `str` | `specs['a.out']`, `specs['/usr/lib/liba.dylib']` | Lookup by
basename or partial/full path via `endswith()`. Returns first match or
`None` |
### Error handling
- **`IndexError`** for out-of-bounds integer indices
- **`TypeError`** for unsupported key types (e.g., `float`)
- **`None`** for string lookups with no match
### Before
```python
>>> specs = lldb.SBModuleSpecList.GetModuleSpecifications('/bin/ls')
>>> specs[0]
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'SBModuleSpecList' object is not subscriptable
```
### After
```python
>>> import lldb, re
>>> specs = lldb.SBModuleSpecList.GetModuleSpecifications('/bin/ls')
>>> specs[0]
file = '/bin/ls', arch = x86_64-*-linux, uuid = 3CCC0D8A-..., object size = 140928
>>> specs[-1]
file = '/bin/ls', arch = x86_64-*-linux, uuid = 3CCC0D8A-..., object size = 140928
>>> specs['ls']
file = '/bin/ls', arch = x86_64-*-linux, uuid = 3CCC0D8A-..., object size = 140928
>>> specs[999]
IndexError: list index out of range
>>> specs[1.5]
TypeError: unsupported index type: <class 'float'>
```
### Test plan
Added test_module_spec_list_indexing to TestSBModule.py covering:
- Positive and negative integer indexing
- Out-of-bounds raises IndexError
- Unsupported key type raises TypeError
- String lookup by basename and full path (endswith() matching)
- Missing key returns None
```
bin/llvm-lit -sv lldb/test/API/python_api/sbmodule/TestSBModule.py
```
```
PASS: LLDB :: test_GetObjectName_dwarf (TestSBModule.SBModuleAPICase)
PASS: LLDB :: test_GetObjectName_dwo (TestSBModule.SBModuleAPICase)
PASS: LLDB :: test_module_spec_list_indexing_dwarf (TestSBModule.SBModuleAPICase)
PASS: LLDB :: test_module_spec_list_indexing_dwo (TestSBModule.SBModuleAPICase)
----------------------------------------------------------------------
Ran 12 tests in 1.854s
OK (skipped=6)
```
Co-authored-by: Piyush Jaiswal <piyushjais at meta.com>
Commit: 1ae179b3257b1087a0b0e354d5dbc7afd8ddd0e6
https://github.com/llvm/llvm-project/commit/1ae179b3257b1087a0b0e354d5dbc7afd8ddd0e6
Author: Wei Wang <apollo.mobility at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-backward-matching.prof
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-backward-matching.ll
Log Message:
-----------
[SampleProfileMatcher] Fix backward matching of non-anchor locations (#190118)
The backward matching loop in `matchNonCallsiteLocs` was ineffective
because `InsertMatching` used `std::unordered_map::insert()` which does
not overwrite existing entries. Since forward matching already inserted
entries for all non-anchor locations, the backward matching for the
second half was silently ignored.
The backward matching can update forward mappings in
`IRToProfileLocationMap` in 2 ways:
- The IR location maps a new different profile location. Change
`insert()` to `insert_or_assign()` so that entry overwrite can happen.
- The IR location maps the same profile location. Add `erase()` to
remove such mapping.
Commit: ce61fe5c48b5b74458e7208f7871e788add2d89e
https://github.com/llvm/llvm-project/commit/ce61fe5c48b5b74458e7208f7871e788add2d89e
Author: Wei Wang <apollo.mobility at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/tools/llvm-profgen/MissingFrameInferrer.cpp
M llvm/tools/llvm-profgen/PerfReader.h
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
M llvm/tools/llvm-profgen/llvm-profgen.cpp
Log Message:
-----------
[NFC][llvm-profgen] Fix a few minor issues (#190019)
A few NFC (mostly) fixes:
- Drop unused parameters.
- Check return error.
- Fix return type.
Commit: 8e1ea8af3898361c3320662661a6939c3d1985ed
https://github.com/llvm/llvm-project/commit/8e1ea8af3898361c3320662661a6939c3d1985ed
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rv32p.ll
Log Message:
-----------
[RISCV][P-ext] Add isel patterns for mhacc/mhaccu/mhaccsu. (#190670)
Commit: 014d5d51e11ba6e84e16bb97a897fa568a971341
https://github.com/llvm/llvm-project/commit/014d5d51e11ba6e84e16bb97a897fa568a971341
Author: Alex Langford <alangford at apple.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[lldb] Change most tests to build with system libc++ on Darwin (#190034)
Today, on Darwin platforms, almost every test binary in our test suite
loads two copies of libc++, libc++abi, and libunwind. This is because
each of the test binaries explicitly link against a just-built libc++
(which is explicitly required on Darwin right now) but we don't take the
correct steps to replace the system libc++. Doing so is unnecessary and
potentially error-prone, so most tests should link against the system
libc++ where possible.
Background:
The lldb test suite has a collection of tests that rely on libc++
explicitly. The two biggest categories are data formatter tests (which
make sure that we can correctly display values for std types) and
import-std-module tests (which test that we can import the libc++ std
module). To make sure these tests are run, we require a just-built
libc++ to be used.
All of the test binaries link against the just-built libc++, so it gets
loaded. However, when any system library tries to load libc++, it
attempts to load the system one. dyld checks loaded libraries against
the request to load a new one using the full path, meaning anyone
linking against `/usr/lib/libc++.1.dylib` will get it no matter what
other libc++ dylib is already loaded.
The proper way to handle this is using `DYLD_LIBRARY_PATH`, which
switches dyld to checking the leaf name of a dylib instead of the full
path. In theory this works, but we run into an issue where the system
libc++ has additional symbols and many system libraries fail to load.
Louis Dionne added stubs in libc++abi for these missing symbols, meaning
it would be possible to make this scenario work. This may be useful for
the existing libc++ tests.
Commit: fe07678c1f7a558074d2651b94e7d4369aeaec31
https://github.com/llvm/llvm-project/commit/fe07678c1f7a558074d2651b94e7d4369aeaec31
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
Log Message:
-----------
[libc++] Switch CI runners to use the latest Docker image (#190363)
Commit: 228b6ae5608baea7120fc4d5d611b3fbd30ce0cb
https://github.com/llvm/llvm-project/commit/228b6ae5608baea7120fc4d5d611b3fbd30ce0cb
Author: Yeongu Choe <yeongu.choe at icloud.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-signbit.c
Log Message:
-----------
[CIR][CodeGen] Implement __builtin_signbit (#188433)
__builtin_signbit function checks if the sign bit of a floating-point
number is set to 0 or 1.
Commit: aedd4e0850efcdf32d6b0a3ff0c9b61f89c7cfd7
https://github.com/llvm/llvm-project/commit/aedd4e0850efcdf32d6b0a3ff0c9b61f89c7cfd7
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/test/CIR/CodeGen/static-local.cpp
Log Message:
-----------
[CIR] Handle static local var decl constants (#190699)
This adds the handling for the case where the address of a static local
variable is used to initialize another static local. In this case, the
address of the first variable is emitted as a constant in the
initializer of the second variable.
Commit: 90ec5f2f629580d0f71ff4dfe842e2488043cbaf
https://github.com/llvm/llvm-project/commit/90ec5f2f629580d0f71ff4dfe842e2488043cbaf
Author: Jared Hoberock <jaredhoberock at gmail.com>
Date: 2026-04-07 (Tue, 07 Apr 2026)
Changed paths:
M mlir/test/Integration/GPU/CUDA/async.mlir
Log Message:
-----------
[MLIR][test] Re-disable FileCheck on async.mlir integration test (#190702)
#190563 re-enabled FileCheck on `Integration/GPU/CUDA/async.mlir`, but
the buildbot has shown intermittent wrong-output failures
([example](https://lab.llvm.org/buildbot/#/builders/116/builds/27026)):
the test produces `[42, 42]` instead of the expected `[84, 84]`.
This wrong-output flakiness is distinct from the cleanup-time
`cuModuleUnload` errors that #190563 actually fixes — it's the
underlying issue tracked by #170833. The merged commit message for
#190563 incorrectly says `Fixes #170833`; that issue should be reopened,
since the cleanup-error fix doesn't address the wrong-output behavior.
This PR puts the test back in its previously-disabled state. The runtime
cleanup fix in #190563 is unaffected.
Commit: 94875aea7eec805d54055f55fad99b57e0ad2317
https://github.com/llvm/llvm-project/commit/94875aea7eec805d54055f55fad99b57e0ad2317
Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/include/llvm/CodeGen/LiveIntervals.h
M llvm/lib/CodeGen/Rematerializer.cpp
M llvm/unittests/CodeGen/RematerializerTest.cpp
Log Message:
-----------
[CodeGen] Fix multiple connected component issue in rematerializer (#186674)
This fixes a rematerializer issue wherein re-creating the interval of a
non-rematerializable super-register defined over multiple MIs, some of
which defining entirely dead sub-registers, could cause a crash when
changing the order of sub-definitions (for example during scheduling)
because the re-created interval could end up with multiple connected
components, which is illegal. The solution is to split separate
components of the interval in such cases. The added unit test crashes
without that added behavior.
Commit: 511a7aacee6523799fbfd83c9c44b41d118362aa
https://github.com/llvm/llvm-project/commit/511a7aacee6523799fbfd83c9c44b41d118362aa
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/Lowering/poison.cir
M clang/utils/TableGen/CIRLoweringEmitter.cpp
Log Message:
-----------
[CIR][NFC] Use tablegen to create CIRAttrToValue visitor declarations (#187607)
This change introduces TableGen support for indicating CIR attributes
that require a CIRAttrToValue visitor, adds the new flag to all
attributes to which it applies, and replaces the explicit declarations
with the tablegen output.
Commit: fa70ee45be461d5d997fc7aac4e39f48be9d21ee
https://github.com/llvm/llvm-project/commit/fa70ee45be461d5d997fc7aac4e39f48be9d21ee
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/test/CIR/CodeGenBuiltins/builtins-floating-point.c
Log Message:
-----------
[CIR] Implement __builtin_flt_rounds and __builtin_set_flt_rounds (#190706)
This adds CIR handling for the __builtin_flt_rounds and
__builtin_set_flt_rounds builtin functions. Because the LLVM dialect
does not have dedicated operations for these, I have chosen not to
implement them as operations in CIR either. Instead, we just call the
LLVM intrinsic.
Commit: 82505fbfc870f4a657fbaa66a7514db9f30e030a
https://github.com/llvm/llvm-project/commit/82505fbfc870f4a657fbaa66a7514db9f30e030a
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/Analysis/InlineOrder.h
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/lib/Analysis/InlineOrder.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/IPO/AlwaysInliner.cpp
M llvm/lib/Transforms/IPO/Inliner.cpp
M llvm/lib/Transforms/IPO/ModuleInliner.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Transforms/Inline/debug-invoke.ll
A llvm/test/Transforms/Inline/inline-history-2.ll
R llvm/test/Transforms/Inline/inline-history-noinline.ll
A llvm/test/Transforms/Inline/inline-history.ll
M llvm/test/Transforms/Inline/inline-recursive-fn2.ll
A llvm/test/Verifier/inline-history-metadata.ll
M llvm/unittests/Analysis/InlineOrderPlugin/InlineOrderPlugin.cpp
Log Message:
-----------
[Inliner] Put inline history into IR as !inline_history metadata (#190700)
(Reland of #190092 with verifier change to look through GlobalAliases)
So that it's preserved across all inline invocations rather than just
one inliner pass run.
This prevents cases where devirtualization in the simplification
pipeline uncovers inlining opportunities that should be discarded due to
inline history, but we dropped the inline history between inliner pass
runs, causing code size to blow up, sometimes exponentially.
For compile time reasons, we want to limit this to only call sites that
have the potential to inline through SCCs, potentially with the help of
devirtualization. This means that the callee is in a non-trivial
(Ref)SCC, or the call site was previously an indirect call, which can
potentially be devirtualized to call any function.
The CGSCCUpdater::InlinedInternalEdges logic still seems to be relevant
even with this change, as monster_scc.ll blows up if I remove that code.
http://llvm-compile-time-tracker.com/compare.php?from=e830d88e8ae5f44a97cc76136a0a4e83aa9157c0&to=ed535e732fc41b79ab8efda2417886cbd0812f7f&stat=instructions:u
Fixes #186926.
Commit: eb35aa90f66f9752c92bbb6f9fb9916ba9db967a
https://github.com/llvm/llvm-project/commit/eb35aa90f66f9752c92bbb6f9fb9916ba9db967a
Author: Jim Lin <jim at andestech.com>
Date: 2026-04-07 (Tue, 07 Apr 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
M llvm/test/CodeGen/RISCV/rvv/vrol.ll
Log Message:
-----------
[RISCV] Use per-SEW immediate inversion for vrol intrinsic patterns (#190113)
The VPatBinaryV_VI_VROL multiclass was using InvRot64Imm for all SEW
widths when converting vrol immediate intrinsics to vror.vi. This
produced unnecessarily large immediates for narrower element types
(e.g., 61 instead of 5 for SEW=8 rotate-left by 3).
Use the appropriate InvRot{SEW}Imm transform to match what the SDNode
patterns already do.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 75bb30ddbf3bf3b9f01cf1c46fe6d9749f377d9d
https://github.com/llvm/llvm-project/commit/75bb30ddbf3bf3b9f01cf1c46fe6d9749f377d9d
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-04-06 (Mon, 06 Apr 2026)
Changed paths:
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Utils/Local.cpp
R llvm/test/Transforms/GVN/PRE/protected-field-ptr.ll
A llvm/test/Transforms/InstCombine/protected-field-ptr.ll
M llvm/test/Transforms/InstCombine/ptrauth-intrinsics.ll
M llvm/test/Transforms/PhaseOrdering/phi-protected-field-ptr.ll
A llvm/test/Transforms/PreISelIntrinsicLowering/emupac.ll
M llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
M llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
Log Message:
-----------
Move {load,store}(llvm.protected.field.ptr) lowering to InstCombine.
The previous position of llvm.protected.field.ptr lowering for loads
and stores was problematic as it not only inhibited optimizations such
as DSE (as stores to a llvm.protected.field.ptr were not considered to
must-alias stores to the non-protected.field pointer) but also required
changes to other optimization passes to avoid transformations that would
reduce PFP coverage.
Address this by moving the load/store part of the lowering to
InstCombine, where it will run earlier than the PFP-breaking and
AA-relying transformations. The deactivation symbol, null comparison
and EmuPAC parts of the lowering remain in PreISelLowering.
Now that the transformation inhibitions are no longer needed, remove them
(i.e. partially revert #151649, and revert #182976).
This change resulted in a 2.4% reduction in Fleetbench .text size and
the following improvements to PFP performance overhead for BM_PROTO_Arena
on various microarchitectures:
before after
Apple M2 Ultra 3.5% 3.3%
Google Axion C4A 3.3% 2.9%
Google Axion N4A 2.7% 2.2%
Reviewers: fmayer, nikic, vitalybuka
Reviewed By: fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/186548
Commit: e23a9fa20bfef486de28a8f56900715590b6cbcd
https://github.com/llvm/llvm-project/commit/e23a9fa20bfef486de28a8f56900715590b6cbcd
Author: David Green <david.green at arm.com>
Date: 2026-04-07 (Tue, 07 Apr 2026)
Changed paths:
M .ci/all_requirements.txt
M .ci/compute_projects.py
M .ci/compute_projects_test.py
M .ci/green-dragon/clang-stage1-RA.groovy
A .ci/green-dragon/lldb-ubuntu.groovy
A .ci/green-dragon/lldb-windows.groovy
M .ci/monolithic-linux.sh
M .ci/monolithic-windows.sh
M .ci/premerge_advisor_explain.py
M .github/CODEOWNERS
M .github/actions/build-container/action.yml
M .github/actions/push-container/action.yml
M .github/new-prs-labeler.yml
M .github/workflows/bazel-checks.yml
M .github/workflows/build-ci-container-tooling.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
M .github/workflows/build-libc-container.yml
M .github/workflows/build-metrics-container.yml
M .github/workflows/check-ci.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.yml
M .github/workflows/containers/github-action-ci-tooling/Dockerfile
M .github/workflows/containers/github-action-ci-windows/Dockerfile
M .github/workflows/containers/github-action-ci/Dockerfile
M .github/workflows/containers/libc/Dockerfile
M .github/workflows/docs.yml
M .github/workflows/email-check.yaml
M .github/workflows/gha-codeql.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/ids-check.yml
M .github/workflows/issue-subscriber.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
A .github/workflows/libc-shared-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-build-containers.yml
M .github/workflows/libcxx-check-generated-files.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/lldb-pylint-action.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/merged-prs.yml
M .github/workflows/mlir-spirv-tests.yml
M .github/workflows/new-prs.yml
M .github/workflows/pr-code-format.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/pr-subscriber.yml
M .github/workflows/premerge.yaml
M .github/workflows/prune-branches.yml
M .github/workflows/release-asset-audit.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/scorecard.yml
M .github/workflows/spirv-tests.yml
A .github/workflows/sycl-tests.yml
M .github/workflows/test-unprivileged-download-artifact.yml
M .github/workflows/upload-release-artifact/action.yml
M .github/workflows/version-check.yml
A .github/workflows/zizmor.yml
M .mailmap
M bolt/docs/index.rst
A bolt/docs/profiles.md
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/include/bolt/Passes/DataflowAnalysis.h
M bolt/include/bolt/Passes/LivenessAnalysis.h
M bolt/include/bolt/Passes/LongJmp.h
M bolt/include/bolt/Passes/PAuthGadgetScanner.h
M bolt/include/bolt/Passes/ReorderFunctions.h
R bolt/include/bolt/Passes/ReorderUtils.h
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Profile/DataReader.h
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/AsmDump.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Passes/PAuthGadgetScanner.cpp
M bolt/lib/Passes/ReorderData.cpp
M bolt/lib/Passes/ReorderFunctions.cpp
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/DataReader.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/RuntimeLibs/InstrumentationRuntimeLibrary.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
M bolt/runtime/common.h
M bolt/runtime/instr.cpp
M bolt/runtime/sys_riscv64.h
A bolt/test/AArch64/Inputs/compressed-debug-sections.yaml
A bolt/test/AArch64/check-symbol-area.s
M bolt/test/AArch64/compare-and-branch-inversion.S
M bolt/test/AArch64/compare-and-branch-reorder-blocks.S
M bolt/test/AArch64/compare-and-branch-split-functions.S
M bolt/test/AArch64/compare-and-branch-unsupported.S
A bolt/test/AArch64/compressed-debug-sections.test
A bolt/test/AArch64/function-order-hybrid.s
A bolt/test/AArch64/retain-local-symbols.s
M bolt/test/AArch64/skip-non-vfuncptr-reloc-in-relative-vtable.s
A bolt/test/Inputs/elf32-basic.yaml
A bolt/test/X86/Inputs/pre-aggregated-buildid-empty.txt
A bolt/test/X86/Inputs/pre-aggregated-buildid.txt
M bolt/test/X86/avx512-trap.test
M bolt/test/X86/dynamic-relocs-on-entry.s
A bolt/test/X86/pre-aggregated-perf-buildid.test
M bolt/test/binary-analysis/AArch64/cmdline-args.test
M bolt/test/binary-analysis/AArch64/gs-pacret-autiasp.s
M bolt/test/binary-analysis/AArch64/gs-pacret-multi-bb.s
M bolt/test/binary-analysis/AArch64/gs-pauth-address-checks.s
M bolt/test/binary-analysis/AArch64/gs-pauth-address-materialization.s
M bolt/test/binary-analysis/AArch64/gs-pauth-authentication-oracles.s
M bolt/test/binary-analysis/AArch64/gs-pauth-calls.s
M bolt/test/binary-analysis/AArch64/gs-pauth-debug-output.s
A bolt/test/binary-analysis/AArch64/gs-pauth-scanners.s
M bolt/test/binary-analysis/AArch64/gs-pauth-signing-oracles.s
M bolt/test/binary-analysis/AArch64/gs-pauth-tail-calls.s
M bolt/test/binary-analysis/AArch64/trap-instructions.s
A bolt/test/elf32-basic.test
A bolt/test/empty-fdata-file.test
M bolt/test/max-funcs.test
M bolt/test/merge-fdata-bat-no-lbr.test
M bolt/test/merge-fdata-mixed-bat-no-lbr.test
M bolt/test/merge-fdata-mixed-mode.test
M bolt/test/merge-fdata-no-lbr-mode.test
A bolt/test/merge-fdata-skip-truncated.test
M bolt/tools/merge-fdata/merge-fdata.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M bolt/unittests/Passes/CMakeLists.txt
A bolt/unittests/Passes/LivenessAnalysis.cpp
M clang-tools-extra/Maintainers.rst
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeReader.h
M clang-tools-extra/clang-doc/BitcodeWriter.cpp
M clang-tools-extra/clang-doc/CMakeLists.txt
M clang-tools-extra/clang-doc/ClangDoc.cpp
M clang-tools-extra/clang-doc/ClangDoc.h
M clang-tools-extra/clang-doc/Generators.cpp
M clang-tools-extra/clang-doc/Generators.h
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/MDGenerator.cpp
A clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/Serialize.h
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/clang-doc-mustache.css
M clang-tools-extra/clang-doc/assets/comment-template.mustache
M clang-tools-extra/clang-doc/assets/enum-template.mustache
M clang-tools-extra/clang-doc/assets/function-template.mustache
M clang-tools-extra/clang-doc/assets/head-template.mustache
A clang-tools-extra/clang-doc/assets/md/all-files-template.mustache
A clang-tools-extra/clang-doc/assets/md/class-template.mustache
A clang-tools-extra/clang-doc/assets/md/comments-partial.mustache
A clang-tools-extra/clang-doc/assets/md/index-template.mustache
A clang-tools-extra/clang-doc/assets/md/namespace-template.mustache
M clang-tools-extra/clang-doc/assets/navbar-template.mustache
A clang-tools-extra/clang-doc/benchmarks/CMakeLists.txt
A clang-tools-extra/clang-doc/benchmarks/ClangDocBenchmark.cpp
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/support/Utils.h
M clang-tools-extra/clang-doc/tool/CMakeLists.txt
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/ClangTidy.h
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/ClangTidyModule.h
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.h
M clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
M clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
M clang-tools-extra/clang-tidy/GlobList.cpp
M clang-tools-extra/clang-tidy/GlobList.h
M clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
M clang-tools-extra/clang-tidy/abseil/DurationAdditionCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationConversionCastCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationFactoryFloatCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp
M clang-tools-extra/clang-tidy/abseil/DurationRewriter.h
M clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp
M clang-tools-extra/clang-tidy/abseil/RedundantStrcatCallsCheck.cpp
M clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp
M clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.h
M clang-tools-extra/clang-tidy/abseil/UncheckedStatusOrAccessCheck.cpp
M clang-tools-extra/clang-tidy/abseil/UpgradeDurationConversionsCheck.cpp
M clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.cpp
M clang-tools-extra/clang-tidy/altera/StructPackAlignCheck.cpp
M clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/AssignmentInSelectionStatementCheck.h
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
M clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
M clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DerivedMethodShadowingBaseMethodCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DynamicStaticInitializersCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.h
M clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/FoldInitTypeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/IncorrectEnableSharedFromThisCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/PointerArithmeticOnPolymorphicObjectCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.h
M clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.h
M clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.h
M clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/StandaloneEmptyCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/StdExceptionBaseclassCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/StdExceptionBaseclassCheck.h
M clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.h
M clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.h
M clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ThrowingStaticInitializationCheck.h
M clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnintendedCharOstreamOutputCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeToAllowExceptionsCheck.h
M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
M clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.h
M clang-tools-extra/clang-tidy/cppcoreguidelines/MacroUsageCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MisleadingCaptureDefaultByValueCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.h
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/RvalueReferenceParamNotMovedCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
M clang-tools-extra/clang-tidy/custom/CustomTidyModule.cpp
M clang-tools-extra/clang-tidy/custom/QueryCheck.cpp
M clang-tools-extra/clang-tidy/custom/QueryCheck.h
M clang-tools-extra/clang-tidy/google/ExplicitConstructorCheck.cpp
M clang-tools-extra/clang-tidy/google/FunctionNamingCheck.cpp
M clang-tools-extra/clang-tidy/google/GlobalVariableDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp
M clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp
M clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt
R clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.h
M clang-tools-extra/clang-tidy/hicpp/HICPPTidyModule.cpp
R clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.h
R clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.h
M clang-tools-extra/clang-tidy/llvm/IncludeOrderCheck.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.h
M clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp
M clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.h
M clang-tools-extra/clang-tidy/misc/ConfusableTable/BuildConfusableTable.cpp
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
M clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.h
M clang-tools-extra/clang-tidy/misc/HeaderIncludeCycleCheck.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.h
M clang-tools-extra/clang-tidy/misc/MultipleInheritanceCheck.cpp
M clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.h
M clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
M clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.h
M clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
M clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
M clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp
M clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.h
M clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
M clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h
M clang-tools-extra/clang-tidy/modernize/MakeUniqueCheck.cpp
M clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
M clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
M clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.h
M clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.h
M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
M clang-tools-extra/clang-tidy/mpi/BufferDerefCheck.cpp
M clang-tools-extra/clang-tidy/objc/AssertEqualsCheck.cpp
M clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp
M clang-tools-extra/clang-tidy/performance/AvoidEndlCheck.cpp
M clang-tools-extra/clang-tidy/performance/CMakeLists.txt
R clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp
R clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.h
M clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp
M clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp
M clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
M clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
A clang-tools-extra/clang-tidy/performance/PreferSingleCharOverloadsCheck.cpp
A clang-tools-extra/clang-tidy/performance/PreferSingleCharOverloadsCheck.h
M clang-tools-extra/clang-tidy/performance/TriviallyDestructibleCheck.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.h
M clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
A clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
A clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.h
M clang-tools-extra/clang-tidy/portability/AvoidPragmaOnceCheck.cpp
M clang-tools-extra/clang-tidy/portability/CMakeLists.txt
A clang-tools-extra/clang-tidy/portability/NoAssemblerCheck.cpp
A clang-tools-extra/clang-tidy/portability/NoAssemblerCheck.h
M clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
M clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
M clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.h
M clang-tools-extra/clang-tidy/portability/StdAllocatorConstCheck.cpp
M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
M clang-tools-extra/clang-tidy/readability/CMakeLists.txt
M clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h
M clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
M clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
M clang-tools-extra/clang-tidy/readability/EnumInitialValueCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.h
M clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp
M clang-tools-extra/clang-tidy/readability/InconsistentIfElseBracesCheck.cpp
M clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
M clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.h
M clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
M clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
M clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
M clang-tools-extra/clang-tidy/readability/OperatorsRepresentationCheck.cpp
M clang-tools-extra/clang-tidy/readability/OperatorsRepresentationCheck.h
M clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp
M clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantPreprocessorCheck.cpp
A clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.cpp
A clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.h
M clang-tools-extra/clang-tidy/readability/RedundantTypenameCheck.cpp
M clang-tools-extra/clang-tidy/readability/ReferenceToConstructedTemporaryCheck.cpp
M clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
M clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.cpp
M clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
M clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
M clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
M clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.cpp
M clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp
M clang-tools-extra/clang-tidy/utils/DesignatedInitializers.h
M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
M clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
M clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
M clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
M clang-tools-extra/clang-tidy/utils/FormatStringConverter.h
M clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp
M clang-tools-extra/clang-tidy/utils/IncludeInserter.h
M clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.h
M clang-tools-extra/clang-tidy/utils/Matchers.cpp
M clang-tools-extra/clang-tidy/utils/Matchers.h
M clang-tools-extra/clang-tidy/utils/NamespaceAliaser.h
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UsingInserter.h
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/CMakeLists.txt
M clang-tools-extra/clangd/CodeComplete.cpp
M clang-tools-extra/clangd/Diagnostics.cpp
M clang-tools-extra/clangd/Diagnostics.h
M clang-tools-extra/clangd/ExpectedTypes.cpp
M clang-tools-extra/clangd/FindTarget.cpp
M clang-tools-extra/clangd/Hover.cpp
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/ScanningProjectModules.cpp
M clang-tools-extra/clangd/Selection.cpp
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/index/Ref.cpp
M clang-tools-extra/clangd/index/Ref.h
M clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
A clang-tools-extra/clangd/remap/CMakeLists.txt
A clang-tools-extra/clangd/remap/RemapMain.cpp
M clang-tools-extra/clangd/test/CMakeLists.txt
A clang-tools-extra/clangd/test/remap.test
M clang-tools-extra/clangd/tool/CMakeLists.txt
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang-tools-extra/clangd/unittests/CompilerTests.cpp
M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
M clang-tools-extra/clangd/unittests/HoverTests.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
M clang-tools-extra/clangd/unittests/XRefsTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/Contributing.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/assignment-in-selection-statement.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/fold-init-type.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/std-exception-baseclass.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
A clang-tools-extra/docs/clang-tidy/checks/cert/exp45-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/exception-baseclass.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/no-assembler.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/const-correctness.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/multiple-inheritance.rst
A clang-tools-extra/docs/clang-tidy/checks/modernize/use-std-bit.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/faster-string-find.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.rst
A clang-tools-extra/docs/clang-tidy/checks/performance/prefer-single-char-overloads.rst
A clang-tools-extra/docs/clang-tidy/checks/performance/use-std-move.rst
A clang-tools-extra/docs/clang-tidy/checks/portability/no-assembler.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/redundant-qualified-alias.rst
M clang-tools-extra/include-cleaner/lib/CMakeLists.txt
M clang-tools-extra/include-cleaner/lib/Types.cpp
M clang-tools-extra/include-cleaner/lib/TypesInternal.h
M clang-tools-extra/include-cleaner/unittests/TypesTest.cpp
M clang-tools-extra/modularize/ModularizeUtilities.cpp
M clang-tools-extra/test/CMakeLists.txt
A clang-tools-extra/test/Unit/CMakeLists.txt
M clang-tools-extra/test/clang-doc/CMakeLists.txt
A clang-tools-extra/test/clang-doc/Inputs/enum.cpp
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/basic-project.test
M clang-tools-extra/test/clang-doc/builtin_types.cpp
M clang-tools-extra/test/clang-doc/comments-in-macros.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/index.cpp
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/compound-constraints.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
M clang-tools-extra/test/clang-doc/typedef-alias.cpp
M clang-tools-extra/test/clang-tidy/check_clang_tidy.py
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstddef
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstdint
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstdio
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/integral_constant.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/inttypes.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/mutex
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/signal.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstddef
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstdint
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstdio
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/deque
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/forward_list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/functional
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/initializer_list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/integral_constant.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/inttypes.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/memory
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/mutex
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/queue
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/set
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/signal.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stack
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stddef.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdfloat
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdio.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdlib.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/string
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/string.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/tuple
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/type_traits
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unistd.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_set
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/utility
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/vector
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stddef.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdfloat
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdio.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdlib.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string.h
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/system-header-simulation.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/unistd.h
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/cstddef.h
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/initializer_list
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/type_traits
M clang-tools-extra/test/clang-tidy/checkers/abseil/cleanup-ctad.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/redundant-strcat-calls.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/string-find-startswith.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/string-find-str-contains.cpp
M clang-tools-extra/test/clang-tidy/checkers/android/cloexec-accept.cpp
M clang-tools-extra/test/clang-tidy/checkers/android/cloexec-accept4.cpp
M clang-tools-extra/test/clang-tidy/checkers/android/cloexec-memfd-create.cpp
M clang-tools-extra/test/clang-tidy/checkers/android/cloexec-pipe2.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/Inputs/use-ranges/fake_std.h
M clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/use-to-string.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/argument-comment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/assignment-in-if-condition-cxx20.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/assignment-in-selection-statement.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/assignment-in-selection-statement.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/bitwise-pointer-cast-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-fallthrough.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-if-constexpr-template.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/dangling-handle.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/default-operator-new-on-overaligned-type-cpp17.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/default-operator-new-on-overaligned-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/derived-method-shadowing-base-method.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/easily-swappable-parameters-prefixsuffixname.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-treat-functions-without-specification-as-throwing.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/fold-init-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/forwarding-reference-overload.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/implicit-widening-of-multiplication-result-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/inc-dec-in-conditions.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/incorrect-enable-if.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/infinite-loop.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/move-forwarding-reference.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/multiple-new-in-one-expression.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-bitfields.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/nondeterministic-pointer-iteration-order.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-memcpy-safe-cxx.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-memcpy-safe-other.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-no-safe-functions.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-value-dependent-crash.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-wmemcpy-safe-cxx.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/pointer-arithmetic-on-polymorphic-object-all.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/posix-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/shared-ptr-array-mismatch.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler-minimal.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler-posix.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/signed-char-misuse-no-comparison.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/sizeof-container.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/sizeof-expression-disable-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/spuriously-wake-up-functions.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/spuriously-wake-up-functions.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/std-exception-baseclass.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/std-namespace-modification-implicit.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/std-namespace-modification.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/string-constructor-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/string-integer-assignment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/stringview-nullptr.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-include.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-memory-comparison.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-missing-comma-options.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-string-compare-custom-functions.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-string-compare.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-stringview-data-usage-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-stringview-data-usage.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unchecked-optional-access.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-exception-at-new.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-self-assignment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unique-ptr-array-mismatch.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-checked-return-types.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
M clang-tools-extra/test/clang-tidy/checkers/cert/uppercase-literal-suffix-integer.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capturing-lambda-coroutines-allow-explicit-object-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-capturing-lambda-coroutines.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-reference-coroutine-parameters.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-mathheader.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-custom-function.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/no-suspend-with-lock.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-bounds-constant-array-index-includestyle.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-bounds-pointer-arithmetic.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-member-init.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved-custom-function.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/trailing-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/google/build-explicit-make-pair.cpp
M clang-tools-extra/test/clang-tidy/checkers/google/objc-function-naming.m
M clang-tools-extra/test/clang-tidy/checkers/google/readability-namespace-comments-missing-nested-namespaces.cpp
R clang-tools-extra/test/clang-tidy/checkers/hicpp/exception-baseclass.cpp
R clang-tools-extra/test/clang-tidy/checkers/hicpp/no-assembler.cpp
M clang-tools-extra/test/clang-tidy/checkers/hicpp/signed-bitwise-integer-literals.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvm/include-order.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvm/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvmlibc/restrict-system-libc-headers.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-pointers.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/coroutine-hostile-raii.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/misplaced-const-cxx17.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/multiple-inheritance.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/static-assert.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/throw-by-value-catch-by-reference-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/throw-by-value-catch-by-reference.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unconventional-assign-operator-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unconventional-assign-operator.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/uniqueptr-reset-release.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/unused-using-decls-module.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-consteval.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module-implementation.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module-partition.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module.cpp
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/replace-auto-ptr/memory.h
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/initializer_list.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/shared_ptr.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/unique_ptr.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-structured-binding/fake_std_pair_tuple.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays-c++20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-reverse.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-rewritten-binop.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-cxx11.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-default-init.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-inaccessible-ctors.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-macros.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value-macro-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.c
M clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/replace-random-shuffle.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/return-braced-init-list.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/shrink-to-fit.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/type-traits-GH153649.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-constraints-first-greatergreater.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-constraints.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-designated-initializers.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-emplace-ignore-implicit-constructors.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-emplace.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-delete.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nodiscard.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-basic.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-c23.c
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.c
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scope-lock-warn-on-using-and-typedef-false.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock-no-crash.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock-warn-on-single-locks-false.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-starts-ends-with.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-bit.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-custom.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-macro.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-member.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-numbers.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-absl.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-fmt.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-macro.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-member.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-custom-view.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-ignored.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-structured-binding.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas-cxx14.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-transparent-functors.cpp
R clang-tools-extra/test/clang-tidy/checkers/performance/faster-string-find.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/for-range-copy.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-string-concatenation-strict.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-string-concatenation.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-vector-operation.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg-const-ref.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg-trivially-copyable.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-constructor-init.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/no-automatic-move-allowed-types.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/prefer-single-char-overloads.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/string-view-conversions-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/string-view-conversions.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/trivially-destructible-module.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/type-promotion-in-math-fn-includestyle.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param-includestyle.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/use-std-move.cpp
A clang-tools-extra/test/clang-tidy/checkers/portability/no-assembler.cpp
M clang-tools-extra/test/clang-tidy/checkers/portability/std-allocator-const.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/ambiguous-smartptr-reset-call-custom-pointers.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/ambiguous-smartptr-reset-call.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/braces-around-statements-consteval-if.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/braces-around-statements-constexpr-if-templates.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/const-return-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-contains.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/convert-member-functions-to-static-deducing-this.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/delete-null-pointer.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-if-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-if-constexpr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/function-size-variables-c++17.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-exception-variable-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-loop-counter-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-parameter-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-exception-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-loop-counter-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-parameter-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-variable-name-length.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-anon-record-fields.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-case-match.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-outofline.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-allow-in-conditions.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-allow-logical-operators.c
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-cxx98.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.c
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/inconsistent-ifelse-braces-attributes.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/isolate-declaration-cxx17.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/isolate-declaration.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/magic-numbers-ignore-all-float.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto-add-const-to-qualified.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-casting.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-inline-specifier.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses-allowed-decls.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-preprocessor.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/redundant-qualified-alias.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-smartptr-get-macros.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-smartptr-get-msvc.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-smartptr-get.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr-format.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr-function.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-init.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-typename.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/simplify-boolean-expr-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/simplify-subscript-expr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/string-compare-custom-string-classes.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/string-compare.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/suspicious-call-argument-option.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uniqueptr-delete-release.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-floating-point.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-hexadecimal-floating-point.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer-custom-list.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer-ms.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max-include-style.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-store-check-profile-one-tu.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm
M clang-tools-extra/test/lit.cfg.py
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.h
M clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-tidy/CMakeLists.txt
M clang-tools-extra/unittests/clang-tidy/LexerUtilsTest.cpp
R clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp
M clang/CMakeLists.txt
M clang/Maintainers.md
M clang/bindings/python/clang/cindex.py
M clang/bindings/python/tests/cindex/test_file.py
A clang/bindings/python/tests/cindex/test_version.py
A clang/cmake/caches/BaremetalRISCV.cmake
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/cmake/modules/AddClang.cmake
M clang/cmake/modules/AddGRPC.cmake
M clang/docs/AddressSanitizer.rst
M clang/docs/ClangFormatStyleOptions.rst
A clang/docs/ClangIRABILowering.md
M clang/docs/ClangIRCleanupAndEHDesign.md
M clang/docs/HIPSupport.rst
M clang/docs/InternalsManual.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/LibTooling.rst
A clang/docs/LifetimeSafety.rst
M clang/docs/Modules.rst
M clang/docs/OpenMPSupport.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerCoverage.rst
R clang/docs/ScalableStaticAnalysisFramework/Framework.rst
R clang/docs/ScalableStaticAnalysisFramework/SummaryExtraction.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/SummaryExtractionInternals.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/index.rst
A clang/docs/ScalableStaticAnalysisFramework/index.rst
A clang/docs/ScalableStaticAnalysisFramework/user-docs/SummaryExtraction.rst
M clang/docs/ThreadSafetyAnalysis.rst
M clang/docs/TypeSanitizer.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/checkers.rst
M clang/docs/analyzer/developer-docs/PerformanceInvestigation.rst
M clang/docs/index.rst
M clang/include/clang-c/BuildSystem.h
M clang/include/clang-c/Index.h
M clang/include/clang/APINotes/APINotesReader.h
M clang/include/clang/APINotes/Types.h
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTDumperUtils.h
M clang/include/clang/AST/ASTMutationListener.h
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/ASTStructuralEquivalence.h
M clang/include/clang/AST/Availability.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/DeclContextInternals.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/AST/ExternalASTSource.h
M clang/include/clang/AST/HLSLResource.h
M clang/include/clang/AST/Mangle.h
M clang/include/clang/AST/NestedNameSpecifierBase.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/PropertiesBase.td
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/AST/StmtSYCL.h
M clang/include/clang/AST/TemplateBase.h
M clang/include/clang/AST/TextNodeDumper.h
M clang/include/clang/AST/TypeBase.h
M clang/include/clang/AST/TypeProperties.td
M clang/include/clang/AST/VTableBuilder.h
A clang/include/clang/AST/pch.h
M clang/include/clang/ASTMatchers/ASTMatchFinder.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
M clang/include/clang/Analysis/Analyses/ThreadSafety.h
M clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h
M clang/include/clang/Analysis/AnalysisDeclContext.h
M clang/include/clang/Analysis/MacroExpansionContext.h
R clang/include/clang/Analysis/Scalable/ASTEntityMapping.h
R clang/include/clang/Analysis/Scalable/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
R clang/include/clang/Analysis/Scalable/Analyses/UnsafeBufferUsage/UnsafeBufferUsageBuilder.h
R clang/include/clang/Analysis/Scalable/EntityLinker/EntityLinker.h
R clang/include/clang/Analysis/Scalable/EntityLinker/EntitySummaryEncoding.h
R clang/include/clang/Analysis/Scalable/EntityLinker/LUSummary.h
R clang/include/clang/Analysis/Scalable/EntityLinker/LUSummaryEncoding.h
R clang/include/clang/Analysis/Scalable/EntityLinker/TUSummaryEncoding.h
R clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h
R clang/include/clang/Analysis/Scalable/Model/EntityId.h
R clang/include/clang/Analysis/Scalable/Model/EntityIdTable.h
R clang/include/clang/Analysis/Scalable/Model/EntityLinkage.h
R clang/include/clang/Analysis/Scalable/Model/EntityName.h
R clang/include/clang/Analysis/Scalable/Model/PrivateFieldNames.def
R clang/include/clang/Analysis/Scalable/Model/SummaryName.h
R clang/include/clang/Analysis/Scalable/Serialization/JSONFormat.h
R clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h
R clang/include/clang/Analysis/Scalable/Serialization/SerializationFormatRegistry.h
R clang/include/clang/Analysis/Scalable/Support/ErrorBuilder.h
R clang/include/clang/Analysis/Scalable/Support/FormatProviders.h
R clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h
R clang/include/clang/Analysis/Scalable/TUSummary/ExtractorRegistry.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummary.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummaryBuilder.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummaryExtractor.h
A clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/include/clang/Basic/AMDGPUTypes.def
M clang/include/clang/Basic/AddressSpaces.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/BuiltinHeaders.def
M clang/include/clang/Basic/Builtins.def
M clang/include/clang/Basic/Builtins.td
R clang/include/clang/Basic/BuiltinsAArch64.def
A clang/include/clang/Basic/BuiltinsAArch64.td
A clang/include/clang/Basic/BuiltinsAArch64Base.td
M clang/include/clang/Basic/BuiltinsAMDGPU.td
M clang/include/clang/Basic/BuiltinsAMDGPUDocs.td
M clang/include/clang/Basic/BuiltinsARM.def
M clang/include/clang/Basic/BuiltinsBase.td
M clang/include/clang/Basic/BuiltinsLoongArchLASX.def
M clang/include/clang/Basic/BuiltinsLoongArchLSX.def
M clang/include/clang/Basic/BuiltinsPPC.def
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/CodeGenOptions.h
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Basic/Diagnostic.td
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticCrossTUKinds.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/DiagnosticOptions.def
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/DiagnosticSerializationKinds.td
M clang/include/clang/Basic/Features.def
A clang/include/clang/Basic/HLSLIntrinsics.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/LangStandard.h
M clang/include/clang/Basic/Module.h
M clang/include/clang/Basic/ObjCRuntime.h
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/include/clang/Basic/Sarif.h
M clang/include/clang/Basic/SourceManager.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/TargetCXXABI.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/Basic/riscv_vector.td
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
A clang/include/clang/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.h
M clang/include/clang/CIR/Dialect/Passes.h
M clang/include/clang/CIR/Dialect/Passes.td
M clang/include/clang/CIR/Interfaces/ASTAttrInterfaces.h
M clang/include/clang/CIR/Interfaces/CIROpInterfaces.td
M clang/include/clang/CIR/LowerToLLVM.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/CodeGen/CodeGenABITypes.h
M clang/include/clang/Config/config.h.cmake
M clang/include/clang/CrossTU/CrossTranslationUnit.h
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/include/clang/DependencyScanning/DependencyScanningUtils.h
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/DependencyScanning/InProcessModuleCache.h
M clang/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/include/clang/Driver/CommonArgs.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Job.h
A clang/include/clang/Driver/ModulesDriver.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
M clang/include/clang/Format/Format.h
M clang/include/clang/Frontend/ASTUnit.h
M clang/include/clang/Frontend/ChainedDiagnosticConsumer.h
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/FrontendActions.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Frontend/TextDiagnosticBuffer.h
M clang/include/clang/Frontend/VerifyDiagnosticConsumer.h
R clang/include/clang/Index/USRGeneration.h
M clang/include/clang/Lex/HeaderSearch.h
M clang/include/clang/Lex/HeaderSearchOptions.h
M clang/include/clang/Lex/ModuleMap.h
M clang/include/clang/Lex/ModuleMapFile.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/ASTEntityMapping.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntitySummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityId.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityIdTable.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/SummaryName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryData.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilderRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataStore.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataTraits.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Support/FormatProviders.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/EntitySummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisBase.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisResult.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisTraits.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/SummaryAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
A clang/include/clang/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.h
A clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/SSAFForceLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/Tool/Utils.h
M clang/include/clang/Sema/ExternalSemaSource.h
M clang/include/clang/Sema/Initialization.h
M clang/include/clang/Sema/MultiplexExternalSemaSource.h
M clang/include/clang/Sema/ScopeInfo.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaAMDGPU.h
M clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Sema/SemaCodeCompletion.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/include/clang/Sema/SemaPPC.h
M clang/include/clang/Sema/SemaSYCL.h
M clang/include/clang/Sema/Template.h
M clang/include/clang/Sema/TypoCorrection.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/Serialization/ModuleCache.h
M clang/include/clang/Serialization/ModuleFile.h
M clang/include/clang/Serialization/ModuleManager.h
M clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
M clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/include/clang/Tooling/DependencyScanningTool.h
A clang/include/clang/UnifiedSymbolResolution/USRGeneration.h
M clang/include/module.modulemap
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesTypes.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/AST/APValue.cpp
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTDumper.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
R clang/lib/AST/ByteCode/FunctionPointer.cpp
R clang/lib/AST/ByteCode/FunctionPointer.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBlock.cpp
M clang/lib/AST/ByteCode/InterpBlock.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/MemberPointer.cpp
M clang/lib/AST/ByteCode/MemberPointer.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/PrimType.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Program.h
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclBase.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ExprObjC.cpp
A clang/lib/AST/HLSLResource.cpp
M clang/lib/AST/InferAlloc.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/Mangle.cpp
M clang/lib/AST/MicrosoftCXXABI.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/NestedNameSpecifier.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/Randstruct.cpp
M clang/lib/AST/RawCommentList.cpp
M clang/lib/AST/RecordLayoutBuilder.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TemplateBase.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/AST/TypeLoc.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/ASTMatchers/ASTMatchFinder.cpp
M clang/lib/Analysis/AnalysisDeclContext.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/CMakeLists.txt
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Analysis/FixitUtil.cpp
M clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp
M clang/lib/Analysis/FlowSensitive/Transfer.cpp
M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Facts.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
M clang/lib/Analysis/LifetimeSafety/MovedLoans.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/lib/Analysis/LiveVariables.cpp
M clang/lib/Analysis/MacroExpansionContext.cpp
R clang/lib/Analysis/Scalable/ASTEntityMapping.cpp
R clang/lib/Analysis/Scalable/CMakeLists.txt
R clang/lib/Analysis/Scalable/EntityLinker/EntityLinker.cpp
R clang/lib/Analysis/Scalable/Model/BuildNamespace.cpp
R clang/lib/Analysis/Scalable/Model/EntityId.cpp
R clang/lib/Analysis/Scalable/Model/EntityIdTable.cpp
R clang/lib/Analysis/Scalable/Model/EntityLinkage.cpp
R clang/lib/Analysis/Scalable/Model/EntityName.cpp
R clang/lib/Analysis/Scalable/Model/SummaryName.cpp
R clang/lib/Analysis/Scalable/Serialization/JSONFormat.cpp
R clang/lib/Analysis/Scalable/Serialization/SerializationFormatRegistry.cpp
R clang/lib/Analysis/Scalable/Support/ErrorBuilder.cpp
R clang/lib/Analysis/Scalable/TUSummary/ExtractorRegistry.cpp
R clang/lib/Analysis/Scalable/TUSummary/TUSummaryBuilder.cpp
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Analysis/UnsafeBufferUsage.cpp
M clang/lib/Basic/ASTSourceDescriptor.cpp
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/DiagnosticIDs.cpp
M clang/lib/Basic/FileManager.cpp
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/Module.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Sarif.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/OSTargets.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.cpp
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/TCE.h
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Basic/Targets/X86.h
M clang/lib/CIR/CodeGen/Address.h
A clang/lib/CIR/CodeGen/CIRGenAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenAsm.cpp
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
A clang/lib/CIR/CodeGen/CIRGenBuiltinRISCV.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDARuntime.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDARuntime.h
M clang/lib/CIR/CodeGen/CIRGenCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenCall.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenOpenACCRecipe.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenTypeCache.h
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
M clang/lib/CIR/CodeGen/CIRGenVTables.h
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/CodeGen/CIRGenerator.cpp
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/CodeGen/EHScopeStack.h
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
A clang/lib/CIR/CodeGen/Targets/AMDGPU.cpp
M clang/lib/CIR/Dialect/CMakeLists.txt
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
A clang/lib/CIR/Dialect/OpenMP/CMakeLists.txt
A clang/lib/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Dialect/Transforms/CIRSimplify.cpp
M clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
A clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CMakeLists.txt
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/TargetLoweringInfo.h
A clang/lib/CIR/Dialect/Transforms/TargetLowering/Targets/AMDGPU.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/Targets/NVPTX.cpp
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/Lowering/CIRPasses.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMIR.cpp
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGBuilder.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGBuiltin.h
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGLoopInfo.cpp
M clang/lib/CodeGen/CGLoopInfo.h
M clang/lib/CodeGen/CGObjC.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/lib/CodeGen/CGObjCMac.cpp
A clang/lib/CodeGen/CGObjCMacConstantLiteralUtil.h
M clang/lib/CodeGen/CGObjCRuntime.cpp
M clang/lib/CodeGen/CGObjCRuntime.h
M clang/lib/CodeGen/CGOpenCLRuntime.cpp
M clang/lib/CodeGen/CGOpenCLRuntime.h
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CGVTables.h
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenSYCL.cpp
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/lib/CodeGen/CodeGenTypeCache.h
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/EHScopeStack.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/ModuleBuilder.cpp
A clang/lib/CodeGen/QualTypeMapper.cpp
A clang/lib/CodeGen/QualTypeMapper.h
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/lib/CodeGen/TargetBuiltins/PPC.cpp
M clang/lib/CodeGen/Targets/AMDGPU.cpp
M clang/lib/CodeGen/Targets/NVPTX.cpp
M clang/lib/CodeGen/Targets/PPC.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/CrossTU/CMakeLists.txt
M clang/lib/CrossTU/CrossTranslationUnit.cpp
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/DependencyScanning/InProcessModuleCache.cpp
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/CreateASTUnitFromArgs.cpp
M clang/lib/Driver/Distro.cpp
M clang/lib/Driver/Driver.cpp
A clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Driver/OffloadBundler.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AIX.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
A clang/lib/Driver/ToolChains/Arch/AMDGPU.cpp
A clang/lib/Driver/ToolChains/Arch/AMDGPU.h
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/SPIRV.cpp
M clang/lib/Driver/ToolChains/UEFI.cpp
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/ExtractAPI/CMakeLists.txt
M clang/lib/ExtractAPI/DeclarationFragments.cpp
M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
M clang/lib/Format/BreakableToken.cpp
M clang/lib/Format/ContinuationIndenter.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/FormatTokenLexer.cpp
M clang/lib/Format/FormatTokenLexer.h
M clang/lib/Format/IntegerLiteralSeparatorFixer.cpp
M clang/lib/Format/QualifierAlignmentFixer.cpp
M clang/lib/Format/QualifierAlignmentFixer.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/TokenAnnotator.h
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Format/WhitespaceManager.cpp
M clang/lib/Format/WhitespaceManager.h
M clang/lib/Frontend/ASTUnit.cpp
M clang/lib/Frontend/ChainedIncludesSource.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/DependencyFile.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
M clang/lib/Frontend/MultiplexConsumer.cpp
M clang/lib/Frontend/Rewrite/FrontendActions.cpp
M clang/lib/Frontend/SARIFDiagnostic.cpp
M clang/lib/Frontend/SARIFDiagnosticPrinter.cpp
M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
M clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
A clang/lib/Headers/.clang-format-ignore
M clang/lib/Headers/CMakeLists.txt
M clang/lib/Headers/__clang_cuda_math_forward_declares.h
M clang/lib/Headers/__clang_cuda_runtime_wrapper.h
M clang/lib/Headers/__clang_hip_math.h
A clang/lib/Headers/__clang_spirv_libdevice_declares.h
M clang/lib/Headers/altivec.h
A clang/lib/Headers/amdhsa_abi.h
M clang/lib/Headers/arm_acle.h
M clang/lib/Headers/avx512bwintrin.h
M clang/lib/Headers/avx512fintrin.h
M clang/lib/Headers/avx512vbmi2intrin.h
M clang/lib/Headers/avx512vlbwintrin.h
M clang/lib/Headers/avx512vlintrin.h
M clang/lib/Headers/avx512vlvbmi2intrin.h
M clang/lib/Headers/emmintrin.h
A clang/lib/Headers/endian.h
M clang/lib/Headers/gpuintrin.h
M clang/lib/Headers/hexagon_types.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Headers/hlsl/hlsl_intrinsic_helpers.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/hvx_hexagon_protos.h
M clang/lib/Headers/llvm_libc_wrappers/ctype.h
M clang/lib/Headers/llvm_libc_wrappers/string.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Headers/openmp_wrappers/__clang_openmp_device_functions.h
M clang/lib/Headers/ptrauth.h
M clang/lib/Index/CMakeLists.txt
M clang/lib/Index/CommentToXML.cpp
M clang/lib/Index/IndexingAction.cpp
R clang/lib/Index/USRGeneration.cpp
M clang/lib/Interpreter/IncrementalParser.cpp
M clang/lib/Interpreter/Interpreter.cpp
M clang/lib/Interpreter/InterpreterUtils.cpp
M clang/lib/Interpreter/InterpreterValuePrinter.cpp
M clang/lib/Interpreter/OrcIncrementalExecutor.cpp
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/lib/Lex/InitHeaderSearch.cpp
M clang/lib/Lex/Lexer.cpp
M clang/lib/Lex/LiteralSupport.cpp
M clang/lib/Lex/ModuleMap.cpp
M clang/lib/Lex/ModuleMapFile.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/PPExpressions.cpp
M clang/lib/Lex/Pragma.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Lex/TokenLexer.cpp
M clang/lib/Options/DriverOptions.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Rewrite/Rewriter.cpp
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
A clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
A clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/ASTEntityMapping.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityId.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityIdTable.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/SummaryName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/ModelStringConversions.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONEntitySummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONEntitySummaryEncoding.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilderRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Frontend/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
A clang/lib/ScalableStaticAnalysisFramework/Tool/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Tool/Utils.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/DeclSpec.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/JumpDiagnostics.cpp
M clang/lib/Sema/MultiplexExternalSemaSource.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCXXScopeSpec.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCodeComplete.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Sema/SemaFunctionEffects.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLambda.cpp
A clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/SemaOpenACCClauseAppertainment.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaPPC.cpp
M clang/lib/Sema/SemaRISCV.cpp
M clang/lib/Sema/SemaSYCL.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/SemaWasm.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTCommon.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderInternals.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/Serialization/GeneratePCH.cpp
M clang/lib/Serialization/GlobalModuleIndex.cpp
M clang/lib/Serialization/ModuleCache.cpp
M clang/lib/Serialization/ModuleManager.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/NoDeleteChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/lib/StaticAnalyzer/Core/CMakeLists.txt
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/EntryPointStats.cpp
M clang/lib/StaticAnalyzer/Core/Environment.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
M clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
M clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
M clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
M clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
M clang/lib/Tooling/JSONCompilationDatabase.cpp
M clang/lib/Tooling/Refactoring/CMakeLists.txt
M clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp
M clang/lib/Tooling/Tooling.cpp
A clang/lib/UnifiedSymbolResolution/CMakeLists.txt
A clang/lib/UnifiedSymbolResolution/USRGeneration.cpp
M clang/test/APINotes/Inputs/Frameworks/SomeKit.framework/APINotes/SomeKit.apinotes
M clang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKit.h
A clang/test/APINotes/Inputs/Headers/BoundsUnsafe.apinotes
A clang/test/APINotes/Inputs/Headers/BoundsUnsafe.h
M clang/test/APINotes/Inputs/Headers/module.modulemap
A clang/test/APINotes/bounds-safety.c
A clang/test/APINotes/objc_designated_init_protocol.m
M clang/test/AST/ByteCode/arrays.cpp
R clang/test/AST/ByteCode/builtin-align-cxx.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/AST/ByteCode/builtins.c
M clang/test/AST/ByteCode/c.c
M clang/test/AST/ByteCode/codegen-constexpr-unknown.cpp
M clang/test/AST/ByteCode/constexpr-steps.cpp
R clang/test/AST/ByteCode/constexpr.c
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/cxx26.cpp
M clang/test/AST/ByteCode/lambda.cpp
M clang/test/AST/ByteCode/libcxx/end-primitive-array-root-lifetime.cpp
M clang/test/AST/ByteCode/loops.cpp
M clang/test/AST/ByteCode/memberpointers.cpp
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/AST/ByteCode/records.cpp
M clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
R clang/test/AST/HLSL/Texture2D-AST.hlsl
A clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl
A clang/test/AST/HLSL/Texture2D-shorthand-AST.hlsl
A clang/test/AST/HLSL/Texture2D-vector-AST.hlsl
M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
M clang/test/AST/HLSL/WaveSize.hlsl
A clang/test/AST/HLSL/ast-dump-APValue-matrix.hlsl
M clang/test/AST/HLSL/ast-dump-SpirvType.hlsl
M clang/test/AST/HLSL/matrix-constructors.hlsl
M clang/test/AST/HLSL/matrix-general-initializer.hlsl
A clang/test/AST/HLSL/matrix-init-list-row-major.hlsl
M clang/test/AST/HLSL/pch_spirv_type.hlsl
M clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl
M clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl
M clang/test/AST/HLSL/resource_binding_attr.hlsl
A clang/test/AST/HLSL/resources-in-structs-errors.hlsl
A clang/test/AST/HLSL/resources-in-structs.hlsl
M clang/test/AST/ast-crash-doc-function-template.cpp
M clang/test/AST/ast-dump-concepts.cpp
A clang/test/AST/ast-dump-implicit-align-val.cpp
M clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-target-parallel-for.c
M clang/test/AST/ast-dump-openmp-target-parallel.c
M clang/test/AST/ast-dump-openmp-target-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute.c
M clang/test/AST/ast-dump-openmp-target-teams.c
M clang/test/AST/ast-dump-openmp-target.c
M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
M clang/test/AST/ast-dump-openmp-teams-distribute-simd.c
M clang/test/AST/ast-dump-openmp-teams-distribute.c
M clang/test/AST/ast-dump-openmp-teams.c
M clang/test/AST/dump.cpp
A clang/test/ASTMerge/generic-selection-expr/Inputs/generic-type.c
A clang/test/ASTMerge/generic-selection-expr/test-type.c
M clang/test/ASTSYCL/ast-dump-sycl-kernel-call-stmt.cpp
M clang/test/ASTSYCL/ast-dump-sycl-kernel-entry-point.cpp
A clang/test/ASTSYCL/ast-print-sycl-kernel-call.cpp
M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
R clang/test/Analysis/Inputs/ctu-chain.cpp
R clang/test/Analysis/Inputs/ctu-cxxdefaultinitexpr-import.cpp
R clang/test/Analysis/Inputs/ctu-cxxdefaultinitexpr-import.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-import.c
R clang/test/Analysis/Inputs/ctu-import.c.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-inherited-default-ctor-other.cpp
R clang/test/Analysis/Inputs/ctu-lookup-name-with-space.cpp
R clang/test/Analysis/Inputs/ctu-onego-existingdef-other.cpp
R clang/test/Analysis/Inputs/ctu-onego-existingdef-other.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-onego-indirect-other.cpp
R clang/test/Analysis/Inputs/ctu-onego-indirect-other.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-onego-small-other.cpp
R clang/test/Analysis/Inputs/ctu-onego-small-other.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-onego-toplevel-other.cpp
R clang/test/Analysis/Inputs/ctu-onego-toplevel-other.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-other.c
R clang/test/Analysis/Inputs/ctu-other.c.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-other.cpp
R clang/test/Analysis/Inputs/ctu-other.cpp.externalDefMap.ast-dump.txt
R clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp
R clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/Inputs/virtualcall-system-header.h
R clang/test/Analysis/PR37855.c
A clang/test/Analysis/Scalable/call-graph.cpp
A clang/test/Analysis/Scalable/command-line-interface.cpp
A clang/test/Analysis/Scalable/downgradable-errors.cpp
A clang/test/Analysis/Scalable/help.cpp
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
A clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
A clang/test/Analysis/Scalable/ssaf-format/call-graph-invalid-json-format.test
A clang/test/Analysis/Scalable/ssaf-format/list.test
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-badext.txt
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-malformed.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-noext
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
A clang/test/Analysis/Scalable/ssaf-linker/cli.test
A clang/test/Analysis/Scalable/ssaf-linker/help.test
A clang/test/Analysis/Scalable/ssaf-linker/io.test
A clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
A clang/test/Analysis/Scalable/ssaf-linker/linking.test
A clang/test/Analysis/Scalable/ssaf-linker/time.test
A clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test
A clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test
A clang/test/Analysis/Scalable/ssaf-linker/verbose.test
A clang/test/Analysis/Scalable/ssaf-linker/version.test
A clang/test/Analysis/allow-equality-of-stack-and-symbolic-ptr.c
M clang/test/Analysis/auto-obj-dtors-cfg-output.cpp
R clang/test/Analysis/bitint-z3.c
M clang/test/Analysis/bstring.c
M clang/test/Analysis/bstring.cpp
A clang/test/Analysis/clang-suppress/class-template-specializations.cpp
A clang/test/Analysis/clang-suppress/classes.cpp
A clang/test/Analysis/clang-suppress/diagnostic-identifiers.cpp
A clang/test/Analysis/clang-suppress/friends.cpp
A clang/test/Analysis/clang-suppress/function-templates.cpp
A clang/test/Analysis/clang-suppress/lambdas.cpp
A clang/test/Analysis/clang-suppress/macros.cpp
A clang/test/Analysis/clang-suppress/namespaces.cpp
A clang/test/Analysis/clang-suppress/nested-templates.cpp
A clang/test/Analysis/clang-suppress/statements.cpp
A clang/test/Analysis/clang-suppress/template-methods.cpp
R clang/test/Analysis/cstring-addrspace.c
R clang/test/Analysis/ctu-cxxdefaultinitexpr.cpp
R clang/test/Analysis/ctu-different-triples.cpp
R clang/test/Analysis/ctu-hdr.h
R clang/test/Analysis/ctu-implicit.c
R clang/test/Analysis/ctu-import-threshold.c
R clang/test/Analysis/ctu-import-type-decl-definition.c
R clang/test/Analysis/ctu-inherited-default-ctor.cpp
R clang/test/Analysis/ctu-lookup-name-with-space.cpp
R clang/test/Analysis/ctu-main.c
R clang/test/Analysis/ctu-main.cpp
R clang/test/Analysis/ctu-on-demand-parsing.c
R clang/test/Analysis/ctu-on-demand-parsing.cpp
R clang/test/Analysis/ctu-onego-existingdef.cpp
R clang/test/Analysis/ctu-onego-indirect.cpp
R clang/test/Analysis/ctu-onego-small.cpp
R clang/test/Analysis/ctu-onego-toplevel.cpp
R clang/test/Analysis/ctu-test-import-failure.cpp
R clang/test/Analysis/ctu-unknown-parts-in-triples.cpp
A clang/test/Analysis/ctu/Inputs/chain.cpp
A clang/test/Analysis/ctu/Inputs/cxxdefaultinitexpr-import.cpp
A clang/test/Analysis/ctu/Inputs/cxxdefaultinitexpr-import.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/import.c
A clang/test/Analysis/ctu/Inputs/import.c.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/inherited-default-ctor-other.cpp
A clang/test/Analysis/ctu/Inputs/invalid-ast-other.cpp
A clang/test/Analysis/ctu/Inputs/invalid-ast-other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/lookup-name-with-space.cpp
A clang/test/Analysis/ctu/Inputs/missing-ast.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/onego-existingdef-other.cpp
A clang/test/Analysis/ctu/Inputs/onego-existingdef-other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/onego-indirect-other.cpp
A clang/test/Analysis/ctu/Inputs/onego-indirect-other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/onego-small-other.cpp
A clang/test/Analysis/ctu/Inputs/onego-small-other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/onego-toplevel-other.cpp
A clang/test/Analysis/ctu/Inputs/onego-toplevel-other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/other.c
A clang/test/Analysis/ctu/Inputs/other.c.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/other.cpp
A clang/test/Analysis/ctu/Inputs/other.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/Inputs/test-import-failure-import.cpp
A clang/test/Analysis/ctu/Inputs/test-import-failure-import.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu/cxxdefaultinitexpr.cpp
A clang/test/Analysis/ctu/diag/Inputs/bar.cpp
A clang/test/Analysis/ctu/diag/Inputs/simple-extern-c.cpp
A clang/test/Analysis/ctu/diag/Inputs/simple.cpp
A clang/test/Analysis/ctu/diag/Inputs/third.cpp
A clang/test/Analysis/ctu/diag/invalid-index.cpp
A clang/test/Analysis/ctu/diag/invlist-ambiguous.cpp
A clang/test/Analysis/ctu/diag/invlist-empty.cpp
A clang/test/Analysis/ctu/diag/invlist-lookup-miss.cpp
A clang/test/Analysis/ctu/diag/invlist-missing.cpp
A clang/test/Analysis/ctu/diag/invlist-wrong-format-late.cpp
A clang/test/Analysis/ctu/diag/invlist-wrong-format.cpp
A clang/test/Analysis/ctu/diag/lang-dialect-mismatch.cpp
A clang/test/Analysis/ctu/diag/lang-mismatch.c
A clang/test/Analysis/ctu/diag/load-threshold.cpp
A clang/test/Analysis/ctu/diag/missing-index.cpp
A clang/test/Analysis/ctu/different-triples.cpp
A clang/test/Analysis/ctu/hdr.h
A clang/test/Analysis/ctu/implicit.c
A clang/test/Analysis/ctu/import-threshold.c
A clang/test/Analysis/ctu/import-type-decl-definition.c
A clang/test/Analysis/ctu/inherited-default-ctor.cpp
A clang/test/Analysis/ctu/invalid-ast.cpp
A clang/test/Analysis/ctu/lookup-name-with-space.cpp
A clang/test/Analysis/ctu/main.c
A clang/test/Analysis/ctu/main.cpp
A clang/test/Analysis/ctu/missing-ast.cpp
A clang/test/Analysis/ctu/on-demand-parsing.c
A clang/test/Analysis/ctu/on-demand-parsing.cpp
A clang/test/Analysis/ctu/onego-existingdef.cpp
A clang/test/Analysis/ctu/onego-indirect.cpp
A clang/test/Analysis/ctu/onego-small.cpp
A clang/test/Analysis/ctu/onego-toplevel.cpp
A clang/test/Analysis/ctu/test-import-failure.cpp
A clang/test/Analysis/ctu/unknown-parts-in-triples.cpp
M clang/test/Analysis/indirect-goto-basics.c
M clang/test/Analysis/lit.local.cfg
M clang/test/Analysis/malloc-annotations.c
M clang/test/Analysis/malloc.c
M clang/test/Analysis/misc-ps-region-store.cpp
M clang/test/Analysis/missing-z3-nocrash.c
M clang/test/Analysis/plist-macros-with-expansion-ctu.c
M clang/test/Analysis/plist-macros-with-expansion.c
M clang/test/Analysis/plist-macros-with-expansion.cpp
M clang/test/Analysis/ptr-arith.c
R clang/test/Analysis/suppression-attr.cpp
M clang/test/Analysis/switch-basics.c
M clang/test/Analysis/taint-generic.c
A clang/test/Analysis/taint-main-parameters/argc.c
A clang/test/Analysis/taint-main-parameters/envp.c
A clang/test/Analysis/taint-main-parameters/envp2.c
A clang/test/Analysis/taint-main-parameters/invalid.c
A clang/test/Analysis/taint-main-parameters/main_void.c
A clang/test/Analysis/taint-main-parameters/simple.c
A clang/test/Analysis/taint-main-parameters/simple.cpp
A clang/test/Analysis/taint-main-parameters/trusted.c
R clang/test/Analysis/unary-sym-expr-z3-refutation.c
M clang/test/Analysis/virtualcall.cpp
R clang/test/Analysis/z3-crosscheck-max-attempts.cpp
R clang/test/Analysis/z3-crosscheck.c
R clang/test/Analysis/z3-refute-enum-crash.cpp
R clang/test/Analysis/z3-unarysymexpr.c
A clang/test/Analysis/z3/PR37855.c
A clang/test/Analysis/z3/bitint-z3.c
A clang/test/Analysis/z3/cstring-addrspace.c
A clang/test/Analysis/z3/unary-sym-expr-z3-refutation.c
A clang/test/Analysis/z3/z3-crosscheck-max-attempts.cpp
A clang/test/Analysis/z3/z3-crosscheck.c
A clang/test/Analysis/z3/z3-refute-enum-crash.cpp
A clang/test/Analysis/z3/z3-unarysymexpr.c
M clang/test/C/C11/n1311.c
M clang/test/C/C23/n3006.c
M clang/test/C/C23/n3007.c
A clang/test/C/C2y/n3517.c
M clang/test/C/C2y/n3622.c
A clang/test/C/C2y/n3652.c
A clang/test/C/C2y/n3715.c
A clang/test/CIR/CodeGen/Inputs/std-compare.h
A clang/test/CIR/CodeGen/abi-lower-after-unreachable.cpp
A clang/test/CIR/CodeGen/abstract-cond.c
R clang/test/CIR/CodeGen/address-of.cpp
M clang/test/CIR/CodeGen/address-space.c
A clang/test/CIR/CodeGen/agg-init-constexpr.cpp
A clang/test/CIR/CodeGen/aggregate-copy-overlap.cpp
A clang/test/CIR/CodeGen/amdgpu-address-spaces.cpp
A clang/test/CIR/CodeGen/amdgpu-target-lowering-as.cpp
M clang/test/CIR/CodeGen/arg-attrs.cpp
M clang/test/CIR/CodeGen/array-ctor.cpp
M clang/test/CIR/CodeGen/array-dtor.cpp
M clang/test/CIR/CodeGen/array.cpp
M clang/test/CIR/CodeGen/assign-operator.cpp
M clang/test/CIR/CodeGen/assume-attr.cpp
M clang/test/CIR/CodeGen/atomic-scoped.c
M clang/test/CIR/CodeGen/atomic-thread-fence.c
M clang/test/CIR/CodeGen/atomic.c
A clang/test/CIR/CodeGen/attribute-visibility.c
M clang/test/CIR/CodeGen/basic.c
M clang/test/CIR/CodeGen/basic.cpp
M clang/test/CIR/CodeGen/binop.cpp
A clang/test/CIR/CodeGen/bitfield-assignment-loc.c
M clang/test/CIR/CodeGen/bitfields.c
R clang/test/CIR/CodeGen/builtin-bit-cast.cpp
R clang/test/CIR/CodeGen/builtin-floating-point.c
R clang/test/CIR/CodeGen/builtin-memchr.c
R clang/test/CIR/CodeGen/builtins-elementwise.c
M clang/test/CIR/CodeGen/builtins-x86.c
A clang/test/CIR/CodeGen/c89-implicit-int.c
A clang/test/CIR/CodeGen/cleanup-scope-return-in-loop.cpp
A clang/test/CIR/CodeGen/cleanup-throwing-dtor.cpp
M clang/test/CIR/CodeGen/cleanup.cpp
M clang/test/CIR/CodeGen/clear-cache.c
M clang/test/CIR/CodeGen/cmp.cpp
M clang/test/CIR/CodeGen/complex-builtins.cpp
M clang/test/CIR/CodeGen/complex-cast.cpp
M clang/test/CIR/CodeGen/complex-compound-assignment.cpp
M clang/test/CIR/CodeGen/complex-mul-div.cpp
M clang/test/CIR/CodeGen/complex-unary.cpp
M clang/test/CIR/CodeGen/complex.cpp
M clang/test/CIR/CodeGen/compound_assign.cpp
A clang/test/CIR/CodeGen/convert-incomplete-type.cpp
A clang/test/CIR/CodeGen/copy-constructor-memcpy.cpp
M clang/test/CIR/CodeGen/coro-task.cpp
A clang/test/CIR/CodeGen/ctor-alias-prev-decl.cpp
A clang/test/CIR/CodeGen/ctor-try-body.cpp
M clang/test/CIR/CodeGen/cxx-default-init.cpp
M clang/test/CIR/CodeGen/cxx-rewritten-binary-operator.cpp
M clang/test/CIR/CodeGen/cxx-special-member-attr.cpp
M clang/test/CIR/CodeGen/defaultarg.cpp
A clang/test/CIR/CodeGen/delegating-ctor-exceptions.cpp
A clang/test/CIR/CodeGen/delete-array.cpp
M clang/test/CIR/CodeGen/delete.cpp
M clang/test/CIR/CodeGen/destructors.cpp
A clang/test/CIR/CodeGen/dtor-alias-prev-decl.cpp
M clang/test/CIR/CodeGen/dtors.cpp
M clang/test/CIR/CodeGen/dynamic-cast-exact.cpp
M clang/test/CIR/CodeGen/dynamic-cast.cpp
A clang/test/CIR/CodeGen/export-decl.cppm
A clang/test/CIR/CodeGen/expressions.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
M clang/test/CIR/CodeGen/fold-during-cg.c
M clang/test/CIR/CodeGen/forrange.cpp
M clang/test/CIR/CodeGen/global-array-dtor.cpp
A clang/test/CIR/CodeGen/global-decomp-decls.cpp
M clang/test/CIR/CodeGen/global-init.cpp
A clang/test/CIR/CodeGen/global-section.c
M clang/test/CIR/CodeGen/globals.cpp
A clang/test/CIR/CodeGen/gnu-ptr-math.c
M clang/test/CIR/CodeGen/goto.cpp
M clang/test/CIR/CodeGen/if.cpp
M clang/test/CIR/CodeGen/implicit-value-init-expr.cpp
A clang/test/CIR/CodeGen/initializer-list-two-pointers.cpp
A clang/test/CIR/CodeGen/instantiate-init.cpp
M clang/test/CIR/CodeGen/integer-overflow.c
A clang/test/CIR/CodeGen/invoke-attrs.cpp
M clang/test/CIR/CodeGen/label-values.c
M clang/test/CIR/CodeGen/label.c
M clang/test/CIR/CodeGen/lambda-static-invoker.cpp
M clang/test/CIR/CodeGen/lambda.cpp
M clang/test/CIR/CodeGen/local-vars.cpp
A clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
M clang/test/CIR/CodeGen/loop.cpp
A clang/test/CIR/CodeGen/mem-expr-fn.cpp
M clang/test/CIR/CodeGen/misc-attrs.cpp
M clang/test/CIR/CodeGen/ms-intrinsics.c
M clang/test/CIR/CodeGen/namespace.cpp
A clang/test/CIR/CodeGen/new-array-size-conv.cpp
A clang/test/CIR/CodeGen/new-delete-deactivation.cpp
A clang/test/CIR/CodeGen/new-delete.cpp
M clang/test/CIR/CodeGen/new.cpp
M clang/test/CIR/CodeGen/no-odr-use.cpp
A clang/test/CIR/CodeGen/no-proto-fn-ptr-global-init.c
A clang/test/CIR/CodeGen/no-unique-address.cpp
A clang/test/CIR/CodeGen/non-odr-use-non-ref.cpp
M clang/test/CIR/CodeGen/non-type-template-param.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/noreturn.cpp
M clang/test/CIR/CodeGen/nrvo.cpp
R clang/test/CIR/CodeGen/object-size.c
R clang/test/CIR/CodeGen/object-size.cpp
R clang/test/CIR/CodeGen/offset-of.cpp
M clang/test/CIR/CodeGen/opaque.cpp
A clang/test/CIR/CodeGen/openmp_default_simd_align.c
M clang/test/CIR/CodeGen/optsize-func-attr.cpp
M clang/test/CIR/CodeGen/pack-indexing.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member-cast.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member-cmp.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func-cast.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func-cmp.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func.cpp
M clang/test/CIR/CodeGen/pointers.cpp
R clang/test/CIR/CodeGen/pred-info-builtins.c
M clang/test/CIR/CodeGen/predefined-expr.c
A clang/test/CIR/CodeGen/replace-global.cpp
M clang/test/CIR/CodeGen/requires-expr.cpp
M clang/test/CIR/CodeGen/ret-attrs.cpp
A clang/test/CIR/CodeGen/return-in-if-with-cleanups.cpp
A clang/test/CIR/CodeGen/rtti-member-pointer.cpp
A clang/test/CIR/CodeGen/rtti-qualfn.cpp
A clang/test/CIR/CodeGen/save-temps.c
M clang/test/CIR/CodeGen/side-effect.cpp
M clang/test/CIR/CodeGen/size-of-vla.cpp
M clang/test/CIR/CodeGen/static-local.cpp
M clang/test/CIR/CodeGen/static-vars.c
M clang/test/CIR/CodeGen/static-vars.cpp
M clang/test/CIR/CodeGen/stmt-expr.cpp
M clang/test/CIR/CodeGen/string-literals.c
M clang/test/CIR/CodeGen/string-literals.cpp
M clang/test/CIR/CodeGen/struct-init.cpp
M clang/test/CIR/CodeGen/struct.c
M clang/test/CIR/CodeGen/struct.cpp
M clang/test/CIR/CodeGen/switch_flat_op.cpp
M clang/test/CIR/CodeGen/ternary-throw.cpp
M clang/test/CIR/CodeGen/ternary.cpp
A clang/test/CIR/CodeGen/three-way-cmp.cpp
M clang/test/CIR/CodeGen/throws.cpp
A clang/test/CIR/CodeGen/thunks.cpp
A clang/test/CIR/CodeGen/try-catch-all-with-cleanup.cpp
R clang/test/CIR/CodeGen/try-catch-tmp.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
M clang/test/CIR/CodeGen/unary.cpp
A clang/test/CIR/CodeGen/union-agg-init.c
A clang/test/CIR/CodeGen/union-agg-init.cpp
M clang/test/CIR/CodeGen/var-arg-aggregate.c
M clang/test/CIR/CodeGen/var_arg.c
M clang/test/CIR/CodeGen/variable-decomposition.cpp
M clang/test/CIR/CodeGen/vbase.cpp
M clang/test/CIR/CodeGen/vector-ext-element.cpp
M clang/test/CIR/CodeGen/vector-ext.cpp
M clang/test/CIR/CodeGen/vector.cpp
M clang/test/CIR/CodeGen/virtual-destructor-calls.cpp
A clang/test/CIR/CodeGen/virtual-fn-calls-eh.cpp
M clang/test/CIR/CodeGen/virtual-function-calls.cpp
M clang/test/CIR/CodeGen/vla.c
A clang/test/CIR/CodeGen/vtable-null-func-ptr.cpp
A clang/test/CIR/CodeGen/vtable-nyi-nonconvertible-functype.cpp
M clang/test/CIR/CodeGen/vtt.cpp
M clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_dup.c
M clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_len.c
A clang/test/CIR/CodeGenBuiltins/RISCV/riscv-zihintpause.c
M clang/test/CIR/CodeGenBuiltins/X86/avx10_2_512bf16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx10_2bf16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx2-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512fp16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512vldq-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/cmp-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/sse2-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/sse41-builtins.c
A clang/test/CIR/CodeGenBuiltins/builtin-address-of.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bcopy.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bit-cast.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bit.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-call.cpp
M clang/test/CIR/CodeGenBuiltins/builtin-constant-p.c
M clang/test/CIR/CodeGenBuiltins/builtin-fcmp-sse.c
A clang/test/CIR/CodeGenBuiltins/builtin-fpclassify.c
A clang/test/CIR/CodeGenBuiltins/builtin-inline.c
A clang/test/CIR/CodeGenBuiltins/builtin-isinf-sign.c
A clang/test/CIR/CodeGenBuiltins/builtin-memchr.c
A clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-object-size.c
A clang/test/CIR/CodeGenBuiltins/builtin-object-size.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-offset-of.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-prefetch.c
A clang/test/CIR/CodeGenBuiltins/builtin-printf.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-signbit.c
M clang/test/CIR/CodeGenBuiltins/builtin-types-compatible.c
R clang/test/CIR/CodeGenBuiltins/builtin_bit.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_call.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_inline.c
R clang/test/CIR/CodeGenBuiltins/builtin_new_delete.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_prefetch.c
R clang/test/CIR/CodeGenBuiltins/builtin_printf.cpp
M clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c
M clang/test/CIR/CodeGenBuiltins/builtins-floating-point.c
M clang/test/CIR/CodeGenBuiltins/builtins-overflow.cpp
A clang/test/CIR/CodeGenBuiltins/builtins-pred-info.c
M clang/test/CIR/CodeGenBuiltins/builtins.cpp
A clang/test/CIR/CodeGenCUDA/address-spaces.cu
A clang/test/CIR/CodeGenCUDA/kernel-args.cu
M clang/test/CIR/CodeGenCUDA/kernel-call.cu
M clang/test/CIR/CodeGenCUDA/kernel-stub-name.cu
A clang/test/CIR/CodeGenCXX/Inputs/typeinfo
M clang/test/CIR/CodeGenCXX/global-refs.cpp
M clang/test/CIR/CodeGenCXX/simple-reinterpret-const-cast.cpp
A clang/test/CIR/CodeGenCXX/typeid-cxx11.cpp
A clang/test/CIR/CodeGenCXX/typeid-should-throw.cpp
A clang/test/CIR/CodeGenCXX/typeid.cpp
A clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
A clang/test/CIR/CodeGenCXX/vtable-pure-deleted-funcs.cpp
A clang/test/CIR/CodeGenCXX/vtable-virt-thunk-adj.cpp
A clang/test/CIR/CodeGenCXX/zero_init_bases.cpp
A clang/test/CIR/CodeGenHIP/amdgpu-attrs.hip
A clang/test/CIR/CodeGenHIP/amdgpu-module-flags.hip
A clang/test/CIR/CodeGenHIP/simple.cpp
M clang/test/CIR/CodeGenHLSL/matrix-element-expr-load.hlsl
M clang/test/CIR/CodeGenOpenACC/atomic-capture.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-read.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-update.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-write.cpp
M clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/combined-firstprivate-clause.cpp
M clang/test/CIR/CodeGenOpenACC/combined-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined.cpp
M clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause-templates.cpp
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause.c
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause.cpp
M clang/test/CIR/CodeGenOpenACC/compute-private-clause-templates.cpp
M clang/test/CIR/CodeGenOpenACC/compute-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-default-ops.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-float.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-int.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-unsigned-int.c
M clang/test/CIR/CodeGenOpenACC/data-copy-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/data.c
M clang/test/CIR/CodeGenOpenACC/declare-link.cpp
M clang/test/CIR/CodeGenOpenACC/enter-data.c
M clang/test/CIR/CodeGenOpenACC/exit-data.c
M clang/test/CIR/CodeGenOpenACC/firstprivate-clause-recipes.cpp
M clang/test/CIR/CodeGenOpenACC/host_data.c
M clang/test/CIR/CodeGenOpenACC/init.c
M clang/test/CIR/CodeGenOpenACC/kernels.c
M clang/test/CIR/CodeGenOpenACC/loop-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop.cpp
M clang/test/CIR/CodeGenOpenACC/parallel.c
M clang/test/CIR/CodeGenOpenACC/private-clause-array-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-array-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-int.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-int.cpp
M clang/test/CIR/CodeGenOpenACC/reduction-clause-recipes.cpp
M clang/test/CIR/CodeGenOpenACC/routine-anon-ns.cpp
M clang/test/CIR/CodeGenOpenACC/routine-bind.c
M clang/test/CIR/CodeGenOpenACC/routine-bind.cpp
M clang/test/CIR/CodeGenOpenACC/routine-clauses.cpp
M clang/test/CIR/CodeGenOpenACC/routine-device_type.cpp
M clang/test/CIR/CodeGenOpenACC/routine-globals.cpp
M clang/test/CIR/CodeGenOpenACC/routine-globals2.cpp
M clang/test/CIR/CodeGenOpenACC/routine-locals.cpp
M clang/test/CIR/CodeGenOpenACC/routine-members.cpp
M clang/test/CIR/CodeGenOpenACC/routine-ns.cpp
M clang/test/CIR/CodeGenOpenACC/routine-templ.cpp
M clang/test/CIR/CodeGenOpenACC/serial.c
M clang/test/CIR/CodeGenOpenACC/set.c
M clang/test/CIR/CodeGenOpenACC/shutdown.c
M clang/test/CIR/CodeGenOpenACC/update.c
M clang/test/CIR/CodeGenOpenACC/wait.c
M clang/test/CIR/CodeGenOpenMP/omp-llvmir.c
A clang/test/CIR/CodeGenOpenMP/omp-module-attrs.c
M clang/test/CIR/CodeGenOpenMP/parallel.c
A clang/test/CIR/IR/address-space.cir
M clang/test/CIR/IR/atomic.cir
A clang/test/CIR/IR/attribute-visibility.cir
M clang/test/CIR/IR/cmp.cir
M clang/test/CIR/IR/copy.cir
M clang/test/CIR/IR/eh-inflight.cir
A clang/test/CIR/IR/func-attrs.cir
M clang/test/CIR/IR/invalid-addrspace.cir
A clang/test/CIR/IR/invalid-cmp3way.cir
A clang/test/CIR/IR/invalid-const-array.cir
M clang/test/CIR/IR/invalid-copy.cir
M clang/test/CIR/IR/invalid-eh-flat.cir
M clang/test/CIR/IR/invalid-func.cir
M clang/test/CIR/IR/invalid-linkage.cir
M clang/test/CIR/IR/invalid-try-catch.cir
A clang/test/CIR/IR/string-trailing-zeros.cir
M clang/test/CIR/IR/throw.cir
M clang/test/CIR/IR/try-catch.cir
M clang/test/CIR/IR/unary.cir
M clang/test/CIR/IR/vector.cir
M clang/test/CIR/Lowering/binop-bool.cir
M clang/test/CIR/Lowering/binop-fp.cir
A clang/test/CIR/Lowering/binop-int-vector.cir
M clang/test/CIR/Lowering/binop-signed-int.cir
M clang/test/CIR/Lowering/binop-unsigned-int.cir
M clang/test/CIR/Lowering/eh-inflight.cir
M clang/test/CIR/Lowering/goto.cir
M clang/test/CIR/Lowering/poison.cir
M clang/test/CIR/Lowering/switch.cir
A clang/test/CIR/Transforms/binop-traits.cir
M clang/test/CIR/Transforms/bit.cir
M clang/test/CIR/Transforms/canonicalize.cir
A clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
A clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-eh.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-multi-exit.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-nyi.cir
A clang/test/CIR/Transforms/flatten-preserve-attrs.cir
A clang/test/CIR/Transforms/flatten-throwing-in-cleanup.cir
A clang/test/CIR/Transforms/flatten-try-op.cir
A clang/test/CIR/Transforms/max-min-idempotent.cir
A clang/test/CIR/Transforms/omp-mark-declare-target.cir
A clang/test/CIR/Transforms/pure-ptr-arithmetic.cir
M clang/test/CIR/Transforms/select.cir
M clang/test/CIR/Transforms/switch.cir
M clang/test/CIR/Transforms/ternary.cir
M clang/test/CMakeLists.txt
M clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp
M clang/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg10xx.cpp
M clang/test/CXX/drs/cwg118.cpp
M clang/test/CXX/drs/cwg11xx.cpp
M clang/test/CXX/drs/cwg12xx.cpp
M clang/test/CXX/drs/cwg13xx.cpp
M clang/test/CXX/drs/cwg14xx.cpp
M clang/test/CXX/drs/cwg158.cpp
M clang/test/CXX/drs/cwg15xx.cpp
M clang/test/CXX/drs/cwg16xx.cpp
M clang/test/CXX/drs/cwg1736.cpp
M clang/test/CXX/drs/cwg17xx.cpp
M clang/test/CXX/drs/cwg1884.cpp
M clang/test/CXX/drs/cwg18xx.cpp
M clang/test/CXX/drs/cwg19xx.cpp
M clang/test/CXX/drs/cwg1xx.cpp
M clang/test/CXX/drs/cwg20xx.cpp
M clang/test/CXX/drs/cwg2149.cpp
M clang/test/CXX/drs/cwg21xx.cpp
M clang/test/CXX/drs/cwg22xx.cpp
M clang/test/CXX/drs/cwg2335.cpp
M clang/test/CXX/drs/cwg23xx.cpp
M clang/test/CXX/drs/cwg24xx.cpp
M clang/test/CXX/drs/cwg25xx.cpp
M clang/test/CXX/drs/cwg2630.cpp
M clang/test/CXX/drs/cwg26xx.cpp
M clang/test/CXX/drs/cwg273.cpp
M clang/test/CXX/drs/cwg2771.cpp
M clang/test/CXX/drs/cwg279.cpp
M clang/test/CXX/drs/cwg27xx.cpp
M clang/test/CXX/drs/cwg28xx.cpp
M clang/test/CXX/drs/cwg2947.cpp
M clang/test/CXX/drs/cwg29xx.cpp
M clang/test/CXX/drs/cwg2xx.cpp
M clang/test/CXX/drs/cwg30xx.cpp
M clang/test/CXX/drs/cwg3xx.cpp
M clang/test/CXX/drs/cwg4xx.cpp
M clang/test/CXX/drs/cwg5xx.cpp
M clang/test/CXX/drs/cwg6xx.cpp
M clang/test/CXX/drs/cwg722.cpp
M clang/test/CXX/drs/cwg787.cpp
M clang/test/CXX/drs/cwg7xx.cpp
M clang/test/CXX/drs/cwg8xx.cpp
M clang/test/CXX/drs/cwg9xx.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
M clang/test/CXX/module/dcl.dcl/dcl.module/p1.cpp
M clang/test/CXX/module/module.interface/p1.cpp
A clang/test/ClangScanDeps/build-session-validation-relocated-modules.c
A clang/test/ClangScanDeps/modules-cycle-deadlock.c
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
M clang/test/ClangScanDeps/modules-relocated-mm-macro.c
A clang/test/ClangScanDeps/modules-symlink-dir-from-module-incremental.c
M clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
A clang/test/ClangScanDeps/p1689-suppress-warnings-no-eol.cppm
A clang/test/ClangScanDeps/p1689-suppress-warnings.cppm
M clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c
M clang/test/CodeCompletion/cpp23-explicit-object.cpp
M clang/test/CodeCompletion/member-access.cpp
M clang/test/CodeGen/2005-01-02-ConstantInits.c
M clang/test/CodeGen/AArch64/bf16-getset-intrinsics.c
M clang/test/CodeGen/AArch64/cpu-supports-target.c
M clang/test/CodeGen/AArch64/cpu-supports.c
M clang/test/CodeGen/AArch64/fmv-detection.c
M clang/test/CodeGen/AArch64/fmv-explicit-priority.c
M clang/test/CodeGen/AArch64/fmv-mix-explicit-implicit-default.c
M clang/test/CodeGen/AArch64/fmv-resolver-emission.c
M clang/test/CodeGen/AArch64/fmv-unreachable-version.c
M clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_untyped.c
A clang/test/CodeGen/AArch64/inline-asm-p-constraint.c
M clang/test/CodeGen/AArch64/ls64.c
M clang/test/CodeGen/AArch64/mixed-target-attributes.c
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon-misc.c
A clang/test/CodeGen/AArch64/neon/bf16-getset.c
A clang/test/CodeGen/AArch64/neon/f16-getset.c
M clang/test/CodeGen/AArch64/neon/fullfp16.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
A clang/test/CodeGen/AArch64/pcdphint-atomic-store.c
M clang/test/CodeGen/AArch64/poly64.c
M clang/test/CodeGen/AArch64/targetattr.c
M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics.c
M clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics-generic.c
M clang/test/CodeGen/AArch64/varargs.c
A clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c
A clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c
M clang/test/CodeGen/LoongArch/targetattr-la32.c
M clang/test/CodeGen/LoongArch/targetattr-la64.c
M clang/test/CodeGen/PowerPC/altivec-ct.c
A clang/test/CodeGen/PowerPC/attr-target-clones.c
M clang/test/CodeGen/PowerPC/builtins-amo-err.c
M clang/test/CodeGen/PowerPC/builtins-ppc-32bit-vec-ll.c
M clang/test/CodeGen/PowerPC/builtins-ppc-amo.c
M clang/test/CodeGen/PowerPC/builtins-ppc-crypto.c
M clang/test/CodeGen/PowerPC/builtins-ppc-dmf.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p9vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-char.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-noi128.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xl-xst.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat.c
M clang/test/CodeGen/PowerPC/ppc-dmf-mma-builtin-err.c
M clang/test/CodeGen/PowerPC/ppc-emmintrin.c
M clang/test/CodeGen/PowerPC/ppc-vector-compare.cpp
M clang/test/CodeGen/PowerPC/ppc-xmmintrin.c
M clang/test/CodeGen/PowerPC/ppc32-dwarf.c
M clang/test/CodeGen/PowerPC/ppc64-dwarf.c
M clang/test/CodeGen/RISCV/abi-empty-structs.c
M clang/test/CodeGen/RISCV/bfloat-abi.c
M clang/test/CodeGen/RISCV/builtin-cpu-is.c
M clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c
A clang/test/CodeGen/RISCV/riscv-fpcc-struct.c
M clang/test/CodeGen/RISCV/riscv-inline-asm.c
M clang/test/CodeGen/RISCV/riscv32-abi.c
M clang/test/CodeGen/RISCV/riscv64-abi.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/vlenb.c
M clang/test/CodeGen/Sparc/sparcv9-dwarf.c
M clang/test/CodeGen/SystemZ/align-systemz-02.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-00.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-01.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-03b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-04.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-05.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-06.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-07.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-08.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-08b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-09.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-09b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-11.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-12.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-13.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-14.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-15.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-16.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-17.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-17b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-18.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-19.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-20.cpp
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-21.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-22.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-23.c
M clang/test/CodeGen/WebAssembly/builtins-table-externref.c
M clang/test/CodeGen/X86/avx10_2bf16-builtins.c
M clang/test/CodeGen/X86/avx512bw-builtins.c
M clang/test/CodeGen/X86/avx512f-builtins.c
M clang/test/CodeGen/X86/avx512vbmi2-builtins.c
M clang/test/CodeGen/X86/avx512vl-builtins.c
M clang/test/CodeGen/X86/avx512vlbw-builtins.c
M clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c
M clang/test/CodeGen/X86/inline-asm-constraints.c
M clang/test/CodeGen/X86/va-arg-sse.c
M clang/test/CodeGen/aix-builtin-cpu-is.c
M clang/test/CodeGen/aix-builtin-cpu-supports.c
M clang/test/CodeGen/allow-ubsan-check.c
M clang/test/CodeGen/amdgpu-abi-version.c
M clang/test/CodeGen/amdgpu-address-spaces.cpp
A clang/test/CodeGen/amdgpu-builtin-is-invocable.c
A clang/test/CodeGen/amdgpu-builtin-processor-is.c
A clang/test/CodeGen/amdgpu-feature-builtins-invalid-use.cpp
M clang/test/CodeGen/amdgpu-image-rsrc-type-debug-info.c
R clang/test/CodeGen/arm-bf16-getset-intrinsics.c
M clang/test/CodeGen/arm-metadata.c
M clang/test/CodeGen/arm64-microsoft-sys.c
M clang/test/CodeGen/arm_acle.c
M clang/test/CodeGen/asm-goto2.c
A clang/test/CodeGen/asm_incbin.c
A clang/test/CodeGen/async-exceptions.c
M clang/test/CodeGen/atomic-arm64.c
M clang/test/CodeGen/atomic-ops.c
M clang/test/CodeGen/attr-counted-by-for-pointers.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/CodeGen/attr-cpuspecific.c
A clang/test/CodeGen/attr-ms-forceinline.cpp
A clang/test/CodeGen/attr-personality-failures.c
A clang/test/CodeGen/attr-personality.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-clones-riscv.c
M clang/test/CodeGen/attr-target-clones.c
M clang/test/CodeGen/attr-target-version-riscv.c
M clang/test/CodeGen/auto.c
A clang/test/CodeGen/availability-check-anyappleos.c
M clang/test/CodeGen/big-atomic-ops.c
A clang/test/CodeGen/bitcast-based-lvalue.c
M clang/test/CodeGen/builtin-cpu-is.c
M clang/test/CodeGen/builtin-cpu-supports.c
M clang/test/CodeGen/builtin_vectorelements.c
M clang/test/CodeGen/builtins-arm64.c
M clang/test/CodeGen/builtins-extended-image.c
M clang/test/CodeGen/builtins-image-load.c
M clang/test/CodeGen/builtins-image-store.c
M clang/test/CodeGen/builtins-nvptx-ptx50.cu
M clang/test/CodeGen/builtins-nvptx.c
M clang/test/CodeGen/builtins-reduction-math.c
M clang/test/CodeGen/builtins-x86.c
A clang/test/CodeGen/c23-constexpr-member-access.c
A clang/test/CodeGen/call-graph-section-internal.cpp
M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset-in-offsetof-idiom.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset.c
A clang/test/CodeGen/cfi-icall-with-abi-tag.cpp
M clang/test/CodeGen/clear_cache.c
M clang/test/CodeGen/complex-strictfp.c
M clang/test/CodeGen/complex.c
M clang/test/CodeGen/distributed-thin-lto/cfi-devirt.ll
M clang/test/CodeGen/distributed-thin-lto/cfi.ll
A clang/test/CodeGen/distributed-thin-lto/pass-plugin.ll
M clang/test/CodeGen/fp-function-attrs.cpp
R clang/test/CodeGen/inline-asm-p-constraint.c
M clang/test/CodeGen/linux-kernel-struct-union-initializer.c
M clang/test/CodeGen/linux-kernel-struct-union-initializer2.c
M clang/test/CodeGen/memcpy-inline-builtin.c
M clang/test/CodeGen/mips-inline-asm-modifiers.c
M clang/test/CodeGen/ms-intrinsics.c
M clang/test/CodeGen/ms_struct-bitfield.c
A clang/test/CodeGen/ms_struct-packed.c
M clang/test/CodeGen/multi-aix-builtin-cpu-supports.c
M clang/test/CodeGen/nvptx_attributes.c
M clang/test/CodeGen/object-size.c
M clang/test/CodeGen/overflow-behavior-types-scl.c
M clang/test/CodeGen/overflow-behavior-types.c
M clang/test/CodeGen/packed-nest-unpacked.c
M clang/test/CodeGen/ptrauth-function-init.c
M clang/test/CodeGen/ptrauth-module-flags.c
M clang/test/CodeGen/ptrauth-restricted-intptr-qualifier.c
M clang/test/CodeGen/sanitize-metadata-ignorelist.c
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/sanitize-type-globals.cpp
M clang/test/CodeGen/scoped-atomic-ops.c
M clang/test/CodeGen/stack-protector-guard.c
M clang/test/CodeGen/struct-passing.c
A clang/test/CodeGen/tbaa-matrix.c
M clang/test/CodeGen/thinlto-funcattr-prop.ll
A clang/test/CodeGen/ubsan-aggregate-null-align.c
M clang/test/CodeGen/ubsan-function-sugared.cpp
M clang/test/CodeGen/ubsan-function.cpp
M clang/test/CodeGen/ubsan-type-ignorelist-category.test
M clang/test/CodeGen/unaligned-expr.c
M clang/test/CodeGen/union-tbaa1.c
M clang/test/CodeGen/volatile-1.c
M clang/test/CodeGen/volatile-2.c
M clang/test/CodeGen/volatile-complex.c
M clang/test/CodeGen/wasm-fp16.c
M clang/test/CodeGen/wchar-size.c
A clang/test/CodeGen/windows-seh-arg-capture-crash.cpp
M clang/test/CodeGenCUDA/address-spaces.cu
M clang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
M clang/test/CodeGenCUDA/amdgpu-workgroup-size.cu
A clang/test/CodeGenCUDA/builtin-count-zeros-nvptx.cu
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/convergent.cu
M clang/test/CodeGenCUDA/fp-contract.cu
M clang/test/CodeGenCUDA/incomplete-func-ptr-type.cu
M clang/test/CodeGenCUDA/managed-var.cu
A clang/test/CodeGenCUDA/mangling.cu
M clang/test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
M clang/test/CodeGenCXX/alloc-token-pointer.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
A clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllexport.cpp
A clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllimport.cpp
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/CodeGenCXX/attr-target-clones-riscv.cpp
M clang/test/CodeGenCXX/attr-target-version-riscv.cpp
M clang/test/CodeGenCXX/attr-target-version.cpp
A clang/test/CodeGenCXX/bad-codegen-for-constexpr-structured-bindings.cpp
M clang/test/CodeGenCXX/blocks-cxx11.cpp
M clang/test/CodeGenCXX/builtin-invoke.cpp
M clang/test/CodeGenCXX/builtin_FUNCTION.cpp
M clang/test/CodeGenCXX/catch-nullptr-and-nonzero-offset-in-offsetof-idiom.cpp
M clang/test/CodeGenCXX/cfi-icall.cpp
M clang/test/CodeGenCXX/const-init-cxx11.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-pr12086.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
M clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx1y-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx1z-decomposition.cpp
M clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx2a-consteval.cpp
A clang/test/CodeGenCXX/dead-on-return-deleting-destructor.cpp
M clang/test/CodeGenCXX/destructor-dead-on-return.cpp
A clang/test/CodeGenCXX/dllexport-inherited-ctor.cpp
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/CodeGenCXX/ext-int.cpp
M clang/test/CodeGenCXX/finegrain-bitfield-access.cpp
M clang/test/CodeGenCXX/fmv-namespace.cpp
M clang/test/CodeGenCXX/for-range.cpp
M clang/test/CodeGenCXX/forward-declare-as-array-elem.cpp
M clang/test/CodeGenCXX/global-array-destruction.cpp
M clang/test/CodeGenCXX/inheriting-constructor.cpp
M clang/test/CodeGenCXX/labeled-break-continue.cpp
M clang/test/CodeGenCXX/mangle-lambdas.cpp
M clang/test/CodeGenCXX/mangle-ms.cpp
A clang/test/CodeGenCXX/microsoft-abi-diamond-template-multiple-vbptrs-32bit.cpp
A clang/test/CodeGenCXX/microsoft-abi-diamond-template-multiple-vbptrs.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors-new-array.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
M clang/test/CodeGenCXX/ms-inline-asm-fields.cpp
A clang/test/CodeGenCXX/ms-vdtors-devirtualization.cpp
M clang/test/CodeGenCXX/no-odr-use.cpp
M clang/test/CodeGenCXX/pfp-load-store.cpp
M clang/test/CodeGenCXX/pfp-member-pointer-offsetof.cpp
M clang/test/CodeGenCXX/pfp-memcpy.cpp
A clang/test/CodeGenCXX/pragma-loop-licm.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/reference-temporary-ms.cpp
A clang/test/CodeGenCXX/reference-temporary-mutable.cpp
A clang/test/CodeGenCXX/reference-temporary-subobject.cpp
M clang/test/CodeGenCXX/static-local-in-local-class.cpp
M clang/test/CodeGenCXX/temporaries.cpp
M clang/test/CodeGenCXX/ubsan-nullability-arg.cpp
M clang/test/CodeGenCXX/volatile-1.cpp
M clang/test/CodeGenCXX/vtable-assume-load-address-space.cpp
M clang/test/CodeGenCXX/vtable-assume-load.cpp
M clang/test/CodeGenCXX/vtt-address-space.cpp
M clang/test/CodeGenCoroutines/coro-elide.cpp
A clang/test/CodeGenCoroutines/coro-gro3.cpp
M clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
M clang/test/CodeGenDirectX/Builtins/dot2add.c
A clang/test/CodeGenHIP/amdgcnspirv-visibility.cpp
M clang/test/CodeGenHIP/amdgpu-barrier-type.hip
A clang/test/CodeGenHIP/builtins-amdgcn-buffer-format.hip
A clang/test/CodeGenHIP/builtins-amdgcn-gfx1250-wmma-f16.hip
A clang/test/CodeGenHIP/debug-info-language-hip.hip
M clang/test/CodeGenHIP/default-attributes.hip
M clang/test/CodeGenHIP/hip_weak_alias.cpp
A clang/test/CodeGenHIP/placement-new-addrspace.hip
M clang/test/CodeGenHIP/sanitize-undefined-null.hip
M clang/test/CodeGenHIP/spirv-amdgcn-dpp-const-fold.hip
A clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
M clang/test/CodeGenHLSL/ArrayAssignable.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/AggregateSplatCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/ArrayElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixConstructor.hlsl
A clang/test/CodeGenHLSL/BasicFeatures/MatrixElementRowColFlags.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixElementTypeCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixExplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixImplicitTruncation.hlsl
A clang/test/CodeGenHLSL/BasicFeatures/MatrixInitializerListOrder.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptConstSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptDynamicSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptSetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/OutputArguments.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/VectorElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BoolMatrix.hlsl
M clang/test/CodeGenHLSL/BoolVector.hlsl
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/CodeGenHLSL/basic_types.hlsl
M clang/test/CodeGenHLSL/builtins/AddUint64.hlsl
A clang/test/CodeGenHLSL/builtins/GroupMemoryBarrier.hlsl
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossX.hlsl
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossY.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/VectorSwizzles.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd-errors.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitXor-errors.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveProduct.hlsl
M clang/test/CodeGenHLSL/builtins/clip.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16.hlsl
A clang/test/CodeGenHLSL/builtins/fma.hlsl
M clang/test/CodeGenHLSL/builtins/hlsl_resource_t.hlsl
M clang/test/CodeGenHLSL/builtins/mad.hlsl
A clang/test/CodeGenHLSL/builtins/mul.hlsl
M clang/test/CodeGenHLSL/builtins/select.hlsl
A clang/test/CodeGenHLSL/builtins/transpose.hlsl
A clang/test/CodeGenHLSL/debug/source-language.hlsl
M clang/test/CodeGenHLSL/float3.hlsl
M clang/test/CodeGenHLSL/group_shared.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/ArrTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/MatrixTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/Overloads.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/Scalartest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/TemplateTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/VectorTest.hlsl
M clang/test/CodeGenHLSL/inline-functions.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
A clang/test/CodeGenHLSL/resources/CBufferMatrixSingleSubscriptSwizzle.hlsl
A clang/test/CodeGenHLSL/resources/MatrixElement_cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/RasterizerOrderedStructuredBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-subscripts.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-CalculateLevelOfDetail.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Gather.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-GetDimensions.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Load.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Mips.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-Sample.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleBias.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleCmp.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleGrad.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-SampleLevel.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Subscript.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-default-explicit-binding.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-default.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-shorthand-contexts.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-subscript.hlsl
A clang/test/CodeGenHLSL/resources/cbuffer-empty-struct-array.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_geps.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_with_packoffset.hlsl
M clang/test/CodeGenHLSL/resources/default_cbuffer_with_layout.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-dyn-index.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-unbounded.hlsl
A clang/test/CodeGenHLSL/semantics/SV_VertexID.vs.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.array.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.array.output.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.explicit-location-output-struct.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.struct.hlsl
A clang/test/CodeGenHLSL/vk-output-builtin.hlsl
A clang/test/CodeGenObjC/Inputs/constant-literal-support.h
M clang/test/CodeGenObjC/aarch64-sve-types.m
A clang/test/CodeGenObjC/arc-constant-literals.m
M clang/test/CodeGenObjC/constant-string-class-1.m
M clang/test/CodeGenObjC/direct-method-ret-mismatch.m
M clang/test/CodeGenObjC/exceptions.m
A clang/test/CodeGenObjC/expose-direct-method-linkedlist.m
A clang/test/CodeGenObjC/expose-direct-method-varargs.m
A clang/test/CodeGenObjC/expose-direct-method-visibility-linkage.m
A clang/test/CodeGenObjC/expose-direct-method.m
A clang/test/CodeGenObjC/method-selector-stub.m
A clang/test/CodeGenObjC/no-nsconstant-literals.m
A clang/test/CodeGenObjC/objc2-constant-collection-literals.m
A clang/test/CodeGenObjC/objc2-constant-literal-custom-class.m
A clang/test/CodeGenObjC/objc2-constant-number-literal.m
M clang/test/CodeGenObjC/super-message-fragileabi.m
R clang/test/CodeGenOpenCL/.gdb_history
M clang/test/CodeGenOpenCL/amdgpu-cluster-dims.cl
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/amdgpu-ieee.cl
M clang/test/CodeGenOpenCL/atomic-ops.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx10.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-tensor-load-store.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-wmma-w32.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gws-insts.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-store-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-gfx1250-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w32-gfx10-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w64-gfx10-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-workgroup-size.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
M clang/test/CodeGenOpenCL/cl-uniform-wg-size.cl
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M clang/test/CodeGenOpenCL/convergent.cl
M clang/test/CodeGenOpenCL/relaxed-fpmath.cl
A clang/test/CodeGenSPIRV/function-pointer-cast.cpp
A clang/test/CodeGenSPIRV/global-dtor.cpp
A clang/test/CodeGenSPIRV/kernel-ptr-arg.c
M clang/test/CodeGenSYCL/function-attrs.cpp
M clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
A clang/test/CodeGenSYCL/sycl-kernel-entry-point-exceptions.cpp
M clang/test/CodeGenSYCL/unique_stable_name_windows_diff.cpp
A clang/test/DebugInfo/CXX/callsite-base.cpp
A clang/test/DebugInfo/CXX/callsite-derived.cpp
A clang/test/DebugInfo/CXX/callsite-edges.cpp
A clang/test/DebugInfo/CXX/debug-info-constexpr-array.cpp
M clang/test/DebugInfo/CXX/hotpatch.cpp
M clang/test/DebugInfo/CXX/ms-novtable.cpp
A clang/test/DebugInfo/CXX/ptrauth-member-function-pointer-debuglocs.cpp
M clang/test/DebugInfo/CXX/vtable-external.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-diamond.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-multiple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple-main.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-virtual.cpp
M clang/test/DebugInfo/CXX/vtable-template-instantiation.cpp
M clang/test/DebugInfo/KeyInstructions/complex.c
A clang/test/Driver/HLSL/fre-errors.hlsl
M clang/test/Driver/HLSL/metal-converter.hlsl
A clang/test/Driver/Inputs/fake_ld/ld
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libclang_rt.profile.a
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/nvptx64-nvidia-cuda/libclang_rt.profile.a
M clang/test/Driver/aarch64-fixed-x-register.c
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Driver/amdgpu-openmp-sanitize-options.c
M clang/test/Driver/amdgpu-toolchain.c
M clang/test/Driver/autocomplete.c
M clang/test/Driver/baremetal.cpp
M clang/test/Driver/cl-link.c
M clang/test/Driver/cl-options.c
M clang/test/Driver/cl-x86-flags.c
A clang/test/Driver/crash-report-no-integrated-cc1.c
M clang/test/Driver/cuda-arch-translation.cu
M clang/test/Driver/cuda-cross-compiling.c
M clang/test/Driver/darwin-builtin-modules.c
M clang/test/Driver/darwin-ld-platform-version-macos.c
A clang/test/Driver/darwin-objc-selector-stubs.m
A clang/test/Driver/empty_arg.c
M clang/test/Driver/fsanitize-ignorelist.c
M clang/test/Driver/fsanitize-memtag.c
M clang/test/Driver/fsanitize-minimal-runtime.c
A clang/test/Driver/ftime-trace-offload.cpp
M clang/test/Driver/hexagon-toolchain-elf.c
M clang/test/Driver/hexagon-toolchain-linux.c
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-options.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-save-temps.hip
M clang/test/Driver/hip-spirv-backend-bindings.c
M clang/test/Driver/hip-spirv-backend-phases.c
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/hipspv-toolchain.hip
M clang/test/Driver/incremental-linker-compatible.c
A clang/test/Driver/linker-wrapper-canonical-prefixes.c
M clang/test/Driver/linker-wrapper-hip-no-rdc.c
M clang/test/Driver/linux-ld.c
A clang/test/Driver/memtag-android.c
R clang/test/Driver/memtag-ld.c
A clang/test/Driver/memtag.c
A clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
A clang/test/Driver/modules-driver-dep-graph.cpp
A clang/test/Driver/modules-driver-dep-scan-diagnostics.cpp
A clang/test/Driver/modules-driver-duplicate-named-module.cpp
A clang/test/Driver/modules-driver-malformed-manifest.cpp
A clang/test/Driver/modules-driver-manifest-input-args.cpp
A clang/test/Driver/modules-driver-manifest-not-found.cpp
A clang/test/Driver/offload-arch-translation-amdgpu.cu
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/Driver/print-enabled-extensions/riscv-sifive-p870.c
A clang/test/Driver/print-enabled-extensions/riscv-sifive-x160.c
A clang/test/Driver/print-enabled-extensions/riscv-sifive-x180.c
M clang/test/Driver/print-enabled-extensions/riscv-spacemit-x100.c
A clang/test/Driver/print-enabled-extensions/riscv-spacemit-x60.c
A clang/test/Driver/print-enabled-extensions/riscv-xt-c910v2.c
A clang/test/Driver/print-enabled-extensions/riscv-xt-c920v2.c
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/pseudo-probe.c
A clang/test/Driver/reloc-section-sym.c
M clang/test/Driver/riscv-cpus.c
M clang/test/Driver/solaris-ld-sld.c
M clang/test/Driver/spirv-amd-toolchain.c
M clang/test/Driver/spirv-llvm-link.c
M clang/test/Driver/spirv-tools-err.c
M clang/test/Driver/stack-protector-guard.c
A clang/test/Driver/sycl-offload-jit-xarch.cpp
M clang/test/Driver/uefi-constructed-args.c
M clang/test/Driver/wasm-features.c
M clang/test/Driver/wasm-toolchain.cpp
A clang/test/Driver/x86-fixed-di-register.c
M clang/test/Driver/x86-target-features.c
A clang/test/Driver/x86_64-fixed-r-register.c
A clang/test/Driver/xcselect.c
A clang/test/ExtractAPI/type-alias.cpp
A clang/test/FixIt/fixit-availability-anyappleos.m
A clang/test/FixIt/fixit-defaulted-comparison.cpp
M clang/test/FixIt/fixit-pragma-attribute.cpp
A clang/test/Format/dont-crash-on-nul.cpp
A clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif
A clang/test/Frontend/Inputs/expected-sarif/sarif-legacy-stable-ids.c.sarif
A clang/test/Frontend/backend-attribute-inlining-cross-tu.c
A clang/test/Frontend/backend-attribute-inlining-debug-vs-heuristic.cpp
A clang/test/Frontend/backend-attribute-inlining-modes.c
A clang/test/Frontend/backend-attribute-inlining.c
M clang/test/Frontend/fixed_point_sub_const.c
M clang/test/Frontend/sarif-diagnostics.cpp
A clang/test/Frontend/sarif-legacy-stable-ids.c
A clang/test/Frontend/verify-directives-full-match.cpp
A clang/test/Frontend/verify-directives-one-diag.cpp
A clang/test/Frontend/verify-directives-order.cpp
A clang/test/Frontend/verify-directives-wildcard.cpp
M clang/test/Headers/Inputs/include/stdint.h
M clang/test/Headers/__clang_hip_math.hip
A clang/test/Headers/amdhsa_abi.cl
A clang/test/Headers/endian.c
M clang/test/Headers/gpuintrin.c
M clang/test/Headers/gpuintrin_lang.c
A clang/test/Headers/hexagon-hvx-ieee-headers.c
A clang/test/Headers/hexagon-types-b0-conflict.c
M clang/test/Headers/hip-header.hip
M clang/test/Index/annotate-module.m
M clang/test/Index/complete-qualified.cpp
M clang/test/Index/extract-api-cursor-cpp.cpp
M clang/test/InstallAPI/extra-exclude-headers.test
M clang/test/InstallAPI/hiddens.test
A clang/test/Interpreter/incremental-c-implicit-error.c
A clang/test/Interpreter/incremental-c-implicit-undo.c
M clang/test/Interpreter/pretty-print.c
M clang/test/Interpreter/pretty-print.cpp
A clang/test/Interpreter/verify-diagnostics.cpp
M clang/test/Layout/ms-x86-bitfields-overflow.c
A clang/test/Lexer/backslash-include-win.c
M clang/test/Lexer/cxx20-module-directive.cpp
M clang/test/Lexer/gnu-flags.c
A clang/test/Lexer/gnu-zero-variadic-macro-argument-fixit.c
M clang/test/Misc/amdgcn.languageOptsOpenCL.cl
A clang/test/Misc/cc1as-reloc-section-sym.s
M clang/test/Misc/diag-mapping.c
A clang/test/Misc/noexecstack.c
M clang/test/Misc/nvptx.languageOptsOpenCL.cl
R clang/test/Misc/nvptx.unsupported_core.cl
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M clang/test/Misc/target-invalid-cpu-note/riscv.c
M clang/test/Misc/warning-wall.c
M clang/test/Modules/DebugInfoNamespace.cpp
M clang/test/Modules/DebugInfoSubmoduleImport.c
M clang/test/Modules/DebugInfoTransitiveImport.m
M clang/test/Modules/ExtDebugInfo.cpp
M clang/test/Modules/ExtDebugInfo.m
A clang/test/Modules/Inputs/pch-config-macros/include/Mod1.h
A clang/test/Modules/Inputs/pch-config-macros/include/module.modulemap
M clang/test/Modules/ModuleDebugInfo.cpp
M clang/test/Modules/ModuleDebugInfo.m
M clang/test/Modules/ModuleModuleDebugInfo.cpp
A clang/test/Modules/align-val-t-merge.cpp
M clang/test/Modules/auto-module-import.m
A clang/test/Modules/build-session-validation-relocated-modules.c
A clang/test/Modules/callable-require-clause-merge.cppm
A clang/test/Modules/class-instantiate-no-change-02.cppm
M clang/test/Modules/debug-info-moduleimport.m
A clang/test/Modules/demote-var-def.cpp
A clang/test/Modules/deprecated-upwards-relative-path.m
A clang/test/Modules/diag-pragma-nonaffecting.cpp
M clang/test/Modules/extern_c.cpp
M clang/test/Modules/global_index.m
A clang/test/Modules/implicit-cycle-deadlock.c
A clang/test/Modules/include-between-imports-enums.cppm
A clang/test/Modules/lazy-by-header-extern.c
A clang/test/Modules/lazy-by-header-lookup.c
A clang/test/Modules/lazy-by-header-nested.c
A clang/test/Modules/lazy-by-header-private.c
A clang/test/Modules/lazy-by-header-umbrella-dir.c
A clang/test/Modules/lazy-by-header-umbrella-header.c
M clang/test/Modules/lazy-by-name-lookup.c
M clang/test/Modules/load-after-failure.m
M clang/test/Modules/module-debuginfo-compdir.m
M clang/test/Modules/module-debuginfo-prefix.m
A clang/test/Modules/module-init-forcelly-loaded-module.cpp
M clang/test/Modules/no-transitive-decl-change-4.cppm
A clang/test/Modules/pch-config-macros.c
M clang/test/Modules/polluted-operator.cppm
A clang/test/Modules/pr149404-02.cppm
A clang/test/Modules/pr170099.cppm
A clang/test/Modules/pr172241.cppm
A clang/test/Modules/pr178893.cppm
A clang/test/Modules/pr179178.cpp
A clang/test/Modules/pr184957.cppm
A clang/test/Modules/pr186603.cppm
A clang/test/Modules/pr189415.cppm
A clang/test/Modules/relative-module-cache.c
A clang/test/Modules/special-member-definitions.cppm
M clang/test/Modules/templates.mm
A clang/test/Modules/var-inst-def.cppm
M clang/test/OpenMP/amdgcn-attributes.cpp
M clang/test/OpenMP/amdgcn_sret_ctor.cpp
M clang/test/OpenMP/amdgcn_target_codegen.cpp
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgcn_target_global_constructor.cpp
M clang/test/OpenMP/amdgcn_weak_alias.c
M clang/test/OpenMP/amdgcn_weak_alias.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/atomic_capture_codegen.cpp
M clang/test/OpenMP/atomic_read_codegen.c
M clang/test/OpenMP/atomic_update_codegen.cpp
M clang/test/OpenMP/atomic_write_codegen.c
M clang/test/OpenMP/bug59160.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/cancel_codegen.cpp
M clang/test/OpenMP/constexpr_capture.cpp
M clang/test/OpenMP/copy-gaps-1.cpp
M clang/test/OpenMP/copy-gaps-2.cpp
M clang/test/OpenMP/copy-gaps-3.cpp
M clang/test/OpenMP/copy-gaps-4.cpp
M clang/test/OpenMP/copy-gaps-5.cpp
M clang/test/OpenMP/copy-gaps-6.cpp
M clang/test/OpenMP/declare_mapper_codegen.cpp
M clang/test/OpenMP/declare_target_ast_print.cpp
M clang/test/OpenMP/declare_target_codegen.cpp
M clang/test/OpenMP/declare_target_codegen_globalization.cpp
M clang/test/OpenMP/declare_target_link_codegen.cpp
M clang/test/OpenMP/declare_target_messages.cpp
M clang/test/OpenMP/declare_variant_mixed_codegen.c
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_reduction_task_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/for_firstprivate_codegen.cpp
M clang/test/OpenMP/for_linear_codegen.cpp
M clang/test/OpenMP/for_non_rectangular_codegen.c
M clang/test/OpenMP/for_private_codegen.cpp
M clang/test/OpenMP/for_private_reduction_codegen.cpp
A clang/test/OpenMP/for_range_loop_codegen.cpp
M clang/test/OpenMP/for_reduction_codegen.cpp
M clang/test/OpenMP/for_reduction_codegen_UDR.cpp
M clang/test/OpenMP/force-usm.c
M clang/test/OpenMP/irbuilder_nested_openmp_parallel_empty.c
M clang/test/OpenMP/irbuilder_nested_parallel_for.c
M clang/test/OpenMP/irbuilder_safelen.cpp
M clang/test/OpenMP/irbuilder_safelen_order_concurrent.cpp
M clang/test/OpenMP/irbuilder_simd_aligned.cpp
M clang/test/OpenMP/irbuilder_simdlen.cpp
R llvm/tools/bugpoint-passes/bugpoint.exports
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.6-beta.1
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/b732d7fc4e33...e23a9fa20bfe
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list