[all-commits] [llvm/llvm-project] 9a4c6c: [mlir][spirv][gpu] Add lowering for gpu.subgroup_b...
Simon Tatham via All-commits
all-commits at lists.llvm.org
Tue Mar 31 06:53:03 PDT 2026
Branch: refs/heads/users/statham-arm/arm-fp-dmuldiv
Home: https://github.com/llvm/llvm-project
Commit: 9a4c6c09a7df0c5a77e082fb145a8ef2bce2663a
https://github.com/llvm/llvm-project/commit/9a4c6c09a7df0c5a77e082fb145a8ef2bce2663a
Author: Hank <hankluo6 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
A mlir/test/Conversion/GPUToSPIRV/broadcast.mlir
Log Message:
-----------
[mlir][spirv][gpu] Add lowering for gpu.subgroup_broadcast (#187947)
Add lowering for `gpu.subgroup_broadcast` and
`gpu.subgroup_broadcast_first` to `spirv.GroupNonUniformBroadcast` and
`spirv.GroupNonUniformBroadcastFirst`.
Fixes #157940
Commit: 35781a7d43fbd61cf18fd63923df95cb1d2a861c
https://github.com/llvm/llvm-project/commit/35781a7d43fbd61cf18fd63923df95cb1d2a861c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
A libclc/clc/include/clc/subgroup/clc_sub_group_non_uniform_reduce.h
A libclc/clc/include/clc/subgroup/clc_sub_group_non_uniform_reduce_decl.inc
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/subgroup/clc_sub_group_non_uniform_reduce.cl
M libclc/clc/lib/amdgpu/subgroup/clc_sub_group_reduce.cl
A libclc/clc/lib/amdgpu/subgroup/clc_sub_group_reduce.inc
M libclc/opencl/lib/generic/CMakeLists.txt
A libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl
A libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.inc
Log Message:
-----------
libclc: Partially implement nonuniform subgroup reduce functions (#188929)
For AMDGPU these are identical to the uniform case. Stub out the missing
cases with traps to avoid test failures from undefined symbols while
keeping the structure consistent.
Commit: 88c577456222eac7149e60892bec0e5a84675fff
https://github.com/llvm/llvm-project/commit/88c577456222eac7149e60892bec0e5a84675fff
Author: idubinov <igor.dubinov at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/SPIRV/llvm-intrinsics/bitreverse.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/bitreverse_small_type.ll
Log Message:
-----------
[SPIRV] Add bitreverse expansion for kernel (#186412)
The OpBitReverse is available when Shader or SPV_KHR_bit_instructions
extension is enabled. For targets without these capabilities, introduce
software emulation of G_BITREVERSE based on the parallel bit reversal
algorithm:
https://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel
The emulation supports 8/16/32/64-bit scalars and vectors using bitwise
operations (shifts, AND, OR). A helper lambda avoids undefined behavior
when computing masks for 64-bit types.
Tests added for both emulation and native paths across all supported
types.
Assisted-by: Claude Code
Commit: 8ab7b37e749f4ab7c4536fec82cb813586d9f334
https://github.com/llvm/llvm-project/commit/8ab7b37e749f4ab7c4536fec82cb813586d9f334
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M openmp/cmake/OpenMPTesting.cmake
M openmp/runtime/test/CMakeLists.txt
M openmp/runtime/test/lit.cfg
M openmp/runtime/test/lit.site.cfg.in
M openmp/runtime/test/tasking/omp50_taskdep_depobj.c
Log Message:
-----------
[OpenMP][test] Remove %flags-use-compiler-omp-h (#188789)
With the standalone and project builds removed,
`OPENMP_TEST_COMPILER_HAS_OMP_H`/`config.test_compiler_has_omp_h` is set
to constant 1, which causes the `config.omp_header_directory` search
path NOT to be added to `%flags-use-compiler-omp-h`, causing the system
`omp.h` used, or the only test actually using it
(`omp50_taskdep_depobj.c`) failing if that one is not available.
The intention of `OPENMP_TEST_COMPILER_HAS_OMP_H` was to use gcc's
`omp.h` which declares `omp_depend_t` differently than our `omp.h`
(https://reviews.llvm.org/D108790). Using `OPENMP_TEST_C_COMPILER=gcc`
was used to test libomp's GOMP compatibility layer, but testing it is
currently unmaintained and has no buildbot (60 failing tests out of 389
with gcc-13, not including OMPD and OMPT). If updating testing for GOMP,
then gcc's own `omp.h` must be used for all tests: using the GOMP ABI
requires using GOMP's `omp.h`.
Closes: #187879
Commit: 5145d72a84db3511ef8d3554426cf7be05899b10
https://github.com/llvm/llvm-project/commit/5145d72a84db3511ef8d3554426cf7be05899b10
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/SPIRV/pointers/PtrCast-in-OpSpecConstantOp.ll
M llvm/test/CodeGen/SPIRV/pointers/PtrCast-null-in-OpSpecConstantOp.ll
M llvm/test/CodeGen/SPIRV/pointers/fun-with-aggregate-arg-in-const-init.ll
M llvm/test/CodeGen/SPIRV/pointers/global-ptrtoint.ll
M llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll
M llvm/test/CodeGen/SPIRV/transcoding/ConvertPtrInGlobalInit.ll
M llvm/test/CodeGen/SPIRV/transcoding/block_w_struct_return.ll
M llvm/test/CodeGen/SPIRV/transcoding/global_block.ll
Log Message:
-----------
[SPIR-V] Emit OpSpecConstantComposite for composites with spec constant operands (#188557)
- The SPIR-V spec requires that OpConstantComposite must not reference
spec constant operands. When a composite contains non-constant
constitued, OpSpecConstantComposite should be emitted instead of
OpConstantComposite
- Avoid creating function pointer types when the
SPV_INTEL_function_pointers extension is unavailable, falling back to i8
as the pointee type
- Re-enable spirv-val validation in tests that previously failed due to
this issue, and un-XFAIL the block_w_struct_return and global_block
transcoding tests
related to #60133
fixes #186756
Commit: 07cce307f147a5eb5c6dbb3458e5476b6f237317
https://github.com/llvm/llvm-project/commit/07cce307f147a5eb5c6dbb3458e5476b6f237317
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
Log Message:
-----------
Revert "[llvm] Attempt to re-enable llvm-debuginfod-find test on Windows bots" (#188935)
Reverts llvm/llvm-project#188810
Commit: 015994b7f9bce814c8851b7dd6d1718fc8dbb514
https://github.com/llvm/llvm-project/commit/015994b7f9bce814c8851b7dd6d1718fc8dbb514
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.c
Log Message:
-----------
[ASan][test-only] Remove superfluous guards in stack_container_dynamic_lib.c (#188469)
As noted in https://github.com/llvm/llvm-project/pull/188406 comments,
the documentation recommends guarding only with
__has_feature(address_sanitizer). This patch updates the test to follow
the same pattern by removing the
__SANITIZER_DISABLE_CONTAINER_OVERFLOW__ checks. Having this macro
defined results in the common_interface_defs.h header defining the
contiguous container functions as no-ops anyway.
This is a followup to https://github.com/llvm/llvm-project/pull/188406.
Commit: 6a994417d85116c4ae4f21f15c35f944944443fa
https://github.com/llvm/llvm-project/commit/6a994417d85116c4ae4f21f15c35f944944443fa
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
Log Message:
-----------
[NFCI][sanitizer_common] Realign #ifdefs in sanitizer_internal_defs.h (#186861)
Currently it is very hard to tell these nested ifdefs apart. This patch
fixes that, while trying to be as light-touch as possible.
Commit: b164e7c61020aa40995779574bb7e8064f165a09
https://github.com/llvm/llvm-project/commit/b164e7c61020aa40995779574bb7e8064f165a09
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
A llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-tile-size-0.ll
Log Message:
-----------
[Matrix] Handle -fuse-matrix-tile-size=0 as tiling disabled. (#188861)
Treat -fuse-matrix-tile-size=0 as disabling tiling, as tile-size of 0
doesn't really make sense.
Fixes https://github.com/llvm/llvm-project/issues/185153
PR: https://github.com/llvm/llvm-project/pull/188861
Commit: e0a1e78738b2ac2644db4b0a7d27dffc621aacdb
https://github.com/llvm/llvm-project/commit/e0a1e78738b2ac2644db4b0a7d27dffc621aacdb
Author: Romaric Jodin <rjodin at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libclc/CMakeLists.txt
M libclc/clc/lib/generic/math/clc_sincos_helpers.cl
M libclc/clc/lib/generic/math/clc_sincos_helpers.inc
Log Message:
-----------
libclc: do not use int64 in sincos helpers (#188056)
int64 is optional, thus we do not want to force its usage for clspv.
Commit: 06b057d2546ed64018b44df5ebe0e3ecd1c07b26
https://github.com/llvm/llvm-project/commit/06b057d2546ed64018b44df5ebe0e3ecd1c07b26
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
M mlir/lib/Transforms/Utils/WalkPatternRewriteDriver.cpp
M mlir/test/lib/Dialect/Test/TestPatterns.cpp
Log Message:
-----------
[MLIR] Fix ErasedOpsListener false positives for newly created ops/blocks (#188956)
WalkPatternRewriteDriver's ErasedOpsListener incorrectly flagged
erasures of ops/blocks that were created during the current pattern
application. Since those ops were never in the walk schedule, erasing
them is safe.
Track newly inserted ops and blocks per visited op; skip the erasure
check for them. Also fix two related issues:
- DropUnitDims: use a fresh IRRewriter (not inheriting the walk pattern
rewriter's listener) for replaceUnitDimIndexOps on cloned ops.
- TestPatterns CloneRegionBeforeOp: wrap op->setAttr() in
modifyOpInPlace to properly notify the rewriter of the in-place change.
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: 38c6493c894c74fc64e58a46f0896c25ba6347f3
https://github.com/llvm/llvm-project/commit/38c6493c894c74fc64e58a46f0896c25ba6347f3
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/X86/Transforms/VectorContractToPackedTypeDotProduct.cpp
Log Message:
-----------
[MLIR][X86] Fix direct use.set() bypassing rewriter in rewriteUses (#188945)
rewriteUses was calling use.set(newVal) directly on OpOperand
references, 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 rewriter.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: 1b16876ecd562b7a1f99c20668f1e0327809b8a9
https://github.com/llvm/llvm-project/commit/1b16876ecd562b7a1f99c20668f1e0327809b8a9
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp
Log Message:
-----------
[cross-project-tests] Mark llgdb-tests/sret.cpp as UNSUPPORTED on Linux
See https://github.com/llvm/llvm-project/issues/188957
Fails with following error on the `cross-project-tests-sie-ubuntu-dwarf5` builder:
```
******************** TEST 'cross-project-tests :: debuginfo-tests/llgdb-tests/sret.cpp' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
Running debugger
Running FileCheck
Debugger output was:
Breakpoint 1 at 0x11fb: file /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp, line 64.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, B::AInstance (this=0x7fffffffe6ef) at /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp:64
64 A a(12);
$1 = {_vptr$A = 0x0, m_int = 0, static __clang_vtable = <optimized out>}
A debugging session is active.
Inferior 1 [process 1110596] will be killed.
Quit anyway? (y or n) [answered Y; input not from terminal]
--
Command Output (stderr):
--
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/bin/clang --driver-mode=g++ --target=x86_64-unknown-linux-gnu -O0 -g /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp -c -o /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.o # RUN: at line 4
+ /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/bin/clang --driver-mode=g++ --target=x86_64-unknown-linux-gnu -O0 -g /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp -c -o /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.o
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/bin/clang --driver-mode=g++ --target=x86_64-unknown-linux-gnu /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.o -o /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.out # RUN: at line 5
+ /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/bin/clang --driver-mode=g++ --target=x86_64-unknown-linux-gnu /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.o -o /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.out
PYTHON_EXEC_PATH=/usr/bin/python3.10 LLDB_PYTHON_PATH=/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/./lib/python3.10/site-packages /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/test_debuginfo.pl /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.out # RUN: at line 6
+ PYTHON_EXEC_PATH=/usr/bin/python3.10
+ LLDB_PYTHON_PATH=/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/./lib/python3.10/site-packages
+ /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/test_debuginfo.pl /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.tmp.out
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp:14:11: error: CHECK: expected string not found in input
// CHECK: {{(_vptr\$A =)?.*}}m_int = 12
^
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.gdb.output:7:5: note: scanning from here
$1 = {_vptr$A = 0x0, m_int = 0, static __clang_vtable = <optimized out>}
^
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.gdb.output:7:6: note: possible intended match here
$1 = {_vptr$A = 0x0, m_int = 0, static __clang_vtable = <optimized out>}
^
Input file: /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/build/projects/cross-project-tests/debuginfo-tests/llgdb-tests/Output/sret.cpp.gdb.output
Check file: /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: Breakpoint 1 at 0x11fb: file /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp, line 64.
2: [Thread debugging using libthread_db enabled]
3: Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
4:
5: Breakpoint 1, B::AInstance (this=0x7fffffffe6ef) at /home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp:64
6: 64 A a(12);
7: $1 = {_vptr$A = 0x0, m_int = 0, static __clang_vtable = <optimized out>}
check:12 ^~~~
check:14'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
check:14'1 ? possible intended match
8: A debugging session is active.
check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9:
check:14'0 ~
10: Inferior 1 [process 1110596] will be killed.
check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11:
check:14'0 ~
12: Quit anyway? (y or n) [answered Y; input not from terminal]
check:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
--
```
Commit: f4c0404ffbfc5d04d5bcbda54038c00d6cf74a34
https://github.com/llvm/llvm-project/commit/f4c0404ffbfc5d04d5bcbda54038c00d6cf74a34
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Remove absolute value calculations in the Weak Zero SIV tests (#185580)
In general, the following two points are potentially risky in DA:
- Computing the absolute value of a SCEV expression. Calling
`ScalarEvolution::getAbsExpr` on a signed minimum value will overflow
and return the same value, which is not the expected result in DA.
- Performing arithmetic operations involving a backedge-taken count. The
backedge-taken count is meaningful in an unsigned sense, whereas DA
currently treats all other values and operations in a signed sense.
For these reasons, I think it is better to avoid such operations in DA
whenever possible.
This patch addresses these issues in the Weak Zero SIV tests. I
attempted to craft a test case that exposes a defect caused by these
factors, but I couldn't find one. I'm not entirely sure whether the
current implementation is sound, but anyway, I think avoiding such
operations in DA is a good practice to prevent potential issues in the
future.
Commit: 26f26400d9e6debcc2d4581632903b36b5e5886c
https://github.com/llvm/llvm-project/commit/26f26400d9e6debcc2d4581632903b36b5e5886c
Author: Xinlong Chen <xinlongchen at tencent.com>
Date: 2026-03-27 (Fri, 27 Mar 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] Upstream NEON Maximum builtins (#188503)
Implement CIR codegen for `vmax_*`, `vmaxq_*`, `maxnm_*`, `vmaxnmq_*`
AArch64 NEON builtins.
part of https://github.com/llvm/llvm-project/issues/185382
Commit: b3e26364109cd6654a801e303f0cb78dc304f145
https://github.com/llvm/llvm-project/commit/b3e26364109cd6654a801e303f0cb78dc304f145
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
Log Message:
-----------
[MLIR][SparseTensor] Fix direct op erasure bypassing rewriter in FoldConvertIntoProducer (#188960)
FoldConvertIntoProducer called op->erase() directly instead of going
through the rewriter, which triggers an "unsupported erasure" error
under MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
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: 849ba979bdd5247d2a8428662d9ea05fb68a4d57
https://github.com/llvm/llvm-project/commit/849ba979bdd5247d2a8428662d9ea05fb68a4d57
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-iv-transforms.ll
Log Message:
-----------
[VPlan] Add test showing incorrect flags on truncated inductions (NFC).
Commit: 045f65e9f822db1a2c3559bbeef32184e844c580
https://github.com/llvm/llvm-project/commit/045f65e9f822db1a2c3559bbeef32184e844c580
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/X86/Utils/X86Utils.cpp
Log Message:
-----------
[MLIR][X86] Fix direct setOperand() bypassing rewriter in shuffleBeforeWriteLikeOp (#188946)
shuffleBeforeWriteLikeOp was calling opA->setOperand() and
opB->setOperand() 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 both
modifications with rewriter.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: c7529e4cf5123433c2a79e0e379faa62d95119dd
https://github.com/llvm/llvm-project/commit/c7529e4cf5123433c2a79e0e379faa62d95119dd
Author: Udaya Ranga <udaya.ranga at arm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaShapeOps.td
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/constant_folding.mlir
Log Message:
-----------
[mlir][tosa]: Add SLICE_SHAPE folder (#186997)
Add compile time folder for tosa.SLICE_SHAPE
Signed-off-by: Udaya Ranga <udaya.ranga at arm.com>
Commit: 5ed2f6f46badfd80f464cf98c583c7ee2b4a7820
https://github.com/llvm/llvm-project/commit/5ed2f6f46badfd80f464cf98c583c7ee2b4a7820
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/source/API/SBModuleSpec.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
M lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
M lldb/source/Plugins/SymbolLocator/DebugSymbols/SymbolLocatorDebugSymbols.cpp
M lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
M lldb/source/Symbol/ObjectFile.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Target/TargetList.cpp
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
Log Message:
-----------
[lldb] Make ObjectFile::GetModuleSpecifications *return* module specifications (#188509)
For consistency with #188276 (and better readability?).
Commit: e84f9cacc972fa12734816b8ee1c921a973e93a6
https://github.com/llvm/llvm-project/commit/e84f9cacc972fa12734816b8ee1c921a973e93a6
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
Log Message:
-----------
[MLIR][NVVM] Fix segfault when translating NVVM ops outside a function (#188735)
When a GPU barrier op was placed at the top level of a gpu.module (not
inside a gpu.func), the pass pipeline lowered it to nvvm.barrier0 at
module scope. During LLVM IR translation, translateModuleToLLVMIR called
NVVMDialectLLVMIRTranslationInterface::convertOperation for the
misplaced op, which reached createIntrinsicCall with an IRBuilder that
had no active insertion point (null GetInsertBlock()), causing a null
dereference crash.
The fix adds a guard at the top of the NVVM translation interface's
convertOperation: all NVVM ops are instruction-level and require an
active insertion point. If the insert block is null, the op must be
misplaced, so we return a proper MLIR error instead of crashing.
Fixes #186642
Assisted-by: Claude Code
Commit: 17e1438c6b05bb9a4931f0fa0b9612129f5d8321
https://github.com/llvm/llvm-project/commit/17e1438c6b05bb9a4931f0fa0b9612129f5d8321
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/LowerVectorBroadcast.cpp
Log Message:
-----------
[MLIR][Vector] Move scalable dims check before IR creation in BroadcastOpLowering (#188953)
BroadcastOpLowering::matchAndRewrite created ub::PoisonOp before
checking whether a scalable outer dimension prevents the
stretch-not-at-start case. When that check triggered, the pattern
returned failure() after IR was already modified, violating
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Fix: move the scalable dimension check to before the PoisonOp creation.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 329432b351f3b7b640a676c3ce62ba1b465a8c63
https://github.com/llvm/llvm-project/commit/329432b351f3b7b640a676c3ce62ba1b465a8c63
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/LowerVectorScan.cpp
Log Message:
-----------
[MLIR][Vector] Move scalable dims check before IR creation in ScanToArithOps (#188954)
ScanToArithOps::matchAndRewrite created the result arith.constant before
checking whether the reduction dimension is scalable. When the dimension
was scalable, the pattern returned notifyMatchFailure() after IR was
already modified, violating MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Fix: move the reductionScalableDims check to before the
arith::ConstantOp creation.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: c0e8eb972b3934f2dfa7b6a413a2bf6ef09da0dc
https://github.com/llvm/llvm-project/commit/c0e8eb972b3934f2dfa7b6a413a2bf6ef09da0dc
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
Log Message:
-----------
[MLIR][Vector] Fix RewriteAlignedSubByteIntExt/Trunc producing invalid IR when source is already i8 (#188941)
When the conversion destination type is i8 (e.g., extsi i4->i8),
RewriteAlignedSubByteIntExt was unconditionally creating a new
ConversionOp with identical source and result types (vector<8xi8> ->
vector<8xi8>), which is invalid IR. Similarly,
RewriteAlignedSubByteIntTrunc was creating arith.trunci from
vector<Nxi8> to vector<Nxi8> when the source was already i8.
Fix by:
- In RewriteAlignedSubByteIntExt: replace the op directly with
subByteExt when it already has the destination type, instead of wrapping
in a new conversion op.
- In RewriteAlignedSubByteIntTrunc: skip the intermediate truncation to
i8 when the source is already i8, passing srcValue directly to the
i8->i4 rewrite logic.
This matches the existing test expectations in
vector-rewrite-subbyte-ext-and-trunci.mlir.
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 94a1aa51779fb35c732663973500d10445b0621d
https://github.com/llvm/llvm-project/commit/94a1aa51779fb35c732663973500d10445b0621d
Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[LLVM:BUILD]: Add libs needed for windows builds (#188975)
[LLVM:BUILD]: Add libs needed for windows builds
Commit: 9d5684bb0092784703563025b67cc3e273797225
https://github.com/llvm/llvm-project/commit/9d5684bb0092784703563025b67cc3e273797225
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
Log Message:
-----------
[LV] Regen iv_outside_user test with UTC (NFC) (#188934)
To merge different CHECK prefixes to a common one.
Commit: fc2dac83ed0cac4dccbf1ef72445e7ebe84553b1
https://github.com/llvm/llvm-project/commit/fc2dac83ed0cac4dccbf1ef72445e7ebe84553b1
Author: Matt Arsenault <Matthew.Arsenault 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
A llvm/test/CodeGen/AMDGPU/frame-index-disjoint-s-or-b32.ll
Log Message:
-----------
AMDGPU: Fold frame indexes into disjoint s_or_b32 (#102345)
Some pointer adds get turned into ors, and sometimes and is
performed on pointers for masking.
Commit: 28135251aee08e5f0f56b83b248cb30ef7d752a7
https://github.com/llvm/llvm-project/commit/28135251aee08e5f0f56b83b248cb30ef7d752a7
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Support/HTTP/HTTPClient.cpp
Log Message:
-----------
[llvm][SupportHTTP] Guard SSL settings by Secure flag to avoid failing on plain HTTP (#188970)
This patch only adds the condition, so the flags are applied only for
HTTPS URLs. No change in implementation.
Commit: 99aa33d5b3670a324465541aeaffedff199468d8
https://github.com/llvm/llvm-project/commit/99aa33d5b3670a324465541aeaffedff199468d8
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/blend-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll
M llvm/test/Transforms/LoopVectorize/AArch64/optsize_minsize.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-fold-tail.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-multi-block.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-remove-loop-region.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-predicate-switch.ll
M llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
M llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/X86/pr109581-unused-blend.ll
M llvm/test/Transforms/LoopVectorize/X86/pr55096-scalarize-add.ll
M llvm/test/Transforms/LoopVectorize/X86/small-size.ll
M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-store-accesses-with-gaps.ll
M llvm/test/Transforms/LoopVectorize/as_cast.ll
M llvm/test/Transforms/LoopVectorize/cast-induction.ll
M llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
M llvm/test/Transforms/LoopVectorize/constant-fold-commutative-and.ll
M llvm/test/Transforms/LoopVectorize/constantfolder.ll
M llvm/test/Transforms/LoopVectorize/cse-casts.ll
M llvm/test/Transforms/LoopVectorize/debugloc.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-load.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/float-induction.ll
M llvm/test/Transforms/LoopVectorize/hoist-and-sink-mem-ops-with-invariant-pointers.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
M llvm/test/Transforms/LoopVectorize/loop-form.ll
M llvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll
M llvm/test/Transforms/LoopVectorize/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/pr37248.ll
M llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll
M llvm/test/Transforms/LoopVectorize/predicate-switch.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-multiuse.ll
M llvm/test/Transforms/LoopVectorize/struct-return-replicate.ll
M llvm/test/Transforms/LoopVectorize/struct-return.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-alloca-in-loop.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-div.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-masked-mem-opts.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-optimize-vector-induction-width.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-switch.ll
M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
M llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination.ll
Log Message:
-----------
Reapply "[VPlan] Explicitly unroll replicate-regions without live-outs by VF." (#188947)
This reverts commit 4562a953db9d9813a873b78144cee1df39c7e0c0.
The recommit adjusts processLaneForReplicateRegion to first remap all
operands, then update the new operands. This fixes a VPlan verification
failure when running LV tests with expensive checks.
Original message:
This patch adds a new replicateReplicateRegionsByVF transform to unroll
replicate=regions by VF, dissolving them. The transform creates VF
copies of the replicate-region's content, connects them and converts
recipes to single-scalar variants for the corresponding lanes.
The initial version skips regions with live-outs (VPPredInstPHIRecipe),
which will be added in follow-up patches.
Depends on https://github.com/llvm/llvm-project/pull/170053
PR: https://github.com/llvm/llvm-project/pull/170212
Commit: 5a403150b468a5de7ddf9f1e295643c9c518aee8
https://github.com/llvm/llvm-project/commit/5a403150b468a5de7ddf9f1e295643c9c518aee8
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
A llvm/utils/gn/secondary/clang-tools-extra/clangd/remap/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
Log Message:
-----------
[gn] port c1ea10a854dcbb (clangd-remap)
Commit: f59191aa24b2ce6e4b1b6978e2da8225c0a004d0
https://github.com/llvm/llvm-project/commit/f59191aa24b2ce6e4b1b6978e2da8225c0a004d0
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Log Message:
-----------
[gn build] Port dc1411163170
Commit: 0067d92d53ff97e022367cb92e20a0ac18b8105c
https://github.com/llvm/llvm-project/commit/0067d92d53ff97e022367cb92e20a0ac18b8105c
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port f8416c864353
Commit: 90c1c588f8547d0fdd5128e467a0890b295d9755
https://github.com/llvm/llvm-project/commit/90c1c588f8547d0fdd5128e467a0890b295d9755
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-iv-transforms.ll
Log Message:
-----------
[VPlan] Don't set WrapFlags for truncated IVs. (#188966)
The wrap flags from the IV bin-op are not guaranteed to apply to
truncated inductions, which are evaluated in narrower types.
Instead of dropping them late (in expandVPWidenIntOrFpInduction), do not
add them at the outset, the prevent invalid transforms based on
incorrect flags in the future.
PR: https://github.com/llvm/llvm-project/pull/188966
Commit: 3b58a740d37bb623670fa1fa356e14895803e0c9
https://github.com/llvm/llvm-project/commit/3b58a740d37bb623670fa1fa356e14895803e0c9
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Move flags to separate variable (NFC).
Addresses post-commit feedback missed in
https://github.com/llvm/llvm-project/pull/188966.
Commit: 965f9d87adb0a7376454374fbc140ab69bd796a9
https://github.com/llvm/llvm-project/commit/965f9d87adb0a7376454374fbc140ab69bd796a9
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
Log Message:
-----------
[LoopUnroll] Use MapVector for deterministic iteration order. (#188821)
NonLoopBlocksIDom determines the order we adjust the DT, impacting DRT
child ordering.
Similarly, ExitInfos order impacts the order of SetDest, which applies
DT updates.
The order impacts collectChildrenInLoop, which in turn impacts the we
process BBs in LICM. And this in turn impacts the order in which we
perform alias queries.
If the order is not deterministic, we sometimes get different NumNoAlias
statistic counts for the same input, and possibly also different IR,
although I have not confirmed the latter.
Compile-time impact is neutral:
https://llvm-compile-time-tracker.com/compare.php?from=77710f14202a8684e12d68d08d2cd3738bbd0e1d&to=066ac6284041aac454c8ffa2894b866acbf96fd3&stat=instructions:u
On interesting change to highlight for stage1-O3, although this is
probably just noise : ClamAV 55233M 55190M (-0.08%)
PR: https://github.com/llvm/llvm-project/pull/188821
Commit: 32c429b2871cb59eb6400483dbed90a61996a825
https://github.com/llvm/llvm-project/commit/32c429b2871cb59eb6400483dbed90a61996a825
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp
Log Message:
-----------
[MLIR][Linalg] Remove unused function permuteValues (NFC) (#188990)
Commit: 94c0d37c59541278145db54adb1bf17da94fd958
https://github.com/llvm/llvm-project/commit/94c0d37c59541278145db54adb1bf17da94fd958
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/include/clang/CrossTU/CrossTranslationUnit.h
M clang/lib/CrossTU/CrossTranslationUnit.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
M clang/test/Analysis/ctu/diag/invalid-index.cpp
M clang/test/Analysis/ctu/diag/missing-index.cpp
M clang/test/Analysis/ctu/different-triples.cpp
Log Message:
-----------
[clang][analyzer] Add location to CTU failure diagnostics
Report CTU import failures at the place where the imported symbol would
be used. This helps to quicker understand why CSA might miss a certain
expected CTU bug.
--
CPP-7804
Commit: 840e9a4ddda3ebd383cc05714ebf27042905bb99
https://github.com/llvm/llvm-project/commit/840e9a4ddda3ebd383cc05714ebf27042905bb99
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M flang/test/Integration/unroll-loops.f90
M flang/test/Lower/HLFIR/unroll-loops.fir
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-interleaved.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/X86/fixed-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/find-last-iv-interleave.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/induction.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll
Log Message:
-----------
[VPlan] Fix wrap-flags on WidenInduction unroll (#187710)
Due to a somewhat recent change, IntOrFpInduction recipes have
associated VPIRFlags. The VPlanUnroll logic for WidenInduction recipes
predates this change, and computes incomplete wrap-flags: update it to
simply use the flags on IntOrFpInduction recipes; PointerInduction
recipes have no associated flags, and indeed, no flags should be used.
Commit: 83173f7dbab3214355ee27f5525510078e616356
https://github.com/llvm/llvm-project/commit/83173f7dbab3214355ee27f5525510078e616356
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in TestTilingInterfaceTransformOps.cpp (NFC)
Commit: abc0674f839ab4b932f5cc6e15da04566897b600
https://github.com/llvm/llvm-project/commit/abc0674f839ab4b932f5cc6e15da04566897b600
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M bolt/lib/Passes/LongJmp.cpp
M bolt/test/AArch64/compare-and-branch-reorder-blocks.S
Log Message:
-----------
[BOLT][AArch64] Handle irreversible branches in compact-code-model (#186850)
When the compact-code-model is used, LongJmpPass::relaxLocalBranches
attempts to reverseBranchCondition without calling isReversibleBranch
resulting in runtime error. With this patch I am adding an additional
trampoline to handle irreversible FEAT_CMPBR branches.
In the future the plan is to use liveness analysis and replace the
irreversible branch with compare followed by branch (see #185731) as
long as the condition flags are dead, or emit the additional trampoline
otherwise.
Commit: a11701afbd9a7f8a89387ef986bacfcfefaf6929
https://github.com/llvm/llvm-project/commit/a11701afbd9a7f8a89387ef986bacfcfefaf6929
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/PatternMatch.h
M llvm/unittests/IR/PatternMatch.cpp
Log Message:
-----------
PatternMatch: Add matchers for positive or negative infinity (#188933)
The existing m_Inf deceptively matches both positive and negative
infinities. Add variants that match the specific sign.
Commit: 52a880d30ba6cba38579ad7f51289d9ebe0c3719
https://github.com/llvm/llvm-project/commit/52a880d30ba6cba38579ad7f51289d9ebe0c3719
Author: Fateme Hosseini <Fhossein at qti.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
A llvm/test/CodeGen/Hexagon/qf-helpers-out-of-range.ll
Log Message:
-----------
[Hexagon] Make usesQF helpers robust (#188338)
Relax usesQF*Operand to return false for indices greater than the first
three inputs instead of asserting.
Commit: 9c0bce7ede827a8d28b9626930d2eb66015bfeb0
https://github.com/llvm/llvm-project/commit/9c0bce7ede827a8d28b9626930d2eb66015bfeb0
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Transform/Transforms/CheckUses.cpp
M mlir/test/Dialect/Transform/check-use-after-free.mlir
Log Message:
-----------
[MLIR][Transform] Fix crash in CheckUses when op lacks MemoryEffectOpInterface (#188998)
collectFreedValues used cast<MemoryEffectOpInterface> unconditionally on
every op encountered during the walk. Ops that do not implement the
interface (e.g. pdl.pattern, pdl.operands, pdl.types inside a
transform.with_pdl_patterns region) trigger the cast assertion, crashing
mlir-opt when -transform-dialect-check-uses is requested.
Change the cast to dyn_cast and skip ops that don't implement the
interface; they cannot free transform values and are safely ignored.
Fixes #120944
Assisted-by: Claude Code
Commit: 79ffad69f45821afddb0a5acc9a55dbf5f3d3e90
https://github.com/llvm/llvm-project/commit/79ffad69f45821afddb0a5acc9a55dbf5f3d3e90
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/include/clang/Sema/TypoCorrection.h
M clang/lib/Sema/SemaCXXScopeSpec.cpp
M clang/lib/Sema/SemaTemplate.cpp
A clang/test/SemaTemplate/gh183983.cpp
Log Message:
-----------
[clang][Sema] Fix assertion on invalid template template parameter during typo correction (#188239)
In the crash example, when performing typo correction for a qualified
name lookup (`::a`), clang suggests a template template parameter from
an outer scope.
However, template template parameters can not be qualified by any scope.
Attempting to combine the qualifier with the suggested template template
parameter resulted in an assertion failure in
`ASTContext::getQualifiedTemplateName`:
This patch is to update the typo correction filter to reject
`TemplateTemplateParmDecl` candidates when a qualifier is present . This
prevents the invalid suggestion from being generated and avoids the
assertion violation.
Fixes #183983
Commit: dba3de54a29b42651e4b81db510175fd3bb9da43
https://github.com/llvm/llvm-project/commit/dba3de54a29b42651e4b81db510175fd3bb9da43
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/test/CodeGen/AMDGPU/fract-match.ll
Log Message:
-----------
AMDGPU: Allow poison vector elts in fract pattern (#188991)
Commit: 18ad761df0f7bfff2ab64a16ab6374a9cd644f32
https://github.com/llvm/llvm-project/commit/18ad761df0f7bfff2ab64a16ab6374a9cd644f32
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/utils/generate-test-checks.py
Log Message:
-----------
[mlir] Fix generate-test-checks.py: don't put attr refs in CHECK-LABEL (#188985)
Two related bugs in generate-test-checks.py when a top-level operation
carries attribute alias references (e.g. `#map`, `#map1`) in its
signature:
1. The attribute reference substitution (replacing `#map` with
`#[[$ATTR_0]]`) ran *before* the pending attribute definitions were
processed, so the names were not yet available and the references were
left as-is in the output.
2. CHECK-LABEL lines do not support FileCheck variable references (e.g.
`#[[$ATTR_0]]`), so even after substitution the generated check would be
syntactically wrong.
Fix both issues:
- In the CHECK-LABEL branch, re-apply `process_attribute_references` to
the label prefix and SSA-split rest after flushing pending attribute
definitions, so that names are resolved.
- Split the label prefix at attribute reference boundaries; keep only
the text before the first reference in the CHECK-LABEL line and emit the
remainder on a CHECK-SAME line.
Before:
// CHECK-LABEL: func.func @test() attributes {amap = #map, bmap = #map1}
{
After:
// CHECK-LABEL: func.func @test() attributes {amap =
// CHECK-SAME: #[[$ATTR_0]], bmap = #[[$ATTR_1]]} {
Fixes #162310
Assisted-by: Claude Code
Commit: 33035782349d250d054eaee8172ad629b5bc1d66
https://github.com/llvm/llvm-project/commit/33035782349d250d054eaee8172ad629b5bc1d66
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
M mlir/test/Dialect/GPU/outlining.mlir
Log Message:
-----------
[MLIR][GPU] Reject nested symbol references in gpu-kernel-outlining (#188994)
Nested symbol references (e.g. `@module::@func`) inside a `gpu.launch`
body cannot be resolved after the body is outlined into a new
`gpu.module`. Previously, `createKernelModule` used `getLeafReference()`
to look up each symbol use, which silently skipped nested references
when the leaf name could not be found in the parent symbol table. This
left unresolvable cross-module references in the outlined kernel.
This patch detects nested symbol references whose root exists in the
parent symbol table — meaning the reference was valid before outlining
but will become dangling after it — and emits a diagnostic error.
Phantom references whose root does not exist in the parent are left
as-is, preserving existing behavior for unregistered-op attributes
(regression test from #185357).
The existing `@nested_launch` test was inadvertently testing this broken
behavior (silently producing invalid IR with a dangling
`@nested_launch_kernel::@nested_launch_kernel` reference inside the
outlined outer kernel module); it is updated to expect the new error.
Fixes #187942
Assisted-by: Claude Code
Commit: 71ea39a157a2efee413333f0433f3e07c791eedc
https://github.com/llvm/llvm-project/commit/71ea39a157a2efee413333f0433f3e07c791eedc
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-03-27 (Fri, 27 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 Gather/Scatter/Resize ops in TOSA Ext Inst Set (#188497)
This patch introduces the following operators:
spirv.Tosa.Gather
spirv.Tosa.Scatter
spirv.Tosa.Resize
Also dialect and serialization round-trip tests have been added.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 4a62d48549d2498b2e88b9bde12a4b7d5b67e4f8
https://github.com/llvm/llvm-project/commit/4a62d48549d2498b2e88b9bde12a4b7d5b67e4f8
Author: suoyuan <suoyuan666 at s5n.xyz>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
Log Message:
-----------
[InstCombine] Fold zext-add/sub-min/max-trunc to uadd.sat or usub.sat (#185259)
Fixes #185244
```
trunc(umin(zext(a) + zext(b), MAX)) -> uadd.sat(a, b)
trunc(smin(zext(a) + zext(b), MAX)) -> uadd.sat(a, b)
trunc(smax(zext(a) - zext(b), 0)) --> usub.sat(a, b)
```
Proof: https://alive2.llvm.org/ce/z/K6wszu
Commit: a691a452b54ef24876f48ec0d854e6d6a59e97a7
https://github.com/llvm/llvm-project/commit/a691a452b54ef24876f48ec0d854e6d6a59e97a7
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libcxx/utils/ci/docker/docker-compose.yml
Log Message:
-----------
[libc++] Bump base image version in Docker compose (#188848)
This adds python-venv to the Docker image.
Commit: 53a8673f3d032d973d66435db0f4b9946001bbab
https://github.com/llvm/llvm-project/commit/53a8673f3d032d973d66435db0f4b9946001bbab
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/docs/resources/build.rst
Log Message:
-----------
[lldb][docs] Mention "Python Install Manager" in Windows build instructions (#188728)
It was reported to us that this new install manager does not, and
apparently will not, have an option to install a debug Python. Which we
must have to be able to build lldb in debug mode on Windows.
(because the debug C runtime has a different ABI so everything in the
build must use only that version)
https://discourse.llvm.org/t/pythonx-d-lib-build-requirement/90285/1
Developers will have to use the "Windows installer", or build thier own,
so I've linked to Python's documentation for that.
Commit: 7119610bc43fe4121c4f6341c5bcc9e9eef7deb6
https://github.com/llvm/llvm-project/commit/7119610bc43fe4121c4f6341c5bcc9e9eef7deb6
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/source/Plugins/Platform/WebAssembly/CMakeLists.txt
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
A lldb/source/Plugins/Platform/WebAssembly/PlatformWebInspectorWasm.cpp
A lldb/source/Plugins/Platform/WebAssembly/PlatformWebInspectorWasm.h
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb] Add PlatformWebInspectorWasm (#188751)
Add a new PlatformWebInspectorWasm, which is a Wasm platform that
automatically connects to the WebInspector platform server.
The existing "wasm" platform handles WebAssembly generally and allows
you to configure a runtime to launch under. The "webinspector-wasm"
platform does the inverse, and only supports attaching to an already
running WebAssembly instance in Safari. The workflow here is always
`platform process list` followed by `platform process attach`. This
explains why you can only force create this platform and it's never
automatically selected when loading a Wasm target.
Commit: 3bff1a81c1b44e097b61dbf57090f61267baafe8
https://github.com/llvm/llvm-project/commit/3bff1a81c1b44e097b61dbf57090f61267baafe8
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M compiler-rt/lib/xray/xray_init.cpp
Log Message:
-----------
[XRay] Always register constructor(0) alongside .preinit_array (#188788)
On musl-based systems the dynamic linker does not process
DT_PREINIT_ARRAY, so the .preinit_array entry alone never calls
__xray_init(). Without initialization, the global XRay Flags struct is
zero-initialized and flags()->xray_mode is NULL. When the basic-mode or
FDR-mode static initializers run from .init_array and call
internal_strcmp(flags()->xray_mode, ...), they dereference NULL and
crash.
Fix this by always registering a constructor(0) in addition to the
.preinit_array entry. On glibc where .preinit_array works, __xray_init()
will have already run and the constructor returns immediately (the
function is idempotent). On musl, the constructor ensures __xray_init()
runs before other .init_array entries that depend on XRay flags being
initialized.
Commit: 1aba434dab1a628af4d2f370df3b468b79d31766
https://github.com/llvm/llvm-project/commit/1aba434dab1a628af4d2f370df3b468b79d31766
Author: Oliver Hunt <oliver at apple.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libunwind/src/libunwind.cpp
M libunwind/test/libunwind_01.pass.cpp
A libunwind/test/set_non_null_pc_outside_of_function_cfi_bounds.pass.cpp
Log Message:
-----------
[libunwind][PAC] Defang ptrauth's PC in valid CFI range abort (#184041)
It turns out making the CFI check a release mode abort causes many, if
not the majority, of JITs to fail during unwinding as they do not set up
CFI sections for their generated code. As a result any JITs that do
nominally support unwinding (and catching) through their JIT or assembly
frames trip this abort.
rdar://170862047
Commit: 5f09e24acbe634b724c93c3a8ccd1957b8f585c8
https://github.com/llvm/llvm-project/commit/5f09e24acbe634b724c93c3a8ccd1957b8f585c8
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Disasm.cpp
Log Message:
-----------
[clang][bytecode] Make memory output of Program::dump more accurate (#188925)
Commit: 2e10b62995915d35ba528872e70aacda7223bd18
https://github.com/llvm/llvm-project/commit/2e10b62995915d35ba528872e70aacda7223bd18
Author: pkarveti <pkarveti at qti.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
M llvm/test/CodeGen/Hexagon/aligna-prologue-expansion.mir
Log Message:
-----------
[Hexagon] Add AP register to liveins when used for frame index access (#188942)
This is a follow-up to commit 3ef59d80c5ce ("[Hexagon] Fix
use-before-def of AP register in prologue CSR spills").
When the AP (alignment pointer) register is used as a base register for
frame index elimination, add it to the basic block's livein set. This
ensures liveness information is accurate for the machine verifier.
The original commit fixed the use-before-def issue by moving PS_aligna
after CSR spills. However, when the prologepilog pass is run in
isolation (as in MIR tests) with expensive checks enabled, the verifier
reports an error because AP is used in blocks where it's not marked as
live-in.
In the full compilation pipeline, the Hexagon Packetizer adds AP as an
implicit operand to instruction bundles, which satisfies the verifier.
However, when running only the prologepilog pass (before packetization),
AP remains an explicit operand and must be in the livein set.
This fix adds AP to liveins when AP is used as the base register,
ensuring correct liveness tracking regardless of whether packetization
has run.
Commit: a5964ca759eb87eca533532ac4e23a821b3f276b
https://github.com/llvm/llvm-project/commit/a5964ca759eb87eca533532ac4e23a821b3f276b
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
A llvm/test/CodeGen/Hexagon/cfgopt-newpt-invert.ll
A llvm/test/CodeGen/Hexagon/peephole-sxtw-combine.mir
A llvm/test/CodeGen/Hexagon/tfr-cleanup-double-imm.mir
A llvm/test/CodeGen/Hexagon/vec-print-wq.ll
Log Message:
-----------
[Hexagon] Add coverage tests for CodeGen passes (#183951)
Add tests targeting specific Hexagon CodeGen passes with low coverage:
- peephole-sxtw-combine.mir: HexagonPeephole pass exercising SXTW
removal, combine generation, and LSR copy patterns. Improves
HexagonPeephole.cpp line coverage from 63.89% to 99.31%.
- vec-print-wq.ll: HexagonVectorPrint pass with V (single vector) and W
(double vector) register printing via 128b HVX. Improves
HexagonVectorPrint.cpp line coverage from 71.19% to 87.29%.
- tfr-cleanup-double-imm.mir: HexagonTfrCleanup pass exercising 64-bit
immediate rewrite paths. Improves HexagonTfrCleanup.cpp line coverage
from 80.85% to 88.30%.
- cfgopt-newpt-invert.ll: HexagonCFGOptimizer pass exercising branch
inversion with new-value predicate transfers.
Commit: 8ea3645f859661abf74068668f8b0f9d934b8437
https://github.com/llvm/llvm-project/commit/8ea3645f859661abf74068668f8b0f9d934b8437
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Analysis/CFG.cpp
Log Message:
-----------
[CFG] Add shortcut if CycleInfo is available (#188928)
isPotentiallyReachable() currently returns "reachable" early if BB
dominates StopBB. If CycleInfo is available, and BB is not part of a
cycle, we can also perform the reverse inference: Return "not reachable"
if StopBB dominates BB.
This both allows aborting the walk earlier, and provides a more precise
result.
Commit: b7b93687385169a3d752a52c45f5b0d708f21f37
https://github.com/llvm/llvm-project/commit/b7b93687385169a3d752a52c45f5b0d708f21f37
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
A llvm/test/CodeGen/SPIRV/opencl-cxx-version-2021.ll
A llvm/test/CodeGen/SPIRV/opencl-cxx-version-incompatible.ll
A llvm/test/CodeGen/SPIRV/opencl-cxx-version.ll
Log Message:
-----------
[SPIR-V] Support for C++ for OpenCL source language (#188791)
- Add CPP_for_OpenCL source language operand
- Handle opencl.cxx.version metadata
Align handling with SPIR-V translator logic and tests presented there
Commit: c3bffc8e82f9b69a3cfe19a1701fb460125f17a0
https://github.com/llvm/llvm-project/commit/c3bffc8e82f9b69a3cfe19a1701fb460125f17a0
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
M mlir/lib/Transforms/Utils/WalkPatternRewriteDriver.cpp
M mlir/test/lib/Dialect/Test/TestPatterns.cpp
Log Message:
-----------
Revert "[MLIR] Fix ErasedOpsListener false positives for newly created ops/blocks" (#189010)
Reverts llvm/llvm-project#188956
Hit "merge" by accident on the wrong tab, juggling too may PRs in
parallel...
Commit: e06b5e53a29b394eee91b0dd1e227bc707d547e9
https://github.com/llvm/llvm-project/commit/e06b5e53a29b394eee91b0dd1e227bc707d547e9
Author: Anonmiraj <ezzibrahimx at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
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/include/math.yaml
M libc/shared/math.h
A libc/shared/math/erfcf16.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/erfcf16.h
M libc/src/math/CMakeLists.txt
A libc/src/math/erfcf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/erfcf16.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/erfcf16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/erfcf16_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
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math] Implement C23 half precision erfc function (#180930)
Add support for the half-precision complementary error function
`erfcf16``, using a Sollya generated polynomial implementation with
proper handling of special cases.
Extend the MPFR utilities with erfc support to allow tests.
closes: #180927
Commit: 79658d77690345334e35e108d650abd03d8521bf
https://github.com/llvm/llvm-project/commit/79658d77690345334e35e108d650abd03d8521bf
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SCF/Transforms/LoopRangeFolding.cpp
M mlir/test/Dialect/SCF/loop-range.mlir
Log Message:
-----------
[MLIR][SCF] Fix ForLoopRangeFolding miscompile with non-positive MulIOp multiplier (#188995)
The scf-for-loop-range-folding pass transforms loops of the form
for (i = lb; i < ub; i += step) { use(i * c) }
into
for (j = lb*c; j < ub*c; j += step*c) { use(j) }
This transformation is only valid when c is strictly positive, since
scf.for requires a positive step. When c is zero or negative, the new
step becomes zero or effectively negative (wrapping in unsigned
arithmetic for index type), producing an incorrect loop.
Add a guard that restricts the MulIOp folding to cases where the
loop-invariant multiplier is a statically known positive integer
constant. Non-constant loop-invariant multipliers are also excluded
since their sign cannot be determined at compile time.
Fixes #56235
Fixes #116664
Assisted-by: Claude Code
Commit: b959831ed2e4ef9f819b6504085f70d1d14dbac0
https://github.com/llvm/llvm-project/commit/b959831ed2e4ef9f819b6504085f70d1d14dbac0
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
M mlir/test/Dialect/Arith/int-range-opts.mlir
Log Message:
-----------
[MLIR][Arith] Fix int-range-optimizations miscompile from stale solver state (#188992)
The `--int-range-optimizations` pass runs the `DataFlowSolver` once,
then calls `applyPatternsGreedily` with a `DataFlowListener` that erases
solver state when ops are deleted. However, the greedy driver's
`simplifyRegions` step (which calls `runRegionDCE` between pattern
iterations) can remove block arguments without notifying the listener.
This frees the `BlockArgumentImpl` storage, which may be reused by a
subsequent allocation. The solver then finds stale lattice state keyed
at the reused address and incorrectly treats the new block argument as a
known constant, causing a miscompile.
The existing `enableFolding(false)` was added for the same class of bug
(folding can also remove block arguments). This patch extends the fix by
also disabling region simplification, preventing dead-arg elimination
from causing the same address-reuse problem.
Fixes #137281
Fixes #126195
Assisted-by: Claude Code
Commit: 45d7ef423d6f6050de6c9ec51ed8a4f5c8de377a
https://github.com/llvm/llvm-project/commit/45d7ef423d6f6050de6c9ec51ed8a4f5c8de377a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M offload/cmake/OpenMPTesting.cmake
Log Message:
-----------
[Offload][NFC] Remove unused testing functions in CMake (#189013)
Summary:
These are called by no one.
Commit: 760c4292c041aa857a462413f07623f69276f99b
https://github.com/llvm/llvm-project/commit/760c4292c041aa857a462413f07623f69276f99b
Author: Ravil Dorozhinskii <ravil.aviva.com at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUAttrs.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUEnums.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
A mlir/test/Conversion/AMDGPUToROCDL/global-prefetch.mlir
M mlir/test/Dialect/AMDGPU/invalid.mlir
Log Message:
-----------
[MLIR][AMDGPU] Added l2-prefetch op to AMDGPU (#188457)
This PR adds `global_prefetch` op to prefetch a cache line to high-level
caches using the aligned address of the source `memref` and an offset
provided by the indices of the element containing the cache line. This
provides temporal hints (e.g., regular or high-priority). Note that
out-of-bounds access is allowed in speculative mode. Ensure the source
`memref` is in address space `1`.
---------
Co-authored-by: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Commit: db5cd626b97a887cd237f9be9372cd3750fc7a02
https://github.com/llvm/llvm-project/commit/db5cd626b97a887cd237f9be9372cd3750fc7a02
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp
M flang/test/Transforms/OpenMP/lower-workshare-thread-local.mlir
Log Message:
-----------
[flang][OpenMP] Restrict isSafeToParallelize to write-only thread-local effects (#188595)
This is a follow-up fix for commit 0f5e9bee.
Only write effects to thread-local memory should be considered safe to
parallelize in workshare lowering, not reads. When both reads and writes
were safe, the cascading effect in moveToSingle could cause entire
SingleRegions to become fully parallelized, eliminating the omp.single
and its implicit barrier. This removed synchronization points needed to
keep threads coordinated inside sequential loops containing workshared
operations, causing race conditions in forall-workshare patterns.
This was exposed by the Fujitsu Test Suite and made the following tests
regress:
FAIL: test-suite :: Fujitsu/Fortran/0398/Fujitsu-Fortran-0398_0031.test
FAIL: test-suite :: Fujitsu/Fortran/0398/Fujitsu-Fortran-0398_0013.test
FAIL: test-suite :: Fujitsu/Fortran/0398/Fujitsu-Fortran-0398_0030.test
FAIL: test-suite :: Fujitsu/Fortran/0398/Fujitsu-Fortran-0398_0014.test
Updates #143330
Commit: b2f59924124c636f948a2a0943bb733678d18647
https://github.com/llvm/llvm-project/commit/b2f59924124c636f948a2a0943bb733678d18647
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/docs/build_and_test.rst
M libc/docs/full_cross_build.rst
Log Message:
-----------
[libc][docs][NFC] Document cross-compilation testing with QEMU (#188838)
Added a "Building and Testing with an Emulator" section to
full_cross_build.rst using riscv64 and qemu-riscv64 as the example.
Outlined necessary CMake flags for cross-compiling with Clang, including
CMAKE_C_COMPILER_TARGET, CMAKE_CXX_COMPILER_TARGET, and
LLVM_ENABLE_LLD=ON. Switched from CMAKE_SYSROOT to LIBC_KERNEL_HEADERS
and added the gcc-riscv64-linux-gnu package dependency to ensure sysroot
issues on Debian-based systems are avoided while retaining access to
cross-compiler runtime objects.
Explained the self-hosted libc-hermetic-tests target as the required
target for executing tests during a standalone cross build, since the
standard check-libc tests are not hermetic.
Refactored existing CMake examples in full_cross_build.rst to use -S and
-B flags instead of cd and mkdir.
Removed prompt characters from code blocks and separated host
environment setup into explicit code blocks for easier copy-pasting.
Also removed the initial 'cd llvm-project' directory changes to reduce
boilerplate.
Added a cross-reference to the new emulator section in
build_and_test.rst.
Commit: e56161ef9841d61ea06e6b0a79e195e9a84addb1
https://github.com/llvm/llvm-project/commit/e56161ef9841d61ea06e6b0a79e195e9a84addb1
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libcxx/utils/ci/lnt/runners/README.md
M libcxx/utils/ci/lnt/runners/apple-m5-clang21
M libcxx/utils/ci/lnt/runners/apple-m5-xcode26
Log Message:
-----------
[libc++] Allow passing individual commits to LNT runners (#189020)
This is useful for generating specific data points.
Commit: 55322f2d43d07e5871af7eee5082e42d0526828d
https://github.com/llvm/llvm-project/commit/55322f2d43d07e5871af7eee5082e42d0526828d
Author: Marina Taylor <marina_taylor at apple.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/CodeGen/AArch64/arc-contract-claim-rv.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/LoongArch/opt-pipeline.ll
M llvm/test/CodeGen/M68k/pipeline.ll
M llvm/test/CodeGen/PowerPC/O3-pipeline.ll
M llvm/test/CodeGen/RISCV/O3-pipeline.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
M llvm/test/CodeGen/WebAssembly/GlobalISel/gisel-commandline-option.ll
M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
M llvm/test/CodeGen/X86/opt-pipeline.ll
Log Message:
-----------
[ObjCARC] Run ObjCARCContract before PreISelIntrinsicLowering (#184149)
74e4694 moved ObjCARCContract from running before the codegen pipeline
into addISelPrepare(), which runs after PreISelIntrinsicLowering.
This broke ObjCARCContract's retainRV-to-claimRV optimization because
ObjCARCContract identifies ARC calls via intrinsics, not their lowered
counterparts.
This patch restores the pre-74e4694 ordering by moving ObjCARCContract
to addISelPasses.
The IntrinsicInst.cpp change looks extraneous but is required here:
ObjCARCContract may now rewrite the bundle operand from retainRV to
claimRV. When PreISelIntrinsicLowering then encounters this new
intrinsic use, lowerObjCCall asserts mayLowerToFunctionCall.
Assisted-by: claude
rdar://137997453
Commit: ba01826c63eca2033266224ee4ebb5a266e47bcc
https://github.com/llvm/llvm-project/commit/ba01826c63eca2033266224ee4ebb5a266e47bcc
Author: Lane0218 <laneljc at qq.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/test/Driver/aarch64-fixed-x-register.c
Log Message:
-----------
[clang] Fix AArch64 -ffixed-x help text (#188911)
Fix the documented support set for AArch64 `-ffixed-xN` options to match
the current implementation.
This updates the generated option help text so that only the registers
actually supported by AArch64 are listed as `AArch64/RISC-V only`, and
marks `x8`, `x16`, `x17`, `x19`, and `x29`-`x31` as `RISC-V only`.
It also adds a driver test to cover the representative unsupported
AArch64 case for `-ffixed-x8`.
Fixes #186620.
Tests: `build-cir/bin/llvm-lit -sv
clang/test/Driver/aarch64-fixed-x-register.c`
Commit: 52bb40fe37ed121147276a03129baa2a4213715b
https://github.com/llvm/llvm-project/commit/52bb40fe37ed121147276a03129baa2a4213715b
Author: Bangtian Liu <liubangtian at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
A mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-invalid-ballot.mlir
M mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
A mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl-invalid-ballot.mlir
M mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl.mlir
A mlir/test/Conversion/GPUToSPIRV/ballot.mlir
M mlir/test/Dialect/GPU/broadcast-speculatability.mlir
M mlir/test/Dialect/GPU/ops.mlir
Log Message:
-----------
[mlir][gpu] Add gpu.ballot operation to GPU dialect (#188647)
Motivated by the need from IREE side to support ArgMax/ArgMin-like
operation using dpp and ballot operation (refer to
https://github.com/iree-org/iree/discussions/23609#discussioncomment-16311655
for more details), this PR adds `gpu.ballot` operation to the MLIR GPU
dialect with ROCDL, NVVM, and SPIR-V lowering support.
Assisted-by: [Claude Code](https://claude.ai/code)
---------
Signed-off-by: Bangtian Liu <liubangtian at gmail.com>
Commit: ede566118f706fe69124d8ff1024965b6b5dd837
https://github.com/llvm/llvm-project/commit/ede566118f706fe69124d8ff1024965b6b5dd837
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libcxx/utils/ci/lnt/run-benchmarks
Log Message:
-----------
[libc++] Use --merge append when submitting to LNT (#189030)
This ensures that we can easily gather additional runs of the same
commit to reduce noise.
Commit: 294dc1b894520506cdd8d260f51c3f8fec6a7118
https://github.com/llvm/llvm-project/commit/294dc1b894520506cdd8d260f51c3f8fec6a7118
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-get-element-ptr.ll
Log Message:
-----------
[NFC][SPIRV] Add test for untested line in SPIRVEmitIntrinsics (#188962)
[This
body](https://github.com/llvm/llvm-project/blob/73768f88fbcb6fe8afa89bdebcec461fa13fe919/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp#L857-L860)
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: c413245aa52c2313ec4e5f942c8a2052d9350dce
https://github.com/llvm/llvm-project/commit/c413245aa52c2313ec4e5f942c8a2052d9350dce
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/test/API/functionalities/inline-stepping/TestInlineStepping.py
Log Message:
-----------
[lldb][test] Disable part of TestInlineStepping.py on Windows on Arm (#189032)
This is flakey on the buildbot.
https://lab.llvm.org/buildbot/#/builders/141/builds/16719 as reported on
#188751.
```
FAIL: test_step_over_with_python_api_dwarf (TestInlineStepping.TestInlineStepping.test_step_over_with_python_api_dwarf)
Test stepping over and into inlined functions.
---------------------------------------------------------------------- Traceback (most recent call last):
File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\packages\Python\lldbsuite\test\lldbtest.py", line 2019, in test_method
return attrvalue(self)
^^^^^^^^^^^^^^^
File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\API\functionalities\inline-stepping\TestInlineStepping.py", line 25, in test_step_over_with_python_api
self.inline_stepping_step_over()
File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\API\functionalities\inline-stepping\TestInlineStepping.py", line 317, in inline_stepping_step_over
self.run_step_sequence(step_sequence)
File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\API\functionalities\inline-stepping\TestInlineStepping.py", line 152, in run_step_sequence
self.do_step(step_pattern[1], target_line_entry, test_stack_depth)
File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\API\functionalities\inline-stepping\TestInlineStepping.py", line 83, in do_step
self.fail(
AssertionError: Failed to stop due to step into operation stepping to: C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\API\functionalities\inline-stepping\calling.cpp:46
```
Commit: fe990b9005260bcf4a5630b577483e954c6bb60e
https://github.com/llvm/llvm-project/commit/fe990b9005260bcf4a5630b577483e954c6bb60e
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp
Log Message:
-----------
[WebAssembly] DebugValueManager ctor: scan only uses instead of whole BB (#188871)
The DebugValueManager constructor scans the basic block to find all DEBUG_VALUE
uses of a def. This can lead to quadratic behavior as reported in #168326.
Instead, use MRI.use_instructions to find only the def's uses to limit the
search.
We still scan the BB so that we get the uses in order, and so we can stop
when a new def is found.
Commit: ea8b1608af6d8bff6a0abb91d209428a99d0e3c3
https://github.com/llvm/llvm-project/commit/ea8b1608af6d8bff6a0abb91d209428a99d0e3c3
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
M mlir/test/Conversion/GPUCommon/lower-launch-func-to-gpu-runtime-calls.mlir
Log Message:
-----------
[GPUToLLVM] Support multiple async dependencies in gpu.launch_func lowering (#188987)
LegalizeLaunchFuncOpPattern previously rejected gpu.launch_func ops with
more than one async dependency. This change removes that limitation by
synchronizing additional dependencies onto the primary stream using
CUDA/HIP events, following the same approach already used in
ConvertWaitAsyncOpToGpuRuntimeCallPattern for gpu.wait async.
For each additional async dependency beyond the first:
- If it is a stream (produced by mgpuStreamCreate), create an event,
record it on that stream, wait for it on the primary stream, then
destroy the event.
- If it is already an event, wait for it directly on the primary stream
and destroy it.
Fixes #156984
Assisted-by: Claude Code
Commit: e9f51a39f91040fcd36b680b98d9a4da648615a1
https://github.com/llvm/llvm-project/commit/e9f51a39f91040fcd36b680b98d9a4da648615a1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/test/Dialect/SCF/canonicalize.mlir
Log Message:
-----------
[MLIR][SCF] Add regression tests for ConditionPropagation in nested ifs (#189036)
Add explicit tests for condition propagation in scf.if then and else
branches, including the void-return case. These tests serve as
regression
tests for the bug reported in #159165 where the
SCFIfConditionPropagationPass
(since reverted) had a visited-set that was never populated, causing the
pass
to not propagate conditions into nested scf.if statements.
The current ConditionPropagation canonicalization pattern in SCF.cpp
correctly handles both nested ifs and direct condition uses within
branches
using the getParentType() ancestor check.
Fixes #159165
Assisted-by: Claude Code
Commit: 3c9938d9555f904339ab2d84beaa3040f7816101
https://github.com/llvm/llvm-project/commit/3c9938d9555f904339ab2d84beaa3040f7816101
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
Log Message:
-----------
[MLIR][XeVM] Wrap in-place op modifications in modifyOpInPlace in LLVMLoadStoreToOCLPattern (#188952)
LLVMLoadStoreToOCLPattern::matchAndRewrite was calling op->removeAttr()
and op->setOperand() directly without going through the rewriter API.
This caused MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS to report "expected
pattern to replace the root operation or modify it in place".
Fix: wrap the direct mutations in rewriter.modifyOpInPlace().
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 3363a0ead9cf3235d45fcf508e3cd9e33558d597
https://github.com/llvm/llvm-project/commit/3363a0ead9cf3235d45fcf508e3cd9e33558d597
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Shard/IR/ShardOps.cpp
Log Message:
-----------
[MLIR][Shard] Fix NormalizeSharding and FoldDuplicateShardOp direct mutations (#188981)
Calling attribute setters and MutableOperandRange::assign() without
going through the PatternRewriter, bypassing the rewriter's
change-tracking triggered "operation finger print changed" after the
pattern returned success under
MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Assisted-by: Claude Code
Commit: 23eec1216993f599f90e259e339228ba8b69c58a
https://github.com/llvm/llvm-project/commit/23eec1216993f599f90e259e339228ba8b69c58a
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/include/mlir/Transforms/Passes.td
M mlir/lib/Transforms/RemoveDeadValues.cpp
M mlir/test/Transforms/remove-dead-values.mlir
Log Message:
-----------
[MLIR] Fix outdated restriction comment in RemoveDeadValuesPass (#189041)
The RemoveDeadValuesPass previously emitted an error and skipped
optimization when the IR contained non-function symbol ops, non-call
symbol user ops, or branch ops. This restriction was later removed, but
the comments in RemoveDeadValues.cpp and Passes.td still described the
pass as operating "iff the IR doesn't have any non-function symbol ops,
non-call symbol user ops and branch ops."
Remove the stale restriction text from both the .cpp file comment and
the Passes.td description. Also add a test that verifies dead function
arguments are correctly removed inside a module that defines a symbol
(has a sym_name attribute), which was the original failure case reported
in issue #98700.
Fixes #98700
Assisted-by: Claude Code
Commit: e9669fd6fb8c3f155cd6acafa669567ad4051f35
https://github.com/llvm/llvm-project/commit/e9669fd6fb8c3f155cd6acafa669567ad4051f35
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
M mlir/test/Transforms/sccp.mlir
Log Message:
-----------
[MLIR][EmitC] Fix crash in SwitchOp::getEntrySuccessorRegions on unsigned integer type (#188546)
SwitchOp::getEntrySuccessorRegions and getRegionInvocationBounds called
IntegerAttr::getInt() to retrieve the constant switch argument, but
getInt() asserts that the attribute type must be a signless integer or
index. For unsigned integer types (e.g. ui32), this assertion fired and
crashed the process.
Fix by selecting the appropriate accessor based on the attribute type:
getInt() for signless/index, getSInt() for signed, and getUInt() (cast
to int64_t) for unsigned integer types. Unknown types fall back to the
conservative "all regions possible" path.
The same fix is applied to getRegionInvocationBounds, which had an
identical call to getInt().
Fixes #187973
Assisted-by: Claude Code
Commit: 5d293008c26d366cfa1eee9b6287de3313f0dcc6
https://github.com/llvm/llvm-project/commit/5d293008c26d366cfa1eee9b6287de3313f0dcc6
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
M mlir/test/Dialect/Transform/test-loop-transforms.mlir
M mlir/test/Transforms/loop-invariant-subset-hoisting.mlir
Log Message:
-----------
[MLIR][Transforms] Fix two bugs in loop-invariant-subset-hoisting (#188761)
Fix two issues in `MatchingSubsets::populateSubsetOpsAtIterArg`:
1. The `collectHoistableOps` parameter was declared but never used when
inserting subset ops via `insert(subsetOp)`. As a result, when recursing
into nested loops with `collectHoistableOps=false`, the nested loop's
subset ops were incorrectly added to the hoistable extraction/insertion
pairs of the parent loop. This caused spurious failures in the
`allDisjoint` check, preventing valid hoisting when nested loop ops
overlapped with outer loop ops. Fix by passing the parameter:
`insert(subsetOp, collectHoistableOps)`.
2. In the nested loop handling branch, there was no guard to detect when
a value has multiple nested loop uses (i.e., is used as an init arg in
more than one nested loop). Without the guard, `nextValue` would be
silently overwritten, leading to an incorrect use-def chain traversal.
Add `if (nextValue) return failure()` before setting `nextValue` for the
nested loop case, mirroring the existing guard for insertion ops.
Fixes #147096
Assisted-by: Claude Code
Commit: 79fdef22d628c926995082b1c052298f47aea283
https://github.com/llvm/llvm-project/commit/79fdef22d628c926995082b1c052298f47aea283
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/docs/DefiningDialects/Operations.md
M mlir/test/IR/properties.mlir
Log Message:
-----------
[mlir][ods] Document and test DefaultValuedProp elision in prop-dict format (#189045)
Issue #152743 reports that DefaultValuedProp is printed even when the
property value equals the default, unlike DefaultValuedAttr which is not
printed in that case.
The fix for this was already present in the codebase since commit
8955e285e1ac ("[mlir] Add property combinators, initial ODS support"),
which added elision of default-valued properties in the
genPropDictPrinter
function in OpFormatGen.cpp.
This commit adds:
- Documentation in Operations.md clarifying that DefaultValuedProp is
also elided from prop-dict output when the value equals the default,
consistent with the existing documentation for DefaultValuedAttr.
- An explicit test in properties.mlir verifying that DefaultValuedProp
with value equal to default is elided from prop-dict output, and that
DefaultValuedProp with a non-default value is still printed.
Fixes #152743
Assisted-by: Claude Code
Commit: 0f63c0a3a5fa5ed41c1a53ef8520f88c280c5c78
https://github.com/llvm/llvm-project/commit/0f63c0a3a5fa5ed41c1a53ef8520f88c280c5c78
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
Log Message:
-----------
[AccelTable] Pre-compute entry pool offsets for DW_IDX_parent. NFC (#188915)
After PR #150846 changed MCFragment to use fixed 16KB blocks, large
sections like .debug_names produce thousands of fragments. The
DW_IDX_parent emission called emitLabelDifference(ParentSymbol,
EntryPool, 4) per entry, which fell through to
attemptToFoldSymbolOffsetDifference's O(n) fragment walk when symbols
were in different fragments. This caused O(entries * fragments)
quadratic behavior, regressing dsymutil on large binaries like clang.
Fix by pre-computing byte offsets from EntryPool for each entry in a
first pass, then emitting emitInt32(offset) directly for DW_IDX_parent
instead of symbol differences. This also eliminates per-entry MCSymbol
allocation that was only needed for parent references.
Fix #188376
Commit: 40d5b19690e4dd2371479486ab8fa60a2b05fbe1
https://github.com/llvm/llvm-project/commit/40d5b19690e4dd2371479486ab8fa60a2b05fbe1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M mlir/test/IR/parser.mlir
Log Message:
-----------
[mlir][IR] Add test for complex<i1> dense element roundtrip (#189047)
Fixes #140302
Assisted-by: Claude Code
Commit: 9a0b003dde83d46f2ed6d95d85d1d9de3c1fe908
https://github.com/llvm/llvm-project/commit/9a0b003dde83d46f2ed6d95d85d1d9de3c1fe908
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
Log Message:
-----------
[MLIR][XeVM] Wrap in-place op modifications in modifyOpInPlace in LLVMLoadStoreToOCLPattern (#188952)
LLVMLoadStoreToOCLPattern::matchAndRewrite was calling op->removeAttr()
and op->setOperand() directly without going through the rewriter API.
This caused MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS to report "expected
pattern to replace the root operation or modify it in place".
Fix: wrap the direct mutations in rewriter.modifyOpInPlace().
Assisted-by: Claude Code
Fix a failure present with MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.
Commit: 5688aca96ea22c599407e90e85e0c54b27295ddf
https://github.com/llvm/llvm-project/commit/5688aca96ea22c599407e90e85e0c54b27295ddf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
Log Message:
-----------
AMDGPU: Simplify synthesis of nextdown(1.0) constant (#189039)
Commit: 166f996c44fd94feae3ccf83073ebe17041ceab1
https://github.com/llvm/llvm-project/commit/166f996c44fd94feae3ccf83073ebe17041ceab1
Author: Michael Jones <michaelrj at google.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M libc/include/sys/socket.yaml
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
Log Message:
-----------
[libc][bazel] Add generation for public headers (#184889)
Previously there was a single rule for stdbit, this PR adds generated
header targets for the rest of the linux headers. It also adds a
cc_library
for all of the public headers which also includes the types and macros
headers.
Commit: fa7ce27e9627f4c207938ba87acbe8957b853fcd
https://github.com/llvm/llvm-project/commit/fa7ce27e9627f4c207938ba87acbe8957b853fcd
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/docs/OpenMPSupport.rst
Log Message:
-----------
[Clang][OpenMP][NFC] Fix status color mismatches in OpenMPSupport.rst (#189050)
Correct the colors used in the OpenMP support tables so they
consistently match their status text:
- :good: (green) is for 'done' only
- :part: (yellow) is for in-progress states ('partial', 'worked on', 'in
progress', 'prototyped', etc.)
- :none: (red) is for 'unclaimed' only
Assisted with copilot
Commit: 5c1ddab1d8d2daa2b23f7c9e8c69e11b27e4f2c7
https://github.com/llvm/llvm-project/commit/5c1ddab1d8d2daa2b23f7c9e8c69e11b27e4f2c7
Author: Henry Jiang <h243jian at uwaterloo.ca>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/pseudo-probe.c
Log Message:
-----------
[clang][Darwin] Externalize pseudoprobe and debug info (#186873)
Commit: 1a08f41281bff6ee35d6d904c702d7f2b819d7d8
https://github.com/llvm/llvm-project/commit/1a08f41281bff6ee35d6d904c702d7f2b819d7d8
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/decorators.py
Log Message:
-----------
[lldb] Disable arm64e tests under ASan (#189052)
Technically ASan is supported, but we need an arm64e sanitizer runtime.
It's still enabled when the whole test suite runs as arm64e, assuming
that you need arm64e runtimes regardless.
This will fix
https://ci.swift.org/view/all/job/llvm.org/job/lldb-cmake-sanitized-os-verification/
rdar://173313715
Commit: 76036032d6eb4b4a0dec034508bf5118168adf19
https://github.com/llvm/llvm-project/commit/76036032d6eb4b4a0dec034508bf5118168adf19
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/test/Frontend/fixed_point_sub_const.c
Log Message:
-----------
[clang][bytecode] Fix an assertion failure with fixed-point types (#189033)
Negation can also fail for fixed-point values.
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: 2b147c35d5dcf0c58af54e2d7bd3d4b94d158c73
https://github.com/llvm/llvm-project/commit/2b147c35d5dcf0c58af54e2d7bd3d4b94d158c73
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M .ci/green-dragon/lldb-ubuntu.groovy
M .ci/premerge_advisor_explain.py
M .github/new-prs-labeler.yml
M .github/workflows/libcxx-build-containers.yml
M .mailmap
M bolt/lib/Passes/LongJmp.cpp
M bolt/test/AArch64/compare-and-branch-reorder-blocks.S
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/bugprone/IncDecInConditionsCheck.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/cppcoreguidelines/RvalueReferenceParamNotMovedCheck.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/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/clang-tidy/readability/IdentifierNamingCheck.cpp
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/IsolateDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/clang-tidy/utils/Matchers.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
M clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.rst
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
M clang-tools-extra/test/clang-tidy/checkers/bugprone/inc-dec-in-conditions.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp
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
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.c
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.cpp
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/docs/ClangIRCleanupAndEHDesign.md
M clang/docs/LanguageExtensions.rst
M clang/docs/OpenMPSupport.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Mangle.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/Origins.h
M clang/include/clang/Basic/AMDGPUTypes.def
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/Builtins.def
M clang/include/clang/Basic/BuiltinsAMDGPU.td
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/CodeGen/CodeGenABITypes.h
M clang/include/clang/CrossTU/CrossTranslationUnit.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/Options/Options.td
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/Sema/SemaAMDGPU.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/Support/RISCVVIntrinsicUtils.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Disasm.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/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Program.h
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/Mangle.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/lib/Analysis/LiveVariables.cpp
M clang/lib/Analysis/UnsafeBufferUsage.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExprScalar.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/CGStmt.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/CrossTU/CrossTranslationUnit.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Format/Format.cpp
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/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
M clang/lib/Headers/__clang_spirv_libdevice_declares.h
M clang/lib/Headers/emmintrin.h
M clang/lib/Headers/gpuintrin.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Interpreter/Interpreter.cpp
M clang/lib/Interpreter/InterpreterUtils.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/SemaCXXScopeSpec.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaFunctionEffects.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
M clang/test/AST/ByteCode/builtins.c
M clang/test/AST/ByteCode/records.cpp
M clang/test/Analysis/bstring.cpp
M clang/test/Analysis/ctu/diag/invalid-index.cpp
M clang/test/Analysis/ctu/diag/missing-index.cpp
M clang/test/Analysis/ctu/different-triples.cpp
A clang/test/CIR/CodeGen/cleanup-throwing-dtor.cpp
M clang/test/CIR/CodeGen/clear-cache.c
A clang/test/CIR/CodeGen/ctor-alias-prev-decl.cpp
A clang/test/CIR/CodeGen/dtor-alias-prev-decl.cpp
A clang/test/CIR/CodeGen/new-delete-deactivation.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
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
A clang/test/CodeGen/RISCV/riscv-fpcc-struct.c
M clang/test/CodeGen/RISCV/riscv64-abi.c
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/builtins-x86.c
M clang/test/CodeGen/clear_cache.c
M clang/test/CodeGen/overflow-behavior-types.c
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCXX/cfi-icall.cpp
M clang/test/CodeGenCXX/destructor-dead-on-return.cpp
M clang/test/CodeGenCXX/mangle-ms.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/CodeGenCXX/reference-temporary-subobject.cpp
M clang/test/CodeGenCXX/static-local-in-local-class.cpp
M clang/test/CodeGenHIP/builtins-amdgcn-gfx1250-wmma-f16.hip
M clang/test/CodeGenHIP/spirv-amdgcn-dpp-const-fold.hip
A clang/test/CodeGenHLSL/builtins/fma.hlsl
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
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
M clang/test/CodeGenObjC/no-nsconstant-literals.m
M clang/test/CodeGenObjC/objc2-constant-collection-literals.m
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx10.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-wmma-w32.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
M clang/test/Driver/aarch64-fixed-x-register.c
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/pseudo-probe.c
A clang/test/FixIt/fixit-defaulted-comparison.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 clang/test/Frontend/fixed_point_sub_const.c
M clang/test/Headers/Inputs/include/stdint.h
M clang/test/Headers/gpuintrin.c
M clang/test/Headers/gpuintrin_lang.c
M clang/test/Interpreter/pretty-print.c
M clang/test/OpenMP/for_reduction_codegen_UDR.cpp
A clang/test/PCH/pragma-redefine-extname.c
A clang/test/PCH/pragma-redefine-extname.h
M clang/test/Sema/Inputs/lifetime-analysis.h
A clang/test/Sema/redefine_extname.cpp
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
M clang/test/SemaCXX/cxx23-builtin-subscript.cpp
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
A clang/test/SemaHLSL/BuiltIns/fma-errors.hlsl
A clang/test/SemaHLSL/Texture2D-mips-errors.hlsl
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-wmma-w32-param.cl
A clang/test/SemaTemplate/GH188759.cpp
A clang/test/SemaTemplate/gh183983.cpp
M clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
M clang/tools/clang-format/git-clang-format
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
M clang/tools/driver/cc1gen_reproducer_main.cpp
A clang/unittests/Format/AlignmentTest.cpp
M clang/unittests/Format/CMakeLists.txt
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
M clang/www/cxx_status.html
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
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/builtins/arm/adddf3.S
A compiler-rt/lib/builtins/arm/crt_endian.h
R compiler-rt/lib/builtins/arm/endian.h
M compiler-rt/lib/builtins/cpu_model/riscv.c
M compiler-rt/lib/fuzzer/CMakeLists.txt
M compiler-rt/lib/gwp_asan/common.h
M compiler-rt/lib/hwasan/hwasan_allocation_functions.cpp
M compiler-rt/lib/msan/msan.h
M compiler-rt/lib/msan/msan_allocator.cpp
M compiler-rt/lib/msan/msan_interceptors.cpp
M compiler-rt/lib/msan/msan_linux.cpp
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/xray/xray_hexagon.cpp
M compiler-rt/lib/xray/xray_init.cpp
M compiler-rt/lib/xray/xray_interface.cpp
M compiler-rt/lib/xray/xray_trampoline_hexagon.S
M compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.c
M compiler-rt/test/sanitizer_common/TestCases/Linux/free_aligned_sized.c
M compiler-rt/test/sanitizer_common/TestCases/Linux/free_sized.c
M cross-project-tests/debuginfo-tests/llgdb-tests/sret.cpp
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/Dialect/FIRType.h
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.h
M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCUtils.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Optimizer/Dialect/FIRType.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
M flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFGPUToLLVMConversion.cpp
M flang/lib/Semantics/check-directive-structure.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Fir/CUDA/cuda-shared-to-llvm.mlir
M flang/test/Integration/unroll-loops.f90
M flang/test/Lower/HLFIR/unroll-loops.fir
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
A flang/test/Lower/OpenACC/Todo/acc-goto-multi-level-exit.f90
A flang/test/Lower/OpenACC/acc-data-operands-remapping-selector.f90
A flang/test/Lower/OpenACC/acc-firstprivate-optional.f90
M flang/test/Lower/OpenACC/acc-unstructured.f90
M flang/test/Lower/polymorphic.f90
M flang/test/Lower/select-type.f90
M flang/test/Lower/volatile-allocatable.f90
M flang/test/Semantics/OpenACC/acc-branch.f90
M flang/test/Semantics/OpenACC/acc-parallel.f90
M flang/test/Transforms/OpenMP/lower-workshare-thread-local.mlir
M flang/test/Transforms/debug-imported-entity.fir
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/build_and_test.rst
M libc/docs/dev/undefined_behavior.rst
M libc/docs/full_cross_build.rst
M libc/docs/headers/math/index.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
A libc/include/cpio.yaml
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/limits.h.def
M libc/include/limits.yaml
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
R libc/include/locale.h.def
M libc/include/locale.yaml
M libc/include/math.yaml
M libc/include/search.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
R libc/include/time.h.def
M libc/include/time.yaml
R libc/include/wchar.h.def
M libc/include/wchar.yaml
M libc/shared/math.h
A libc/shared/math/asinbf16.h
A libc/shared/math/asinpi.h
A libc/shared/math/erfcf16.h
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/src/__support/FPUtil/multiply_add.h
M libc/src/__support/FPUtil/sqrt.h
M libc/src/__support/GPU/utils.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/acoshf_utils.h
M libc/src/__support/math/asin_utils.h
A libc/src/__support/math/asinbf16.h
A libc/src/__support/math/asinpi.h
A libc/src/__support/math/erfcf16.h
M libc/src/__support/math/inv_trigf_utils.h
A libc/src/__support/math/log2p1f16.h
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
M libc/src/__support/weak_avl.h
M libc/src/math/CMakeLists.txt
A libc/src/math/asinbf16.h
A libc/src/math/asinpi.h
A libc/src/math/erfcf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/asinbf16.cpp
A libc/src/math/generic/asinpi.cpp
A libc/src/math/generic/erfcf16.cpp
A libc/src/math/generic/log2p1f16.cpp
A libc/src/math/log2p1f16.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/shared/CMakeLists.txt
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/__support/weak_avl_test.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/asinbf16_test.cpp
A libc/test/src/math/asinpi_test.cpp
A libc/test/src/math/erfcf16_test.cpp
A libc/test/src/math/log2p1f16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/asinbf16_test.cpp
A libc/test/src/math/smoke/asinpi_test.cpp
A libc/test/src/math/smoke/erfcf16_test.cpp
A libc/test/src/math/smoke/log2p1f16_test.cpp
M libc/test/src/search/CMakeLists.txt
A libc/test/src/search/tsearch_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
M libc/utils/docgen/docgen.py
M libc/utils/docgen/header.py
M libclc/CMakeLists.txt
A libclc/clc/include/clc/subgroup/clc_sub_group_non_uniform_reduce.h
A libclc/clc/include/clc/subgroup/clc_sub_group_non_uniform_reduce_decl.inc
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/subgroup/clc_sub_group_non_uniform_reduce.cl
M libclc/clc/lib/amdgpu/subgroup/clc_sub_group_reduce.cl
A libclc/clc/lib/amdgpu/subgroup/clc_sub_group_reduce.inc
M libclc/clc/lib/generic/math/clc_fract.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers.cl
M libclc/clc/lib/generic/math/clc_sincos_helpers.inc
M libclc/cmake/modules/AddLibclc.cmake
M libclc/opencl/lib/generic/CMakeLists.txt
A libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl
A libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.inc
M libcxx/cmake/caches/AMDGPU.cmake
M libcxx/cmake/caches/NVPTX.cmake
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/include/__bit_reference
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
A libcxx/test/std/containers/sequences/vector.bool/reference/builtin_address_of.pass.cpp
M libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp
A libcxx/test/std/utilities/template.bitset/bitset.members/reference.builtin_address_of.pass.cpp
M libcxx/utils/ci/docker/docker-compose.yml
M libcxx/utils/ci/images/libcxx_runners.txt
M libcxx/utils/ci/lnt/run-benchmarks
M libcxx/utils/ci/lnt/runners/README.md
M libcxx/utils/ci/lnt/runners/apple-m5-clang21
M libcxx/utils/ci/lnt/runners/apple-m5-xcode26
M libunwind/src/libunwind.cpp
M libunwind/test/libunwind_01.pass.cpp
A libunwind/test/set_non_null_pc_outside_of_function_cfi_bounds.pass.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/LTO.cpp
M lld/ELF/Arch/AArch64.cpp
M lld/ELF/Arch/Hexagon.cpp
M lld/ELF/BPSectionOrderer.cpp
M lld/ELF/InputSection.cpp
M lld/ELF/InputSection.h
M lld/ELF/LTO.cpp
M lld/ELF/Relocations.cpp
M lld/ELF/Relocations.h
M lld/ELF/SyntheticSections.cpp
M lld/ELF/Target.h
M lld/ELF/Writer.cpp
M lld/Maintainers.md
M lld/docs/ELF/linker_script.rst
R lld/test/COFF/embed-bitcode.test
A lld/test/ELF/aarch64-tls-dtprel.s
M lld/test/ELF/hexagon-thunk-range-gdplt.s
M lld/test/ELF/hexagon-thunk-range-plt.s
M lld/test/ELF/hexagon-thunks-packets.s
M lld/test/ELF/hexagon-thunks.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
M lld/test/ELF/merge-piece-oob.s
M lldb/docs/resources/build.rst
M lldb/include/lldb/Breakpoint/BreakpointLocation.h
M lldb/include/lldb/Breakpoint/BreakpointResolver.h
M lldb/include/lldb/Core/Address.h
M lldb/include/lldb/Expression/ObjectFileJIT.h
M lldb/include/lldb/Host/ProcessLaunchInfo.h
M lldb/include/lldb/Host/windows/ProcessLauncherWindows.h
M lldb/include/lldb/Host/windows/PseudoConsole.h
M lldb/include/lldb/Interpreter/OptionArgParser.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Target/MemoryRegionInfo.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/Target.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadPlanStepUntil.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/include/lldb/lldb-private-types.h
M lldb/packages/Python/lldbsuite/test/decorators.py
M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
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/source/API/SBAddress.cpp
M lldb/source/API/SBModuleSpec.cpp
M lldb/source/API/SBThread.cpp
M lldb/source/Breakpoint/BreakpointLocation.cpp
M lldb/source/Breakpoint/BreakpointResolverName.cpp
M lldb/source/Commands/CommandObjectMemory.cpp
M lldb/source/Commands/CommandObjectPlugin.cpp
M lldb/source/Commands/CommandObjectProcess.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Commands/CommandObjectThread.cpp
M lldb/source/Core/Address.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Core/SearchFilter.cpp
M lldb/source/Core/Section.cpp
M lldb/source/DataFormatters/FormattersHelpers.cpp
M lldb/source/DataFormatters/StringPrinter.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Expression/ObjectFileJIT.cpp
M lldb/source/Host/common/ProcessLaunchInfo.cpp
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
M lldb/source/Host/windows/PseudoConsole.cpp
M lldb/source/Interpreter/CommandInterpreter.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/Architecture/PPC64/ArchitecturePPC64.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/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
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/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/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/source/Plugins/Platform/WebAssembly/CMakeLists.txt
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
A lldb/source/Plugins/Platform/WebAssembly/PlatformWebInspectorWasm.cpp
A lldb/source/Plugins/Platform/WebAssembly/PlatformWebInspectorWasm.h
M lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
M lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
M lldb/source/Plugins/SymbolLocator/DebugSymbols/SymbolLocatorDebugSymbols.cpp
M lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
M lldb/source/Symbol/ObjectFile.cpp
M lldb/source/Symbol/SymbolContext.cpp
M lldb/source/Target/BorrowedStackFrame.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Target/RegisterContextUnwind.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Target/TargetList.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadPlanStepUntil.cpp
M lldb/source/ValueObject/ValueObjectDynamicValue.cpp
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/inline-stepping/TestInlineStepping.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
M lldb/test/API/tools/lldb-dap/io/TestDAP_io.py
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/test/API/tools/lldb-dap/server/TestDAP_server.py
A lldb/test/Shell/Breakpoint/Inputs/main.c
A lldb/test/Shell/Breakpoint/source-regex-missing-source.test
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
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
M lldb/unittests/Platform/PlatformMacOSXTest.cpp
M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
M lldb/unittests/Symbol/SymbolTest.cpp
M lldb/unittests/Utility/ArchSpecTest.cpp
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.md
A llvm/include/llvm/ABI/FunctionInfo.h
M llvm/include/llvm/ADT/APInt.h
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
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/GlobalISel/Combiner.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/DebugInfo/GSYM/FileWriter.h
M llvm/include/llvm/ExecutionEngine/Orc/LinkGraphLinkingLayer.h
M llvm/include/llvm/IR/Attributes.td
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/DiagnosticInfo.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/IR/PatternMatch.h
M llvm/include/llvm/IR/ProfDataUtils.h
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/MC/MCAssembler.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Support/KnownFPClass.h
M llvm/include/llvm/Target/Target.td
M llvm/include/llvm/TargetParser/Triple.h
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/ABI/CMakeLists.txt
A llvm/lib/ABI/FunctionInfo.cpp
M llvm/lib/Analysis/CFG.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/DependenceAnalysis.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/TargetTransformInfo.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/GlobalISel/Combiner.cpp
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/InlineAsmPrepare.cpp
M llvm/lib/CodeGen/InterleavedAccessPass.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
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/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/DebugInfo/GSYM/FileWriter.cpp
M llvm/lib/ExecutionEngine/Orc/LinkGraphLinkingLayer.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/FuzzMutate/RandomIRBuilder.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/DIBuilder.cpp
M llvm/lib/IR/DiagnosticInfo.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/MC/MCAssembler.cpp
M llvm/lib/MCA/Support.cpp
M llvm/lib/Object/RelocationResolver.cpp
M llvm/lib/Support/APInt.cpp
M llvm/lib/Support/DataExtractor.cpp
M llvm/lib/Support/HTTP/HTTPClient.cpp
M llvm/lib/Support/KnownFPClass.cpp
M llvm/lib/Support/Parallel.cpp
M llvm/lib/TableGen/Record.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Target/AArch64/AArch64FastISel.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
M llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.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/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp
M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
M llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
M llvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp
M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.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/RISCV/RISCVCodeGenPrepare.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
M llvm/lib/Target/X86/GISel/X86PostLegalizerCombiner.cpp
M llvm/lib/Target/X86/GISel/X86PreLegalizerCombiner.cpp
M llvm/lib/Target/X86/X86CompressEVEX.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
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/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
M llvm/lib/Transforms/Scalar/ADCE.cpp
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.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/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
M llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/runtimes/CMakeLists.txt
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
A llvm/test/Analysis/DependenceAnalysis/PR188098.ll
M llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
M llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
M llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
M llvm/test/Analysis/DependenceAnalysis/exact-rdiv-addrec-wrap.ll
A llvm/test/Analysis/DependenceAnalysis/exact-rdiv-delta-overflow.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/gcd-miv-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-crossing-siv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-overflow.ll
M llvm/test/Analysis/DependenceAnalysis/weak-zero-siv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/weak-zero-siv-delta-signed-min.ll
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
A llvm/test/Assembler/structured-alloca.ll
M llvm/test/Bitcode/amdgpu-wmma-drop-ab-mods-upgrade.ll
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
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ctlz.mir
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/CodeGen/AArch64/arc-contract-claim-rv.ll
M llvm/test/CodeGen/AArch64/cls.ll
M llvm/test/CodeGen/AArch64/intrinsic-cttz-elts-sve.ll
M llvm/test/CodeGen/AArch64/intrinsic-cttz-elts.ll
A llvm/test/CodeGen/AArch64/is_fpclass-bfloat.ll
M llvm/test/CodeGen/AArch64/is_fpclass.ll
A llvm/test/CodeGen/AArch64/knownpow2-trunc-orzero.ll
M llvm/test/CodeGen/AArch64/pr61549.ll
M llvm/test/CodeGen/AArch64/sve-mask-partition.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/constant-bus-restriction.ll
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/legalize-ctlz.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
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/llvm.amdgcn.sdot2.ll
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.sudot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.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/GlobalISel/regbankselect-amdgcn.div.fmas.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.div.scale.mir
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/GlobalISel/regbankselect-amdgcn.ds.ordered.add.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.ordered.swap.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.lds.direct.load.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/clamp.ll
M llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
A llvm/test/CodeGen/AMDGPU/coexec-scheduler.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
A llvm/test/CodeGen/AMDGPU/cttz-elts.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/fract-match.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-wmma-xdl.mir
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dot4.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.append.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bvh.stack.push.pop.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.consume.ll
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
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
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
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.lds.direct.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tanh.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.udot2.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/llvm.is.fpclass.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.f16.ll
M llvm/test/CodeGen/AMDGPU/load-store-cnt.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.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/promote-alloca-proper-value-replacement.ll
M llvm/test/CodeGen/AMDGPU/r600.llvm.is.fpclass.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/rsq.f64.ll
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
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-opt.mir
M llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
M llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-bitcounts.mir
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll
A llvm/test/CodeGen/DirectX/fma.ll
M llvm/test/CodeGen/Generic/reloc-none.ll
M llvm/test/CodeGen/Hexagon/aligna-prologue-expansion.mir
A llvm/test/CodeGen/Hexagon/asm-operand-modifiers.ll
A llvm/test/CodeGen/Hexagon/asm-printer-cpool.ll
A llvm/test/CodeGen/Hexagon/cfgopt-newpt-invert.ll
A llvm/test/CodeGen/Hexagon/constext-store-imm.ll
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/peephole-sxtw-combine.mir
A llvm/test/CodeGen/Hexagon/qf-helpers-out-of-range.ll
A llvm/test/CodeGen/Hexagon/reg-info-types.ll
A llvm/test/CodeGen/Hexagon/sched-timing-classes.ll
A llvm/test/CodeGen/Hexagon/split-double-volatile.ll
A llvm/test/CodeGen/Hexagon/target-objfile-sdata.ll
A llvm/test/CodeGen/Hexagon/tfr-cleanup-double-imm.mir
A llvm/test/CodeGen/Hexagon/vec-print-wq.ll
M llvm/test/CodeGen/Hexagon/xray-pred-ret.ll
M llvm/test/CodeGen/Hexagon/xray.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/atomics-regression.ll
A llvm/test/CodeGen/PowerPC/cttz-elts.ll
M llvm/test/CodeGen/PowerPC/fp-classify.ll
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/RISCV/O3-pipeline.ll
M llvm/test/CodeGen/RISCV/branch_zero.ll
M llvm/test/CodeGen/RISCV/float-intrinsics.ll
M llvm/test/CodeGen/RISCV/riscv-codegenprepare.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/RISCV/rvv/fixed-vectors-reduction-formation.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass.ll
M llvm/test/CodeGen/RISCV/rvv/vfclass-sdnode.ll
A llvm/test/CodeGen/SPIRV/SpecConstants/amdgcnspirv-feature-predicate-specconstant.ll
A llvm/test/CodeGen/SPIRV/instructions/phi-aggregate-loop.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
A llvm/test/CodeGen/SPIRV/llvm-intrinsics/bitreverse.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/bitreverse_small_type.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/memset.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/signed_arithmetic_overflow.ll
A llvm/test/CodeGen/SPIRV/loop-unroll-nonshader.ll
A llvm/test/CodeGen/SPIRV/opencl-cxx-version-2021.ll
A llvm/test/CodeGen/SPIRV/opencl-cxx-version-incompatible.ll
A llvm/test/CodeGen/SPIRV/opencl-cxx-version.ll
A llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-get-element-ptr.ll
A llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll
A llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals-predicate-id-string.ll
M llvm/test/CodeGen/SPIRV/pointers/PtrCast-in-OpSpecConstantOp.ll
M llvm/test/CodeGen/SPIRV/pointers/PtrCast-null-in-OpSpecConstantOp.ll
M llvm/test/CodeGen/SPIRV/pointers/fun-with-aggregate-arg-in-const-init.ll
M llvm/test/CodeGen/SPIRV/pointers/global-ptrtoint.ll
M llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll
A llvm/test/CodeGen/SPIRV/pointers/store-array-of-vectors-to-vector.ll
M llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll
M llvm/test/CodeGen/SPIRV/transcoding/ConvertPtrInGlobalInit.ll
M llvm/test/CodeGen/SPIRV/transcoding/block_w_struct_return.ll
M llvm/test/CodeGen/SPIRV/transcoding/global_block.ll
M llvm/test/CodeGen/WebAssembly/GlobalISel/gisel-commandline-option.ll
A llvm/test/CodeGen/WebAssembly/call-wasm64.ll
M llvm/test/CodeGen/WebAssembly/call.ll
M llvm/test/CodeGen/WebAssembly/int-mac-reduction-loops.ll
M llvm/test/CodeGen/WebAssembly/partial-reduce-accumulate.ll
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
M llvm/test/CodeGen/WebAssembly/wide-simd-mul.ll
M llvm/test/CodeGen/X86/GlobalISel/legalize-leading-zeros.mir
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
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
A llvm/test/CodeGen/X86/apx/compress-evex-negative-nf.mir
M llvm/test/CodeGen/X86/apx/imul.ll
M llvm/test/CodeGen/X86/apx/or.ll
M llvm/test/CodeGen/X86/apx/reloc-opt.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
M llvm/test/CodeGen/X86/int-to-fp-demanded.ll
M llvm/test/CodeGen/X86/intrinsic-cttz-elts.ll
M llvm/test/CodeGen/X86/is_fpclass.ll
M llvm/test/CodeGen/X86/isel-fpclass.ll
M llvm/test/CodeGen/X86/known-pow2.ll
M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
M llvm/test/CodeGen/X86/opt-pipeline.ll
M llvm/test/DebugInfo/AArch64/tls-at-location.ll
A llvm/test/DebugInfo/X86/implicit-pointer-isel.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/aarch64-bf16-dotprod-intrinsics.ll
A llvm/test/Instrumentation/MemorySanitizer/Hexagon/hexagon.ll
A llvm/test/Instrumentation/MemorySanitizer/Hexagon/vararg-hexagon.ll
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
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
M llvm/test/MC/ELF/relax-branch-align.s
R llvm/test/MC/X86/align-branch-convergence.s
A llvm/test/TableGen/intrinsic-arginfo-error.td
M llvm/test/TableGen/x86-instr-mapping.inc
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
A llvm/test/Transforms/InstCombine/fcmp-select-sign.ll
M llvm/test/Transforms/InstCombine/fmul.ll
M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
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/blend-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
M llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll
M llvm/test/Transforms/LoopVectorize/AArch64/maxbandwidth-regpressure.ll
M llvm/test/Transforms/LoopVectorize/AArch64/optsize_minsize.ll
M llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_test1_no_explicit_vect_width.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
M llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-fold-tail.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-multi-block.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-remove-loop-region.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.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/RISCV/dbg-tail-folding-by-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/predicated-reverse-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-interleaved.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.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/SystemZ/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll
A 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/VPlan/vplan-dot-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-iv-transforms.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-predicate-switch.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/consecutive-ptr-uniforms.ll
M llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
M llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.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/fixed-order-recurrence.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/induction-costs.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/masked_load_store.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/pr109581-unused-blend.ll
M llvm/test/Transforms/LoopVectorize/X86/pr55096-scalarize-add.ll
M llvm/test/Transforms/LoopVectorize/X86/small-size.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-accesses-masked-group.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/as_cast.ll
M llvm/test/Transforms/LoopVectorize/bzip_reverse_loops.ll
M llvm/test/Transforms/LoopVectorize/calloc.ll
M llvm/test/Transforms/LoopVectorize/cast-induction.ll
M llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
M llvm/test/Transforms/LoopVectorize/constant-fold-commutative-and.ll
M llvm/test/Transforms/LoopVectorize/constantfolder.ll
M llvm/test/Transforms/LoopVectorize/cpp-new-array.ll
M llvm/test/Transforms/LoopVectorize/cse-casts.ll
M llvm/test/Transforms/LoopVectorize/debugloc.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
M llvm/test/Transforms/LoopVectorize/find-last-iv-interleave.ll
M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-load.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/float-induction.ll
M llvm/test/Transforms/LoopVectorize/float-reduction.ll
M llvm/test/Transforms/LoopVectorize/gcc-examples.ll
M llvm/test/Transforms/LoopVectorize/hoist-and-sink-mem-ops-with-invariant-pointers.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.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/if-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/increment.ll
M llvm/test/Transforms/LoopVectorize/induction.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
M llvm/test/Transforms/LoopVectorize/loop-form.ll
M llvm/test/Transforms/LoopVectorize/loop-legality-checks-remarks.ll
M llvm/test/Transforms/LoopVectorize/memdep-fold-tail.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/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
M llvm/test/Transforms/LoopVectorize/pr32859.ll
M llvm/test/Transforms/LoopVectorize/pr37248.ll
M llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll
M llvm/test/Transforms/LoopVectorize/predicate-switch.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/select-cmp-multiuse.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-return-replicate.ll
M llvm/test/Transforms/LoopVectorize/struct-return.ll
M llvm/test/Transforms/LoopVectorize/struct_access.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-alloca-in-loop.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-div.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-masked-mem-opts.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-optimize-vector-induction-width.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-switch.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
M llvm/test/Transforms/LoopVectorize/unroll-novec-memcheck-metadata.ll
M llvm/test/Transforms/LoopVectorize/unroll_novec.ll
M llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination.ll
M llvm/test/Transforms/LoopVectorize/write-only.ll
A llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-differing-addr-spaces.ll
A llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-tile-size-0.ll
A llvm/test/Transforms/ObjCARC/sink-past-atomic.ll
A llvm/test/Transforms/PhaseOrdering/RISCV/any-of-vectorization.ll
A llvm/test/Transforms/PhaseOrdering/RISCV/lit.local.cfg
M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/unprofitable-alternate-subtree.ll
A llvm/test/Transforms/SLPVectorizer/X86/non-reduced-select-of-bits.ll
A llvm/test/Transforms/SimplifyCFG/branch-weight-disjunction-overflow.ll
A llvm/test/Transforms/VectorCombine/LoongArch/lit.local.cfg
A llvm/test/Transforms/VectorCombine/LoongArch/shuffle-identity-miscompile.ll
A llvm/test/Verifier/structured-alloca-bad.ll
M llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
M llvm/tools/llvm-lto2/llvm-lto2.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-objdump/llvm-objdump.cpp
M llvm/tools/llvm-size/llvm-size.cpp
M llvm/unittests/ADT/APIntTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
M llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp
M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
A llvm/unittests/ExecutionEngine/Orc/LinkGraphLinkingLayerTest.cpp
M llvm/unittests/IR/CFGBuilder.cpp
M llvm/unittests/IR/PatternMatch.cpp
M llvm/unittests/Support/DataExtractorTest.cpp
M llvm/unittests/Target/AArch64/AArch64SelectionDAGTest.cpp
M llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/performance/BUILD.gn
A llvm/utils/gn/secondary/clang-tools-extra/clangd/remap/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/Format/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/Target/AMDGPU/BUILD.gn
M mlir/docs/Bindings/Python.md
M mlir/docs/DefiningDialects/Operations.md
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/include/mlir/Bindings/Python/NanobindUtils.h
A mlir/include/mlir/Bindings/Python/PythonBindings.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUAttrs.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUEnums.td
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.td
M mlir/include/mlir/Dialect/Affine/Transforms/Transforms.h
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
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/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/include/mlir/Dialect/Tosa/IR/TosaShapeOps.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
M mlir/include/mlir/IR/BlockSupport.h
M mlir/include/mlir/IR/Value.h
M mlir/include/mlir/Interfaces/SideEffectInterfaces.h
A mlir/include/mlir/Interfaces/Utils/MemorySlotUtils.h
M mlir/include/mlir/Transforms/Passes.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp
M mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
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/lib/Dialect/Affine/Transforms/CMakeLists.txt
A mlir/lib/Dialect/Affine/Transforms/SimplifyAffineWithBounds.cpp
M mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
M mlir/lib/Dialect/Arith/Transforms/ShardingInterfaceImpl.cpp
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
M mlir/lib/Dialect/LLVMIR/CMakeLists.txt
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp
M mlir/lib/Dialect/MPI/IR/MPIOps.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
M mlir/lib/Dialect/OpenMP/CMakeLists.txt
M mlir/lib/Dialect/SCF/IR/CMakeLists.txt
M mlir/lib/Dialect/SCF/IR/MemorySlot.cpp
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/lib/Dialect/SCF/Transforms/LoopRangeFolding.cpp
M mlir/lib/Dialect/SCF/Utils/Utils.cpp
M mlir/lib/Dialect/Shard/IR/ShardOps.cpp
M mlir/lib/Dialect/SparseTensor/IR/Detail/DimLvlMapParser.cpp
M mlir/lib/Dialect/SparseTensor/IR/Detail/LvlTypeParser.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseAssembler.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp
M mlir/lib/Dialect/Transform/Transforms/CheckUses.cpp
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorBroadcast.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorScan.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/lib/Dialect/X86/Transforms/VectorContractToPackedTypeDotProduct.cpp
M mlir/lib/Dialect/X86/Utils/X86Utils.cpp
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.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/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/lib/ExecutionEngine/LevelZeroRuntimeWrappers.cpp
M mlir/lib/IR/Value.cpp
M mlir/lib/Interfaces/Utils/CMakeLists.txt
A mlir/lib/Interfaces/Utils/MemorySlotUtils.cpp
M mlir/lib/Target/LLVM/XeVM/Target.cpp
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
M mlir/lib/Transforms/CSE.cpp
M mlir/lib/Transforms/RemoveDeadValues.cpp
M mlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
M mlir/python/mlir/dialects/ext.py
M mlir/test/Analysis/test-alias-analysis-modref.mlir
M mlir/test/Bytecode/bytecode_callback.mlir
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
A mlir/test/Conversion/AMDGPUToROCDL/global-prefetch.mlir
M mlir/test/Conversion/GPUCommon/lower-launch-func-to-gpu-runtime-calls.mlir
A mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-invalid-ballot.mlir
M mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
A mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl-invalid-ballot.mlir
M mlir/test/Conversion/GPUToROCDL/gpu-to-rocdl.mlir
A mlir/test/Conversion/GPUToSPIRV/ballot.mlir
A mlir/test/Conversion/GPUToSPIRV/broadcast.mlir
M mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
M mlir/test/Dialect/AMDGPU/invalid.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
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
A mlir/test/Dialect/Affine/simplify-with-bounds.mlir
M mlir/test/Dialect/Arith/int-range-opts.mlir
M mlir/test/Dialect/GPU/broadcast-speculatability.mlir
M mlir/test/Dialect/GPU/ops.mlir
M mlir/test/Dialect/GPU/outlining.mlir
M mlir/test/Dialect/LLVMIR/alias.mlir
M mlir/test/Dialect/LLVMIR/bytecode.mlir
M mlir/test/Dialect/MemRef/canonicalize.mlir
M mlir/test/Dialect/SCF/canonicalize.mlir
M mlir/test/Dialect/SCF/loop-range.mlir
M mlir/test/Dialect/SCF/loop-unroll.mlir
M mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir
M mlir/test/Dialect/SPIRV/IR/tosa-ops.mlir
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
M mlir/test/Dialect/Transform/check-use-after-free.mlir
M mlir/test/Dialect/Transform/test-loop-transforms.mlir
M mlir/test/Dialect/Vector/canonicalize.mlir
M mlir/test/Dialect/Vector/invalid.mlir
M mlir/test/Dialect/Vector/vector-transfer-collapse-inner-most-dims.mlir
M mlir/test/Dialect/XeGPU/layout.mlir
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.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
M mlir/test/IR/parser.mlir
M mlir/test/IR/properties.mlir
M mlir/test/IR/test-side-effects.mlir
M mlir/test/Target/LLVMIR/Import/debug-info.ll
M mlir/test/Target/LLVMIR/alias.mlir
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
M mlir/test/Target/SPIRV/tosa-ops.mlir
M mlir/test/Transforms/cse.mlir
M mlir/test/Transforms/loop-invariant-subset-hoisting.mlir
M mlir/test/Transforms/remove-dead-values.mlir
M mlir/test/Transforms/sccp.mlir
M mlir/test/lib/Dialect/OpenACC/TestRecipePopulate.cpp
M mlir/test/lib/Dialect/Shard/TestReshardingPartition.cpp
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/lib/IR/TestBytecodeRoundtrip.cpp
M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
M mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir
M mlir/test/mlir-tblgen/attr-or-type-format.td
M mlir/test/mlir-tblgen/op-python-bindings.td
M mlir/test/python/dialects/ext.py
M mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
M mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp
M mlir/unittests/Interfaces/CMakeLists.txt
A mlir/unittests/Interfaces/MemorySlotUtilsTest.cpp
M mlir/unittests/Interfaces/SideEffectInterfacesTest.cpp
M mlir/utils/generate-test-checks.py
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/api/omp_get_mapped_ptr.c
M offload/test/api/omp_get_num_procs.c
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/lit.site.cfg.in
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/device_ptr_update.c
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_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_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_always_always.c
M offload/test/mapping/map_ordering_tgt_exit_data_delete_from.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/ompx_hold/struct.c
M offload/test/mapping/pr38704.c
M offload/test/mapping/ptr_and_obj_motion.c
M offload/test/mapping/reduction_implicit_map.cpp
M offload/test/mapping/target_data_array_extension_at_exit.c
M offload/test/mapping/target_derefence_array_pointrs.cpp
M offload/test/mapping/target_has_device_addr.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/bug49779.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/bug64959_compile_only.c
M offload/test/offloading/extern.c
M offload/test/offloading/force-usm.cpp
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/info.c
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/spmdization.c
M offload/test/offloading/static_linking.c
M offload/test/offloading/std_complex_arithmetic.cpp
M offload/test/offloading/strided_multiple_update_from.c
M offload/test/offloading/strided_multiple_update_to.c
M offload/test/offloading/strided_offset_multidim_update.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/struct_mapping_with_pointers.cpp
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/test_libc.cpp
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_crash_single.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/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/associate_ptr.c
M offload/test/unified_shared_memory/close_enter_exit.c
M offload/test/unified_shared_memory/close_member.c
M offload/test/unified_shared_memory/close_modifier.c
M offload/test/unified_shared_memory/shared_update.c
M offload/tools/CMakeLists.txt
M offload/tools/deviceinfo/CMakeLists.txt
M offload/tools/kernelreplay/CMakeLists.txt
M openmp/cmake/OpenMPTesting.cmake
M openmp/device/src/Synchronization.cpp
M openmp/runtime/test/CMakeLists.txt
M openmp/runtime/test/lit.cfg
M openmp/runtime/test/lit.site.cfg.in
M openmp/runtime/test/tasking/omp50_taskdep_depobj.c
M polly/ci/polly-x86_64-linux-plugin.py
M polly/ci/polly-x86_64-linux.py
M polly/include/polly/ScopInfo.h
M polly/include/polly/ScopInliner.h
M polly/lib/Analysis/ScopBuilder.cpp
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
A polly/test/ScopInfo/issue187922.ll
M polly/test/ScopInfo/user_provided_assumptions.ll
M polly/test/lit.cfg
M polly/test/lit.site.cfg.in
A polly/test/polly.c
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/unittests/BUILD.bazel
Log Message:
-----------
Merge remote-tracking branch 'upstream/main' into arm-fp-dmuldiv
Commit: a693a8c61bbafd953b2eb9cd3ae64cc5db8cab61
https://github.com/llvm/llvm-project/commit/a693a8c61bbafd953b2eb9cd3ae64cc5db8cab61
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-03-31 (Tue, 31 Mar 2026)
Changed paths:
M compiler-rt/lib/builtins/arm/divdf3.S
M compiler-rt/lib/builtins/arm/muldf3.S
Log Message:
-----------
Update for #189336 renaming endian.h
Compare: https://github.com/llvm/llvm-project/compare/b5c9babbae2b...a693a8c61bba
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