[all-commits] [llvm/llvm-project] de3f57: [CIR] Fix bug where block after-unreachable wasn't...
Takashi Idobe via All-commits
all-commits at lists.llvm.org
Wed Mar 25 15:51:45 PDT 2026
Branch: refs/heads/users/pcc/spr/main.prepare-libcxx-and-libcxxabi-for-pointer-field-protection
Home: https://github.com/llvm/llvm-project
Commit: de3f57399c661d393f9ef585907e2f0fca006baa
https://github.com/llvm/llvm-project/commit/de3f57399c661d393f9ef585907e2f0fca006baa
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
A clang/test/CIR/CodeGen/abi-lower-after-unreachable.cpp
Log Message:
-----------
[CIR] Fix bug where block after-unreachable wasn't CXXABILowered (#186869)
If a TU has an 'unreachable' block, it wouldn't be CXXABILower'ed, which
would cause a legalization failure. This patch adds the same solution we
do in LowerToLLVM, which is to make sure we transform those sections
separately.
Commit: 138cae4a08d2dd9d973243006be387976f87255e
https://github.com/llvm/llvm-project/commit/138cae4a08d2dd9d973243006be387976f87255e
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
Log Message:
-----------
[CIR][NFC] Split the CXXABI 'TypeConverter' into its own type. (#186874)
This is currently an NFC change, as the CXXABITypeConverter has no
members yet. This patch splits it off into its own type, as it is going
to need to have members when we start transforming record types, but
doesn't implement that part yet (coming in future patches).
Commit: 1b904e948afb8ecad47e2e6c3ffa9bef3e02b8be
https://github.com/llvm/llvm-project/commit/1b904e948afb8ecad47e2e6c3ffa9bef3e02b8be
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
Log Message:
-----------
[CIR][NFC] Unify the 'null data member attr' getters (#186876)
In preperation of actually lowering data members as fields to a record
type, this patch does a minor refactor to make their single current use
have a slightly simpler interface. This will prevent us from having to
copy/paste this later.
Also, this patch removes a pair of now-orphaned builders, instead
preferring to use the ones that come from the parent builder type.
Commit: 2a8168ddaf4de9102cc43c098d8a2159c9442271
https://github.com/llvm/llvm-project/commit/2a8168ddaf4de9102cc43c098d8a2159c9442271
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/test/CIR/CodeGen/no-odr-use.cpp
Log Message:
-----------
[CIR] Add support for arrays-of-pointer-to-member-data (#186887)
This patch adds support for arrays of pointer-to-member-data, just like
we do for pointer-to-member-function. This patch also does a refactor of
some basic value lowering, which both makes this apply to locals and
constants, but also unifies them in preperation of future work when it
comes to record types.
Other than the otherwise-not-quite-intentional change (the recursion got
this feature, and I realized it worked while looking at other
things!), this is NFCI.
Commit: 1db8096555788188066b3b49b27056446096d81f
https://github.com/llvm/llvm-project/commit/1db8096555788188066b3b49b27056446096d81f
Author: lntue <lntue at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libc/src/__support/math/hypotf.h
Log Message:
-----------
[libc][math] Improve hypotf performance. (#186627)
Update the check for when a more careful rounding is needed, and remove
the redundant clear exception step.
Commit: 073d019c450da7948a23ae240bfc6388971a8f25
https://github.com/llvm/llvm-project/commit/073d019c450da7948a23ae240bfc6388971a8f25
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M openmp/device/include/Synchronization.h
Log Message:
-----------
[OpenMP] Use the standard fences now that they are supported (#187138)
Summary:
We can now use these on NVPTX properly.
Commit: fa8d3c810f36a547d3660f09aca07f8dc63fc952
https://github.com/llvm/llvm-project/commit/fa8d3c810f36a547d3660f09aca07f8dc63fc952
Author: Anshul Nigham <nigham at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
Log Message:
-----------
[NewPM] Add port for AArch64DeadRegisterDefinitionsPass (#187180)
Adds a newPM pass for AArch64DeadRegisterDefinitions
* Refactors base logic into an Impl class
* Renames old pass with the "Legacy" suffix
* Adds the new pass manager pass using refactored logic
No existing `.mir` tests to update.
Context and motivation in
https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers
Commit: c0064f744c01bef79babbf5853288a11cd7a3c9f
https://github.com/llvm/llvm-project/commit/c0064f744c01bef79babbf5853288a11cd7a3c9f
Author: Anonmiraj <ezzibrahimx at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libc/src/__support/FPUtil/dyadic_float.h
Log Message:
-----------
[libc][math] Fix missing underflow exception in DyadicFloat::generic_as (#186734)
The `generic_as` function in `dyadic_float.h` had a missing `underflow =
true` at the exact boundary where `unbiased_exp == -EXP_BIAS -
FRACTION_LEN`.
At this boundary, the mantissa MSB maps exactly to the round bit, so
out_mantissa is 0 and the result can only be 0 or min_subnormal. The
value is at most min_subnormal / 2, so it is always tiny and always
inexact `underflow` must be signaled. The < case and the general
subnormal range both already set underflow = true this boundary case was
the only gap.
this specifically fix this error in the erfcf16 function
```
Extracted erfcf16.cpp.o from archive for linking
Running exhaustive check in --rndn mode...
Missing underflow exception for x=0x1.eacp+1 (y=0x1p-24)
```
this fix may also apply to other bfloat16 missing exceptions
(@Sukumarsawant)
part of: #186483
CC: @lntue
Commit: 77667d7c5bd551ec50a5bab73f64bf8e3143ab78
https://github.com/llvm/llvm-project/commit/77667d7c5bd551ec50a5bab73f64bf8e3143ab78
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang-rt/test/Driver/safe-trampoline-gnustack.f90
Log Message:
-----------
[flang] Fix the CHECK: directive to ensure flagging RWE (NFC) (#187186)
Update the check to catch "RWE" in the header.
Commit: dfc02b7744c5ca6e9555dca2f75e5fd92db90218
https://github.com/llvm/llvm-project/commit/dfc02b7744c5ca6e9555dca2f75e5fd92db90218
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
A llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
Log Message:
-----------
[gn] port c1f6fd24aa637d6a
Commit: d783723a584a1cab30c3a92ca247abb3401fc6da
https://github.com/llvm/llvm-project/commit/d783723a584a1cab30c3a92ca247abb3401fc6da
Author: Midhunesh <midhunesh.p at ibm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M compiler-rt/cmake/base-config-ix.cmake
Log Message:
-----------
[compiler-rt] Update runtime build script to detect RPC XDR header for AIX (#186977)
`sanitizer_common` and its tests depend on the RPC XDR header for layout
compatibility. When this header is absent from a CI or build
environment, changes that silently break the expected struct layout go
undetected, since there is nothing to fail the build.
The default is opt-in — error on missing header is on by default for AIX
(where the dependency is known and the package is `bos.net.nfs.adt`) and
off by default elsewhere.
Changes:
1. On AIX, checks for `tirpc/rpc/xdr.h`; on all other platforms, checks
for `rpc/xdr.h`
2. Introduces `COMPILER_RT_REQUIRE_RPC_XDR_H` CMake option (default ON
on AIX, OFF elsewhere) that, when set, turns a missing header into a
fatal configuration error with an actionable message
3. Drive-by fix: Normalizes `HAVE_RPC_XDR_H` to 0 when the header is
absent, for consistent downstream `if()/#cmakedefine` behavior
Commit: c94403dbd33694b84776659e7c3491d51439f869
https://github.com/llvm/llvm-project/commit/c94403dbd33694b84776659e7c3491d51439f869
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
Log Message:
-----------
[gn build] Port 45fe4bbdde13
Commit: 0f6cd5c1838c8a8690d763fcc5397b7dff0921c2
https://github.com/llvm/llvm-project/commit/0f6cd5c1838c8a8690d763fcc5397b7dff0921c2
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
Log Message:
-----------
[gn build] Port 55db533b74fe
Commit: 6ef0b80d9d8e9b9c9c8477fbee2991b69cf77f60
https://github.com/llvm/llvm-project/commit/6ef0b80d9d8e9b9c9c8477fbee2991b69cf77f60
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Plugins/Process/Windows/Common/BUILD.gn
Log Message:
-----------
[gn build] Port 681f1a5ee987
Commit: e9b95ce4a7287205670ee2bdb9642d9485f845fc
https://github.com/llvm/llvm-project/commit/e9b95ce4a7287205670ee2bdb9642d9485f845fc
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
Log Message:
-----------
[gn build] Port 6b3cf50d958c
Commit: c051449e27df0b6307693a5c841036934d8d7991
https://github.com/llvm/llvm-project/commit/c051449e27df0b6307693a5c841036934d8d7991
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/DebugInfo/DWARF/BUILD.gn
Log Message:
-----------
[gn build] Port d0d0a665c238
Commit: e1c81fa24eeb3a8d78393863caadf059627d221d
https://github.com/llvm/llvm-project/commit/e1c81fa24eeb3a8d78393863caadf059627d221d
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
Log Message:
-----------
[gn build] Port e4a2d9cd8a63
Commit: 6261cb4487f153c599a040d7a77524561b520240
https://github.com/llvm/llvm-project/commit/6261cb4487f153c599a040d7a77524561b520240
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/non-inst-abs-sub-copyable-value.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/buildvector-all-external-scalars.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/small-phi-tree.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/SLP-cmp-cost-query.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/vec-elt-insertion.ll
M llvm/test/Transforms/SLPVectorizer/X86/cse.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-instructions-clear.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-node-with-copyable-operands.ll
M llvm/test/Transforms/SLPVectorizer/X86/expected-prof-consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-bin-op-user.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
M llvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
M llvm/test/Transforms/SLPVectorizer/X86/matching-gather-nodes-phi-users.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
M llvm/test/Transforms/SLPVectorizer/X86/parent-node-split-non-schedulable.ll
M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-extracted-and-externally-used.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_not_all_parts.ll
M llvm/test/Transforms/SLPVectorizer/X86/slp-schedule-use-order.ll
M llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll
M llvm/test/Transforms/SLPVectorizer/consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/freeze-signedness-missed.ll
M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
[SLP] Loop aware cost model/tree building
Currently, SLP vectorizer do not care about loops and their trip count.
It may lead to inefficient vectorization in some cases. Patch adds loop
nest-aware tree building and cost estimation.
When it comes to tree building, it now checks that tree do not span
across different loop nests. The nodes from other loop nests are
immediate buildvector nodes.
The cost model adds the knowledge about loop trip count. If it is
unknown, the default value is used, controlled by the
-slp-cost-loop-min-trip-count=<value> option. The cost of the vector
nodes in the loop is multiplied by the number of iteration (trip count),
because each vector node will be executed the trip count number of
times. This allows better cost estimation.
Reviewers: jdenny-ornl, vporpo, hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/150450
Recommit after revert in c7bd3062f1dac975cf9b706f457b3c55b4bf57ff
Commit: 2ef6a669afe96f52fbdc4f4fda877cac1761cc61
https://github.com/llvm/llvm-project/commit/2ef6a669afe96f52fbdc4f4fda877cac1761cc61
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/is_fpclass.ll
Log Message:
-----------
[NFC][AArch64] fix triple used in test (#187275)
cc @dyung https://github.com/llvm/llvm-project/pull/187231
Commit: b85cf95aad712879e8e5234a7eb59544ad7b1cca
https://github.com/llvm/llvm-project/commit/b85cf95aad712879e8e5234a7eb59544ad7b1cca
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/include/flang/Optimizer/OpenACC/Analysis/FIROpenACCSupportAnalysis.h
M flang/lib/Optimizer/OpenACC/Analysis/FIROpenACCSupportAnalysis.cpp
A flang/test/Fir/OpenACC/acc-routine-to-gpu-func.fir
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
A mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineToGPUFunc.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
A mlir/test/Dialect/OpenACC/acc-routine-to-gpu-func.mlir
Log Message:
-----------
[mlir][acc] Move acc routine functions into GPU module (#187161)
The OpenACC routine directive defines functions that may be called from
device code; those functions (and any device-required callees) must be
present in the device compilation unit. This PR introduces
ACCRoutineToGPUFunc pass which moves materialized acc routines into the
GPU module as gpu.func so they can be compiled for the device.
This adds testing showing the pass on both MLIR and FIR. The FIR tests
required improvements in OpenACCSupport implementation to ensure that
CUF and Fortran runtime is considered as legal for GPU.
Commit: 7a2193cd190baf3a396b7d0b2b34f06b380c7a37
https://github.com/llvm/llvm-project/commit/7a2193cd190baf3a396b7d0b2b34f06b380c7a37
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M offload/CMakeLists.txt
Log Message:
-----------
[Offload] Add CMake alias for CI (#186099)
In the pre-merge CI we need a top-level visible target that can be used
to build offload, i.e., libomptarget and LLVMOffload.
The related PR to include offload into pre-merge CI is here:
https://github.com/llvm/llvm-project/pull/174955
Commit: a4ef581c714b939ee692d1cff212c48a9ae3a000
https://github.com/llvm/llvm-project/commit/a4ef581c714b939ee692d1cff212c48a9ae3a000
Author: Drew Kersnar <dkersnar at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
A llvm/test/Transforms/InstCombine/gep-replace-idx-zero-multi-use.ll
Log Message:
-----------
[InstCombine] RAUW for proven zero-indexed GEPs rather than cloning for a specific user (#185053)
When analyzing operands of loads/stores, if we can guarantee that a GEP
is always zero-indexed, it is better to modify the GEP such that other
users can take advantage of the simplification, rather than just cloning
it for one specific load/store user. Edit: implementation changed to
call replaceInstUsesWith instead of modifying in place.
Without this change, replaceGEPIdxWithZero clones the GEP for the
triggering load/store, leaving the original variable-indexed GEP in
place. Other users of that GEP (e.g., a constant-offset GEP feeding a
second load) miss the simplification. Testcase demonstrates this:
without the first load _modifying_ the gep, the _second_ load will still
be dependent on both GEPs, and thus unnecessarily dependent on the %idx.
This lack of simplification can cause issues with later passes such as
LICM.
Alternative approaches could be to add a version of this transform into
visitGEP, but there is precedent to doing so in visitLoad/visitStore,
see simplifyNonNullOperand. And because the optimization is tied to the
dereference that happens in the load/store, I think it reasonably fits
here.
Alive2 proof: https://alive2.llvm.org/ce/z/-HZd9c
Alive2 counterexample showing why we cannot blindly modify the gep in
place without some sort of condition:
https://alive2.llvm.org/ce/z/dzKuc3
Commit: fc569dafd76751a3d18c3899545dd88afdbc221b
https://github.com/llvm/llvm-project/commit/fc569dafd76751a3d18c3899545dd88afdbc221b
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libcxx/include/__functional/is_transparent.h
M libcxx/include/map
M libcxx/include/set
M libcxx/include/unordered_map
M libcxx/include/unordered_set
Log Message:
-----------
[libc++] Refactor __is_transparent_v to make it clear what it depends on (#186419)
__is_transparent_v used to accept an additional _Key template argument
whose sole purpose was to make the instantiation as a whole dependent.
It turns out that creates confusion around whether that trait takes into
account the key type (it does not). Instead, we can use our traditional
approach for making template params artificially dependent, which allows
removing the confusing parameter.
For disclaimer, I authored this patch with Claude code just to see if I
could get it to do the right thing. It works, but you have to steer it
right.
Fixes #186417
Commit: bf46a95f2ca2e4658ae08705db97704f96611021
https://github.com/llvm/llvm-project/commit/bf46a95f2ca2e4658ae08705db97704f96611021
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
A llvm/test/Transforms/LoopVectorize/RISCV/early-exit-live-out.ll
A llvm/test/Transforms/LoopVectorize/RISCV/live-out.ll
M llvm/test/Transforms/LoopVectorize/optsize.ll
Log Message:
-----------
[VPlan] Use target's index type for {First,Last}ActiveLane instead of i64 (#186361)
Fixes #186005
On RV32 with zve32x, i.e. no legal 64 bit types either scalar or vector,
@llvm.cttz.elts.i64 cannot be lowered and so returns an illegal cost for
scalable VFs. However VPInstruction::FirstActiveLane and
VPInstruction::LastActiveLane always use a hardcoded i64 type.
This causes a legacy/VPlan cost model mismatch in the live-out.ll test,
and in early-exit-live-out.ll prevents the scalable VF from being
chosen.
This PR teaches the two VPInstructions to use the target's index type,
i.e. the width of a pointer in the default address space, so it will
generate a 32 bit cttz.elts on RV32. This should be large enough to hold
the maximum number of elements in a vector, as if the vector was any
bigger it would imply it isn't accessible by memory.
I considered using the canonical IV type but I don't think that will
work since the canonical IV can be i64 on RV32, and it causes
regressions due to extra zexting on 64-bit targets with a 32-bit IV.
Commit: 5e3202749ac19f95737dc15ff5db739c77c0b992
https://github.com/llvm/llvm-project/commit/5e3202749ac19f95737dc15ff5db739c77c0b992
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Rewrite/FrozenRewritePatternSet.cpp
M mlir/test/mlir-opt/debugcounter.mlir
Log Message:
-----------
[MLIR] Fix crash in FrozenRewritePatternSet when PDL lowering is skipped by debug counter (#186159)
When using --mlir-debug-counter=pass-execution-skip=N, the MLIR debug
counter can skip the internal PDL-to-PDLInterp lowering pass that runs
inside FrozenRewritePatternSet's constructor. This caused an assertion
failure in PDLByteCode::Generator::generate() because the PDL module
wasn't properly converted to the interpreter dialect.
The fix adds a check after the PDL lowering pipeline runs to verify that
the expected matcher function symbol was produced. If the symbol is
absent (e.g., because the lowering was skipped by a debug counter),
bytecode generation is skipped entirely and PDL patterns are not
applied. This allows debug counter bisection to work without crashing.
Fixes #131441
Fixes #128342
Assisted-by: Claude Code
Commit: 3a3f863e34aee19295496bba92fa1048fdf2ffa7
https://github.com/llvm/llvm-project/commit/3a3f863e34aee19295496bba92fa1048fdf2ffa7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/sse-minmax-finite.ll
M llvm/test/CodeGen/X86/sse-minmax.ll
Log Message:
-----------
[X86] sse-minmax.ll - add baseline SSE2 test coverage (#187283)
Also removed a load of orphaned RELAX checks
Commit: 9f4a1ebb20541aa14c8f45390c06fb6656e41a8b
https://github.com/llvm/llvm-project/commit/9f4a1ebb20541aa14c8f45390c06fb6656e41a8b
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/include/flang/Parser/message.h
Log Message:
-----------
[flang] Add const-qualified version of parser::Messages::messages() (#187250)
Commit: 080bc2572896c0e02fa81840df978882840b7973
https://github.com/llvm/llvm-project/commit/080bc2572896c0e02fa81840df978882840b7973
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/BasicBlock.h
M llvm/lib/Analysis/FunctionPropertiesAnalysis.cpp
M llvm/lib/Analysis/IR2Vec.cpp
M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
M llvm/lib/Analysis/KernelInfo.cpp
M llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
M llvm/lib/Transforms/IPO/IROutliner.cpp
M llvm/lib/Transforms/IPO/MergeFunctions.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/LoopSimplify.cpp
M llvm/lib/Transforms/Utils/ProfileVerify.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/tools/llvm-ir2vec/lib/Utils.cpp
M llvm/tools/llvm-sim/llvm-sim.cpp
M llvm/unittests/IR/BasicBlockTest.cpp
Log Message:
-----------
[IR][NFCI] Remove *WithoutDebug (#187240)
The function instructionsWithoutDebug serves two uses: skipping debug
intrinsics and skipping pseudo instructions. Nonetheless, these
functions are expensive due to out-of-line filtering using
std::function. Ideally, the filter should be inlined, but that would
require including IntrinsicInst.h in BasicBlock.h.
We no longer use debug intrinsics, so the first use (parameter false) is
no longer needed. The second use is sometimes needed, but the
distinction between PseudoProbe instructions can be made at the call
sites more easily in many cases.
Therefore, remove instructionsWithoutDebug/sizeWithoutDebug.
c-t-t stage2-O3 -0.21%.
Commit: 88f8a2bdb25b7aef4b02df33b859815b7b13216f
https://github.com/llvm/llvm-project/commit/88f8a2bdb25b7aef4b02df33b859815b7b13216f
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/test/Lower/Intrinsics/is_iostat_value.f90
M flang/test/Lower/Intrinsics/ishft.f90
M flang/test/Lower/Intrinsics/ishftc.f90
M flang/test/Lower/Intrinsics/lbound.f90
M flang/test/Lower/Intrinsics/leadz.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 34) (#187175)
Tests converted from test/Lower/Intrinsics: is_iostat_value.f90,
ishft.f90, ishftc.f90, lbound.f90, leadz.f90
Commit: 9871ad1c8a54a4772877622d82ea05d29c1a94bd
https://github.com/llvm/llvm-project/commit/9871ad1c8a54a4772877622d82ea05d29c1a94bd
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
Log Message:
-----------
[VPlan] Rename DataLayout -> DL
To fix the buildbot failure in https://lab.llvm.org/buildbot/#/builders/97/builds/12155
Commit: dc0ba9b4531f74a8aaa415afae666aa3d18adf1b
https://github.com/llvm/llvm-project/commit/dc0ba9b4531f74a8aaa415afae666aa3d18adf1b
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Analysis/CMakeLists.txt
Log Message:
-----------
[flang][acc] Add missing dependency for checking CUF attributes (#187292)
PR https://github.com/llvm/llvm-project/pull/187161 introduced some
logic which checks CUF attributes. But this wasn't added properly to the
dependencies.
Commit: b5ef9e29c5fe12590e1f966c4af35f98185a175f
https://github.com/llvm/llvm-project/commit/b5ef9e29c5fe12590e1f966c4af35f98185a175f
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/test/Dialect/XeGPU/move-gpu-func-to-warp-op.mlir
Log Message:
-----------
[MLIR][XeGPU] Avoid crashing on `gpu.func` missing `gpu.return` (#186330)
Skip malformed `gpu.func` operations in `MoveFuncBodyToWarpOp`.
This prevents functions without a `gpu.return` terminator from
triggering an assertion.
Add a regression test covering a `gpu.func` missing a return terminator,
and switch the existing unknown-op test to `test.unknown` so the file no
longer needs `--allow-unregistered-dialect`.
While touching the test file, trim a few FileCheck lines that were
asserting printer details instead of the transform behavior.
Fix https://github.com/llvm/llvm-project/issues/186037
Commit: a083e19efeb122131843722990ba1e033d1d2f3d
https://github.com/llvm/llvm-project/commit/a083e19efeb122131843722990ba1e033d1d2f3d
Author: John Brawn <john.brawn at arm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/test/Transforms/LoopVectorize/AArch64/maxbandwidth-regpressure.ll
A llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
M llvm/test/Transforms/LoopVectorize/LoongArch/reg-usage.ll
Log Message:
-----------
[VPlan] Add the cost of spills when considering register pressure (#179646)
Currently when considering register pressure is enabled, we reject any
VF that has higher pressure than the number of registers. However this
can result in failing to vectorize in cases where it's beneficial, as
the cost of the extra spills is less than the benefit we get from
vectorizing.
Deal with this by instead calculating the cost of spills and adding that
to the rest of the cost, so we can detect this kind of situation and
still vectorize while avoiding vectorizing in cases where the extra cost
makes it not with it.
Commit: b37f8a54a0b1dac57b52ed84b210bea73ab7c282
https://github.com/llvm/llvm-project/commit/b37f8a54a0b1dac57b52ed84b210bea73ab7c282
Author: Caroline Newcombe <caroline.newcombe at hpe.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/lib/Parser/source.cpp
M flang/test/Semantics/getsymbols02.f90
Log Message:
-----------
[flang] Fix extra "./" prefix in source file paths (#186212)
When a relative file search path in the current working directory was
passed to LocateSourceFile, an extra `./` was appended, producing paths
like "././test.F90". This caused the `__FILE__` macro to expand
incorrectly and did not match the behavior of other Fortran compilers
such as gfortran. This caused failures when running an external test
suites that parses `__FILE__` to generate test log filenames.
In LocateSourceFile and LocateSourceFileAll: do not append the search
path if it is the current working directory (`.`). In all other cases,
append the search path to the file name (original behavior).
The test expectation in getsymbols02.f90 is updated because the old
CHECK patterns matched the buggy "././" output.
Commit: 60c102036acf1508b66b1c3e29ffba10d21a6645
https://github.com/llvm/llvm-project/commit/60c102036acf1508b66b1c3e29ffba10d21a6645
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
A llvm/test/MC/AArch64/tls-dtprel64.s
Log Message:
-----------
[AArch64][AsmParser] Add MC support for %dtprel() relocation (#186599)
This patch adds support for the %dtprel relocation specifier in the
AArch64 assembler. This specifier is used to generate the
R_AARCH64_TLS_DTPREL64 relocation, which is used in .debug_info sections
to describe the location of thread-local variables.
Prerequisite for https://github.com/llvm/llvm-project/pull/146572
Commit: 96ec23096ce73b15546f39fd61d950d03c53842d
https://github.com/llvm/llvm-project/commit/96ec23096ce73b15546f39fd61d950d03c53842d
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/docs/BranchWeightMetadata.rst
M llvm/examples/BrainF/BrainF.cpp
M llvm/examples/Fibonacci/fibonacci.cpp
M llvm/examples/IRTransforms/SimplifyCFG.cpp
M llvm/examples/ParallelJIT/ParallelJIT.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llvm-diff/lib/DifferenceEngine.cpp
M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
M llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
Log Message:
-----------
[tools][examples][NFC] Drop remaining uses of BranchInst (#187293)
This only leaves SandboxIR/SandboxVectorizer, MLIR and Polly before we
can mark BranchInst as deprecated.
Also fix recent introductions from #182223.
Commit: dd9dd1d2f39c8feb650de732540198b96240e4ff
https://github.com/llvm/llvm-project/commit/dd9dd1d2f39c8feb650de732540198b96240e4ff
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/BufferOptimizations.cpp
M mlir/test/Transforms/promote-buffers-to-stack.mlir
Log Message:
-----------
[mlir][bufferization] Fix crash in promote-buffers-to-stack for nested memrefs (#186426)
The `--promote-buffers-to-stack` pass crashes when allocating a memref
whose element type is itself a memref (e.g., `memref<1xmemref<2xf32>>`).
This happens because `defaultIsSmallAlloc` calls
`DataLayout::getTypeSizeInBits` on the element type, but `MemRefType`
(and other types without `DataLayoutTypeInterface`) trigger a fatal
error when queried this way.
Fix the crash by checking whether the element type has data layout
support before computing its size. Types that are not int/float,
complex, index, or vector and do not implement `DataLayoutTypeInterface`
are silently skipped (i.e., the allocation is not promoted).
Fixes #60092
Assisted-by: Claude Code
Commit: bfedc2aa7668a184d1a8bad709f42e2d092b00d6
https://github.com/llvm/llvm-project/commit/bfedc2aa7668a184d1a8bad709f42e2d092b00d6
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M polly/include/polly/CodeGen/IRBuilder.h
M polly/include/polly/CodeGen/Utils.h
M polly/include/polly/ScopDetection.h
M polly/include/polly/Support/ScopHelper.h
M polly/lib/Analysis/ScopBuilder.cpp
M polly/lib/Analysis/ScopDetection.cpp
M polly/lib/CodeGen/BlockGenerators.cpp
M polly/lib/CodeGen/IRBuilder.cpp
M polly/lib/CodeGen/LoopGenerators.cpp
M polly/lib/CodeGen/Utils.cpp
M polly/lib/Support/ScopHelper.cpp
M polly/lib/Transform/CodePreparation.cpp
Log Message:
-----------
[Polly][NFC] Drop uses of BranchInst (#187301)
Commit: 4c745df8bc90d3271a6612bee2fa39afe9ab1dad
https://github.com/llvm/llvm-project/commit/4c745df8bc90d3271a6612bee2fa39afe9ab1dad
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[MLIR][LLVMIR][NFC] Drop uses of BranchInst (#187304)
Commit: 0f5d8a960f7c25570b3eb1ab3663e52b9ea1aa8c
https://github.com/llvm/llvm-project/commit/0f5d8a960f7c25570b3eb1ab3663e52b9ea1aa8c
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes dd9dd1d (#187310)
This fixes dd9dd1d2f39c8feb650de732540198b96240e4ff.
Commit: f60934412000f3d4e28a7907905c5eebcf48b6d3
https://github.com/llvm/llvm-project/commit/f60934412000f3d4e28a7907905c5eebcf48b6d3
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.add.gs.reg.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.sub.gs.reg.rtn.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for ds_add/sub_gs_reg_rtn (#185991)
Commit: 63b44decb547f07e7902bad529c00abab735049e
https://github.com/llvm/llvm-project/commit/63b44decb547f07e7902bad529c00abab735049e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBlock.cpp
M clang/lib/AST/ByteCode/InterpBlock.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
Log Message:
-----------
[clang][bytecode] Allocate local variables in `InterpFrame` tail storage (#185835)
Instead of heap-allocating an `InterpFrame` and then immediately
heap-allocating more space for the local variables, do only one
heap-allocation and use tail storage for the local variables.
We already know how many bytes we need to for the tail storage after
all.
This also makes `InterpFrame` a little smaller since we don't need to
save an explicit pointer for the local variable memory.
For an artificial test case doing lots of function calls with local
variables like:
```c++
constexpr int plus(int a, int b) {
int x = a;
int y = b;
int z = x + y;
return z;
}
constexpr int minus(int a, int b) {
int x = a;
int y = b;
int z = x - y;
return z;
}
constexpr int foo() {
int a = 0;
for (unsigned I = 0; I != 1'000'000; ++I) {
int b = I;
a = plus(a,b );
a = minus(a,I);
}
return a;
}
static_assert(foo() == 0);
```
this saves us over 6%.
We also eliminate the per-argument `Block` heap allocation on the first
pointer-access to an argument the same way. To make this work, we change
the param ops to use the parameter index instead of the offset.
Commit: 9418cdbccab90e0874a3fdc8849d3bd29cc24f7f
https://github.com/llvm/llvm-project/commit/9418cdbccab90e0874a3fdc8849d3bd29cc24f7f
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
R llvm/test/tools/llvm-remarkutil/Inputs/filter.yaml
R llvm/test/tools/llvm-remarkutil/filter.test
A llvm/test/tools/llvm-remarkutil/filter/Inputs/filter.yaml
A llvm/test/tools/llvm-remarkutil/filter/Inputs/filter2.yaml
A llvm/test/tools/llvm-remarkutil/filter/filter-multi.test
A llvm/test/tools/llvm-remarkutil/filter/filter.test
M llvm/tools/llvm-remarkutil/RemarkFilter.cpp
M llvm/tools/llvm-remarkutil/RemarkUtilHelpers.h
Log Message:
-----------
[llvm-remarkutil] filter: Support multiple input files (#187162)
Refactor filter into a FilterTool class that can process multiple input
files sequentially and emits the remarks into a single output file.
Pull Request: https://github.com/llvm/llvm-project/pull/187162
Commit: 1b8db068ed27351a00d71e511e55bb5ce88ac893
https://github.com/llvm/llvm-project/commit/1b8db068ed27351a00d71e511e55bb5ce88ac893
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/include/lldb/Core/Module.h
M lldb/source/Core/Module.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
M lldb/source/Symbol/SymbolFile.cpp
A lldb/test/API/functionalities/compilation-prefix-map/Makefile
A lldb/test/API/functionalities/compilation-prefix-map/TestCompilationPrefixMap.py
A lldb/test/API/functionalities/compilation-prefix-map/main.c
Log Message:
-----------
[PrefixMap] Teach lldb to auto-load compilation-prefix-map.json (#187145)
Add a LoadCompilationPrefixMap() helper in SymbolFile::FindPlugin that
walks up from the symbol file's directory looking for a
compilation-prefix-map.json file. When found, each key→value entry is
applied to the module's source path mapping list, allowing LLDB to
resolve source file paths that were rewritten by -fdebug-prefix-map at
build time without requiring manual `settings set target.source-map`.
The JSON file format maps fake paths (as written into debug info) back
to their real on-disk counterparts:
{ "/fake/srcdir": "/real/srcdir" }
Directory results are cached so the filesystem is walked at most once
per unique directory across all modules loaded in a session.
Also apply the module's source path remappings in
SymbolFileDWARFDebugMap::ParseCompileUnitAtIndex when constructing
compile units from N_SO stabs. This mirrors what MakeAbsoluteAndRemap
does for the dSYM case so that fake paths baked into the debug map are
transparently resolved to real paths.
rdar://84824567
Assisted-By: Claude
Commit: 13a093b2b2508a9a26d47c9b719cffb68756bb99
https://github.com/llvm/llvm-project/commit/13a093b2b2508a9a26d47c9b719cffb68756bb99
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Compute cost for predicated loads/stores to invariant address. (#181572)
Update VPReplicateRecipe::computeCost to compute the cost for stores to
invariant addresses only masked by the header mask.
This matches the legacy cost model logic, but it is slightly odd that
the legacy cost model only seems to do this for stores predicated by the
header mask (i.e. tail-folding and not executed conditionally
otherwise). This is probably something we want to re-evaluate
eventually.
PR: https://github.com/llvm/llvm-project/pull/181572
Commit: 55cee50e6b16502c954b3ff2765a8263d447db31
https://github.com/llvm/llvm-project/commit/55cee50e6b16502c954b3ff2765a8263d447db31
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
Log Message:
-----------
[AMDGPU] Use native instructions for f16 to u16/i16 saturated conversion (#186769)
This addresses one of the limitations of #174726 by directly selecting
`v_cvt_[u16/i16]_f16` instructions for conversion between 16-bit types,
as they already handle saturation internally.
Commit: 16585af33b4dd4e922de479402dac9c36a81d9a0
https://github.com/llvm/llvm-project/commit/16585af33b4dd4e922de479402dac9c36a81d9a0
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
M mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp
Log Message:
-----------
[mlir][acc] Fix bindNameValue for RoutineOp (#187307)
If the routine op only has one of the string or id attributes, the API
was crashing since it was attempting to search in both. Guard each
search individually.
Commit: 7a9299f7f11acc6936ac4cf8fc87e6820f184879
https://github.com/llvm/llvm-project/commit/7a9299f7f11acc6936ac4cf8fc87e6820f184879
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXTHead.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
Log Message:
-----------
[RISCV] Rename add_like pattern -> riscv_add_like (#187306)
Rename to riscv_add_like to discriminate from generic pattern in a future patch
Ideally we'd make the riscv patterns generic but they're currently using value tracking and I'm not sure if we want to that generically?
Commit: 9b0c2a135e078a062a30f0e1282eefbe5a9ea5ed
https://github.com/llvm/llvm-project/commit/9b0c2a135e078a062a30f0e1282eefbe5a9ea5ed
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/predicator.ll
Log Message:
-----------
[NFC] Update `LoopVectorize/predicator.ll` test (#187125)
Align it with the style of `LoopVectorize/VPlan/predicator.ll`:
* Move ascii-graphs close to IR to avoid scrolling through CHECKs when
comparing the picture and actual IR
* Rename `%cN` to ensure that `bbN` branches on `%cN`
Commit: 9dd2e3792a9f7fb5eccf078b66c9e950a5d2fd9c
https://github.com/llvm/llvm-project/commit/9dd2e3792a9f7fb5eccf078b66c9e950a5d2fd9c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
A llvm/test/CodeGen/RISCV/pr186969.ll
Log Message:
-----------
[DAGCombiner] Move the XORHandle in rebuildSetCC inside the while loop. (#187189)
If N was changed on the previous loop iteration, we need the handle to
point at the new N.
Fixes #186969.
Commit: b17db271d030bc63e6de313a4d02610f8489d251
https://github.com/llvm/llvm-project/commit/b17db271d030bc63e6de313a4d02610f8489d251
Author: David Tenty <daltenty at ibm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Headers/CMakeLists.txt
A clang/lib/Headers/endian.h
A clang/test/Headers/endian.c
Log Message:
-----------
[clang][Headers] add endian.h (#186032)
POSIX.1-2024 defines a header called
`endian.h`` which contains macros and helpers for
handling byte order conversions.
Unfortunately it is not available on all platforms, however LLVM libc
has a useful endian.h
implementation that is essentially only casts and
builtins.
This PR draws on that implementation to add a
clang header so applications on
platforms without it can make use of this header.
The clang header forwards to the system header if
available, so existing usages are not affected.
Commit: 2caba086abeb8f10b4d723b3d2cc205f2da7bbc3
https://github.com/llvm/llvm-project/commit/2caba086abeb8f10b4d723b3d2cc205f2da7bbc3
Author: Roman Vinogradov <roman.vinogradov at sap.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M compiler-rt/include/sanitizer/asan_interface.h
M compiler-rt/lib/asan/asan_poisoning.cpp
M compiler-rt/lib/asan/tests/asan_noinst_test.cpp
M compiler-rt/test/asan/TestCases/wild_pointer.cpp
Log Message:
-----------
[ASan] Fix overflow and last byte handling in __asan_region_is_poisoned (#183900)
__asan_region_is_poisoned() uses an exclusive end address
(end = beg + size) to validate the region [beg, end) and to compute
the aligned inner shadow region. This causes correctness issue
near memory range upper boundary and could trigger address space
overflow on 32-bit targets.
1. Incorrect handling of the last byte of a memory range
The implementation checks AddrIsInMem(end) instead of the last
application byte (end - 1). For regions ending at the last byte
of Low/Mid/HighMem (e.g. __asan_region_is_poisoned(kHighMemEnd, 1)),
this returns end (kHighMemEnd + 1) instead of the original
pointer. This behavior is inconsistent with the function’s
semantics and with __asan_address_is_poisoned().
2) address space overflow and invalid shadow range
If a region ends at the top of the virtual address space (kHighMemEnd),
e.g. on 32-bit targets, end = beg + size could wrap to 0.
This violated the invariant beg < end and could trigger
the CHECK failure.
Additionally, overflow in RoundUpTo alignment computations
for aligned_b could produce an invalid shadow region spanning
LowShadow to HighShadow across ShadowGap, leading mem_is_zero()
to access unmapped memory and crash.
Fix by switching to an inclusive last byte:
last = beg + size - 1
All checks are now performed on beg and last. The aligned inner
shadow region is also computed from [beg, last]. Additional guard
for aligned_b prevents the mapping to shadow if aligned_b is wrapped
(in this case the aligned inner region is also empty and doesn't
require the shadow scan via mem_is_zero()).
This fixes incorrect return values at memory range ends and
prevents overflow related crashes on 32-bit targets.
Test is extended to cover these boundary cases.
---------
Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>
Commit: 4e500bd0015042b0cd4b7c87b81caeea06072d24
https://github.com/llvm/llvm-project/commit/4e500bd0015042b0cd4b7c87b81caeea06072d24
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/non-inst-abs-sub-copyable-value.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/buildvector-all-external-scalars.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/small-phi-tree.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/SLP-cmp-cost-query.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/vec-elt-insertion.ll
M llvm/test/Transforms/SLPVectorizer/X86/cse.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-instructions-clear.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-node-with-copyable-operands.ll
M llvm/test/Transforms/SLPVectorizer/X86/expected-prof-consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-bin-op-user.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
M llvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
M llvm/test/Transforms/SLPVectorizer/X86/matching-gather-nodes-phi-users.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
M llvm/test/Transforms/SLPVectorizer/X86/parent-node-split-non-schedulable.ll
M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-extracted-and-externally-used.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_not_all_parts.ll
M llvm/test/Transforms/SLPVectorizer/X86/slp-schedule-use-order.ll
M llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll
M llvm/test/Transforms/SLPVectorizer/consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/freeze-signedness-missed.ll
M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
Revert "[SLP] Loop aware cost model/tree building"
This reverts commit 6261cb4487f153c599a040d7a77524561b520240 to try to
fix compile time regressions
Commit: 6e86ee2c23d73fa2422f64577b676350fc5f3548
https://github.com/llvm/llvm-project/commit/6e86ee2c23d73fa2422f64577b676350fc5f3548
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang/include/clang/Basic/Module.h
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Lex/HeaderSearch.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ModuleFile.h
M clang/include/clang/Serialization/ModuleManager.h
M clang/lib/Basic/Module.cpp
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/Frontend/ASTUnit.cpp
M clang/lib/Frontend/ChainedIncludesSource.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/GlobalModuleIndex.cpp
M clang/lib/Serialization/ModuleManager.cpp
M clang/test/Modules/DebugInfoNamespace.cpp
M clang/test/Modules/ExtDebugInfo.cpp
M clang/test/Modules/ExtDebugInfo.m
M clang/test/Modules/ModuleDebugInfo.cpp
M clang/test/Modules/ModuleDebugInfo.m
M clang/test/Modules/ModuleModuleDebugInfo.cpp
M clang/test/Modules/debug-info-moduleimport.m
M clang/test/Modules/global_index.m
M clang/test/Modules/load-after-failure.m
M clang/test/Modules/module-debuginfo-compdir.m
M clang/test/Modules/module-debuginfo-prefix.m
A clang/test/Modules/relative-module-cache.c
M clang/unittests/Serialization/ForceCheckFileInputTest.cpp
Log Message:
-----------
[clang][modules] Stop uniquing implicit modules via `FileEntry` (#185765)
This PR changes how `ModuleManager` deduplicates module files.
Previously, `ModuleManager` used `FileEntry` for assigning unique
identity to module files. This works fine for explicitly-built modules
because they don't change during the lifetime of a single Clang
instance. For implicitly-built modules however, there are two issues:
1. The `FileEntry` objects are deduplicated by `FileManager` based on
the inode number. Some file systems reuse inode numbers of previously
removed files. Because implicitly-built module files are rapidly removed
and created, this deduplication breaks and compilations may fail
spuriously when inode numbers are recycled during the lifetime of a
single Clang instance.
2. The first thing `ModuleManager` does when loading a module file is
consulting the `FileManager` and checking the file size and modification
time match the expectation of the importer. This is done even when such
module file already lives in the `InMemoryModuleCache`. This introduces
racy behavior into the mechanism that explicitly tries to solve race
conditions, and may lead into spurious compilation failures.
This PR identifies implicitly-built module files by a pair of
`DirectoryEntry` of the module cache path and the path suffix
`<context-hash>/<module-name>-<module-map-path-hash>.pcm`. This gives us
canonicalization of the user-provided module cache path without turning
to `FileEntry` for the PCM file. The path suffix is Clang-generated and
is already canonical.
Some tests needed to be updated because the module cache path directory
was also used as an include directory. This PR relies on not caching the
non-existence of the module cache directory in the `FileManager`. When
other parts of Clang are trying to look up the same path and cache its
non-existence, things break. This is probably very specific to some of
our tests and not how users are setting up their compilations.
Commit: 81d3f04f2990700688bf089040043b23c21fc412
https://github.com/llvm/llvm-project/commit/81d3f04f2990700688bf089040043b23c21fc412
Author: John Brawn <john.brawn at arm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
Log Message:
-----------
[NFC] Fix mve-reg-pressure-spills.ll test (#187316)
This test needs a REQUIRES: asserts, as it uses -debug-only.
Commit: 253616de7e8fa4f410e294867abe3ca4cbafdb79
https://github.com/llvm/llvm-project/commit/253616de7e8fa4f410e294867abe3ca4cbafdb79
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libc/CMakeLists.txt
M libc/cmake/modules/LibcConfig.cmake
R libc/docs/configure.rst
Log Message:
-----------
[libc][docs] Generate configure.rst in the build directory (#187266)
generate_config_doc() was writing configure.rst directly into the source
tree, which fails when building from a read-only source directory (e.g.
when the source is on a read-only filesystem or in a packaging
environment).
The Sphinx build in libc/docs/CMakeLists.txt already copies static .rst
files from the source tree into the build tree so that generated docs
don't pollute the source directory. Move configure.rst generation to
follow this same pattern by writing to LIBC_BUILD_DIR/docs/ instead of
LIBC_SOURCE_DIR/docs/.
This also removes configure.rst from the checked-in source tree, since
it was fully generated content that was being regenerated on every CMake
configure anyway.
Commit: d8545a48685710f51049abf5e95a88c992139596
https://github.com/llvm/llvm-project/commit/d8545a48685710f51049abf5e95a88c992139596
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
Log Message:
-----------
[LoopFusion] Use DA by default for dependence analysis (#187309)
Loop Fusion includes some internal dependence analysis code. Currently
the pass uses both DA and internal code and chooses the best result. The
goal is to use DA for all dependence analysis requirements in fusion.
This patch changes the default value. Removing the code will be done
separately later.
Commit: b11a603a45e11cad6b22840c2f780c66b5635f58
https://github.com/llvm/llvm-project/commit/b11a603a45e11cad6b22840c2f780c66b5635f58
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
M mlir/test/Dialect/Transform/ops-invalid.mlir
Log Message:
-----------
[mlir][Transform] Fix crash in SequenceOp::getEffects when body region is empty (#185063)
When walking operations post-order and erasing blocks, the inner body
block of a nested transform.sequence can be erased while the outer op is
still alive. If printAsOperand is called on the outer block at that
point, it triggers verification, which calls SequenceOp::getEffects ->
getPotentialTopLevelEffects -> getBodyBlock() -> Region::front() on an
empty region, causing an assertion failure in ilist_iterator
('\!NodePtr->isKnownSentinel()').
Fix by checking that the body region is non-empty before passing its
front block to detail::getPotentialTopLevelEffects in the
PossibleTopLevelTransformOpTrait.
Fixes #60213
Assisted-by: Claude Code
Commit: 71664689574754bf5a60f9eb2b2115d72ec33d61
https://github.com/llvm/llvm-project/commit/71664689574754bf5a60f9eb2b2115d72ec33d61
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Transforms/ACCUseDeviceCanonicalizer.cpp
M flang/test/Fir/OpenACC/use-device-canonicalizer.mlir
Log Message:
-----------
[flang][acc] Handle deduplicated use_device (part 2) (#187305)
After https://github.com/llvm/llvm-project/pull/186855 there was still
one additional part of the pass that assumed it was able to erase
acc.use_device. Thus extend the same solution and add test.
Commit: d54da6897375d6d8535df0fa14f1df45bacce74a
https://github.com/llvm/llvm-project/commit/d54da6897375d6d8535df0fa14f1df45bacce74a
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
A llvm/test/tools/llvm-remarkutil/filter/filter-exclude.test
M llvm/tools/llvm-remarkutil/RemarkFilter.cpp
Log Message:
-----------
[llvm-remarkutil] filter: Add --exclude flag (#187163)
Add --exclude to invert filter behavior, keeping all remarks excluding
those matching the filter.
Pull Request: https://github.com/llvm/llvm-project/pull/187163
Commit: ba231aaaa0d137bd08ffd625ab9c1ccc3e2a2fa3
https://github.com/llvm/llvm-project/commit/ba231aaaa0d137bd08ffd625ab9c1ccc3e2a2fa3
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang-tools-extra/clang-doc/assets/clang-doc-mustache.css
Log Message:
-----------
[clang-doc] Enclose documented entities in a card (#185121)
This patch adds a card that encompasses the whole documented entity
instead of just the description. This helps to visually separate the
documentation which was previously more difficult to distinguish. The
description card is also changed to only show a left border to create
less visual noise within the card.
The light theme colors are also changed slightly to not be completely
white.
Commit: f8db5db9586c399d6c134468475632fa7f726b27
https://github.com/llvm/llvm-project/commit/f8db5db9586c399d6c134468475632fa7f726b27
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/unittests/Optimizer/CMakeLists.txt
A flang/unittests/Optimizer/FIRCallInterfaceTest.cpp
Log Message:
-----------
[flang] Fix fir.call setCalleeFromCallable (#187124)
The CallOpInterface setCalleeFromCallable allows either value or
SymbolRef to be passed in. However, the implementation showed an issue
because while it was able to set attribute, it would fall-through and
also try to set value.
This PR improves the implementation to handle updating the callee even
when switching modes (direct vs indirect) and adds testing for these
APIs.
Commit: a2891ff85c6c66899425d066955e91b61306e14a
https://github.com/llvm/llvm-project/commit/a2891ff85c6c66899425d066955e91b61306e14a
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
A llvm/test/Transforms/LoopUnroll/disable-after-count.ll
Log Message:
-----------
Reapply "[LoopUnroll] Remove computeUnrollCount()'s return value" (#187104)
Address
https://github.com/llvm/llvm-project/pull/184529#issuecomment-4074393657
by checking the loop's metadata prior to unrolling.
Commit: a33e9e5047c947cf3d91c85477afbc7bcbd53b17
https://github.com/llvm/llvm-project/commit/a33e9e5047c947cf3d91c85477afbc7bcbd53b17
Author: jimingham <jingham at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/source/Target/StackFrameList.cpp
Log Message:
-----------
Move the call frame edges log messages to the verbose channel. (#187324)
The messages about searching for call edges can be really verbose and
they are only useful if you are explicitly debugging the call edges
feature. Most of the time they are irrelevant and just make the step log
output hard to read.
Commit: 3e09538a42685226d08bd13e0d99106ea3c699fd
https://github.com/llvm/llvm-project/commit/3e09538a42685226d08bd13e0d99106ea3c699fd
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
A libcxx/test/std/containers/associative/lookup_with_converting_comparator.pass.cpp
M libcxx/test/std/containers/associative/map/map.ops/find.pass.cpp
Log Message:
-----------
[libc++] Expand test coverage for converting comparators in associative containers (#187133)
This is in preparation for fixing #187105.
Commit: befaa35212dbaac39cd76a8dc748e4df7c90a0d9
https://github.com/llvm/llvm-project/commit/befaa35212dbaac39cd76a8dc748e4df7c90a0d9
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libcxx/include/__tree
M libcxx/include/string
A libcxx/test/libcxx/type_traits/is_transparently_comparable.compile.pass.cpp
Log Message:
-----------
[libc++] Fix passing through object to comparisons in __tree (#186341)
Fixes #180659
Commit: 872247c702ff4bf8c1db5a8ac4fc3ec50415eba7
https://github.com/llvm/llvm-project/commit/872247c702ff4bf8c1db5a8ac4fc3ec50415eba7
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/Support/NVPTXAddrSpace.h
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXAliasAnalysis.cpp
M llvm/lib/Target/NVPTX/NVPTXForwardParams.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
Log Message:
-----------
[NVPTX] Split Param address space into EntryParam and DeviceParam (NFC) (#186636)
This change begins clarifying and cleaning up some oddities around the
param address-space in NVPTX. PTX supports ".param" loads and stores
referring to both entry (kernel) and device parameters, however these
spaces are actually quite different. Entry param space supports
pointers, and addrspace-casting to generic while device parameter space
can only be refrenced by a parameter plus an immediate offset. This
change accounts for this fact with the following refactors:
- Rename `ADDRESS_SPACE_PARAM` -> `ADDRESS_SPACE_ENTRY_PARAM`. This
reflects the fact that only entry parameter space can be meaningfully
modeled in LLVM IR and that pointers with this AS in llvm IR are always
referring to entry parameters.
- Add `NVPTX::AddressSpace::DeviceParam` for NVPTX MIR instructions.
This is used in NVPTX MIR instructions to signify that they load/store
device parameters. It has a distinct value from
`NVPTX::AddressSpace::EntryParam` so that in the future we can print
these differently on supported PTX versions.
Commit: 480eba33e29440fe8b29021aee4ae281c6abbdc2
https://github.com/llvm/llvm-project/commit/480eba33e29440fe8b29021aee4ae281c6abbdc2
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/source/Core/Module.cpp
M lldb/test/API/functionalities/compilation-prefix-map/TestCompilationPrefixMap.py
Log Message:
-----------
[lldb][PrefixMap] follow up fixes to #187145 (#187337)
Fix and improve #187145 for following issues:
* Fix unhandled error.
* Align the log type with the file where it contains.
* The added test doesn't work on windows host for remote debugging, add
decorator to skip when host and target do not match.
Commit: 81950f6de421bd3d199af0e2cb88a7e3608d6222
https://github.com/llvm/llvm-project/commit/81950f6de421bd3d199af0e2cb88a7e3608d6222
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Dialect/GPU/IR/InferIntRangeInterfaceImpls.cpp
M mlir/test/Dialect/GPU/int-range-interface-cluster.mlir
Log Message:
-----------
[mlir][GPU] Bump static bound on cluster IDs (#187106)
Hardware (like AMD's gfx1250) allows 16 workgroups per cluster, but the
static bound of 8 from many years ago hasn't been updated. This commit
adds such an update and adds a test for that bound.
Commit: b2c2422c2ea97f30b6131c327d9168809c649be9
https://github.com/llvm/llvm-project/commit/b2c2422c2ea97f30b6131c327d9168809c649be9
Author: Hendrik Hübner <117831077+HendrikHuebner at users.noreply.github.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
A clang/test/CIR/CodeGen/Inputs/std-compare.h
A clang/test/CIR/CodeGen/three-way-cmp.cpp
A clang/test/CIR/IR/invalid-cmp3way.cir
Log Message:
-----------
[CIR] Upstream ThreeWayCmpOp (#169963)
This PR upstreams the three way compare op from the incubator repo
---------
Co-authored-by: Hendrik Hübner <hhuebner at Hendriks-MacBook-Pro.local>
Commit: 0ea2e5813f9627a5fc10af6e70641e923c8f2e5e
https://github.com/llvm/llvm-project/commit/0ea2e5813f9627a5fc10af6e70641e923c8f2e5e
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.cpp
A llvm/test/Transforms/LoopVectorize/early_exit_with_outer_loop.ll
R llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll
Log Message:
-----------
[VPlan] Account for early-exit dispatch blocks when updating LI. (#185618)
Now that we can vectorize loops with multiple early exits, we emit
dispatch blocks after the middle block to go to a specific exit or
continue in the dispatch chain.
With that, we need to be a bit more careful when it comes to picking the
loop the dispatch block belongs to. The dispatch block will belong to
the innermost loop of all exit blocks reachable from the current block.
Fixes https://github.com/llvm/llvm-project/issues/185362
PR: https://github.com/llvm/llvm-project/pull/185618
Commit: e9799e51ed32cf5238be03aadd4d8615a6c2cb67
https://github.com/llvm/llvm-project/commit/e9799e51ed32cf5238be03aadd4d8615a6c2cb67
Author: John Harrison <harjohn at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py
M lldb/test/API/tools/lldb-dap/variables/main.cpp
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/SetVariableRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/VariablesRequestHandler.cpp
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/ProtocolUtils.cpp
M lldb/tools/lldb-dap/ProtocolUtils.h
M lldb/tools/lldb-dap/Variables.cpp
M lldb/tools/lldb-dap/Variables.h
M lldb/unittests/DAP/VariablesTest.cpp
Log Message:
-----------
[lldb-dap] Improve support for variables with anonymous fields and types (#186482)
While looking at the '[raw]' value of a std::vector I noticed we didn't
handle the anonymous inner struct very well. The 'evaluateName' was
incorrect (e.g. the evaluateName would return `<var>.` for the anonymous
struct).
This improves support for variables with anonymous fields and anonymous
types.
* Changed the name of anonymous fields from `<null>` to `(anonymous)`,
which matches other tooling like clangd's representation and how types
are presented if the field is not defined.
* Adjusts variables to not return an 'evaluateName' for anonymous
fields.
* Adjusted '[raw]' values to be marked as 'internal' which deemphasizes
them in the UI.
While working in this area, I also consolidated some helpers that are
only used within Variables.cpp.
Before my changes:
<img width="513" height="460" alt="before"
src="https://github.com/user-attachments/assets/3da0aada-8ba3-415d-bbec-56b41a9b9415"
/>
After my changes:
<img width="414" height="467" alt="after"
src="https://github.com/user-attachments/assets/66a47108-ee44-4e01-8eab-e89edb348fde"
/>
Commit: 17158b2ab16dd5d01f5181480415e96b8bb502d3
https://github.com/llvm/llvm-project/commit/17158b2ab16dd5d01f5181480415e96b8bb502d3
Author: Hari Limaye <hari.limaye at arm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
Log Message:
-----------
[InstCombine] Fix comment in SimplifyDemandedUseBits (NFC) (#187126)
Fix the values in the truth table comment for the combine
add iN (sext i1 X), (sext i1 Y) --> sext (X | Y) to iN
Commit: eabcfcee0803c72baa22f1209066b8a9f50076e4
https://github.com/llvm/llvm-project/commit/eabcfcee0803c72baa22f1209066b8a9f50076e4
Author: Kai <47328809+kcloudy0717 at users.noreply.github.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossX.hlsl
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossX-errors.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
A llvm/test/CodeGen/DirectX/QuadReadAcrossX.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/wave-ops.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossX.ll
Log Message:
-----------
[HLSL][DXIL][SPIRV] QuadReadAcrossX intrinsic support (#184360)
This PR adds QuadReadAcrossX intrinsic support in HLSL with codegen for
both DirectX and SPIRV backends. Resolves
https://github.com/llvm/llvm-project/issues/99175.
- [x] Implement QuadReadAcrossX clang builtin
- [x] Link QuadReadAcrossX clang builtin with hlsl_intrinsics.h
- [x] Add sema checks for QuadReadAcrossX to
CheckHLSLBuiltinFunctionCall in SemaChecking.cpp
- [x] Add codegen for QuadReadAcrossX to EmitHLSLBuiltinExpr in
CGBuiltin.cpp
- [x] Add codegen tests to
clang/test/CodeGenHLSL/builtins/QuadReadAcrossX.hlsl
- [x] Add sema tests to
clang/test/SemaHLSL/BuiltIns/QuadReadAcrossX-errors.hlsl
- [x] Create the int_dx_QuadReadAcrossX intrinsic in
IntrinsicsDirectX.td
- [x] Create the DXILOpMapping of int_dx_QuadReadAcrossX to 123 in
DXIL.td
- [x] Create the QuadReadAcrossX.ll and QuadReadAcrossX_errors.ll tests
in llvm/test/CodeGen/DirectX/
- [x] Create the int_spv_QuadReadAcrossX intrinsic in IntrinsicsSPIRV.td
- [x] In SPIRVInstructionSelector.cpp create the QuadReadAcrossX
lowering and map it to int_spv_QuadReadAcrossX in
SPIRVInstructionSelector::selectIntrinsic.
- [x] Create SPIR-V backend test case in
llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossX.ll
Commit: da47ede4b2723f57c6bb3f9fd801d4a1f09c8cd4
https://github.com/llvm/llvm-project/commit/da47ede4b2723f57c6bb3f9fd801d4a1f09c8cd4
Author: Usama Hameed <u_hameed at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/RegisterScavenging.h
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
A llvm/test/CodeGen/AArch64/memtag-stg-loop-reg-pressure.mir
Log Message:
-----------
[AArch64] Fix register scavenger crash when merging MTE stack tags (#186934)
When `-sanitize=memtag-stack` is enabled, `TagStoreEdit::emitLoop`
optimizes contiguous ST2Gi instructions into an STGloop. Because this
runs during PEI (post-register allocation), it spawns two new virtual
registers: BaseReg and SizeReg.
Under high register pressure (e.g., Swift async continuation thunks
where almost all registers are kept live), the Register Scavenger must
rely on emergency spill slots to assign physical registers to BaseReg
and SizeReg.
Previously, the compiler assumed at most one emergency spill slot was
needed. If PEI found an unused Callee-Saved Register (`ExtraCSSpill`),
it bypassed allocating an emergency slot entirely. If no CSRs were free,
it allocated exactly one slot. Because STGloop requires TWO scratch
locations, the scavenger would crash trying to fulfill the second
allocation.
This patch fixes the crash by checking the available scavenger capacity
(Free GPRs + Allocated Emergency Spill Slots) prior to merging
instructions. If there are fewer than 2 available slots, we bail out and
fall back to emitting unrolled ST2Gi instructions, which can be safely
scavenged.
Added a comprehensive MIR test verifying loop formation behavior across
all combinations of free GPRs and emergency spill slots.
Assisted-by: claude
rdar://172501087
Commit: 03f488a0025514a129571a4f632c31a14bff9d22
https://github.com/llvm/llvm-project/commit/03f488a0025514a129571a4f632c31a14bff9d22
Author: Elia Geretto <egeretto at qti.qualcomm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/test/MC/AArch64/global-tagging.ll
Log Message:
-----------
[AsmPrinter][MTE] Support memtag-globals for all AArch64 targets (#187065)
This change ensures that all AArch64 targets can use memtag globals, not
only Android.
Commit: c630b09af7dcf42b147b01a5605db0ab7bf32782
https://github.com/llvm/llvm-project/commit/c630b09af7dcf42b147b01a5605db0ab7bf32782
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
Log Message:
-----------
[CIR][NFC] Remove NYI checks in ternary with cleanup (#186870)
We added those checks when CleanupScopeOp is used to emit an error
message in this edge case until we fix it. Now it's already fixed, and
we don't need to keep the NYI
Commit: d4b86e561752a3ee6a6cba552156d458d2a0b032
https://github.com/llvm/llvm-project/commit/d4b86e561752a3ee6a6cba552156d458d2a0b032
Author: Aleksandr Popov <42888396+aleks-tmb at users.noreply.github.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/IVUsers.h
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/X86/iv-chain-assume-ephemeral.ll
Log Message:
-----------
[LSR] skip ephemeral IV users when collecting IV chains (#187282)
IVUsers records ephemeral values used only by `llvm.assume` as IV
operands in the Processed set. As a result, `CollectChains` picks them
up and builds unnecessary increment chains. Fix this by checking
`IVUsers::isEphemeral` before collecting the chains.
Fixes #187270
Commit: 96299d8d4d3cc2f563d8c1ee77d8fe888343560a
https://github.com/llvm/llvm-project/commit/96299d8d4d3cc2f563d8c1ee77d8fe888343560a
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang-rt/test/Driver/safe-trampoline-gnustack.f90
M flang-rt/test/lit.site.cfg.py.in
Log Message:
-----------
[flang] Disable trampoline test for PPC (NFC) (#187194)
Commit: d226f1b16136def8b3d195cd64e9728389a76c62
https://github.com/llvm/llvm-project/commit/d226f1b16136def8b3d195cd64e9728389a76c62
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs-i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smul.ll
M llvm/test/CodeGen/AMDGPU/add-max.ll
M llvm/test/CodeGen/AMDGPU/add_u64.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-gas.ll
M llvm/test/CodeGen/AMDGPU/bf16-conversions.ll
M llvm/test/CodeGen/AMDGPU/bf16-math.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/bitop3.ll
M llvm/test/CodeGen/AMDGPU/branch-relaxation-gfx1250.ll
M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
M llvm/test/CodeGen/AMDGPU/ds_read2-gfx1250.ll
M llvm/test/CodeGen/AMDGPU/ds_write2.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/flat-load-saddr-to-vaddr.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/fmax3.ll
M llvm/test/CodeGen/AMDGPU/fmin3.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx942.ll
M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/global-address.ll
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_elt.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/intrinsic-amdgcn-s-alloc-vgpr.ll
M llvm/test/CodeGen/AMDGPU/literal64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitop3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.flat.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.e5m3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sat.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk16.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sr.pk.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.flat.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.store.async.from.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.is.private.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.is.shared.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.monitor.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.tr.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.store.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tanh.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tensor.load.store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wave.id.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.amdgcn.wmma.index.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.cos.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.sin.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.sqrt.bf16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i32.ll
M llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
M llvm/test/CodeGen/AMDGPU/loop-prefetch-data.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-bf16.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/mad_u64_u32.ll
M llvm/test/CodeGen/AMDGPU/max.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-barriers.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-workgroup.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-wavefront.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-workgroup.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/minmax.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/packed-fp32.ll
M llvm/test/CodeGen/AMDGPU/preload-implicit-kernargs.ll
M llvm/test/CodeGen/AMDGPU/preload-kernargs.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm-gfx12.ll
M llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
M llvm/test/CodeGen/AMDGPU/s-cluster-barrier.ll
M llvm/test/CodeGen/AMDGPU/s-wakeup-barrier.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-flat.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-global.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-scratch.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-smem.ll
M llvm/test/CodeGen/AMDGPU/sub_u64.ll
M llvm/test/CodeGen/AMDGPU/v_ashr_pk.ll
M llvm/test/CodeGen/AMDGPU/wait-before-stores-with-scope_sys.ll
M llvm/test/CodeGen/AMDGPU/wait-xcnt-atomic-rmw-optimization.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-ds-prefetch-flushed.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-ds-prefetch-pattern.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/workgroup-id-in-arch-sgprs.ll
Log Message:
-----------
[AMDGPU] Regenerate codegen tests to check extra stuff at end of line (#187325)
Regenerate checks after two recent commits that caused extra stuff to be
added at the end of assembly lines, so the existing checks did not fail.
- #179414 added "nv" to loads and stores on GFX1250.
- #185774 added "msbs" comments on setreg instructions.
Commit: 2be4a9b1b2089e5752382c70046b0a8c1901ab85
https://github.com/llvm/llvm-project/commit/2be4a9b1b2089e5752382c70046b0a8c1901ab85
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/predicated-multiple-exits.ll
Log Message:
-----------
[LV] Add predicated early-exit tests showing poison prop issue. (NFC)
Add tests showing incorrect poison propagation from
https://github.com/llvm/llvm-project/issues/187061.
Commit: 360fab623d3ff307bce818fdbf6c524ca5f7c0ff
https://github.com/llvm/llvm-project/commit/360fab623d3ff307bce818fdbf6c524ca5f7c0ff
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
A llvm/test/tools/llvm-mca/RISCV/Inputs/mul-div-rv32.s
A llvm/test/tools/llvm-mca/RISCV/SiFive7/mul-div-rv32.test
Log Message:
-----------
[RISCV] Fix IDiv/IRem scheduling data for RV32 cores that use the SiFive7 model (#187331)
The integer division and remainder instructions on a 32-bit core that
uses SiFive7 scheduling model should have the same latency and
throughput as its word counterparts on a 64-bit SiFive7 core.
This patch fixes those scheduling entries by adding a new SchedPred that
predicates on `Feature64Bit` to toggle the SchedVariant that is attached
on the affected integer division / remainder instructions.
Commit: 5a5c3176ef24cd27168f84b2b16943fdb10e547b
https://github.com/llvm/llvm-project/commit/5a5c3176ef24cd27168f84b2b16943fdb10e547b
Author: RattataKing <amilywu2 at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/include/mlir-c/Target/ExportSMTLIB.h
M mlir/include/mlir/Target/SMTLIB/ExportSMTLIB.h
M mlir/lib/Bindings/Python/DialectSMT.cpp
M mlir/lib/CAPI/Target/ExportSMTLIB.cpp
M mlir/lib/Target/SMTLIB/ExportSMTLIB.cpp
M mlir/test/CAPI/smt.c
Log Message:
-----------
[MLIR][Python] Add optional emit reset to exportSMTLIB (#187366)
Previously, the MLIR's python binding `smt.export_smtlib(...)` always
emit `(reset)` to the end of smtlib string as a solver terminator.
This PR added an option to suppress this trailing, as downstream users
like python z3 module don't need it.
Commit: d1e625c93f8503b8adac19af06271aefd7fe7baa
https://github.com/llvm/llvm-project/commit/d1e625c93f8503b8adac19af06271aefd7fe7baa
Author: Valentyn Yukhymenko <valentin.yukhymenko at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.rst
M clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp
Log Message:
-----------
[clang-tidy] `bugprone-unchecked-optional-access`: Add support for GTest asserts like `ASSERT_TRUE` and `ASSERT_FALSE` (#186363)
Resolves https://github.com/llvm/llvm-project/issues/181737
Addresses false positives reported in
https://github.com/llvm/llvm-project/issues/181737 .
This PR is heavily inspired by
https://github.com/llvm/llvm-project/pull/170947 .
Many thanks to @fmayer for the prior work.
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: fce100e26e7ea3160114183a45b6e1a136928ce4
https://github.com/llvm/llvm-project/commit/fce100e26e7ea3160114183a45b6e1a136928ce4
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/predicated-early-exits-interleave.ll
M llvm/test/Transforms/LoopVectorize/predicated-multiple-exits.ll
M llvm/test/Transforms/LoopVectorize/predicated-single-exit.ll
Log Message:
-----------
[VPlan] Fix masked_cond expansion.
masked_cond is used to combine early-exit conditions with masks from
predicate. The early-exit condition should only be evaluated if the mask
is true. Emit the mask first, to avoid incorrect poison propagation.
Fixes https://github.com/llvm/llvm-project/issues/187061.
Commit: 0b49adc32c8dc738607ba3a24e488607cf02c053
https://github.com/llvm/llvm-project/commit/0b49adc32c8dc738607ba3a24e488607cf02c053
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
M llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
R llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
R llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h
A llvm/lib/Target/AMDGPU/AMDGPUMachineFunctionInfo.cpp
A llvm/lib/Target/AMDGPU/AMDGPUMachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.h
M llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[AMDGPU] Rename AMDGPUMachineFunction to AMDGPUMachineFunctionInfo. NFC. (#187276)
This is derived from MachineFunctionInfo not MachineFunction.
Commit: c95af4078379d91b1460cd86c3c58f5cbe9350f9
https://github.com/llvm/llvm-project/commit/c95af4078379d91b1460cd86c3c58f5cbe9350f9
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/XeVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/XeVMDialect.cpp
M mlir/test/Dialect/LLVMIR/invalid.mlir
M mlir/test/Dialect/LLVMIR/xevm.mlir
Log Message:
-----------
[MLIR][XeVM] Add truncf and mma_mx op. (#180055)
truncf op converts 16 bit floats to 8 bit or 4 bit floats.
mma_mx op does cooperative matrix multiply accumulate on
8 or 4 bit float type with 8bit scale value.
Commit: a9181e8f9d3f0db8dc4feaaef5424b37a62d0c11
https://github.com/llvm/llvm-project/commit/a9181e8f9d3f0db8dc4feaaef5424b37a62d0c11
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
A clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
Log Message:
-----------
[CIR] Fix CFG flattening for loops with cleanup in special regions (#187369)
If a loop required a cleanup scope in the condition or step region of
the loop, we crashed during CFG flattening because the flattening of the
cleanup scope created multiple blocks in the region, but we were
assuming there would only be one block.
This change updates the CFG flattening code to look for the
cir.condition or cir.yield operation in the last block of the region.
Commit: 3de7814b8d2eedcd2d947b178e7e4fce6572e793
https://github.com/llvm/llvm-project/commit/3de7814b8d2eedcd2d947b178e7e4fce6572e793
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
M mlir/test/Conversion/XeVMToLLVM/legalize_large_vector.mlir
Log Message:
-----------
[MLIR][XeVM] Update HandleVectorExtractPattern (#186247)
isExtractContiguousSlice:
- Check if mask size is not greater than the vector size of the operand.
- Check if mask values do not exceed vector size.
HandleVectorExtractPattern:
- Narrow the scope of matching to,
- Source shuffle doing contiguous extract
- Source shuffle with at least the same mask size.
Commit: e044c4ad81f09bba5d31463b2b63f0c27cfc1aca
https://github.com/llvm/llvm-project/commit/e044c4ad81f09bba5d31463b2b63f0c27cfc1aca
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.td
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-gfx1250-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w32-gfx10-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w64-gfx10-err.cl
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/TargetParser/TargetParser.cpp
Log Message:
-----------
[AMDGPU] Add target features for SWMMAC instructions (#185785)
Introduce `swmmac-gfx1200-insts` and `swmmac-gfx1250-insts`
Commit: 752ccf718b713e52741c356889cfde1569e3a0f2
https://github.com/llvm/llvm-project/commit/752ccf718b713e52741c356889cfde1569e3a0f2
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Semantics/OpenACC/bug1583.f90
Log Message:
-----------
[flang][openacc][cuda] Add implicit device attribute for use_device unconditionally (#186844)
For interoperability between CUDA Fortran and OpenACC.
Commit: 227ced1b1eb442fed2196c4a9e80ee00cb97efe3
https://github.com/llvm/llvm-project/commit/227ced1b1eb442fed2196c4a9e80ee00cb97efe3
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
M flang/test/Lower/HLFIR/array-ctor-as-elemental.f90
M flang/test/Lower/HLFIR/array-ctor-as-inlined-temp.f90
M flang/test/Lower/HLFIR/binary-ops.f90
M flang/test/Lower/HLFIR/custom-intrinsic.f90
M flang/test/Lower/Intrinsics/max.f90
M flang/test/Lower/OpenACC/acc-atomic-update-hlfir.f90
M flang/test/Lower/OpenACC/acc-reduction.f90
M flang/test/Lower/OpenMP/atomic-update.f90
M flang/test/Lower/OpenMP/minmax-optional-parameters.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-derivedtype.f90
M flang/test/Lower/OpenMP/reduction-array-intrinsic.f90
M flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90
M flang/test/Lower/OpenMP/wsloop-reduction-max-2-byref.f90
M flang/test/Lower/OpenMP/wsloop-reduction-max-2.f90
M flang/test/Lower/OpenMP/wsloop-reduction-max-byref.f90
M flang/test/Lower/OpenMP/wsloop-reduction-max.f90
M flang/test/Lower/OpenMP/wsloop-reduction-min-byref.f90
M flang/test/Lower/OpenMP/wsloop-reduction-min.f90
M flang/test/Lower/OpenMP/wsloop-reduction-multi.f90
M flang/test/Lower/array-elemental-calls-2.f90
M flang/test/Lower/fp-maxmin-behavior.f90
Log Message:
-----------
[flang] Use integer arith.max/min operations for max/min lowering. (#186466)
arith.maxsi/maxui/minsi/minui are more concise than cmp+select
and probably allow more folding, so we should use it in Flang lowering.
Commit: d70ebc84acd699612df2a33c389589ddbf8ddc93
https://github.com/llvm/llvm-project/commit/d70ebc84acd699612df2a33c389589ddbf8ddc93
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterC.txt
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterSwift.txt
Log Message:
-----------
[lldb][bytecode] Compile pick ops using unsigned literal (#187376)
The `pick` op requires an unsigned integer index. Use the `u` suffix
when generating `pick` operations in the Python->formatter-bytecode
compiler.
Commit: 2a89e249a293f96a0efafefc9df587b995d34b6f
https://github.com/llvm/llvm-project/commit/2a89e249a293f96a0efafefc9df587b995d34b6f
Author: kwyatt-ext <kwyatt.external at hpe.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang-rt/lib/runtime/namelist.cpp
Log Message:
-----------
[flang] [flang-rt] Subscript overrun could occur in namelists during a READ command. (#176959)
NOTE: This is a new pull request, as the prior didn't have labels
properly applied.
If a bad subscript is provided in a namelisted record, the
HandleSubscripts() routine can read off into infinity. This patch
ensures that a read will not go beyond the rank of the expected
variable.
The failure will then be captured in the return status (IOSTAT) of the
READ.
The small test demonstrates the failure before and after the fix.
---------
Co-authored-by: Kevin Wyatt <kwyatt at hpe.com>
Commit: a70f82fab606df7824fa0a8129d0083a86ac40b6
https://github.com/llvm/llvm-project/commit/a70f82fab606df7824fa0a8129d0083a86ac40b6
Author: Jan Voung <jvoung at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp
Log Message:
-----------
[clang][FlowSensitive] Do a quick check and bail early for massive CFGs (#186808)
Bail out early if the visiting each reachable basic block once would
have exceeded the MaxBlockVisits limit. If that is the case, then
actually visiting and doing the dataflow analysis would hit the limit,
but we would have wasted a lot of time.
Another possibility is that we run out of memory (OOM) and the process
crashes. We've seen example of CFGs with # of blocks that are 2-8x the
visit limit. Those examples also have lots of `Locs`, which we track in
MapVectors for each BB. Since the maps do not share memory across BBs,
this leads to non-linear memory usage and OOMing before hitting the max
visit limit. With this, we can avoid OOMing, and at least get some
results for the other CFGs in the TU, instead of losing all results from
the process crashing.
Commit: 04e86fbff043967c6fb367f1063cf1cbeff18854
https://github.com/llvm/llvm-project/commit/04e86fbff043967c6fb367f1063cf1cbeff18854
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/ExecutionEngine/JITLink/Generic/waiting-on-graph-capture-replay.test
Log Message:
-----------
[llvm-jitlink] [test] Add an XFAIL for a JITLink test on MinGW (#186980)
This testcase fails on MinGW targets, because when compiling the main()
function, it gets an implicit call to __main(), which is missing in this
context.
See 4c642b62b99fa128c180f28278637b32be5e5576 and
9b282afb8ac1c810da684591c27faf6117e62e3b for existing precedent for such
XFAILs.
Commit: 89657f726f44e7cb8acd57dad62057c30be24197
https://github.com/llvm/llvm-project/commit/89657f726f44e7cb8acd57dad62057c30be24197
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libc/docs/contributing.rst
M libc/docs/dev/clang_tidy_checks.rst
M libc/docs/dev/implementation_standard.rst
M libc/docs/uefi/support.rst
M libc/docs/uefi/using.rst
Log Message:
-----------
[libc][docs][NFC] Documentation consolidation and de-duplication (#187385)
Summary:
Integrated a series of quick documentation cleanups for LLVM-libc. This
update focuses on de-duplicating core conventions (naming and
namespaces) across multiple developer and contribution guides, and
addresses empty platform stubs for UEFI.
Changes:
* libc/docs/contributing.rst: Removed duplicated code style rules and
provided a link to dev/code_style.rst.
* libc/docs/dev/clang_tidy_checks.rst: Removed redundant namespace
explanations and linked to dev/code_style.rst.
* libc/docs/dev/implementation_standard.rst: Removed repetitive notes
about LIBC_NAMESPACE_DECL and linked to the authoritative reference.
* libc/docs/uefi/support.rst & libc/docs/uefi/using.rst: Added
early-stage bring-up warnings and pointed to the config directory for
the source of truth.
Commit: abdcde9bbc9bc0dfac93057314573fe3b2e7bd9e
https://github.com/llvm/llvm-project/commit/abdcde9bbc9bc0dfac93057314573fe3b2e7bd9e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/non-inst-abs-sub-copyable-value.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/buildvector-all-external-scalars.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/small-phi-tree.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/SLP-cmp-cost-query.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/vec-elt-insertion.ll
M llvm/test/Transforms/SLPVectorizer/X86/cse.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-instructions-clear.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-node-with-copyable-operands.ll
M llvm/test/Transforms/SLPVectorizer/X86/expected-prof-consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-bin-op-user.ll
M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
M llvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
M llvm/test/Transforms/SLPVectorizer/X86/matching-gather-nodes-phi-users.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
M llvm/test/Transforms/SLPVectorizer/X86/parent-node-split-non-schedulable.ll
M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-extracted-and-externally-used.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
M llvm/test/Transforms/SLPVectorizer/X86/remark_not_all_parts.ll
M llvm/test/Transforms/SLPVectorizer/X86/slp-schedule-use-order.ll
M llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll
M llvm/test/Transforms/SLPVectorizer/consecutive-access.ll
M llvm/test/Transforms/SLPVectorizer/freeze-signedness-missed.ll
M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
[SLP] Loop aware cost model/tree building
Currently, SLP vectorizer do not care about loops and their trip count.
It may lead to inefficient vectorization in some cases. Patch adds loop
nest-aware tree building and cost estimation.
When it comes to tree building, it now checks that tree do not span
across different loop nests. The nodes from other loop nests are
immediate buildvector nodes.
The cost model adds the knowledge about loop trip count. If it is
unknown, the default value is used, controlled by the
-slp-cost-loop-min-trip-count=<value> option. The cost of the vector
nodes in the loop is multiplied by the number of iteration (trip count),
because each vector node will be executed the trip count number of
times. This allows better cost estimation.
Original Reviewers:
jdenny-ornl, vporpo, hiraditya, RKSimon
Original PR: https://github.com/llvm/llvm-project/pull/150450
Recommit after revert in c7bd3062f1dac975cf9b706f457b3c55b4bf57ff and in 4e500bd0015042b0cd4b7c87b81caeea06072d24
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/187391
Commit: 8e062105593bee87b89ca99778b30e5695d398d7
https://github.com/llvm/llvm-project/commit/8e062105593bee87b89ca99778b30e5695d398d7
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/errno_t.h
M libc/include/CMakeLists.txt
M libc/include/errno.yaml
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/errno_t.h
Log Message:
-----------
[libc][annex_k] Add errno_t (#163094)
RFC
https://discourse.llvm.org/t/rfc-bounds-checking-interfaces-for-llvm-libc/87685
Add `errno_t` type required by Annex K interface in LLVM libc.
Commit: ca07ca0314bf93bd81a24a54ebfbb3cda607fe6b
https://github.com/llvm/llvm-project/commit/ca07ca0314bf93bd81a24a54ebfbb3cda607fe6b
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/expression.h
M flang/lib/Semantics/expression.cpp
A flang/test/Semantics/bug2381.f90
Log Message:
-----------
[flang] Fix confusing explanatory error message (#187341)
When a reference to a generic procedure fails, the compiler explains why
each of the generic's specific procedures failed to match the actual
arguments. This code had a subtle bug: adjustments to the actual
arguments made for interface checking for earlier specific procedures
would persist and affect the checks for later specific procedures.
Commit: a67c3b746836564b4f69a22c53a4a29b324b3e16
https://github.com/llvm/llvm-project/commit/a67c3b746836564b4f69a22c53a4a29b324b3e16
Author: Anshul Nigham <nigham at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir
M llvm/test/CodeGen/AArch64/bsp_implicit_ops.mir
M llvm/test/CodeGen/AArch64/expand-blr-rvmarker-pseudo.mir
M llvm/test/CodeGen/AArch64/expand-constructive-zzi.mir
M llvm/test/CodeGen/AArch64/expand-load-got-pseudo.mir
M llvm/test/CodeGen/AArch64/expand-movi-renamable.mir
M llvm/test/CodeGen/AArch64/expand-sme-pseudos.mir
M llvm/test/CodeGen/AArch64/expand-subs-pseudo.mir
M llvm/test/CodeGen/AArch64/movimm-expand-ldst.mir
M llvm/test/CodeGen/AArch64/movimm-wzr.mir
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryComm-merging.mir
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryCommWithRev-merging.mir
M llvm/test/CodeGen/AArch64/sve-pseudos-expand-undef.mir
M llvm/test/CodeGen/AArch64/sve2-bitsel-pseudos-expansion.mir
M llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
Log Message:
-----------
[NewPM] Adds a port for AArch64ExpandPseudo (#187332)
Adds a port for AArch64ExpandPseudo to NewPM.
- Refactored lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp to extract
base logic as Impl
- Renamed existing pass with "Legacy" suffix and updated references
- Added NewPM pass AArch64ExpandPseudoPass
- Updated tests
Following tests mention this pass but weren't migrated because they need
a full codegen pipeline which doesn't exist yet.
```
LLVM :: CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
LLVM :: CodeGen/AArch64/addg_subg.mir
LLVM :: CodeGen/AArch64/rvmarker-pseudo-expansion-and-outlining.mir
LLVM :: CodeGen/AArch64/spillfill-sve.mir
LLVM :: CodeGen/AArch64/subreg_to_reg_coalescing_issue.mir
```
Commit: 3cf80812f0075f8c5f65d8f3c776584b5827df44
https://github.com/llvm/llvm-project/commit/3cf80812f0075f8c5f65d8f3c776584b5827df44
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
A llvm/test/tools/llvm-remarkutil/filter/Inputs/filter-unsorted.yaml
A llvm/test/tools/llvm-remarkutil/filter/filter-sort-dedupe.test
M llvm/tools/llvm-remarkutil/RemarkFilter.cpp
Log Message:
-----------
[llvm-remarkutil] filter: Add --sort and --dedupe flags (#187338)
Add `--sort` to emit remarks in sorted order and `--dedupe` to
deduplicate identical remarks. Only if these options are requested,
remarks need to be buffered into a sorted map before emission.
Pull Request: https://github.com/llvm/llvm-project/pull/187338
Commit: f4199fa996269bb5beb8b3f82a96f9d4642246ab
https://github.com/llvm/llvm-project/commit/f4199fa996269bb5beb8b3f82a96f9d4642246ab
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/git-llvm-push
M llvm/utils/git-llvm-push.md
Log Message:
-----------
[Utils] Add --use-gh-cli-token flag
This enables automatically getting the token from the gh CLI tool which
was a requested feature.
Reviewers: petrhosek, ilovepi
Reviewed By: petrhosek, ilovepi
Pull Request: https://github.com/llvm/llvm-project/pull/186695
Commit: 3f36e7030f3086446be6131d5fd03d4b645611c7
https://github.com/llvm/llvm-project/commit/3f36e7030f3086446be6131d5fd03d4b645611c7
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/Remarks/RemarkStreamer.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/Remarks/RemarkStreamer.cpp
M llvm/test/CodeGen/X86/remarks-section.ll
Log Message:
-----------
[AsmPrinter] Only warn about unsupported remarks section if requested (#187362)
Remarks sections are no longer necessary for basic functioning of
bitstream remarks, so only fire a warning if remarks sections are
force-enabled.
Pull Request: https://github.com/llvm/llvm-project/pull/187362
Commit: 0d01afffe123818c4f1761a366a5c04ba220b342
https://github.com/llvm/llvm-project/commit/0d01afffe123818c4f1761a366a5c04ba220b342
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/utils/git-llvm-push
Log Message:
-----------
[Utils] Format git-llvm-push
So that I do not constantly run into formatting diffs when working on
future PRs.
Commit: fb39a5d6afe1ba7ea107ae39a0242080e5a0fdca
https://github.com/llvm/llvm-project/commit/fb39a5d6afe1ba7ea107ae39a0242080e5a0fdca
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M flang/docs/Extensions.md
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Support/Fortran-features.cpp
A flang/test/Evaluate/bug2418.f90
Log Message:
-----------
[flang] Better handling of ALLOCATED(pointer) error (#186622)
Some legacy compilers accept a reference to the intrinsic function
ALLOCATED with a pointer argument. (Pointers should be checked with
ASSOCIATED instead, of course.) Emit a good warning, but also interpret
the call to ALLOCATED with a pointer argument as if it had been
correctly spelled. Test that this only applies to the intrinsic
ALLOCATED, not a user-defined function.
Commit: fb36a54ef6bc3e35aa496cb9b8494b4a10a9d00c
https://github.com/llvm/llvm-project/commit/fb36a54ef6bc3e35aa496cb9b8494b4a10a9d00c
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M lldb/include/lldb/Utility/Log.h
M lldb/source/Breakpoint/WatchpointAlgorithms.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Core/ModuleList.cpp
M lldb/source/DataFormatters/FormatManager.cpp
M lldb/source/DataFormatters/FormatterBytecode.cpp
M lldb/source/Expression/FunctionCaller.cpp
M lldb/source/Expression/IRInterpreter.cpp
M lldb/source/Expression/Materializer.cpp
M lldb/source/Host/common/Socket.cpp
M lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
M lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
M lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
M lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp
M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolLocator/DebugSymbols/SymbolLocatorDebugSymbols.cpp
M lldb/source/Plugins/SymbolLocator/Debuginfod/SymbolLocatorDebuginfod.cpp
M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
M lldb/source/Target/Memory.cpp
M lldb/source/Target/Process.cpp
M lldb/source/Target/SectionLoadList.cpp
M lldb/source/Target/StackFrameList.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/source/Target/ThreadPlanStepInRange.cpp
M lldb/source/Target/ThreadPlanStepInstruction.cpp
M lldb/source/Target/ThreadPlanStepOut.cpp
M lldb/source/Target/ThreadPlanStepRange.cpp
M lldb/source/Target/ThreadPlanStepThrough.cpp
M lldb/source/Target/UnwindLLDB.cpp
M lldb/source/Utility/Listener.cpp
M lldb/source/Utility/StringList.cpp
M lldb/unittests/Utility/LogTest.cpp
Log Message:
-----------
[lldb] Rename formatv verbose log call, misc log cleanups [NFC] (#186951)
lldb had three preprocessor defines for logging,
LLDB_LOG - formatv style argument
LLDB_LOGF - printf style argument
LLDB_LOGV - formatv style argument, only when verbose enabled
If you weren't looking at Log.h and the definition of these three, and
wanted to log something with formatv, it was easy to use LLDB_LOGV by
accident. We just had a situation where an important log statement
wasn't logging and it turned out to be this. This is fragile if you
aren't looking at the header directly, so I'd like to make this more
explicit. My proposal:
LLDB_LOG - formatv style argument
LLDB_LOG_VERBOSE - formatv style argument, only when verbose enabled
LLDB_LOGF - printf style argument
LLDB_LOGF_VERBOSE - printf style argument, only when verbose enabled
The new fouth one is to remove several places where we do `if (log &&
log->GetVerbose()) LLDB_LOGF (...)` in the sources today, and make both
styles consistent.
This PR implements that change, mechanically changing all LLDB_LOGV's to
LLDB_LOG_VERBOSE.
It also updates many of the `if (log && log->GetVerbose()) LLDB_LOGF`'s.
Some uses of this conditional expression do extra calculations in
addition to logging, and so those were left as-is so we're not doing
throwaway work when running without verbose logging.
There were many instances throughout lldb where callers are still doing
`if (log) LLDB_LOG*(...)`, a remnant of when all calls were to the `Log`
object's `Printf()` method, and you had to check if your local Log*
pointer was non-nullptr before calling the method. I removed those,
again keeping ones where work for logging is done in the block of code.
The code changes are all mechanical and uninteresting, but the question
of whether this naming change is widely agreed on is maybe worth
discussing.
Commit: fc2c965394b4f9f94f1e263fe23ef49a49a690fb
https://github.com/llvm/llvm-project/commit/fc2c965394b4f9f94f1e263fe23ef49a49a690fb
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/Passes/PassRegistry.def
Log Message:
-----------
[Passes] Remove redundant semicolon from PassRegistry.def
Makes it consistent with the rest of the file and fixes a clang-tidy
warning.
Commit: 42b75ed85fcb5d67a71ca858e760d215c4e693d4
https://github.com/llvm/llvm-project/commit/42b75ed85fcb5d67a71ca858e760d215c4e693d4
Author: Manthan Singla <manthan02426 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/shared/math.h
A libc/shared/math/bf16divf128.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/bf16divf128.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/bf16divf128.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math] Refactor bf16divf128 to Header Only (#186641)
closes #181024
Commit: 53f8f3b0179414a6923ae9aab33c6bb64c5d08b0
https://github.com/llvm/llvm-project/commit/53f8f3b0179414a6923ae9aab33c6bb64c5d08b0
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/low-trip-count.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
A llvm/test/Transforms/LoopVectorize/RISCV/zvl1024b-crash.ll
Log Message:
-----------
Reland [LV] Replace remaining LogicalAnd to vp.merge in EVL optimization. (#184068) (#187199)
This patch replace the remaining LogicalAnd to vp.merge in the second
pass to not break the `m_RemoveMask` pattern in the optimizeMaskToEVL.
Also skip cost model comparison when the plan contains `vp_merge` which
won't be calculated by the legacy model.
This can help to remove header mask for FindLast reduction (CSA) loops.
Original PR: https://github.com/llvm/llvm-project/pull/184068
Original built-bot failure:
https://lab.llvm.org/buildbot/#/builders/213/builds/2497
Commit: 80034dd582d32092380a81529f51ed86c38514cb
https://github.com/llvm/llvm-project/commit/80034dd582d32092380a81529f51ed86c38514cb
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/rsize_t.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/rsize_t.h
Log Message:
-----------
[libc][annex_k] Add rsize_t (#163238)
RFC
https://discourse.llvm.org/t/rfc-bounds-checking-interfaces-for-llvm-libc/87685
Add `rsize_t` type required by Annex K interface in LLVM libc.
Commit: 77066a3d33db920d8f9ad122366f70d9297cffcd
https://github.com/llvm/llvm-project/commit/77066a3d33db920d8f9ad122366f70d9297cffcd
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/PassManager.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromBBs.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromBBs.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.cpp
A llvm/test/Transforms/SandboxVectorizer/seed_collection.ll
M llvm/unittests/SandboxIR/PassTest.cpp
Log Message:
-----------
[SandboxVec][SeedCollection] Aux pass argument for enabling different types (#155079)
This patch implements the auxiliary pass argument, a secondary argument
that can be passed to Sandbox IR passes.
It also updates the SeedCollection pass to accept the auxiliary argument
"enable-diff-types", which enables collection of seeds of different
types. This will be used in a follow-up patch.
Commit: 8176bc0e9b5335483ec1f17c9b13781dd6bd3c96
https://github.com/llvm/llvm-project/commit/8176bc0e9b5335483ec1f17c9b13781dd6bd3c96
Author: joaosaffran <joaosaffranllvm at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
A llvm/test/CodeGen/DirectX/ShaderFlags/overflow-uavs-array.ll
A llvm/test/CodeGen/DirectX/ShaderFlags/unbounded-uavs-array.ll
Log Message:
-----------
[HLSL][SPIRV] Use 0 to represent unbounded arrays on shader flags (#187174)
this patch updates the shader flags to account for 0 being used to
represent unbounded arrays. This was a missed updated from the previous
pr #186022. This change is required to make sure the following offload
test pass dxv validation:
```
OffloadTest-clang-d3d12 :: Feature/ResourceArrays/multi-dim-unbounded-array-nuri.test
OffloadTest-clang-d3d12 :: Feature/ResourceArrays/multi-dim-unbounded-array.test
OffloadTest-clang-d3d12 :: Feature/ResourceArrays/unbounded-array-nuri.test
OffloadTest-clang-d3d12 :: Feature/ResourceArrays/unbounded-array.test
```
---------
Co-authored-by: Joao Saffran <jderezende at microsoft.com>
Commit: 39b6a4d84ad8cc3a798a3373be5b559e1f086650
https://github.com/llvm/llvm-project/commit/39b6a4d84ad8cc3a798a3373be5b559e1f086650
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/include/clang/AST/HLSLResource.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Sema/SemaHLSL.h
M clang/lib/AST/CMakeLists.txt
A clang/lib/AST/HLSLResource.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/AST/HLSL/resources-in-structs-errors.hlsl
A clang/test/AST/HLSL/resources-in-structs.hlsl
Log Message:
-----------
[HLSL] Add globals for resources embedded in structs (#184281)
For each resource or resource array member of a struct declared at global scope or inside a `cbuffer`, create an implicit global variable of the same resource type. The variable name will be derived from the struct instance name and the member name and will be associated with the struct declaration using a new attribute `HLSLAssociatedResourceDeclAttr`.
Closes #182988
Commit: d434d82010be4febba9bc2c208fef2196e5922bb
https://github.com/llvm/llvm-project/commit/d434d82010be4febba9bc2c208fef2196e5922bb
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/mlgo-utils/mlgo/corpus/extract_ir_lib.py
M llvm/utils/mlgo-utils/mlgo/corpus/make_corpus_lib.py
Log Message:
-----------
[MLGO] Modernize type annotations in mlgo-utils (#187408)
Use the 3.10+ syntax while supporting older versions usin an import from
__future__.
Commit: 015e3d2b20924e966345d3c493fb16f2fa3160b4
https://github.com/llvm/llvm-project/commit/015e3d2b20924e966345d3c493fb16f2fa3160b4
Author: Ross Burton <ross.burton at arm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M compiler-rt/lib/asan/scripts/asan_symbolize.py
M compiler-rt/lib/fuzzer/scripts/unbalanced_allocs.py
M compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
M compiler-rt/lib/sanitizer_common/scripts/sancov.py
Log Message:
-----------
[compiler-rt] Unify python shebangs (#187285)
As per PEP-0394[1], there is no real concensus over what binary names
Python has, specifically 'python' could be Python 3, Python 2, or not
exist.
However, everyone has a python3 interpreter and the scripts are all
written for Python 3. Unify the shebangs so that the ~50% of shebangs
that use python now use python3.
[1] https://peps.python.org/pep-0394/
Commit: 3fdec1c9f9469587de24a525b48aa6ceddc392f5
https://github.com/llvm/llvm-project/commit/3fdec1c9f9469587de24a525b48aa6ceddc392f5
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/test/CXX/drs/cwg24xx.cpp
Log Message:
-----------
[clang] Enable exceptions in CWG2486 test (#187195)
In #107131 I totally missed the fact that the entire `cwg24xx.cpp` was
running without exceptions. This patch rectifies that, and uncovers one
diagnostic in pre-C++17 modes that CWG2486 test was missing.
Commit: 291359be687ef15e2278877ebecc20efa124cbb3
https://github.com/llvm/llvm-project/commit/291359be687ef15e2278877ebecc20efa124cbb3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[SelectionDAG] Move the call to BuildExactSDIV and BuildExactUDIV to the top of BuildSDIV/BuildUDIV. (#187378)
This moves it above the type legality check. The legality check we use
for the main division by constant algorithm is probably not right for
BuildExactSDIV and BuildExactSDIV. These checks are largely about the
legality of MUL_LOHI/MULH which are not used for the exact case.
This patch removes the legal type check for the exact case. If we do
need a check it's probably better to have a specific version in
BuildExactSDIV and BuildExactSDIV.
I'm hoping to do some refactoring of the legality checks in
BuildSDIV/BuildUDIV so separating them makes this easier.
Commit: f1c8b9b4aad9e04501102b48d9abedd7f48b7af3
https://github.com/llvm/llvm-project/commit/f1c8b9b4aad9e04501102b48d9abedd7f48b7af3
Author: TPPPP <TPPPP72 at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaObjC.cpp
A clang/test/Sema/gh183974.c
Log Message:
-----------
[Clang] Fix assertion when __block is used on global variables in C mode (#183988)
I added an extra check in handleBlocksAttr to ensure that illegal Decl
values are not passed to downstream functions.
Fixes #183974
Commit: 8c1896d9067b11ec4097a6f80e103caacabcf808
https://github.com/llvm/llvm-project/commit/8c1896d9067b11ec4097a6f80e103caacabcf808
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Compare nodes by pointer instead of by ID in `readability-else-after-return` (#187363)
Node IDs are designed to be stable *across different runs of the
compiler*. This check doesn't need such a strong guarantee, so using
them here introduces unnecessary cost and complexity.
Commit: 2e6740541ba908100a37151cb3892c1d47b3a3ba
https://github.com/llvm/llvm-project/commit/2e6740541ba908100a37151cb3892c1d47b3a3ba
Author: David Tenty <daltenty at ibm.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/lib/Headers/endian.h
Log Message:
-----------
[clang][headers][endian.h] include_next in freestanding (#187380)
Remove the `__STDC_HOSTED__` check to allow us to also include the
platform header instead in freestanding mode
Commit: 4db2ce4d546f598cd0886ef859561f16277b80ea
https://github.com/llvm/llvm-project/commit/4db2ce4d546f598cd0886ef859561f16277b80ea
Author: Mohamed Emad <hulxxv at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/shared/math.h
A libc/shared/math/daddf128.h
A libc/shared/math/daddl.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/daddf128.h
A libc/src/__support/math/daddl.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/daddf128.cpp
M libc/src/math/generic/daddl.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math] Refactor dadd family to header-only (#182142)
Closes https://github.com/llvm/llvm-project/issues/182141
Commit: 55607559203cdb2a4e46ef7b6cea2e2994a58763
https://github.com/llvm/llvm-project/commit/55607559203cdb2a4e46ef7b6cea2e2994a58763
Author: Zeyi Xu <zeyi2 at nekoarch.cc>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenACC/acc-atomic-validity.f90
M flang/test/Semantics/OpenACC/acc-wait-validity.f90
Log Message:
-----------
[flang][OpenACC] Fix crash on invalid clauses in WAIT and ATOMIC constructs (#187263)
`AccAttributeVisitor` lacked Pre/Post visitors for
`OpenACCWaitConstruct` and `OpenACCAtomicConstruct`, which would lead to
a crash. This commit adds them.
As of AI Usage: Gemini 3 is used for pre-commit reviewing.
Closes #140281
Commit: f554fcfd0b757022319e8e85f817e7d563adc713
https://github.com/llvm/llvm-project/commit/f554fcfd0b757022319e8e85f817e7d563adc713
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Semantics/OpenACC/bug1583.f90
Log Message:
-----------
Revert "[flang][openacc][cuda] Add implicit device attribute for use_device unconditionally" (#187438)
Reverts llvm/llvm-project#186844
This is causing some not yet implemented: lowering symbol to HLFIR
Commit: 79042e701b7bfd0fe3ffcd3a155c0c8f5b2e2eaa
https://github.com/llvm/llvm-project/commit/79042e701b7bfd0fe3ffcd3a155c0c8f5b2e2eaa
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M clang/docs/ClangFormatStyleOptions.rst
M clang/include/clang/Format/Format.h
M clang/lib/Format/Format.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/TokenAnnotator.h
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Add LeaveAll to the BreakAfterAttributes option (#187204)
Closes #163537
Commit: 9e6ce65962c4346f69de9cea7eec1ce957f2ef23
https://github.com/llvm/llvm-project/commit/9e6ce65962c4346f69de9cea7eec1ce957f2ef23
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_tan.inc
Log Message:
-----------
libclc: Fix vector float tan (#187387)
Commit: e3198dbe59abeb18dfeddc855a43d6bf44a23c15
https://github.com/llvm/llvm-project/commit/e3198dbe59abeb18dfeddc855a43d6bf44a23c15
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/gentype.inc
M libclc/clc/lib/generic/geometric/clc_length.inc
Log Message:
-----------
libclc: Move FLT_MIN gentype macros (#187272)
Commit: 3e90e1a26fd18476b27f3ca3faded0d6fde9ca1d
https://github.com/llvm/llvm-project/commit/3e90e1a26fd18476b27f3ca3faded0d6fde9ca1d
Author: Wendi <uwendi at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/docs/GettingInvolved.rst
Log Message:
-----------
[docs][QualGroup] Update Qualification WG sync-up schedule and calendar links (#186011)
This updates the LLVM Qualification Working Group entry in
`GettingInvolved` to reflect:
- the reintroduced two-meeting setup
- EU/Asia: 2nd Tuesday of the month
- Americas: 2nd Friday JST of the month (Thursday in US/Canada)
- the new shared Google Calendar links
Commit: 1c3c349cf8a30c97335351897e92c429d0756d2e
https://github.com/llvm/llvm-project/commit/1c3c349cf8a30c97335351897e92c429d0756d2e
Author: Marco Barbone <DiamonDinoia at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/tools/clang-format/git-clang-format
Log Message:
-----------
[clang-format] Fix stale .lock files in git-clang-format (#187379)
Dear team, this is my first contribution. I used Claude to investigate
the problem as I do not know the codebase too well. I read the policy
and AI assistance is allowed. Let me know if I am violating any policy
or if there are any problems I am more than happy to fix them.
Thanks for you patience.
`git-clang-format` uses a fixed path (`.git/clang-format-index`) for its
temporary index file. When concurrent git operations interact with this
file (most commonly via the [pre-commit](https://pre-commit.com/)
framework), git's internal locking creates
`.git/clang-format-index.lock` which persists after abnormal exits,
**blocking all subsequent commits**.
The fix replaces the fixed path with a unique temporary file via
`tempfile.mkstemp()`.
## How to reproduce
1. Add `git-clang-format --staged` as a
[pre-commit](https://pre-commit.com/) hook:
```yaml
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: clang-format-staged
name: clang-format (staged hunks)
entry: git-clang-format --binary clang-format --staged
language: python
additional_dependencies: [clang-format==22.*]
pass_filenames: true
types_or: [c++, c, cuda]
files: \.(c|cc|cpp|h|hpp|cu|cuh)$
```
2. Stage C/C++ files and run git commit repeatedly. After a few commits
(especially ones where clang-format modifies files), the hook leaves
behind
.git/clang-format-index.lock.
3. All subsequent commits fail with:
```
fatal: Unable to create '/path/to/repo/.git/clang-format-index.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
error: `git update-index --add -z --index-info` failed
```
The only recovery is rm .git/clang-format-index.lock.
### Root cause
create_temporary_index() in clang/tools/clang-format/git-clang-format
writes to a fixed, non-unique path:
```
path = os.path.join(gitdir, temp_index_basename) # always ".git/clang-format-index"
```
When git update-index operates on this file, git creates
clang-format-index.lock. If the process is interrupted (pre-commit
timeout, signal, or concurrent git operations from other hooks in the
same pipeline), the lock file is never cleaned up. The
temporary_index_file() context manager removes the index file on exit
but not the .lock file that git creates alongside it.
### Fix:
Replace the fixed path with tempfile.mkstemp(), so each invocation gets
a unique filename. This eliminates both the stale lock problem and any
potential race between concurrent invocations.
```
Commit: bdfd9725afd12f4a6c526be9d26957ceadd1bf30
https://github.com/llvm/llvm-project/commit/bdfd9725afd12f4a6c526be9d26957ceadd1bf30
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/CMakeLists.txt
A libclc/clc/lib/generic/subnormal_config.cl
M libclc/opencl/lib/clspv/CMakeLists.txt
M libclc/opencl/lib/generic/CMakeLists.txt
R libclc/opencl/lib/generic/subnormal_config.cl
Log Message:
-----------
libclc: Move subnormal config file to clc (#187354)
Commit: ca5e4bcc571518e22cbad8cad2c4b6f09c1d56df
https://github.com/llvm/llvm-project/commit/ca5e4bcc571518e22cbad8cad2c4b6f09c1d56df
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/ScanningProjectModules.cpp
Log Message:
-----------
[NFC] [clangd] [Modules] Leave more log for failing cases (#187448)
This is useful for users and developers to understand what happens.
Commit: ae66911399b7f6f58a3f57a9ab11896c4d493953
https://github.com/llvm/llvm-project/commit/ae66911399b7f6f58a3f57a9ab11896c4d493953
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/include/lldb/Interpreter/ScriptInterpreter.h
M lldb/include/lldb/Target/Platform.h
M lldb/source/Interpreter/ScriptInterpreter.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Target/Platform.cpp
Log Message:
-----------
[lldb][Platform][NFC] Move SanitizedScriptingModuleName into ScriptInterpreter (#187229)
In preparation for https://github.com/llvm/llvm-project/pull/187031
The `SanitizedScriptingModuleName` will be re-used from `Platform` (in
addition to `PlatformDarwin` where it currently lives). To do that we'll
need to move it to a common place. `ScriptInterpreter` seems like the
most natural place for this to live.
I introduced a new virtual `GetSanitizedScriptingModuleName` that
`ScriptInterpreter`s can override in the future if they have their own
sanitization logic. I made the default implementation the one we've been
using for Python because that way the unit-tests that currently mock the
`ScriptInterpreter` don't need to copy the implementation.
Also made `WarnIfInvalidUnsanitizedScriptExists` a protected static
function on `Platform` because it didn't seem right for that to also
live in `ScriptInterpreter`.
Commit: 07ff1a63dac5f8badadafdc84931de82da1ff7e7
https://github.com/llvm/llvm-project/commit/07ff1a63dac5f8badadafdc84931de82da1ff7e7
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
M clang/unittests/Tooling/CompilationDatabaseTest.cpp
Log Message:
-----------
[CompilationDatabase] Treat .cppm file as C++ in InterpolatingCompilationDatabase (#187446)
Inspired by https://github.com/clangd/clangd/issues/2589
it seems like we lost the flag for "-std=c++26" there and we meet odd
error messgae like the std ver is not correct. and it turns out we
simply didn't interpret .cppm file as C++ in some corner of the
codebase.
Commit: a54c1490611c2c52dc940dd9a6e299f643aa4ad5
https://github.com/llvm/llvm-project/commit/a54c1490611c2c52dc940dd9a6e299f643aa4ad5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_subnormal_config.h
M libclc/clc/include/clc/math/math.h
M libclc/clc/lib/generic/math/clc_ldexp.cl
M libclc/clc/lib/generic/subnormal_config.cl
Log Message:
-----------
libclc: Invert subnormal checks (#187355)
The base case is correct denormal handling, not flushing. This
also matches the spec controls, which starts at IEEE and
flushing is enabled with -cl-denorms-are-zero.
Also fix wrong defaults for half and double. Denormal support is
not optional for these.
Commit: c800afd65e121410d539c4210f73285fffee548b
https://github.com/llvm/llvm-project/commit/c800afd65e121410d539c4210f73285fffee548b
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidy.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm
M clang-tools-extra/test/lit.cfg.py
M clang/include/clang/ASTMatchers/ASTMatchFinder.h
M clang/lib/ASTMatchers/ASTMatchFinder.cpp
Log Message:
-----------
[clang-tidy] [Modules] Skip checking decls in clang-tidy (#145630)
Close https://github.com/llvm/llvm-project/issues/145628
Note that I am not sure if this is the proper fix. On the one hand, the
fix lives in ASTMachers instead of clang-tidy. On the other hand, I feel
this may be a more general fix.
And if you don't feel good about this and you have a clear mindset how
to fix this, feel free to take it.
Commit: 0960f0b8feb33ee9d4183b1d3e3361f872ac90bd
https://github.com/llvm/llvm-project/commit/0960f0b8feb33ee9d4183b1d3e3361f872ac90bd
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_subnormal_config.h
M libclc/clc/include/clc/math/gentype.inc
M libclc/clc/lib/generic/subnormal_config.cl
M libclc/clc/lib/spirv/CMakeLists.txt
A libclc/clc/lib/spirv/subnormal_config.cl
Log Message:
-----------
libclc: Really implement denormal config checks (#187356)
These should be implementable by checking the behavior of
the canonicalize intrinsic. Hack around spirv still failing
on canonicalize by overriding and assuming DAZ for float.
Commit: 9b7c437033b2a40fd0c13ffd266f1de0b908a8ef
https://github.com/llvm/llvm-project/commit/9b7c437033b2a40fd0c13ffd266f1de0b908a8ef
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A libclc/clc/include/clc/math/clc_get_twobypi_bits.h
A libclc/clc/include/clc/math/clc_get_twobypi_bits_decl.inc
M libclc/clc/include/clc/math/clc_sincos_helpers_fp64_decl.inc
M libclc/clc/include/clc/math/tables.h
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/math/clc_get_twobypi_bits.cl
M libclc/clc/lib/generic/CMakeLists.txt
M libclc/clc/lib/generic/math/clc_cos.inc
A libclc/clc/lib/generic/math/clc_get_twobypi_bits.cl
A libclc/clc/lib/generic/math/clc_get_twobypi_bits.inc
M libclc/clc/lib/generic/math/clc_sin.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers.cl
M libclc/clc/lib/generic/math/clc_sincos_helpers_fp64.inc
M libclc/clc/lib/generic/math/clc_tables.cl
M libclc/clc/lib/generic/math/clc_tan.inc
Log Message:
-----------
libclc: Update f64 trig functions (#187455)
Most of of this was originally ported from rocm
device libs in 2e6ff0c66e180998425776a27579559dc099732f. Merge
in more recent changes.
Commit: 85e9ac589819b0f24074e92dcaee5cc05446064e
https://github.com/llvm/llvm-project/commit/85e9ac589819b0f24074e92dcaee5cc05446064e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A libclc/clc/include/clc/math/clc_canonicalize.h
A libclc/clc/include/clc/math/clc_flush_if_daz.h
M libclc/clc/include/clc/math/math.h
M libclc/clc/lib/clspv/math/clc_sw_fma.cl
M libclc/clc/lib/generic/CMakeLists.txt
A libclc/clc/lib/generic/math/clc_canonicalize.cl
A libclc/clc/lib/generic/math/clc_flush_if_daz.cl
A libclc/clc/lib/generic/math/clc_flush_if_daz.inc
M libclc/clc/lib/generic/math/clc_remquo.cl
M libclc/clc/lib/generic/math/clc_remquo.inc
Log Message:
-----------
libclc: Add canonicalize utility functions (#187357)
This is mostly to work around spirv's canonicalize still
being broken.
Commit: 6e8ca5edde056dbbd45edf492dbf45cac675d3c7
https://github.com/llvm/llvm-project/commit/6e8ca5edde056dbbd45edf492dbf45cac675d3c7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_nextafter.cl
M libclc/clc/lib/generic/math/clc_nextafter.inc
M libclc/clc/lib/generic/math/clc_nextdown.cl
M libclc/clc/lib/generic/math/clc_nextdown.inc
M libclc/clc/lib/generic/math/clc_nextup.cl
M libclc/clc/lib/generic/math/clc_nextup.inc
Log Message:
-----------
libclc: Fix nextafter with -cl-denorms-are-zero (#187358)
Follow the suggested behavior of returning +/-FLT_MIN for logical
zeros.
Commit: 7fad49b186c883ee8e15ddee1280dcc2f4842557
https://github.com/llvm/llvm-project/commit/7fad49b186c883ee8e15ddee1280dcc2f4842557
Author: Ricardo Jesus <rjj at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-scalable.ll
M llvm/test/CodeGen/AArch64/load-insert-zero.ll
M llvm/test/CodeGen/AArch64/sve-implicit-zero-filling.ll
M llvm/test/CodeGen/AArch64/sve-insert-element.ll
M llvm/test/CodeGen/AArch64/sve-pr92779.ll
Log Message:
-----------
[AArch64][SVE] Prefer FMOV for scalar insert into first element of zero. (#187236)
Currently, when inserting a scalar into the first element of a
zero-initialised scalable vector, we zero the register explicitly and
emit a predicated move. However, an FMOV should be preferable as it
implicitly zeros the upper bits of the destination.
Commit: 1ba5b6e875d106bf5f900035e42b6ba56807b65e
https://github.com/llvm/llvm-project/commit/1ba5b6e875d106bf5f900035e42b6ba56807b65e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_sincos.cl
M libclc/clc/lib/generic/math/clc_sincos.inc
Log Message:
-----------
libclc: Stop implementing sincos as separate sin and cos (#187456)
Commit: 1f8da277148f461bb96c6684b41b4d7d2cf5b761
https://github.com/llvm/llvm-project/commit/1f8da277148f461bb96c6684b41b4d7d2cf5b761
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_sincos_helpers.h
A libclc/clc/include/clc/math/clc_sincos_helpers_fp16_decl.inc
M libclc/clc/lib/generic/math/clc_cos.inc
M libclc/clc/lib/generic/math/clc_sin.inc
M libclc/clc/lib/generic/math/clc_sincos.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers.cl
A libclc/clc/lib/generic/math/clc_sincos_helpers_fp16.inc
M libclc/clc/lib/generic/math/clc_tan.inc
Log Message:
-----------
libclc: Really implement half trig functions (#187457)
Previously these just cast to float.
Commit: d518f8ff67407fc49d2c37cba575297d5dc7e713
https://github.com/llvm/llvm-project/commit/d518f8ff67407fc49d2c37cba575297d5dc7e713
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/MemorySSA.h
M llvm/lib/Analysis/MemorySSA.cpp
A llvm/test/Analysis/MemorySSA/call-loop-carried-dependency.ll
M llvm/unittests/Analysis/MemorySSATest.cpp
Log Message:
-----------
[MemorySSA] Fix handling of cross-iteration dependencies for calls (#187291)
The clobber walker has to be careful when it comes to translating
locations across phis. If we're translating across a cycle backedge,
we'll end up working with SSA values from two different cycle iterations
-- something that alias analysis by default assumes is not the case.
To protect against this, the upwards def walk was already discarding the
access size from the memory location if the pointer was not loop
invariant. This (mostly) avoids this issue for memory locations.
However, the same issue also exists for calls. In this case, it's not
possible to adjust the call used for AA queries in a similar way.
Instead, we can make use of the cross-iteration alias analysis mode,
which has been added some time ago for these kinds of situations.
The basic change here is that the upwards def walk, when translating
across a phi, will enable the cross-iteration mode for calls.
Unfortunately, quite a few places have to be changed in order to thread
through that flag.
We should really also be using the cross-iteration mode for the memory
location case, both because it's more precise, and because it's more
correct (in particular, only changing the size does not handle
correlated select conditions). However, this comes with a compile-time
cost, so I'm only handling the call case for now.
Fixes https://github.com/llvm/llvm-project/issues/54682.
Commit: 2bb6b590287730238f39b09320ddcb36c461ae92
https://github.com/llvm/llvm-project/commit/2bb6b590287730238f39b09320ddcb36c461ae92
Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libsycl/docs/index.rst
A libsycl/include/sycl/__impl/usm_alloc_type.hpp
A libsycl/include/sycl/__impl/usm_functions.hpp
M libsycl/include/sycl/sycl.hpp
M libsycl/src/CMakeLists.txt
M libsycl/src/detail/device_impl.cpp
M libsycl/src/detail/global_objects.cpp
M libsycl/src/detail/global_objects.hpp
M libsycl/src/detail/offload/offload_utils.cpp
M libsycl/src/detail/offload/offload_utils.hpp
M libsycl/src/ld-version-script.txt
A libsycl/src/usm_functions.cpp
A libsycl/test/usm/alloc_functions.cpp
Log Message:
-----------
[libsycl] add USM alloc/free functions (#184111)
Depends on https://github.com/llvm/llvm-project/pull/184110
This is part of the SYCL support upstreaming effort. The relevant RFCs
can be found here:
https://discourse.llvm.org/t/rfc-add-full-support-for-the-sycl-programming-model/74080
https://discourse.llvm.org/t/rfc-sycl-runtime-upstreaming/74479
---------
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Commit: 621d40e1827e53844e09851dc69f2ff79dc30999
https://github.com/llvm/llvm-project/commit/621d40e1827e53844e09851dc69f2ff79dc30999
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidy.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm
M clang-tools-extra/test/lit.cfg.py
M clang/include/clang/ASTMatchers/ASTMatchFinder.h
M clang/lib/ASTMatchers/ASTMatchFinder.cpp
Log Message:
-----------
Revert "[clang-tidy] [Modules] Skip checking decls in clang-tidy" (#187461)
Reverts llvm/llvm-project#145630
As requested in https://github.com/llvm/llvm-project/pull/145630
Commit: 4262045ba98d11c930fec0fe02584b072ace19bd
https://github.com/llvm/llvm-project/commit/4262045ba98d11c930fec0fe02584b072ace19bd
Author: Shivam Kunwar <physhivam at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
A llvm/test/DebugInfo/X86/empty-struct-no-crash.ll
Log Message:
-----------
[DebugInfo] Fix segfault in constructSubprogramScopeDIE with null subprogram type (#184299)
Guard against null DISubroutineType when checking for variadic
parameters in `constructSubprogramScopeDIE`. `DISubprograms` may lack a
type field when using LineTablesOnly emission, causing a null pointer
dereference.
Fixes #184003
Co-authored-by: Shivam Kunwar <phyBrackets at users.noreply.github.com>
Commit: 333ac33be6f4627a8f697b8f8a617c6d5da632a6
https://github.com/llvm/llvm-project/commit/333ac33be6f4627a8f697b8f8a617c6d5da632a6
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopInfo.h
M llvm/lib/Analysis/LoopInfo.cpp
Log Message:
-----------
[Analysis][NFC] Include LoopInfoImpl only in source file (#187459)
There's no need to include the full LoopInfo implementation in every
source file that uses LoopInfo.
Pull Request: https://github.com/llvm/llvm-project/pull/187459
Commit: 0d05c882ce9976de790e690b92e2673088591e36
https://github.com/llvm/llvm-project/commit/0d05c882ce9976de790e690b92e2673088591e36
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Support/GenericLoopInfo.h
M llvm/include/llvm/Support/GenericLoopInfoImpl.h
M llvm/lib/CodeGen/BranchFolding.cpp
M llvm/lib/CodeGen/EarlyIfConversion.cpp
M llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
M llvm/lib/Transforms/IPO/LoopExtractor.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M polly/lib/CodeGen/IslNodeBuilder.cpp
Log Message:
-----------
[Support] Use block numbers for LoopInfo BBMap (#103400)
Replace the DenseMap from blocks to their innermost loop a vector
indexed by block numbers, when possible. Supporting number updates is
not trivial as we don't store a list of basic blocks, so this is not
implemented.
NB: I'm generally not happy with the way loops are stored. As I think
that there's room for improvement, I don't want to touch the
representation at this point.
Pull Request: https://github.com/llvm/llvm-project/pull/103400
Commit: e122a2d53193d791a98f118fad23fb782062e778
https://github.com/llvm/llvm-project/commit/e122a2d53193d791a98f118fad23fb782062e778
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
Log Message:
-----------
[flang][OpenMP] Remove extraneous semicolon, NFC (#187468)
Commit: eaf04be3417c595ded2dd67180c8101425a281cc
https://github.com/llvm/llvm-project/commit/eaf04be3417c595ded2dd67180c8101425a281cc
Author: Viktoria Maximova <viktoria.maksimova at intel.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_bfloat16_load_store_xchg.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_arithmetic.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_load_store_xchg_cmpxchg.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_faddfsub_bfloat16.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_fminfmax_bfloat16.ll
Log Message:
-----------
[SPIR-V] Complete SPV_INTEL_16bit_atomics extension support (#184312)
Add missing capabilities to finalize SPV_INTEL_16bit_atomics extension:
- AtomicInt16CompareExchangeINTEL (6260): for i16
load/store/exchange/cmpxchg
- Int16AtomicsINTEL (6261): for i16 arithmetic atomics (add, sub, min,
max, etc.)
- AtomicBFloat16LoadStoreINTEL (6262): for bfloat16 load/store/exchange
This completes the implementation started in 6ef3218.
Specification:
https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_16bit_atomics.asciidoc
Commit: d29c6a34255e635b8ad794d21cdd0a2ed8820b68
https://github.com/llvm/llvm-project/commit/d29c6a34255e635b8ad794d21cdd0a2ed8820b68
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/docs/TableGen/ProgRef.rst
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
Log Message:
-----------
[TabelGen] Use ID{n-m} for outer let statements (#187436)
I found this occasionally.
For outer let statements, if we want to override some bits, we specify
the range list in the form of `<n-m>`. But for inner let statements,
we use `{n-m}`.
This is inconsistent, and I can't find the reason why it is designed
as this. So here we make inner/outer let statements consistent and
remove the duplicated parsing functions.
There is only one in-tree usage so I think the impact is small.
Commit: c58d62857e4ff3be2f2d01b99dfc33bde3956cf4
https://github.com/llvm/llvm-project/commit/c58d62857e4ff3be2f2d01b99dfc33bde3956cf4
Author: Alexander Romanov <mrromanon at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/STLForwardCompat.h
M llvm/unittests/ADT/STLForwardCompatTest.cpp
Log Message:
-----------
[STLForwardCompat] Switch transformOptional from direct call to invoke (#186333)
This allows to pass pointer to member (or member function) alongside
other callable objects. Also adjusted return value as std::optional of
reference types are forbidden.
Commit: 76638021257f06d6a3db2231106bd8d972b03b95
https://github.com/llvm/llvm-project/commit/76638021257f06d6a3db2231106bd8d972b03b95
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/sve-extract-fixed-from-scalable-vector.ll
Log Message:
-----------
[LLVM][DAGCombiner] Limit extract_subvec(extract_subvec()) combine to vectors of the same type. (#187334)
The index operand of ISD::EXTRACT_SUBVECTOR is implicitly scaled by
vscale, which is effectively always one for fixed-length vectors. When
combining nested extracts we must ensure all use the same implicit
scaling otherwise the transform is not equivalent.
Fixes https://github.com/llvm/llvm-project/issues/186563
Commit: f104b7355ce8564ebec8b296a7b450beb553364d
https://github.com/llvm/llvm-project/commit/f104b7355ce8564ebec8b296a7b450beb553364d
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_floating_point/arbitrary_precision_floating_point_test.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/SPV_ALTERA_arbitrary_precision_integers.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/apint-constant.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-addsub.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-arith.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-switch-lower.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_int4/negative.ll
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/bitreverse_small_type.ll
M llvm/test/CodeGen/SPIRV/trunc-nonstd-bitwidth.ll
Log Message:
-----------
[NFC][SPIRV] Run `spirv-val` on tests related to `SPV_ALTERA_arbitrary_precision_integers` (#187464)
https://github.com/KhronosGroup/SPIRV-Tools/pull/6232 landed support for
this extension in `spirv-val`.
This PR updates some relevant tests to run `spirv-val` on their output.
Commit: c3e7624ac4bdfaa583f2d7f76fd780ea6bfd4a84
https://github.com/llvm/llvm-project/commit/c3e7624ac4bdfaa583f2d7f76fd780ea6bfd4a84
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaExprCXX.cpp
A clang/test/Modules/align-val-t-merge.cpp
Log Message:
-----------
[clang] Add implicit std::align_val_t to std namespace DeclContext for module merging (#187347)
When a virtual destructor is encountered before any module providing
std::align_val_t is loaded, DeclareGlobalNewDelete() implicitly creates
a std::align_val_t EnumDecl. However, this EnumDecl was not added to the
std namespace's DeclContext -- it was only stored in the
Sema::StdAlignValT field.
Later, when a module containing an explicit std::align_val_t definition
is loaded, ASTReaderDecl::findExisting() attempts to find the implicit
decl via DeclContext::noload_lookup() on the std namespace. Since the
implicit EnumDecl was never added to that DeclContext, the lookup fails,
and the two align_val_t declarations are not merged into a single
redeclaration chain. This results in two distinct types both named
std::align_val_t.
The implicitly declared operator delete overloads (also created by
DeclareGlobalNewDelete) use the implicit align_val_t type for their
aligned-deallocation parameter. When module code (e.g. std::allocator::
deallocate) calls __builtin_operator_delete with the module's
align_val_t, overload resolution fails because the two align_val_t types
are not the same, producing:
error: no matching function for call to 'operator delete'
note: no known conversion from 'std::align_val_t' to 'std::align_val_t'
The fix adds the implicit align_val_t EnumDecl to the std namespace
DeclContext via getOrCreateStdNamespace()->addDecl(AlignValT), so the
module merger can find it via noload_lookup and merge the two
declarations.
This bug was exposed by a libc++ change (2b01e7cf2b70) that removed the
#include <__new/global_new_delete.h> line from allocate.h, which meant
modules no longer had explicit operator delete declarations to paper
over the type mismatch.
Assisted-by: Claude Code
Commit: 23af867e6d933e8992c134695adf390ff404124c
https://github.com/llvm/llvm-project/commit/23af867e6d933e8992c134695adf390ff404124c
Author: Koakuma <koachan at protonmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/Sparc/SparcTargetTransformInfo.cpp
M llvm/lib/Target/Sparc/SparcTargetTransformInfo.h
A llvm/test/Transforms/LoopVectorize/Sparc/no-vectorize.ll
Log Message:
-----------
[SPARC] Add TTI implementation for getting register numbers and widths (#180660)
Correctly inform transform passes about our registers; this prevents the
issue with the `find-last` test where the loop vectorizer pass
mistakenly thinks that the backend has vector capabilities and generates
vector types, which causes the backend to crash.
See also: https://github.com/sparclinux/issues/issues/69
Commit: b029b9879749f8e980e052d9b486dfc9b3f4d619
https://github.com/llvm/llvm-project/commit/b029b9879749f8e980e052d9b486dfc9b3f4d619
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A llvm/test/CodeGen/X86/bit-manip-i128.ll
Log Message:
-----------
[X86] Add i128 bit manipulation pattern test coverage (#187480)
Commit: 6aeeae676ac400c0f66e8cba957030c8f47410a5
https://github.com/llvm/llvm-project/commit/6aeeae676ac400c0f66e8cba957030c8f47410a5
Author: Koakuma <koachan at protonmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/Sparc/lit.local.cfg
Log Message:
-----------
[SPARC][Tests] Add lit.local.cfg to SPARC LoopVectorize tests (#187489)
Commit: 191c84b822e0db391c5b1c64a13b2a209f0dda40
https://github.com/llvm/llvm-project/commit/191c84b822e0db391c5b1c64a13b2a209f0dda40
Author: John Brawn <john.brawn at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
Log Message:
-----------
[VPlan] Permit derived IV in isHeaderMask (#187360)
When matching scalar steps of the canonical IV, also match a derived IV
of the canonical IV if the derivation is essentially a no-op. Fixes a
failure in the mve-reg-pressure-spills.ll test when expensive checks are
enabled.
Commit: 582fa7875374356d9a586301f78b4a925f25973f
https://github.com/llvm/llvm-project/commit/582fa7875374356d9a586301f78b4a925f25973f
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/matched-gather-part-of-combined.ll
Log Message:
-----------
[SLP]Do not match buildvector node, if current node is part of its combined nodes
If current buildvector node is part of the combined nodes of the
matching candidate node, this matching candidate must be considered as
non-matching to prevent wrong def-use chain
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/187491
Commit: 796b218edd358ab112e876e9c22490987dae7f06
https://github.com/llvm/llvm-project/commit/796b218edd358ab112e876e9c22490987dae7f06
Author: Shivam Gupta <shivam98.tkg at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/rem-by-const.ll
M llvm/test/CodeGen/PowerPC/urem-lkk.ll
M llvm/test/CodeGen/RISCV/div-by-constant.ll
M llvm/test/CodeGen/RISCV/split-udiv-by-constant.ll
M llvm/test/CodeGen/RISCV/split-urem-by-constant.ll
M llvm/test/CodeGen/RISCV/urem-lkk.ll
M llvm/test/CodeGen/RISCV/urem-vector-lkk.ll
M llvm/test/CodeGen/X86/divide-by-constant.ll
M llvm/test/CodeGen/X86/divmod128.ll
M llvm/test/CodeGen/X86/i128-udiv.ll
M llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
Log Message:
-----------
[LegalizeTypes] Expand UDIV/UREM by constant via chunk summation (#146238)
This patch improves the lowering of 128-bit unsigned division and
remainder by constants (UDIV/UREM) by avoiding a fallback to libcall
(__udivti3/uremti3) for specific divisors.
When a divisor D satisfies the condition (1 << ChunkWidth) % D == 1, the
128-bit value is split into fixed-width chunks (e.g., 30-bit) and summed
before applying a smaller UDIV/UREM. This transformation is based on the
"remainder by summing digits" trick described in Hacker’s Delight.
This fixes #137514 for some constants.
Commit: 7d02ca610b9cdc3fb75c439e3de849aa468aeb40
https://github.com/llvm/llvm-project/commit/7d02ca610b9cdc3fb75c439e3de849aa468aeb40
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
M mlir/test/Target/LLVMIR/Import/intrinsic.ll
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
Log Message:
-----------
[mlir][LLVM] add llvm.fake.use to LLVM dialect (#187026)
Add llvm.fake.use to the LLVM dialect intrinsics.
See https://llvm.org/docs/LangRef.html#llvm-fake-use-intrinsic.
Commit: 49a5192e5d7087847d53f231cbb84cf35a4d6e98
https://github.com/llvm/llvm-project/commit/49a5192e5d7087847d53f231cbb84cf35a4d6e98
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/include/llvm/ADT/GenericCycleInfo.h
Log Message:
-----------
[CycleInfo] Don't store top-level cycle per block (#187488)
CycleInfo currently has a second map, that stores the top-level cycle
for a block. I don't think storing this per-block makes a lot of sense,
because the top-level cycle is always the same for all blocks in a
cycle.
So instead store it as a member of the cycle.
Commit: 1078a1dabd686856077812b06a72b387b17e78f1
https://github.com/llvm/llvm-project/commit/1078a1dabd686856077812b06a72b387b17e78f1
Author: Abu <49108786+user1342234 at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/CodeGen/X86/bmi.ll
A llvm/test/Transforms/InstCombine/fold-bmi.ll
Log Message:
-----------
Lowering `~x | (x - 1)` to `~blsi(x)` (#186722)
Alive2 proof:
https://alive2.llvm.org/ce/z/bK93Cn
I've implemented a fold in `InstCombineAndOrXor.cpp` to canonicalize `~x
| (x - 1)` to `~(x & -x)` which enables the CodeGen to emit the `blsi`
instruction.
I've also added a test in `CodeGen/X86`.
Fixes #184055
---------
Co-authored-by: Tim Gymnich <tim at gymni.ch>
Commit: 289c58823150a431e50263854466145484db65e1
https://github.com/llvm/llvm-project/commit/289c58823150a431e50263854466145484db65e1
Author: Jaydeep Chauhan <chauhan.jaydeep.ashwinbhai at intel.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx512-trunc.ll
Log Message:
-----------
[X86] Optimize load-trunc-store for v4i16/v2i32/v2i16 vectors (#186676)
This patch transform
IR
```
define void @cast_i16x4_to_u8x4(ptr %a0, ptr %a1) {
%1 = load <4 x i16>, ptr %a1
%2 = trunc <4 x i16> %1 to <4 x i8>
store <4 x i8> %2, ptr %a0
ret void
}
```
>From Assembly
```
cast_i16x4_to_u8x4: # @cast_i16x4_to_u8x4
vmovq (%rsi), %xmm0 # xmm0 = mem[0],zero
vpmovwb %xmm0, %xmm0
vmovd %xmm0, (%rdi)
retq
```
to
```
cast_i16x4_to_u8x4: # @cast_i16x4_to_u8x4
vpmovzxwd {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
vpmovdb %xmm0, (%rdi)
retq
```
Also,implemented similar patterns for below vector types
**Patterns supported:**
- **v4i16 -> v4i8 (via v4i32)**
- **v2i32 -> v2i8 (via v2i64)**
- **v2i32 -> v2i16 (via v2i64)**
- **v2i16 -> v2i8 (via v2i64)**
Fixes #83403
Commit: 78a8f00977964cac6a76a13e1e05bb879be8c97c
https://github.com/llvm/llvm-project/commit/78a8f00977964cac6a76a13e1e05bb879be8c97c
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
Log Message:
-----------
Revert "[VPlan] Create header phis once regions have been created (NFC)."
This reverts commit 91b928f919364b29e241821fc639b9ef56dab1a5.
This complicates some analysis that need the happen on the scalar VPlan,
before regions have been created, e.g.
https://github.com/llvm/llvm-project/pull/185323/.
Commit: 18ed1a9414b2a267c0055ce517c731e003504ac4
https://github.com/llvm/llvm-project/commit/18ed1a9414b2a267c0055ce517c731e003504ac4
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/bit-manip-i128.ll
M llvm/test/CodeGen/X86/bit-manip-i256.ll
M llvm/test/CodeGen/X86/bit-manip-i512.ll
Log Message:
-----------
[X86] Add bitrevese/bswap i128/i256/i512 test coverage for #187353 (#187492)
Commit: d641186cb61e149ecbe23ddc0432df76425bffbd
https://github.com/llvm/llvm-project/commit/d641186cb61e149ecbe23ddc0432df76425bffbd
Author: Lucas Colley <lucas.colley8 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/docs/UsersManual.rst
M clang/test/Driver/cl-link.c
Log Message:
-----------
[clang-cl] test that `-Xlinker` works, update supported options docs (#187395)
closes #119179
Commit: 76f72525713742f7ea812e34aef54fcb777f38c0
https://github.com/llvm/llvm-project/commit/76f72525713742f7ea812e34aef54fcb777f38c0
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
A llvm/test/CodeGen/X86/fake-use-fastisel.ll
Log Message:
-----------
[FastISel] generate FAKE_USE for llvm.fake.use (#187116)
FastISel was dropping llvm.fake.use because they are not meant to be
generated at O0 with clang.
This patch adds support in FastISel to generate FAKE_USE for llvm.fake.use.
The handling is simpler than in SelectionDagBuilder because no attempt is made to
get rid of useless FAKE_USE (e.g. for constant SSA values) to keep FastISel simple.
The motivation is that flang will generate llvm.fake.use for function arguments under
`-g` (and O0) because Fortran arguments are not copied to the stack (they are
reference like arguments in most cases) and one should be able to access these
variables from the debugger at any point of the function, even after their last use in the
function.
Commit: dddf01cc145734cd75ea0f21d87818e51cd9e657
https://github.com/llvm/llvm-project/commit/dddf01cc145734cd75ea0f21d87818e51cd9e657
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZibi.td
A llvm/test/MC/RISCV/zibi-long-conditional-jump.s
M llvm/test/MC/RISCV/zibi-valid.s
Log Message:
-----------
[RISCV] Relax out of range Zibi conditional branches (#186965)
If `.Label` is not within +-4KiB range, we convert
```
beqi/bnei reg, imm, .Label
```
to
```
bnei/beqi reg, imm, 8
j .Label
```
This is similar to what is done for the RISCV conditional branches
and `Xqcibi` conditional branches.
---------
Co-authored-by: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Commit: 2e2bcf785519f902e9a03ed1605edafdf268d3b1
https://github.com/llvm/llvm-project/commit/2e2bcf785519f902e9a03ed1605edafdf268d3b1
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h
Log Message:
-----------
[AMDGPU] Remove unused forward declaration
Commit: a3e3fed088bd35470e5c0ab6832ab39b31095d90
https://github.com/llvm/llvm-project/commit/a3e3fed088bd35470e5c0ab6832ab39b31095d90
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
Log Message:
-----------
[CodeGen] Declare MachineCycleInfo in headers (#187494)
Transform MachineCycleInfo into a class that can be declared and remove
include from many source files.
Similar to 810ba55de9159932d498e9387d031f362b93fbea.
Commit: a32d2695c38f53b270440f827f30fbca93e3c041
https://github.com/llvm/llvm-project/commit/a32d2695c38f53b270440f827f30fbca93e3c041
Author: Vimarsh Sathia <vimarsh.sathia at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] Gate GPU parsers behind llvm_targets (#187213)
Ideally fixes #63135
---------
Signed-off-by: Vimarsh Sathia <vsathia2 at illinois.edu>
Commit: e3415da3cd126b766d0af178e0d332e9ff96bc17
https://github.com/llvm/llvm-project/commit/e3415da3cd126b766d0af178e0d332e9ff96bc17
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Support/Fortran-features.cpp
M flang/test/Integration/OpenMP/copyprivate.f90
A flang/test/Lower/OpenMP/copyprivate-equivalence.f90
M flang/test/Lower/OpenMP/copyprivate.f90
M flang/test/Lower/OpenMP/copyprivate2.f90
M flang/test/Lower/OpenMP/copyprivate3.f90
M flang/test/Lower/OpenMP/copyprivate4.f90
M flang/test/Lower/OpenMP/copyprivate5.f90
A flang/test/Semantics/OpenMP/threadprivate-equivalence-nowarn.f90
A flang/test/Semantics/OpenMP/threadprivate-equivalence.f90
M flang/test/Semantics/OpenMP/threadprivate02.f90
Log Message:
-----------
[Flang][OpenMP] Permit THREADPRIVATE variables in EQUIVALENCE statements (#186696)
The OpenMP API does not allow to have THREADPRIVATE variable appear in
an EQUIVALENCE statement. It has been requested by the community to
extend Flang such that it permits these non-conforming patterns. This PR
changes Flang to inherit the DSA of the base object of the EQUIVALENCE
statement to the equivalenced variables. The orginal error message is
turned into a warning.
This PR contains code from downstream PR
https://github.com/arm/arm-toolchain/pull/755 that @tblah pointed to
during the review.
Fixes https://github.com/llvm/llvm-project/issues/180493
Assisted-by: Claude Code, Opus 4.6
Commit: 068176a50371d12c9d93ac6c748d6db0389b2575
https://github.com/llvm/llvm-project/commit/068176a50371d12c9d93ac6c748d6db0389b2575
Author: mcbarton <matthew.c.barton at hotmail.co.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Analysis/BranchProbabilityInfo.cpp
Log Message:
-----------
[Analysis] Remove LLVM_ABI annotations from llvm/lib/Analysis/BranchProbabilityInfo.cpp which cause build errors (#187388)
In llvm/lib/Analysis/BranchProbabilityInfo.cpp several LLVM_ABI
annotations were added which cause build errors, when trying to build
LLVM and Clang as a shared library on windows (see
https://github.com/compiler-research/ci-workflows/actions/runs/22754706570/job/67436382142#step:6:1141
for some of the errors) . With the changes in this PR these build errors
are fixed.
After this patch this is how far you get with the build
https://github.com/compiler-research/ci-workflows/actions/runs/23257495426/job/67635570161#step:6:4601.
These errors were introduced sometime in the last month, but I couldn't
work out how to fix them.
Commit: b91c5a7701e1922b0bb8e21fed8222215c78c5d0
https://github.com/llvm/llvm-project/commit/b91c5a7701e1922b0bb8e21fed8222215c78c5d0
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
Log Message:
-----------
[AMDGPU] Test saturated f32 to i8 conversion on vectors (#187487)
Commit: e8556ff6b664df6e595f8aed175eff3a27a4a020
https://github.com/llvm/llvm-project/commit/e8556ff6b664df6e595f8aed175eff3a27a4a020
Author: John Brawn <john.brawn at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/maxbandwidth-regpressure.ll
Log Message:
-----------
[NFC] Remove fractional part of costs in maxbandwidth-regpressure.ll (#187498)
This test is failing on the llvm-clang-x-aarch64 buildbot due to what
looks like a difference in rounding behaviour when printing estimated
cost per lane. Solve this by removing the fractional part, which is what
we've done in the past when this has happened (e.g. commit aeb88f677).
Commit: 0e7262407ca6f6ef9b061d9b24478f555099cb21
https://github.com/llvm/llvm-project/commit/0e7262407ca6f6ef9b061d9b24478f555099cb21
Author: estewart08 <ethan.stewart at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M offload/CMakeLists.txt
M offload/cmake/Modules/LibomptargetGetDependencies.cmake
M offload/cmake/OpenMPTesting.cmake
M offload/libomptarget/CMakeLists.txt
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload] - Remove standalone build in favor of 'runtimes' (#170693)
Summary:
Follow up on removal of OPENMP_STANDALONE_BUILD in openmp (#149878).
This
build method is redundant and can be accomplished via runtimes.
Removes support for:
`cmake -S <llvm-project>/offload ...`
Switches over to:
`make -S <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp;offload
...`
Libomptarget has a dependency on libomp.so and requires the omp cmake
target to exist at build time, which is why both runtimes are listed.
Updates cmake compiler logic in offload/CMakeLists.txt to mirror openmp
changes:
[openmp] Allow testing OpenMP without a full clang build tree (#182470)
User will still need to have a separate invocation to build openmp
DeviceRTL via:
`-DLLVM_ENABLE_RUNTIMES=openmp`
`-DLLVM_DEFAULT_TARGET_TRIPLE=<amdgcn-amd-amdhsa|nvptx64-nvidia-cuda>`
Commit: bed9fa2de54aafcb854dfb4cee7617db15895a99
https://github.com/llvm/llvm-project/commit/bed9fa2de54aafcb854dfb4cee7617db15895a99
Author: Pengxiang Huang <71998072+Pengxiang-Huang at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/linux/x86_64/headers.txt
M libc/hdr/CMakeLists.txt
A libc/hdr/sys_ipc_macros.h
A libc/hdr/sys_sem_macros.h
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_sembuf.h
A libc/hdr/types/struct_semid_ds.h
A libc/hdr/types/struct_seminfo.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-macros/CMakeLists.txt
M libc/include/llvm-libc-macros/linux/CMakeLists.txt
M libc/include/llvm-libc-macros/linux/sys-ipc-macros.h
A libc/include/llvm-libc-macros/linux/sys-sem-macros.h
A libc/include/llvm-libc-macros/sys-sem-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_sembuf.h
A libc/include/llvm-libc-types/struct_semid_ds.h
A libc/include/llvm-libc-types/struct_seminfo.h
A libc/include/sys/sem.yaml
M libc/src/sys/CMakeLists.txt
A libc/src/sys/sem/CMakeLists.txt
A libc/src/sys/sem/linux/CMakeLists.txt
A libc/src/sys/sem/linux/semctl.cpp
A libc/src/sys/sem/linux/semget.cpp
A libc/src/sys/sem/linux/semop.cpp
A libc/src/sys/sem/semctl.h
A libc/src/sys/sem/semget.h
A libc/src/sys/sem/semop.h
M libc/test/integration/src/CMakeLists.txt
A libc/test/integration/src/sys/CMakeLists.txt
A libc/test/integration/src/sys/sem/CMakeLists.txt
A libc/test/integration/src/sys/sem/sem_test.cpp
M libc/test/src/sys/CMakeLists.txt
A libc/test/src/sys/sem/CMakeLists.txt
A libc/test/src/sys/sem/linux/CMakeLists.txt
A libc/test/src/sys/sem/linux/sem_test.cpp
Log Message:
-----------
[libc][sys/sem] Add sys v sem headers and syscall wrapper implementation (#185914)
Fix #182161
Based on the last PR #182700 implementing sys/ipc.
Commit: b227fab5a6024b5368c7e04e7aebf4c0777fa952
https://github.com/llvm/llvm-project/commit/b227fab5a6024b5368c7e04e7aebf4c0777fa952
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-03-19 (Thu, 19 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
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/unittests/Transforms/Vectorize/VPlanTestBase.h
M llvm/unittests/Transforms/Vectorize/VPlanUncountableExitTest.cpp
Log Message:
-----------
[NFC][LV] Introduce enums for uncountable exit detail and style (#184808)
Recursively splitting out some work from #183318; this covers
the enums for early exit loop type (none, readonly, readwrite)
and the style used (just readonly and
masked-handle-ee-in-scalar-tail for now) and refactoring for
basic use of those enums.
Commit: 44e306ecdb02bdf3fff067a39bf5a763c786a78d
https://github.com/llvm/llvm-project/commit/44e306ecdb02bdf3fff067a39bf5a763c786a78d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libclang_rt.profile.a
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/nvptx64-nvidia-cuda/libclang_rt.profile.a
M clang/test/Driver/amdgpu-toolchain.c
M clang/test/Driver/cuda-cross-compiling.c
M clang/test/Driver/openmp-offload-gpu.c
Log Message:
-----------
[Clang] Correctly link and handle PGO options on the GPU (#185761)
Summary:
Currently, the GPU targets ignore the standard profiling arguments. This
PR changes the behavior to use the standard handling, which links the in
the now-present `libclang_rt.profile.a` if the user built with the
compiler-rt support enabled. If it is not present this is a linker error
and we can always suppress with `-Xarch_host` and `-Xarch_device`.
Hopefully this doesn't cause some people pain if they're used to doing
`-fprofile-generate` on a CPU unguarded since it was a stange mix of a
no-op and not a no-op on the GPU until now.
Commit: da92bc06ff47bb060dc9f303856d12e751763312
https://github.com/llvm/llvm-project/commit/da92bc06ff47bb060dc9f303856d12e751763312
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
A mlir/lib/Dialect/OpenACC/Transforms/ACCBindRoutine.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
A mlir/test/Dialect/OpenACC/acc-bind-routine.mlir
Log Message:
-----------
[mlir][acc] Support call target handling for bind(name) (#187390)
The OpenACC `routine` directive may specify a `bind(name)` clause to
associate the routine with a different symbol for device code. This pass
`ACCBindRoutine` finds calls inside offload regions that target such
routines and rewrites the callee to the bound symbol.
---------
Co-authored-by: Delaram Talaashrafi <dtalaashrafi at nvidia.com>
Commit: ef4f87425c51e22c66bf42c5ad5e8c41b0e15eae
https://github.com/llvm/llvm-project/commit/ef4f87425c51e22c66bf42c5ad5e8c41b0e15eae
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/test/Analysis/clang-suppress/friends.cpp
Log Message:
-----------
[analyzer] Fix [[clang::suppress]] for friend function templates with namespace-scope forward-declarations (#187043)
When a friend function template is defined inline inside a
[[clang::suppress]]-annotated class but was forward-declared at
namespace scope, the instantiation's lexical DeclContext was the
namespace (from the forward-declaration), not the class.
The lexical parent chain walk in BugSuppression::isSuppressed therefore
never reached the class and suppression did not apply.
Fix by extending preferTemplateDefinitionForTemplateSpecializations to
handle FunctionDecl instances: calling getTemplateInstantiationPattern()
that maps the instantiation back to the primary template FunctionDecl,
whose lexical DC is the class where the friend was defined inline.
So the existing parent-chain walk then finds the suppression attribute.
Assisted-By: claude
Commit: 153c230446caf1e1ecf81ac77b316c4f7986d4e3
https://github.com/llvm/llvm-project/commit/153c230446caf1e1ecf81ac77b316c4f7986d4e3
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
M llvm/unittests/DebugInfo/PDB/NativeSessionTest.cpp
Log Message:
-----------
[PDB] Fix and simplify module index lookup (#179869)
Commit: b55f6dbb35f1c884654fb3c9563e51429d9a9fe1
https://github.com/llvm/llvm-project/commit/b55f6dbb35f1c884654fb3c9563e51429d9a9fe1
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/test/Analysis/Scalable/ssaf-format/list.test
M clang/tools/clang-ssaf-format/SSAFFormat.cpp
Log Message:
-----------
[clang][ssaf] Improve layout of `clang-ssaf-format --list` by adding a separator between name and description
Commit: cdaf29f84dd0abbd1f961982799059c92d76625b
https://github.com/llvm/llvm-project/commit/cdaf29f84dd0abbd1f961982799059c92d76625b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-factors.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/f128-fmuladd-reduction.ll
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-runtime-checks.ll
M llvm/test/Transforms/LoopVectorize/AArch64/intrinsiccost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
M llvm/test/Transforms/LoopVectorize/AArch64/neon-inloop-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/exit-branch-cost.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/optimal-epilog-vectorization.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/epilog-vectorization-inductions.ll
M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
M llvm/test/Transforms/LoopVectorize/X86/scatter_crash.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory.ll
M llvm/test/Transforms/LoopVectorize/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
M llvm/test/Transforms/PhaseOrdering/X86/pr48844-br-to-switch-vectorization.ll
Log Message:
-----------
Revert "[LV] Simplify and unify resume value handling for epilogue vec." (#187504)
Reverts llvm/llvm-project#185969
This is suspected to cause a miscompile in 549.fotonik3d_r from SPEC 2017 FP
Commit: 807377492e7ca04c2435ee3ef94c0e0d134d7de2
https://github.com/llvm/llvm-project/commit/807377492e7ca04c2435ee3ef94c0e0d134d7de2
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Analysis/MemorySSA.cpp
Log Message:
-----------
[MemorySSA] Fix EXPENSIVE_CHECKS build
Commit: cf92512e0968343f6e09ad39ba2f7b22b8c81fa3
https://github.com/llvm/llvm-project/commit/cf92512e0968343f6e09ad39ba2f7b22b8c81fa3
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Bitcode/DIImportedEntity_elements.ll
M llvm/test/Bitcode/DIModule-fortran-external-module.ll
A llvm/test/Verifier/local-import-in-cu.ll
Log Message:
-----------
[DebugInfo] Add Verifier check for local imports in CU's imports field (#187118)
Since https://reviews.llvm.org/D144004, DwarfDebug asserts if
function-local imported entities are present in the imports field of
DICompileUnit.
This patch adds a Verifier check to detect such invalid IR earlier.
Incorrect occurrences of imported entities in DICompileUnit's imports
field in llvm/test/Bitcode/DIImportedEntity_elements.ll,
llvm/test/Bitcode/DIModule-fortran-external-module.ll are fixed.
This change is extracted from https://reviews.llvm.org/D144008.
Commit: 8ca7a336fb1076e4ebb19f2ecff354f39079a9cb
https://github.com/llvm/llvm-project/commit/8ca7a336fb1076e4ebb19f2ecff354f39079a9cb
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info-with-multiple-predecessors.ll
Log Message:
-----------
[SCEV] Generate test checks (NFC)
Commit: 989ea0e2d7263dc462f600a2c65be95a60007cde
https://github.com/llvm/llvm-project/commit/989ea0e2d7263dc462f600a2c65be95a60007cde
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Utils/XeGPUUtils.h
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/test/Dialect/XeGPU/peephole-optimize.mlir
Log Message:
-----------
[MLIR][XeGPU] Lowering 2-Dimensional Reductions of N-D Tensors into Chained 1-D Reductions (#186034)
This PR relaxes the 2d reduction lowering in the peephole optimization
pass to allow source tensor to have n-d shape.
It also fixes a minor bug of accumulator lowering in the current
implementation.
Commit: bc2a8ef6f5676ad9872c209334084e98bf5c07df
https://github.com/llvm/llvm-project/commit/bc2a8ef6f5676ad9872c209334084e98bf5c07df
Author: Leonard Grey <leonard at leonardgrey.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h
M lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h
M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
Log Message:
-----------
[lldb][NativePDB] Remove cantFail uses (1 out of ?) (#187158)
This is a follow-up to
https://github.com/swiftlang/llvm-project/pull/12317#discussion_r2850297229
Per that discussion, given that deserializers *can* fail given a corrupt
PDB, it's preferable to handle the error instead of crashing.
This specific change is limited to "easy" changes (read: I have high
confidence in their correctness). The ideal end state is funneling all
errors to a few central places in `SymbolFileNativePDB`.
Commit: 5ae5f9df42f7987e2af30a714c3d10956ae0f943
https://github.com/llvm/llvm-project/commit/5ae5f9df42f7987e2af30a714c3d10956ae0f943
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/exact-siv-addrec-wrap.ll
M llvm/test/Analysis/DependenceAnalysis/non-monotonic.ll
M llvm/test/Analysis/DependenceAnalysis/symbolic-rdiv-addrec-wrap.ll
Log Message:
-----------
[DA] Check nsw flags for addrecs in the Exact SIV test (#186387)
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: 70bb9e24526a9b73e1bcdfaca85a4fb5b8546483
https://github.com/llvm/llvm-project/commit/70bb9e24526a9b73e1bcdfaca85a4fb5b8546483
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/include/llvm/ADT/GenericCycleInfo.h
Log Message:
-----------
[CycleInfo] Index using block numbers instead of pointers (#187500)
Replace the DenseMap from block pointer to cycle with a vector indexed
by block number, which makes the lookup more efficient.
Commit: e1aef9e227484b255d57609c961cd23f83821621
https://github.com/llvm/llvm-project/commit/e1aef9e227484b255d57609c961cd23f83821621
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libcxx/src/include/apple_availability.h
Log Message:
-----------
[libc++] Fix missing availability check for visionOS in apple_availability.h (#187015)
Without this, we were assuming that __ulock was unavailable on visionOS
and falling back to the manual implementation, when in reality we can
always rely on the existence of ulock.
Fixes #186467
Commit: 201d3547cce18d0bbd90a73df142d11ad52ea116
https://github.com/llvm/llvm-project/commit/201d3547cce18d0bbd90a73df142d11ad52ea116
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Log Message:
-----------
[AMDGPU] Clean up `LowerFP_TO_INT_SAT` in AMDGPUTargetLowering (#187486)
This addresses the rest of post-commit comments from #174726.
Commit: 2754e35f734761bda5cab0ffbb494a529f0eaf71
https://github.com/llvm/llvm-project/commit/2754e35f734761bda5cab0ffbb494a529f0eaf71
Author: ioana ghiban <ioana.ghiban at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
A mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-load-store.mlir
Log Message:
-----------
[mlir][EmitC] Support pointer-based memrefs in load/store lowering (#186828)
## Problem
In the MemRef → EmitC conversion, `memref.load` and `memref.store`
assume that the converted memref operand is an `emitc.array`, as defined
by the type conversion in `populateMemRefToEmitCTypeConversion`.
However, `memref.alloc` is lowered to a `malloc` call returning
`emitc.ptr`. When such values are used by `memref.load` or
`memref.store`, the conversion framework inserts a bridging
`builtin.unrealized_conversion_cast` from `emitc.ptr` to `emitc.array`.
These casts have no EmitC representation and therefore remain in the IR
after conversion, preventing valid C/C++ emission.
## Solution
Extend the `memref.load` and `memref.store` conversions to handle
pointer-backed buffers.
If the memref operand is defined by an `UnrealizedConversionCastOp`
whose input is an `emitc.ptr`, the cast is stripped and the underlying
pointer operand is used directly. Since pointer subscripting in EmitC is
one-dimensional, the multi-dimensional memref indices are converted to a
row-major linear index (matching the default memref layout) using the
original `MemRefType` shape before emitting `emitc.subscript`.
The existing array-based lowering path remains unchanged.
This patch intentionally does ***not*** modify the MemRef → EmitC type
conversion rule (`memref → emitc.array`). Instead, the mismatch
introduced by `memref.alloc` returning a pointer is handled locally in
the `LoadOp` and `StoreOp` conversions.
## Example 1: Single-dimensional store
### Input
```mlir
func.func @alloc_store(%arg0: i32, %i: index) {
%alloc = memref.alloc() : memref<999xi32>
memref.store %arg0, %alloc[%i] : memref<999xi32>
return
}
```
### Current lowering
```mlir
// AllocOp conversion unchanged -> excluded for brevity
%5 = builtin.unrealized_conversion_cast %4 : !emitc.ptr<i32> to !emitc.array<999xi32>
%6 = subscript %5[%arg1]
assign %arg0 to %6 : <i32>
```
The `unrealized_conversion_cast` remains in the IR.
### Lowering after this patch
```mlir
%5 = subscript %4[%arg1] : (!emitc.ptr<i32>, !emitc.size_t) -> !emitc.lvalue<i32>
assign %arg0 : i32 to %5 : <i32>
```
The cast is eliminated and pointer subscripting is used directly.
## Example 2: Multi-dimensional store
### Input
```mlir
func.func @memref_alloc_store(%v : f32, %i : index, %j : index) {
%alloc = memref.alloc() : memref<4x8xf32>
memref.store %v, %alloc[%i, %j] : memref<4x8xf32>
return
}
```
### Current lowering
```mlir
// AllocOp conversion unchanged -> excluded for brevity
%5 = builtin.unrealized_conversion_cast %4 : !emitc.ptr<f32> to !emitc.array<4x8xf32>
%6 = subscript %5[%arg1, %arg2] : (!emitc.array<4x8xf32>, !emitc.size_t, !emitc.size_t) -> !emitc.lvalue<f32>
assign %arg0 : f32 to %6 : <f32>
```
### Lowering after this patch
```mlir
%5 = "emitc.constant"() <{value = 8 : index}> : () -> !emitc.size_t
%6 = mul %arg1, %5 : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
%7 = add %6, %arg2 : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
%8 = subscript %4[%7] : (!emitc.ptr<f32>, !emitc.size_t) -> !emitc.lvalue<f32>
assign %arg0 : f32 to %8 : <f32>
```
The multi-dimensional indices are converted into a linear row-major
index before pointer subscripting.
Assisted-by: ChatGPT (refine implementation + tests). I reviewed all
code and tests before submission.
Commit: c63ce62f7cf6193714e95f6b3442170ccb2a3a5e
https://github.com/llvm/llvm-project/commit/c63ce62f7cf6193714e95f6b3442170ccb2a3a5e
Author: ambergorzynski <120007557+ambergorzynski at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/si-lower-i1-copies.mir
Log Message:
-----------
[NFC][AMDGPU] New test for untested case in SILowerI1Copies (#186127)
[This
line](https://github.com/ambergorzynski/llvm-project/blob/main/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp#L646)
is untested by the existing LLVM test suite (checked using code coverage
and by inserting an `abort`).
We propose a new test that exercises this case. The test is demonstrated
by adding an abort to show that it is the only test that fails (the
abort is removed before merging).
Commit: c5c0b8348e6cbb966675c7f4c5e55922da5f6a88
https://github.com/llvm/llvm-project/commit/c5c0b8348e6cbb966675c7f4c5e55922da5f6a88
Author: ioana ghiban <ioana.ghiban at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/Transforms/Passes.td
M mlir/include/mlir/Dialect/MemRef/Transforms/Transforms.h
M mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
A mlir/lib/Dialect/MemRef/Transforms/ElideReinterpretCast.cpp
A mlir/test/Dialect/MemRef/elide-reinterpret-cast.mlir
Log Message:
-----------
[mlir][memref] Rewrite scalar `memref.copy` through reinterpret_cast into load/store (#186118)
This change adds a rewrite that simplifies `memref.copy` operations whose
destination is a scalar view produced by `memref.reinterpret_cast`.
The pattern matches cases where a reinterpret cast creates a scalar view
(`sizes = [1, ..., 1]`) into a memref that has a single non-unit dimension. In
this situation the view refers to exactly one element in the base buffer, so
the accessed address depends only on the base pointer and the offset.
The stride information of the view does not affect the accessed element,
because the only valid index into the view is `[0, ..., 0]`.
Therefore the copy can be rewritten into a direct load from the source and a
store into the base memref using the offset from the reinterpret cast.
This makes the `memref.reinterpret_cast` redundant for the copy and simplifies
the IR.
Assisted-by: ChatGPT (refine implementation + tests). I reviewed all code and
tests before submission.
### Example
Before:
```mlir
func.func private @concat() {
%src = memref.alloc() : memref<1x1xf32>
%base = memref.alloc() : memref<1x108xf32>
%view = memref.reinterpret_cast %base
to offset: [0], sizes: [1, 1], strides: [108, 1]
: memref<1x108xf32>
to memref<1x1xf32, strided<[108, 1]>>
memref.copy %src, %view
: memref<1x1xf32>
to memref<1x1xf32, strided<[108, 1]>>
}
```
After:
```mlir
func.func private @concat() {
%src = memref.alloc() : memref<1x1xf32>
%base = memref.alloc() : memref<1x108xf32>
%c0 = arith.constant 0 : index
%v = memref.load %src[%c0, %c0] : memref<1x1xf32>
memref.store %v, %base[%c0, %c0] : memref<1x108xf32>
}
```
### Motivation
This rewrite simplifies IR and helps eliminate `memref.reinterpret_cast`
operations in preparation for later lowerings (e.g. EmitC lowering), where
pointer-based access patterns are easier to handle once scalar accesses are
explicit.
### Scope
This rewrite is intentionally narrow:
- It only applies when both source and destination reduce to scalar accesses.
- It does not attempt to rewrite general `memref.copy` operations.
- It does not introduce loops or handle multi-element copies.
The pass currently performs only this transformation, so it is expected to be
used intentionally rather than as part of a broad optimization pipeline.
### Why not use `memref.copy` directly?
`memref.copy` requires source and destination memrefs to have the same shape.
The destination of the copy here is a scalar view derived from a larger memref,
so copying directly into the base memref would violate this requirement.
Instead, the rewrite loads the scalar value from the source and stores it into
the base memref, at the index determined by the reinterpret cast offset.
Commit: 4199bb1a8149197061d0b74e24d78a0b6ae4c87c
https://github.com/llvm/llvm-project/commit/4199bb1a8149197061d0b74e24d78a0b6ae4c87c
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp
Log Message:
-----------
[AMDGPU] Simplify loop in AMDGPULowerVGPREncoding::handleCoissue. NFC. (#187511)
Commit: d049eef4b5ab8e7f8dcfb40406d81666d9f5dfdc
https://github.com/llvm/llvm-project/commit/d049eef4b5ab8e7f8dcfb40406d81666d9f5dfdc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/test/CodeGen/X86/fold-masked-merge.ll
Log Message:
-----------
[DAG] Use value tracking to detect or_disjoint patterns and add a add_like pattern matcher (#187478)
Extend the generic or_disjoint pattern to call haveNoCommonBitsSet, this
allows us to remove the similar x86 or_is_add pattern, use or_disjoint
directly and merge some add/or_is_add matching patterns to use a
add_like wrapper pattern instead
Commit: d8a83a11231fe4b3450e6a8bf1fe77f659ae0c20
https://github.com/llvm/llvm-project/commit/d8a83a11231fe4b3450e6a8bf1fe77f659ae0c20
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/SPIRV/pointers/PtrCast-in-OpSpecConstantOp.ll
M llvm/test/CodeGen/SPIRV/pointers/global-ptrtoint.ll
M llvm/test/CodeGen/SPIRV/pointers/nested-struct-opaque-pointers.ll
M llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll
M llvm/test/CodeGen/SPIRV/transcoding/ConvertPtrInGlobalInit.ll
Log Message:
-----------
[NFC][SPIR-V] Disable tests failed after spirv-val update (#187028)
Issues:
- https://github.com/llvm/llvm-project/issues/186344
- https://github.com/llvm/llvm-project/issues/186756
Commit: 923cc2d43b4174aa2f236a9180f6aa07502716f0
https://github.com/llvm/llvm-project/commit/923cc2d43b4174aa2f236a9180f6aa07502716f0
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUSplitModule.cpp
M llvm/test/tools/llvm-split/AMDGPU/kernels-dependencies.ll
Log Message:
-----------
[AMDGPU] Fix alias handling in module splitting functionality (#187295)
Summary:
The module splitting used for `-flto-partitions=8` support (which is
passed by default) did not correctly handle aliases. We mainly need to
do two things: keep the aliases in the they are used in and externalize
them. Internalize linkage needs to be handled conservatively.
This is needed because these aliases show up in PGO contexts.
---------
Co-authored-by: Shilei Tian <i at tianshilei.me>
Commit: d18a784d410617fbb3f9d2bf6d30fcd84b3533db
https://github.com/llvm/llvm-project/commit/d18a784d410617fbb3f9d2bf6d30fcd84b3533db
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfiling.h
A compiler-rt/lib/profile/InstrProfilingPlatformGPU.c
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M offload/test/CMakeLists.txt
M offload/test/lit.cfg
M offload/test/lit.site.cfg.in
M openmp/device/CMakeLists.txt
R openmp/device/include/Profiling.h
R openmp/device/src/Profiling.cpp
Log Message:
-----------
[compiler-rt] Define GPU specific handling of profiling functions (#185763)
Summary:
The changes in https://www.github.com/llvm/llvm-project/pull/185552
allowed us to
start building the standard `libclang_rt.profile.a` for GPU targets.
This PR expands this by adding an optimized GPU routine for counter
increment and removing the special-case handling of these functions in
the OpenMP runtime.
Vast majority of these functions are boilerplate, but we should be able
to do more interesting things with this in the future, like value or
memory profiling.
Commit: b7776ccebe9d97a30160b29623a2d0691572b789
https://github.com/llvm/llvm-project/commit/b7776ccebe9d97a30160b29623a2d0691572b789
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/test/CIR/CodeGen/new.cpp
Log Message:
-----------
[CIR] Add support for array new with ctor init (#187418)
This adds support for array new initialization that requires calling
constructors.
This diverges a bit from the classic codegen implementation in a couple
of ways. First, we use the cir.array_ctor operation to represent all the
constructor calls that weren't part of an explicit initializer list.
This gets lowered to a loop during the LoweringPrepare pass. Second,
because CIR uses more explicit types, we have to insert a bitcast of the
array pointer to an explicit array type. Third, when an initializer list
is provided and we are calling constructors for the "filler" portion of
the list, we attempt to get the array size as a constant and create a
"tail array" to initialize that is sized to the number of elements
remaining.
Commit: a693970f07933d79cbd671a200df52df90a9d7bd
https://github.com/llvm/llvm-project/commit/a693970f07933d79cbd671a200df52df90a9d7bd
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/Transforms/LICM/store-hoisting.ll
Log Message:
-----------
[LICM] Regenerate test checks (NFC)
Commit: c9f6ad8d4299163db08c5a9fb1746f9cc1a5ae15
https://github.com/llvm/llvm-project/commit/c9f6ad8d4299163db08c5a9fb1746f9cc1a5ae15
Author: Hristo Hristov <hristo.goshev.hristov at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libcxx/docs/index.rst
Log Message:
-----------
[libc++][docs][NFC] Update Open XL supported version to 17.1.4 (#176112)
Open XL 17.1.4 based on LLVM21 was released:
https://www.ibm.com/docs/en/openxl-c-and-cpp-aix/17.1.4?topic=whats-new
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: e2c9dde1a5f31b2b398b87be5eb3d165c0aebed8
https://github.com/llvm/llvm-project/commit/e2c9dde1a5f31b2b398b87be5eb3d165c0aebed8
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.ttracedata.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for s_ttracedata (#187342)
Commit: 593683f9a0eb53018ab1548ca55be9ff57cb1b23
https://github.com/llvm/llvm-project/commit/593683f9a0eb53018ab1548ca55be9ff57cb1b23
Author: Zhen Wang <37195552+wangzpgi at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsLoop.h
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsCG.cpp
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsLoop.cpp
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsLoopTest.cpp
Log Message:
-----------
[OpenACC][NFC] Generalize wrapMultiBlockRegionWithSCFExecuteRegion (#187359)
Simplify `wrapMultiBlockRegionWithSCFExecuteRegion` by replacing the
`bool convertFuncReturn` parameter with a generic `getNumSuccessors() ==
0` check. Terminators with no successors are by definition region exit
points, so they can be identified automatically without requiring
callers to specify types. This enables downstream dialects (e.g., CUF
with fir::FirEndOp) to reuse the utility without modifying it.
```
// Before:
wrapMultiBlockRegionWithSCFExecuteRegion(region, mapping, loc, rewriter, /*convertFuncReturn=*/true);
// After:
wrapMultiBlockRegionWithSCFExecuteRegion(region, mapping, loc, rewriter);
```
Commit: 9050794e06cf1cf6f39bf2a3011eed5abf7c99b6
https://github.com/llvm/llvm-project/commit/9050794e06cf1cf6f39bf2a3011eed5abf7c99b6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/X86/scalarization-inseltpoison.ll
M llvm/test/Transforms/PhaseOrdering/X86/scalarization.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/strided-loads-based-reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-instructions-clear.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduction-extracted-value.ll
M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
Log Message:
-----------
[SLP]Improve reductions for copyables/split nodes
The original support for copyables leads to a regression in x264 in
RISCV, this patch improves detection of the copyable candidates by more
precise checking of the profitability and adds and extra check for
splitnode reduction, if it is profitable.
Fixes #184313
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/185697
Commit: d0caa41c51cebed76b05d56f6d9728201f72185d
https://github.com/llvm/llvm-project/commit/d0caa41c51cebed76b05d56f6d9728201f72185d
Author: Luisa Cicolini <48860705+luisacicolini at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/test/CodeGen/AArch64/GlobalISel/combine-integer.mir
M llvm/test/CodeGen/AArch64/neg-selects.ll
M llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
Log Message:
-----------
[GISel] import pattern `(A-(B-C)) to A+(C-B)` (#181676)
This PR imports the rewrite pattern `(A-(B-C)) to A+(C-B)` from
selectionDAG to GlobalISel.
The rewrite should only trigger when `B-C` is used once.
Commit: 4cbb67a962196285b5342a133ca8a2d986013eb0
https://github.com/llvm/llvm-project/commit/4cbb67a962196285b5342a133ca8a2d986013eb0
Author: Bruce Changlong Xu <brucechanglongxu at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
Log Message:
-----------
[AMDGPU] Use empty() instead of size() comparisons. NFC. (#187424)
Replace `.size() == 0`, `.size() != 0`, and `.size() > 0` with
`.empty()` / `!.empty()` across the AMDGPU backend.
Commit: 2ec08b31941d4e524fcc20e2e62ef865e80a2bab
https://github.com/llvm/llvm-project/commit/2ec08b31941d4e524fcc20e2e62ef865e80a2bab
Author: Weiwen He <60433849+he-weiwen at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
A llvm/test/Transforms/LoadStoreVectorizer/X86/mismatched-gep-stride.ll
Log Message:
-----------
[LSV] Added check for mismatched GEP strides in getConstantOffsetComplexAddrs (#186671)
When two GEPs A & B with variable indices have source element types of
different sizes (e.g. i8 vs i32), their offsets cannot be constants.
Currently the `getConstantOffsetComplexAddrs` does not check this and
simply use the stride of GEP A assuming they are equal, resulting in
miscompile.
Add a check that the source element types are the same, otherwise bail
out.
Fixes #186327
Commit: bdeb18a74e59b88775308674769e991c9fb6c35a
https://github.com/llvm/llvm-project/commit/bdeb18a74e59b88775308674769e991c9fb6c35a
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A llvm/test/tools/llc/mattr-mcpu-help.ll
M llvm/tools/llc/llc.cpp
Log Message:
-----------
[llc] Enable -mattr=help regardless of -mattr order (#187269)
Previously a command like `llc -mtriple=aarch64 -mattr=+zcm-fpr64
-mattr=help` would hang, instead of printing help text and exiting. This
patch provides a fix by relaxing the previous constraint where
`-mattr=help` must have been first among attrs. It can now appear
anywhere.
Includes a test to cover both `-mcpu=help` and `-mattr=help` for llc.
Commit: 1d854bd51bf05407d845fcc1de1db502f70ba68c
https://github.com/llvm/llvm-project/commit/1d854bd51bf05407d845fcc1de1db502f70ba68c
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsghalt.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-constant.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.rtn.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for s_sendmsg (#187361)
Commit: 4ea9c1a4564af364654e7bba09676da1e289f686
https://github.com/llvm/llvm-project/commit/4ea9c1a4564af364654e7bba09676da1e289f686
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/Transforms/LICM/call-hoisting.ll
Log Message:
-----------
[LICM] Mark load function as willreturn in test (NFC)
To make sure that the tests covering store hoisting are testing
the thing they're supposed to. Otherwise hoisting may fail because
the store can't be speculated, rather than due to memory effects.
Commit: 9044b0f17162f35cb1fc44eba09344fa11fc3d8a
https://github.com/llvm/llvm-project/commit/9044b0f17162f35cb1fc44eba09344fa11fc3d8a
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
M llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
M llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
M llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
M llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
A llvm/test/tools/llvm-pdbutil/Inputs/local-regrel-indir.yaml
A llvm/test/tools/llvm-pdbutil/local-regrel-indir.test
M llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
Log Message:
-----------
[DebugInfo][CodeView] Support `S_DEFRANGE_REGISTER_REL_INDIR` (#186410)
This adds support for `S_DEFRANGE_REGISTER_REL_INDIR` (as
`DefRangeRegisterRelIndirSym`).
It's to `S_REGREL32_INDIR` what `S_DEFRANGE_REGISTER_REL` is to
`S_REGREL32`. `S_REGREL32_INDIR` was added in #183172.
LLVM only generates `S_LOCAL` for variables and parameters, so we need
this record to specify a range where a variable is indirectly accessed.
I didn't find any PDB where this record is in, so I guessed the layout
based on `S_DEFRANGE_REGISTER_REL` and `S_REGREL32_INDIR`. Locally, I
updated LLVM to generate this where possible, and tested it with the VS
debugger and WinDBG. Both handled the record correctly. This PR doesn't
include the change to debug info generation yet - you can find the
current WIP in
https://github.com/Nerixyz/llvm-project/commit/884072fa17e0361e2e493419a975f2b67c04982a.
The name `OffsetInUdt` comes from DIA
([`get_offsetInUdt`](https://learn.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/idiasymbol-get-offsetinudt?view=visualstudio)).
Given that this symbol also has a `offsetInParent`, I find the name a
bit confusing. When generating the record in the commit above, I used
the name `DerefOffset`. If we change it here, it should be changed in
`RegRelativeIndirSym` as well.
Commit: 55e6683fe4a2bda62c46ac50c091a7cfb4a20e5e
https://github.com/llvm/llvm-project/commit/55e6683fe4a2bda62c46ac50c091a7cfb4a20e5e
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
Log Message:
-----------
[NFC][AMDGPU] Move SWMMAC features into specific target feature sets (#187394)
Commit: 422dabeb4e82430e46bc5d6b4d189525a8df4715
https://github.com/llvm/llvm-project/commit/422dabeb4e82430e46bc5d6b4d189525a8df4715
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_eq.ll
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_ne.ll
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_sge.ll
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_slt.ll
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_uge.ll
M llvm/test/CodeGen/RISCV/short-forward-branch-opt-with-branch-with-immediates_32_ult.ll
Log Message:
-----------
[RISCV] SFB with Immediates to QC.MVccI (#186555)
When we are just branching over a move (rather than a more complex
instruction), then Xqcicm sometimes has equivalent conditional move
instructions for that which are shorter.
We can only turn `qc.b<cc>i` instructions into `qc.mv<cc>i` instructions
because the immediate ranges match (5-bit). The `qc.e.b<cc>i` take
larger immediates (16-bit) for which there is no equivalent.
Commit: b20d21aaf1646b27822be1004e90a06b7c776217
https://github.com/llvm/llvm-project/commit/b20d21aaf1646b27822be1004e90a06b7c776217
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/www/c_status.html
Log Message:
-----------
[C23] Downgrade WG14 N3037 implementation status to partial (#187495)
In discussion of #186196, it started to become clear that claiming full
conformance to this feature was premature because there are still
outstanding implementation issues and standards questions with the
feature. Claiming full conformance gives users a false impression that
we think the implementation is production quality and that we don't
expect to change our implementation in breaking ways, but I believe that
we want some flexibility here and it's more accurate to say we only
partially support the feature at the moment.
Note, this is not saying we expect to break the code from that issue,
just listing where the discussion took place that led to this patch.
Commit: 3f5d6bdd2ac00c508290a6080438aaecfe2d0690
https://github.com/llvm/llvm-project/commit/3f5d6bdd2ac00c508290a6080438aaecfe2d0690
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.add.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.add.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.add.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.add.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.sub.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for buffer atomic add/sub (#187405)
Commit: 65f6a346a96acf1e0914b5288af8253801973b6d
https://github.com/llvm/llvm-project/commit/65f6a346a96acf1e0914b5288af8253801973b6d
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/Analysis/indirect-goto-basics.c
Log Message:
-----------
[NFC][analyzer] Eliminate IndirectGotoNodeBuilder (#187343)
This commit removes the class `IndirectGotoNodeBuilder` because it was
an abstraction that just complicated and obscured the underlying logic
without any practical advantage.
Incidentally, this PR also prepares the ground for dispatch based on
symbolic pointers in indirect goto statements. (If somebody would need
it, I could implement it reasonably quickly.)
Commit: dfafee7a4782b833158079e72db601ebe0e9886f
https://github.com/llvm/llvm-project/commit/dfafee7a4782b833158079e72db601ebe0e9886f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/unittests/Analysis/ScalarEvolutionTest.cpp
Log Message:
-----------
[SCEV] Convert more interfaces to use SCEVUse (NFC). (#185045)
Convert more interfaces to SCEVUse, following up to
https://github.com/llvm/llvm-project/pull/91961.
PR: https://github.com/llvm/llvm-project/pull/185045
Commit: ffa8ba8ce2d1d4f5d435f4c9e5787a5539ead1d4
https://github.com/llvm/llvm-project/commit/ffa8ba8ce2d1d4f5d435f4c9e5787a5539ead1d4
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
Log Message:
-----------
[NFC][LAA] Minor stylistic/comments improvements (#185510)
I tried to split into individual tiny commits to ease review but
uploading them as separate PRs would definitely be an overkill.
---------
Co-authored-by: Ramkumar Ramachandra <r at artagnon.com>
Co-authored-by: Florian Hahn <flo at fhahn.com>
Commit: 555caa18762fe068d00b61c62e13e6d04b2bfa9f
https://github.com/llvm/llvm-project/commit/555caa18762fe068d00b61c62e13e6d04b2bfa9f
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return.cpp
Log Message:
-----------
[clang-tidy] Fix `readability-else-after-return` breaking code by deleting too many characters (#187437)
Fixes #57258.
Commit: 23d8651de3f8c6bbaf6ecf7c17900152b918e3fe
https://github.com/llvm/llvm-project/commit/23d8651de3f8c6bbaf6ecf7c17900152b918e3fe
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterC.txt
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterSwift.txt
Log Message:
-----------
[lldb][bytecode] Remove tracking of stack temps in compiler (#187401)
The `num_temps` was introduced under the mistaken understanding of the
index values given to the `pick` op. I thought the `pick` index was from
the top of the stack, but it's from the bottom. The model of indexing
from the bottom of the stack has the benefit of simplifying the
compiler.
Commit: 1d9762a0776562095bbb8b543f2e273ddb062fd7
https://github.com/llvm/llvm-project/commit/1d9762a0776562095bbb8b543f2e273ddb062fd7
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/atomic.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/floating-point.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/integer.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/mul-div-rv32.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/mul-div.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/arithmetic.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/bitwise.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/comparison.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/conversion.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/fma.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/fp.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/mask.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/minmax.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/mul-div.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/permutation.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/reduction.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/vle-vse-vlm.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/vlse-vsse.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/vlseg-vsseg.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/rvv/vlxe-vsxe.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zba.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zbb.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zbs.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zfh.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zfhmin.test
A llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zicond.test
M llvm/unittests/TargetParser/RISCVTargetParserTest.cpp
Log Message:
-----------
[RISCV] Add scheduling models for `sifive-x160` and `sifive-x180` (#187089)
Assign scheduling models to `sifive-x160` and `sifive-x180`.
Currently both of them share the same model, which is a variant of the
SiFive7 scheduling model with VLEN=128. Because of this commonality, most
tests only use `-mcpu=sifive-x180`, whose instruction set is a superset
of `sifive-x160`'s.
Commit: de9746cdfeb4488d9eff5ed24a0bb82624365096
https://github.com/llvm/llvm-project/commit/de9746cdfeb4488d9eff5ed24a0bb82624365096
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/test/CMakeLists.txt
A clang-tools-extra/test/Unit/CMakeLists.txt
Log Message:
-----------
[clang-doc] Add individual target for unit tests (#185695)
Commit: 300a19d83e29125b7815c9555687acb4cf54565f
https://github.com/llvm/llvm-project/commit/300a19d83e29125b7815c9555687acb4cf54565f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
Log Message:
-----------
[X86] bitcnt-big-integer.ll - add vXi128/vXi256 ctpop test coverage for #187447 (#187533)
Commit: 1418f80d5c4d1f54e2f11f0650818c6c602aa505
https://github.com/llvm/llvm-project/commit/1418f80d5c4d1f54e2f11f0650818c6c602aa505
Author: Dhruv Chauhan <dhruv.chauhan at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tensor/Transforms/Transforms.h
M mlir/lib/Dialect/Tensor/Transforms/ConcatOpPatterns.cpp
M mlir/lib/Dialect/Tensor/Transforms/FoldTensorSubsetOps.cpp
M mlir/test/Dialect/Tensor/fold-tensor-subset-ops.mlir
Log Message:
-----------
[mlir][tensor] Forward concat insert_slice destination into DPS provider (#183490)
In TosaToTensor, forward concat insert_slice destination slices into
single use destination style producers, which avoids creating temp
producer results that are immediately copied into the concat result. Add
regression test for concat + fill forwarding
Commit: 7925ef6df83cbf44912742dc2e0bd5eafc7e3855
https://github.com/llvm/llvm-project/commit/7925ef6df83cbf44912742dc2e0bd5eafc7e3855
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/TemplateBase.h
M clang/lib/AST/TemplateBase.cpp
M clang/lib/AST/TypeLoc.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/test/SemaCXX/type_pack_element.cpp
Log Message:
-----------
[clang] fix crash related to missing source locations for converted template arguments (#187352)
This adds a way to attach source locations to trivially created template
arguments such as packs, or converted expressions when there is no
expression available.
This also avoids crashes due to missing source locations.
In a few places where this matters, we already create expressions from
the converted arguments, but this requires access to Sema, where
currently creating trivial typelocs only requires access to to the
ASTContext.
So this creates a new storage kind for TemplateArgumentLocs, where a
single SourceLocation is stored, embedded in the pointer where possible.
As a drive-by, strenghten asserts by enforcing the TemplateArgumentLocs
are created with the right kinds of locations.
Fixes #186655
Commit: 467cf7caeda8651f5787138882a2160730e02a99
https://github.com/llvm/llvm-project/commit/467cf7caeda8651f5787138882a2160730e02a99
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/SandboxIR/Instruction.h
M llvm/include/llvm/SandboxIR/Value.h
M llvm/include/llvm/SandboxIR/Values.def
M llvm/lib/SandboxIR/Context.cpp
M llvm/lib/SandboxIR/Instruction.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxIR] Implement UncondBrInst and CondBrInst (#187196)
This patch implements the unconditional and conditional branch
instructions mirroring the newly added LLVM IR instructions.
So now we have two new classes UncondBrInst and CondBrInst inheriting
from BranchInst.
The original Br opcode has been removed in favor of UncondBr and CondBr.
Commit: d96722b660220d079b46956eb15c489d02eb2b7b
https://github.com/llvm/llvm-project/commit/d96722b660220d079b46956eb15c489d02eb2b7b
Author: CarolineConcatto <caroline.concatto at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGenOpenCL/convergent.cl
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/Support/ModRef.h
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/IR/Attributes.cpp
M llvm/test/Assembler/memory-attribute-errors.ll
M llvm/test/Assembler/memory-attribute.ll
M llvm/test/Bitcode/memory-attribute-upgrade.ll
M llvm/test/Transforms/FunctionAttrs/argmemonly.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/read-write-scc.ll
M llvm/test/Transforms/FunctionAttrs/readattrs.ll
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
M llvm/test/Transforms/GlobalOpt/disable-globals-aa.ll
M llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll
M llvm/test/Transforms/LowerTypeTests/cfi-nounwind-direct-call.ll
M llvm/test/Transforms/SCCP/ipscp-drop-argmemonly.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[LLVM] Improve IR parsing and printing for target memory locations (#176968)
This patch adds support for specifying all target memory locations using
a
single IR spellings such as:
```
memory(target_mem: read)
```
This form is not supported in TableGen, but it is now accepted by the IR
parser.
When the parser encounters target_mem, it expands it to all
target-memory
locations (e.g., target_mem0, target_mem1, …).
Printing behavior
When all target-memory locations share the same ModRef value, the
printer
now collapses them into a single entry:
```
memory(target_mem: read)
```
Otherwise, each target memory location is printed separately.
Rejected IR:
```
memory(target_mem0: write, target_mem: read)
```
This is invalid because the default access kind for the target memory
group
must appear first.
Commit: e405a1195716ccdcba5ddc7b558cd50885fb41a6
https://github.com/llvm/llvm-project/commit/e405a1195716ccdcba5ddc7b558cd50885fb41a6
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/include/lldb/Target/DynamicLoader.h
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
A lldb/test/API/macosx/shared-cache-vm-range/Makefile
A lldb/test/API/macosx/shared-cache-vm-range/TestSharedCacheVMRange.py
A lldb/test/API/macosx/shared-cache-vm-range/main.c
M lldb/tools/debugserver/source/MacOSX/MachProcess.h
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
Log Message:
-----------
[lldb][debugserver] Get the size of the shared cache in mapped VM (#187419)
Fetch the size of the shared cache address range in VM in the inferior
process and return it, if possible. This allows for a simple call to
DynamicLoader::GetSharedCacheInformation to get the virtual address
extent of the shared cache in the inferior. It's a minor addition to the
method that fetches the shared cache filepath from the inferior, plus
piping it up through lldb's layers.
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
Commit: f334194167b7b6551734a4d4ce1a3c393a8d1903
https://github.com/llvm/llvm-project/commit/f334194167b7b6551734a4d4ce1a3c393a8d1903
Author: Valeriy Savchenko <vsavchenko at apple.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
A llvm/test/Analysis/BasicAA/gep-and-mask-gcd.ll
Log Message:
-----------
[BasicAA] Use KnownBits trailing zeros to boost GCD in modular aliasing check (#187297)
If a GEP variable index V has known trailing zeros, shift ScaleForGCD
left by that amount to capture the larger stride. This helps patterns
like `and %x, -Align` that GetLinearExpression cannot fold into Scale.
Commit: 05ae66851da5bd5d8d8b9b5d9131d6d580ff8004
https://github.com/llvm/llvm-project/commit/05ae66851da5bd5d8d8b9b5d9131d6d580ff8004
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterSwift.txt
Log Message:
-----------
[lldb][bytecode] Swift output is conditional on >=6.3 (#187544)
The `@section` and `@used` attributes are available in Swift 6.3 and
later. See [SE-0492][1].
Prior to 6.3, these were available as `@_section` and `@_used`, however
those require enabling the `SymbolLinkageMarkers ` experimental feature.
[1]: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0492-section-control.md
Commit: 4f298d4efa2f48e7d78c1883d56372bf67bb806a
https://github.com/llvm/llvm-project/commit/4f298d4efa2f48e7d78c1883d56372bf67bb806a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h
M lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp
M lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
M lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h
A lldb/source/Plugins/ExpressionParser/Clang/InjectPointerSigningFixups.cpp
A lldb/source/Plugins/ExpressionParser/Clang/InjectPointerSigningFixups.h
A lldb/test/API/commands/expression/ptrauth/Makefile
A lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py
A lldb/test/API/commands/expression/ptrauth/main.c
Log Message:
-----------
[lldb] Support arm64e in the expression evaluator (#186001)
This PR upstreams support for PtrAuth in the LLDB expression evaluator.
It's a rebased version of an older patch in the Swiftlang repo
(https://github.com/swiftlang/llvm-project/pull/5012) but adapted to not
rely on `GlobalPtrAuthInfo.h`. I followed Anton's advice, and instead of
iterating over all globals and hack on wrappers, the pass now iterates
over all global uses and fixes up ConstantPtrAuth expressions if any.
This is one of the last large chunks of downstream PtrAuth code in LLDB,
and the primary blocker for running the LLDB test suite in arm64e mode
on Apple Silicon, which I'd really like to make the default in the
future.
Commit: 584c83cb152748e7e0a2607ca3f5e644936f5859
https://github.com/llvm/llvm-project/commit/584c83cb152748e7e0a2607ca3f5e644936f5859
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.td
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
A clang/test/CodeGenHIP/builtins-amdgcn-buffer-format.hip
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-store-format.cl
A clang/test/SemaHIP/builtins-amdgcn-buffer-format.hip
A clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-format-error.cl
A clang/test/SemaOpenCL/builtins-amdgcn-struct-buffer-format-error.cl
Log Message:
-----------
[Clang][AMDGPU] Add clang builtins for buffer format load/store intrinsics (#187064)
Adding new clang builtins for AMDGPU raw/struct buffer format load/store
intrinsics. Clang currently has `__builtin_amdgcn_raw_buffer_load_b*`
and `__builtin_amdgcn_raw_buffer_store_b*` builtins, but is missing
builtins for the format variants. These format intrinsics are currently
used by device-libs via manually written IR wrappers in
[buffer-intrinsics.ll](https://github.com/ROCm/llvm-project/blob/amd-staging/amd/device-libs/ockl/src/buffer-intrinsics.ll).
Commit: a52a3f6c7a04c6b4bcb5ca533e0c67e06e7357b6
https://github.com/llvm/llvm-project/commit/a52a3f6c7a04c6b4bcb5ca533e0c67e06e7357b6
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.data.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.var.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for s_sleep_var, s_prefetch (#187382)
Commit: 7d76a3122ddeb5e57678a842b102509407e06690
https://github.com/llvm/llvm-project/commit/7d76a3122ddeb5e57678a842b102509407e06690
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
M llvm/test/Transforms/SLPVectorizer/X86/bswap-i64-by-i32-chunks.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-bswap.ll
Log Message:
-----------
[SLP]Improve analysis for the shl-based reduced values with copyables (#185485)
shl-based reduced values in many cases serve as a bitcast/bswap-based
transfromation root, but need to improve analysis for better matching.
This patch merges reduction candidates into a single reduced value
array, if there are only 2 different candidate arrays, one of them has
only single element, the second is a list of shl instructions. Also,
sorts these shl instructions by their shift amount and merges with the
single candidate, if it is profitable to have a copyable reduction.
Commit: 90d3944c4ad160d011158fbe823ae5afbed7fd50
https://github.com/llvm/llvm-project/commit/90d3944c4ad160d011158fbe823ae5afbed7fd50
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
A clang/test/CIR/CodeGen/initializer-list-two-pointers.cpp
Log Message:
-----------
[CIR] Implement VisitCXXStdInitializerListExpr for 2 ptr layout (#186679)
Implement support for CXXStdInitializerListExpr for two pointers (begin,
end) layout
Commit: f66bd8e81a0b782122e3900ea135f5f57ddd8f7c
https://github.com/llvm/llvm-project/commit/f66bd8e81a0b782122e3900ea135f5f57ddd8f7c
Author: Grigory Pastukhov <99913765+grigorypas at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/IR/Attributes.td
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/Transforms/IPO/AlwaysInliner.cpp
M llvm/lib/Transforms/IPO/Inliner.cpp
M llvm/lib/Transforms/IPO/ModuleInliner.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Bitcode/attributes.ll
A llvm/test/Transforms/Inline/AArch64/flatten-sme.ll
A llvm/test/Transforms/Inline/flatten.ll
Log Message:
-----------
[LLVM] Add flatten function attribute to LLVM IR and implement recursive inlining in AlwaysInliner (#174899)
This adds a new function-level `flatten` LLVM IR attribute and
implements support for it in the AlwaysInliner pass, bringing LLVM's
behavior in line with GCC.
Previously, the `flatten` attribute only existed as a Clang attribute,
which was lowered to `alwaysinline` on individual call sites. Per the
RFC discussion [1], the consensus was to match GCC semantics:
recursively inline the entire call tree into the
flattened function, rather than just immediate call sites.
This PR:
- Adds the `flatten` function attribute to LLVM IR
- Implements recursive inlining of all viable callees in AlwaysInliner
- Uses inline history tracking to detect and stop at recursive call
cycles
- Emits optimization remarks when inlining is skipped due to recursion
A follow-up patch will update Clang to emit the LLVM `flatten` attribute
on
functions instead of marking individual call sites with `alwaysinline`.
[1]
https://discourse.llvm.org/t/rfc-function-level-flatten-depth-attribute-for-depth-limited-inlining
Commit: 4df2725a2e052cd8fc657b95fcc69509c1cfffa1
https://github.com/llvm/llvm-project/commit/4df2725a2e052cd8fc657b95fcc69509c1cfffa1
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[AMDGPU][AMDGPUBaseInfo] Replace Waitcnt members with array (#182927)
This patch replaces the member variables of Waitcnt with an array. This
helps in several ways:
(i) It helps replace switch cases with array accesses, and
(ii) It makes operating on all elements with a loop which is much
easier, and should require less maintenance if we add more counters
Commit: 721775bf88e1097431f1cf6d86493e2026ceb5b2
https://github.com/llvm/llvm-project/commit/721775bf88e1097431f1cf6d86493e2026ceb5b2
Author: Alcaro <floating at muncher.se>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang-c/Index.h
Log Message:
-----------
clang-c/Index.h: Fix typoed comment (#144219)
NULL is not a representable value in type unsigned
Commit: b6543c98d7e49556c482c22083a53754038abfd4
https://github.com/llvm/llvm-project/commit/b6543c98d7e49556c482c22083a53754038abfd4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/X86/divmod128.ll
M llvm/test/CodeGen/X86/i128-udiv.ll
M llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
Log Message:
-----------
[TargetLowering] Make sure LL/LH are always initialized in expandDIVREMByConstant
This is quick fix to fix some reported failures.
Commit: 88cbac0495b45e7ecfeba4fbab0c20d5e12807e6
https://github.com/llvm/llvm-project/commit/88cbac0495b45e7ecfeba4fbab0c20d5e12807e6
Author: Ross Burton <ross.burton at arm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libcxx/test/libcxx-03/transitive_includes/to_csv.py
M libcxx/test/libcxx/transitive_includes/to_csv.py
M libcxx/utils/ci/lnt/commit-watch
M libcxx/utils/ci/lnt/run-benchmarks
M libcxx/utils/generate_abi_list.py
M libcxx/utils/generate_escaped_output_table.py
M libcxx/utils/generate_extended_grapheme_cluster_table.py
M libcxx/utils/generate_extended_grapheme_cluster_test.py
M libcxx/utils/generate_feature_test_macro_components.py
M libcxx/utils/generate_indic_conjunct_break_table.py
M libcxx/utils/generate_iwyu_mapping.py
M libcxx/utils/generate_width_estimation_table.py
M libcxx/utils/run.py
M libcxx/utils/ssh.py
M libcxx/utils/sym_diff.py
Log Message:
-----------
[libc++] Unify python shebangs (#187258)
As per PEP-0394[1], there is no real concensus over what binary names
Python has, specifically 'python' could be Python 3, Python 2, or not
exist.
However, everyone has a python3 interpreter and the scripts are all
written for Python 3. Unify the shebangs so that the ~50% of shebangs
that use python now use python3.
[1] https://peps.python.org/pep-0394/
Commit: 486bd960993d0dc223e78ac89437806495995b46
https://github.com/llvm/llvm-project/commit/486bd960993d0dc223e78ac89437806495995b46
Author: A. Jiang <de34 at live.cn>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][NFC] Remove redundant guard for `__cpp_lib_destroying_delete` (#187473)
In `<version>` and test files, `__cpp_lib_destroying_delete` is already
properly guarded with standard modes, so it's redundant to say standard
revision in `test_suite_guard`/`libcxx_guard`.
Commit: fd3cf1c1604e454704b9b7445213396b52517e86
https://github.com/llvm/llvm-project/commit/fd3cf1c1604e454704b9b7445213396b52517e86
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-19 (Thu, 19 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
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/control-flow.ll
M llvm/test/Transforms/LoopVectorize/early_exit_legality.ll
M llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
M llvm/unittests/Transforms/Vectorize/VPlanTestBase.h
M llvm/unittests/Transforms/Vectorize/VPlanUncountableExitTest.cpp
Log Message:
-----------
[LV] Move dereferenceability check from Legal to VPlan (NFC) (#185323)
Instead of checking dereferenceability early during
LoopVectorizationLegality, defer the check to VPlan construction via
areAllLoadsDereferenceable.
This in preparation for supporting early exit vectorization of
non-dereferencable loads, e.g. via speculative loads
(https://discourse.llvm.org/t/rfc-provide-intrinsics-for-speculative-loads/89692)
or first-faulting loads. Detection in VPlan allows easily replacing
potentially non-deref loads with other loads as needed.
PR: https://github.com/llvm/llvm-project/pull/185323
Commit: ae6fbd0fb75388f733d295c51055fccd6434283c
https://github.com/llvm/llvm-project/commit/ae6fbd0fb75388f733d295c51055fccd6434283c
Author: Edgar <git at edgl.dev>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization/extract-with-patterns.mlir
Log Message:
-----------
[mlir][linalg] Fix vectorizer generating invalid vector.gather for 0-D tensor.extract (#187085)
Vectorizing a rank-0 `linalg.generic` whose body contains
`tensor.extract` with data-dependent indices hits the Gather
classification in `getTensorExtractMemoryAccessPattern` because
`isOutput1DVector` returns false for a 0-D result. This produces an
invalid `vector.gather` where operand #2 must be a vector of index
values but gets a scalar `index` instead.
Fix classifies a 0-D result as ScalarBroadcast rather than Gather, and
skips mask generation for 0-D in that path.
Commit: 8e1e371561e7a47ed9d790e50a53bf09723a2884
https://github.com/llvm/llvm-project/commit/8e1e371561e7a47ed9d790e50a53bf09723a2884
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
M llvm/include/llvm/IR/InstVisitor.h
M llvm/include/llvm/IR/Instructions.h
M llvm/lib/IR/Core.cpp
M llvm/unittests/IR/InstructionsTest.cpp
Log Message:
-----------
[IR][NFC] Mark BranchInst as deprecated (#187314)
All in-tree uses of BranchInst are eliminated, so mark as deprecated as
per the RFC.
https://discourse.llvm.org/t/rfc-split-branchinst-into-uncondbr-and-condbr/90022
Commit: adbb1227174f29cba1dcfaef3eebfb7741f0cfcf
https://github.com/llvm/llvm-project/commit/adbb1227174f29cba1dcfaef3eebfb7741f0cfcf
Author: neonetizen <102492275+neonetizen at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/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/include/wctype.yaml
M libc/src/wctype/CMakeLists.txt
A libc/src/wctype/iswprint.cpp
A libc/src/wctype/iswprint.h
M libc/test/src/wctype/CMakeLists.txt
A libc/test/src/wctype/iswprint_test.cpp
Log Message:
-----------
[libc] Implement iswprint entrypoint (#185251)
Implemented the iswprint entrypoint and tests for issue #185136
Commit: 2632ffeab1b41fb59c474d8ee68916eea0449dfe
https://github.com/llvm/llvm-project/commit/2632ffeab1b41fb59c474d8ee68916eea0449dfe
Author: lntue <lntue at google.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M libc/src/stdio/linux/stderr.cpp
M libc/src/stdio/linux/stdin.cpp
M libc/src/stdio/linux/stdout.cpp
Log Message:
-----------
[libc][stdio] Fix standard streams in overlay mode. (#187522)
https://github.com/llvm/llvm-project/pull/184669 changed the behavior of
standard streams in overlay mode, bringing in some symbols that are only
available in full build mode.
Commit: 9ae3077ae9214241af4938c7dcad5fc911992162
https://github.com/llvm/llvm-project/commit/9ae3077ae9214241af4938c7dcad5fc911992162
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang-c/Index.h
M clang/include/clang/Basic/Module.h
M clang/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/lib/Basic/ASTSourceDescriptor.cpp
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Index/IndexingAction.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ModuleManager.cpp
M clang/test/Index/annotate-module.m
M clang/test/Modules/DebugInfoSubmoduleImport.c
M clang/test/Modules/DebugInfoTransitiveImport.m
M clang/tools/c-index-test/c-index-test.c
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXIndexDataConsumer.cpp
Log Message:
-----------
[clang][modules] Remove `Module::ASTFile` (#185994)
This removes the assumption that a deserialized module is backed by a
`FileEntry`. The `OptionalFileEntryRef` member is replaced with
`ModuleFile{Name,Key}`.
Commit: 11b439c5c5a07c95d30ce25abd6adf7f5fbb7105
https://github.com/llvm/llvm-project/commit/11b439c5c5a07c95d30ce25abd6adf7f5fbb7105
Author: Ben Dunbobbin <Ben.Dunbobbin at sony.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/LTO/LTO.cpp
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
[DTLTO] Speed up temporary file removal in the ThinLTO backend (#186988)
Deleting the temporary files produced by the DTLTO ThinLTO backend can
be expensive on Windows hosts. For a Clang link (Debug build with
sanitizers and instrumentation) using an optimized toolchain (PGO
non-LTO, llvmorg-22.1.0) on a Windows 11 Pro (Build 26200), AMD Family
25 @ ~4.5 GHz, 16 cores / 32 threads, 64 GB RAM machine, the mean
duration of the "Remove DTLTO temporary files" time trace scope was
1267.789 ms (measured over 10 runs).
This patch performs the deletions on a background thread, allowing them
to overlap with the remainder of the link to hide this cost.
Based on work by @romanova-ekaterina and @kbelochapka.
Commit: 101799100b7326d1192f5bb9b605ea030324b31b
https://github.com/llvm/llvm-project/commit/101799100b7326d1192f5bb9b605ea030324b31b
Author: Gergo Stomfai <stomfaig at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/GISel/X86PostLegalizerCombiner.cpp
M llvm/lib/Target/X86/X86.h
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
M llvm/lib/Target/X86/X86PassRegistry.def
M llvm/lib/Target/X86/X86TargetMachine.cpp
Log Message:
-----------
[X86][GISEL] Port X86PostLegalizerCombiner to npm (#182787)
Port X86PostLegalizerCombiner to npm as part of llvm/llvm-project#178192
Also added cli option for lpm X86PostLegalizerCombiner pass for testing.
Commit: c5aefc77534bafe28b40618d77fa0ef6eac3d777
https://github.com/llvm/llvm-project/commit/c5aefc77534bafe28b40618d77fa0ef6eac3d777
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/definable.cpp
M flang/lib/Semantics/definable.h
M flang/lib/Support/Fortran-features.cpp
A flang/test/Semantics/bug181353.f90
Log Message:
-----------
[flang] Downgrade an overly strict error to a warning (#187524)
Fortran allows a PURE subroutine to have dummy argument with INTENT(IN
OUT). An actual argument that is associated with an INTENT(IN OUT) dummy
argument must be definable. Consequently, there's a hole in the language
that allows a PURE subroutine to modify arbitrary global state: the
argument could have a derived type with an impure FINAL subroutine, and
that FINAL subroutine could be invoked by an assignment to the dummy
argument. I consider this to be a mistake in the language design.
So the compiler was reporting this case as an error, although it is
indeed conforming usage, and not flagged by any other compiler.
Unfortunately, somebody has a code that needs this usage to be accepted,
because (I presume) they can't modify the dummy argument to be
INTENT(IN).
Consequently, we'll need to allow this usage. But it will elicit a
warning, and the warning is on by default.
Commit: a9ca888fc4f4c819f84dd04a373c92f990e724c6
https://github.com/llvm/llvm-project/commit/a9ca888fc4f4c819f84dd04a373c92f990e724c6
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm-c/Core.h
M llvm/lib/IR/Core.cpp
Log Message:
-----------
[IR][CAPI] Mark LLVMIsABranchInst as deprecated (#187576)
Follow-up of https://github.com/llvm/llvm-project/pull/187314.
Commit: b03e3d1c262cf32035544913b937a7d4a4313a9b
https://github.com/llvm/llvm-project/commit/b03e3d1c262cf32035544913b937a7d4a4313a9b
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/docs/use/map.rst
M lldb/docs/use/symbolication.rst
M lldb/docs/use/tutorials/script-driven-debugging.md
Log Message:
-----------
[lldb] Fix Python 2 prints in the docs (#187553)
The Python example snippets on the lldb website were still using Python
2 syntax for printing.
rdar://123267107
Commit: 81e8a1e59ee28e5403d8a78874c37f853d18d4fb
https://github.com/llvm/llvm-project/commit/81e8a1e59ee28e5403d8a78874c37f853d18d4fb
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/ModulesDriver.cpp
A clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
A clang/test/Driver/modules-driver-dep-graph.cpp
A clang/test/Driver/modules-driver-dep-scan-diagnostics.cpp
A clang/test/Driver/modules-driver-duplicate-named-module.cpp
M clang/test/Driver/modules-driver-manifest-not-found.cpp
Log Message:
-----------
[clang][modules-driver] Add dependency scan and dependency graph (#152770)
This patch is part of a series to support driver-managed module builds.
It adds support for discovery of module dependencies from within the
driver and for generation of the module dependency graph.
Source inputs provided on the command line can import modules defined in
the Standard library module manifest, which are then scanned on demand.
The dependency scan and graph support both Clang modules and C++ named
modules.
The generated dependency graph can be output in Graphviz DOT format as a
remark.
RFC discussing linking the driver against additional libraries:
https://discourse.llvm.org/t/rfc-driver-link-the-driver-against-clangdependencyscanning-clangast-clangfrontend-clangserialization-and-clanglex
RFC for driver-managed module builds:
https://discourse.llvm.org/t/rfc-modules-support-simple-c-20-modules-use-from-the-clang-driver-without-a-build-system
Commit: 25f0d08bafa447b4d02a24bb7472ba187bc3b823
https://github.com/llvm/llvm-project/commit/25f0d08bafa447b4d02a24bb7472ba187bc3b823
Author: Mythreya Kuricheti <git at mythreya.dev>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/test/Driver/baremetal.cpp
Log Message:
-----------
[clang] add x86_64 baremetal triple include search paths (#183453)
when compiling for i386 / x86_64 baremetal targets, the include path for
the triple-specific directory is not added. This is the layout I'm
currently using, which from my understanding is the multi-target layout
that clang supports.
Sysroot layout:
```
sysroot
└── usr
├── bin
├── include
│ ├── c++
│ ├── [other dirs]
│ ├── i386-pc-linux-musl
│ │ ├── linux
│ │ ├── c++
│ │ │ └── v1
│ │ ├── [other triple dirs]
│ │ ├── [other dirs, headers]
│ ├── i386-unknown-none-elf
│ │ ├── linux
│ │ ├── c++
│ │ │ └── v1
│ │ ├── [other triple dirs]
│ │ ├── [other dirs, headers]
│ ├── x86_64-pc-linux-musl
│ │ ├── linux
│ │ ├── c++
│ │ │ └── v1
│ │ ├── [other triple dirs]
│ │ ├── [other dirs, headers]
│ ├── x86_64-unknown-none-elf
│ │ ├── linux
│ │ ├── c++
│ │ │ └── v1
│ │ ├── [other triple dirs]
│ │ ├── [other dirs, headers]
│ └── [triple]
├── lib
│ ├── clang
│ ├── cmake
│ ├── ...
│ ├── i386-pc-linux-musl
│ ├── i386-unknown-none-elf
│ ├── x86_64-pc-linux-musl
│ ├── x86_64-unknown-none-elf
│ └── [triple]
```
For a musl triple, these directories are searched,
```
/sysroot/usr/bin/../include/i386-pc-linux-musl/c++/v1
/sysroot/usr/bin/../include/c++/v1
/sysroot/usr/bin/../include/i386-pc-linux-musl
/sysroot/usr/include
/sysroot/usr/lib/clang/23/include
```
but not for the baremetal triple
```
# before
/sysroot/usr/bin/../include/x86_64-unknown-none-elf/c++/v1
/sysroot/usr/bin/../include/c++/v1
# <missing triple dir>
/sysroot/usr/lib/clang/23/include
/sysroot/usr/include
# after
/sysroot/usr/bin/../include/x86_64-unknown-none-elf/c++/v1
/sysroot/usr/include/c++/v1
/sysroot/usr/bin/../include/x86_64-unknown-none-elf # <-- added
/sysroot/usr/lib/clang/23/include
# missing /sysroot/usr/include
```
I'm using newlib for the baremetal target, so those headers install to
`/sysroot/usr/include/x86_64-unknown-none-elf`, just like how the musl
headers install to `/sysroot/usr/include/i386-pc-linux-musl`.
Commit: f276ad429091cb1353ce1348afbfe3d59ac652a7
https://github.com/llvm/llvm-project/commit/f276ad429091cb1353ce1348afbfe3d59ac652a7
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/unittests/Transforms/Vectorize/VPlanTestBase.h
Log Message:
-----------
[VPlan] Make sure Inductions outlive returned VPlan.
Move Inductions to VPlanTestBase, to make sure it outlives
VPlanTestBase::getPlan(). Fixes a use-after-free issue.
Commit: 33cfe2843b58e2966bd40cbb24e462310baa9f0f
https://github.com/llvm/llvm-project/commit/33cfe2843b58e2966bd40cbb24e462310baa9f0f
Author: Kaitlin Peng <kaitlinpeng at microsoft.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
A llvm/test/CodeGen/DirectX/ShaderFlags/typed-srv-load.ll
Log Message:
-----------
[DirectX] Fix TypedBuffer load shader flag mismatch (#187393)
Fixes #187225.
The `TypedUAVLoadAdditionalFormats` shader flag was being set for all
TypedBuffer vector loads, so loading from a `Buffer<int64_t2>` was
incorrectly triggering this flag and causing the mismatch. This PR
changes it so the flag is only set for UAV loads.
Commit: 59bc629bf37abe57e1f7e6e61b378e134c3e42bb
https://github.com/llvm/llvm-project/commit/59bc629bf37abe57e1f7e6e61b378e134c3e42bb
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir
Log Message:
-----------
[AMDGPU] Fix decoding of SETREG MSBs (#187578)
Decoding of the immediate was wrong with non-zero offset
and did not factor MSB fixup offset handling.
Commit: e895a80b5d6580729fdf3cea7d2b9e12633d6b13
https://github.com/llvm/llvm-project/commit/e895a80b5d6580729fdf3cea7d2b9e12633d6b13
Author: Zyn <103019185+zyn-li at users.noreply.github.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M lldb/include/lldb/Symbol/CompilerType.h
M lldb/include/lldb/Symbol/TypeSystem.h
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
M lldb/source/Symbol/CompilerType.cpp
M lldb/unittests/Symbol/TestTypeSystemClang.cpp
Log Message:
-----------
[lldb][TypeSystem] Add CompilerType::IsMemberDataPointerType (#187172)
**Description:**
Adds `IsMemberDataPointerType()` to CompilerType / TypeSystem /
TypeSystemClang, mirroring the existing `IsMemberFunctionPointerType()`.
LLDB already has `IsMemberFunctionPointerType()` to identify member
function pointers but no counterpart for member data pointers. The only
way to check for member data pointers was the indirect `GetTypeClass()
== eTypeClassMemberPointer && !IsMemberFunctionPointerType()`, which is
awkward.
This pr is split out from a larger [fix,
186629](https://github.com/llvm/llvm-project/pull/186629) for LLDB
mishandling non-type template parameters (NTTPs) of pointer-to-member
types, where cleanly distinguishing member data pointers from member
function pointers is needed. The new API delegates to clang's
`QualType::isMemberDataPointerType()` via the same I`sTypeImpl` pattern
used by `IsMemberFunctionPointerType`.
**Test Plan:**
Added `TestIsMemberDataPointerType` to `TestTypeSystemClang.cpp` that
verifies:
`int S::*` → `IsMemberDataPointerType() = true`,
`IsMemberFunctionPointerType() = false`
`void (S::*)()` → `IsMemberDataPointerType() = false`,
`IsMemberFunctionPointerType() = true`
`int * (regular pointer)` → both false
`int (non-pointer)`→ both false
Commit: 4e19eee8a61ac6c2b1a86268c360e9f70d8d9e89
https://github.com/llvm/llvm-project/commit/4e19eee8a61ac6c2b1a86268c360e9f70d8d9e89
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineInstr.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.h
M llvm/lib/Target/X86/X86InstrInfo.h
Log Message:
-----------
[NFC] Annotate CommentFlag with underlying type (#186560)
This is stored in `uint8_t AsmPrinterFlags`, and `setAsmPrinterFlag` was
already using `uint8_t` in the API. This change doesn't use a scoped
enum as targets extend this enum by starting their enums with the
`TAsmComments` value.
This also introduces a typedef for the uint8_t for documentation purposes.
Commit: 7efcd6198c8d15a1ab2ae2b30a3aa8b5168ef9cc
https://github.com/llvm/llvm-project/commit/7efcd6198c8d15a1ab2ae2b30a3aa8b5168ef9cc
Author: Daniel Thornburgh <mysterymath at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/Basic/AttrDocs.td
M libc/config/config.json
M libc/docs/dev/index.rst
A libc/docs/dev/modular_format.rst
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-macros/CMakeLists.txt
A libc/include/llvm-libc-macros/_LIBC_MODULAR_FORMAT_PRINTF-disable.h
A libc/include/llvm-libc-macros/_LIBC_MODULAR_FORMAT_PRINTF.h
M libc/include/stdio.yaml
M libc/src/stdio/CMakeLists.txt
M libc/src/stdio/asprintf.cpp
M libc/src/stdio/asprintf.h
A libc/src/stdio/asprintf_modular.cpp
M libc/src/stdio/baremetal/CMakeLists.txt
M libc/src/stdio/baremetal/printf.cpp
A libc/src/stdio/baremetal/printf_modular.cpp
M libc/src/stdio/baremetal/vfprintf.cpp
M libc/src/stdio/baremetal/vfprintf_internal.h
M libc/src/stdio/baremetal/vprintf.cpp
A libc/src/stdio/baremetal/vprintf_modular.cpp
M libc/src/stdio/generic/CMakeLists.txt
M libc/src/stdio/gpu/CMakeLists.txt
M libc/src/stdio/printf.h
M libc/src/stdio/printf_core/CMakeLists.txt
M libc/src/stdio/printf_core/converter.h
A libc/src/stdio/printf_core/float_impl.cpp
M libc/src/stdio/printf_core/printf_config.h
M libc/src/stdio/printf_core/printf_main.h
M libc/src/stdio/printf_core/vasprintf_internal.h
A libc/src/stdio/printf_core/write_modes.def
M libc/src/stdio/printf_core/writer.h
M libc/src/stdio/snprintf.cpp
M libc/src/stdio/snprintf.h
A libc/src/stdio/snprintf_modular.cpp
M libc/src/stdio/sprintf.cpp
M libc/src/stdio/sprintf.h
A libc/src/stdio/sprintf_modular.cpp
M libc/src/stdio/vasprintf.cpp
M libc/src/stdio/vasprintf.h
A libc/src/stdio/vasprintf_modular.cpp
M libc/src/stdio/vprintf.h
M libc/src/stdio/vsnprintf.cpp
M libc/src/stdio/vsnprintf.h
A libc/src/stdio/vsnprintf_modular.cpp
M libc/src/stdio/vsprintf.cpp
M libc/src/stdio/vsprintf.h
A libc/src/stdio/vsprintf_modular.cpp
M libc/utils/hdrgen/hdrgen/header.py
M libc/utils/hdrgen/tests/expected_output/test_header.h
M libc/utils/hdrgen/tests/expected_output/test_small.json
M libc/utils/hdrgen/tests/expected_output/test_small_proxy.h
M libc/utils/hdrgen/tests/input/merge1.yaml
Log Message:
-----------
[libc] Modular printf option (float only) (#147426)
This adds LIBC_CONF_PRINTF_MODULAR, which causes floating point support
(later, others) to be weakly linked into the implementation.
__printf_modular becomes the main entry point of the implementaiton, an
printf itself wraps __printf_modular. printf it also contains a
BFD_RELOC_NONE relocation to bring in the float aspect.
See issue #146159 for context.
Commit: 9cb1e372ddfa40f0e0c92637e749617baa42e92a
https://github.com/llvm/llvm-project/commit/9cb1e372ddfa40f0e0c92637e749617baa42e92a
Author: Bruce Changlong Xu <brucechanglongxu at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
Log Message:
-----------
[Clang][AMDGPU] Minor driver cleanups. NFC. (#187586)
Use empty() instead of size() checks, back() instead of [size()-1], and
brace-init instead of std::make_pair in the AMDGPU and HIP driver
toolchains.
Commit: 61b9fc1d4225af14ac660cd81bd927655e35cef9
https://github.com/llvm/llvm-project/commit/61b9fc1d4225af14ac660cd81bd927655e35cef9
Author: Srivarshitha M <mvarshitha17874 at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A clang/test/CodeGenCUDA/mangling.cu
Log Message:
-----------
[CIR] Upstream CUDA mangling test with LLVM and OGCG verification (#184444)
This PR upstreams the `mangling.cu` test from the ClangIR incubator.
Building on the feedback from my previous upstreaming PR, I have
expanded the verification for this file to include:
1. **CIR checks:** Verifying the ClangIR generated functions.
2. **LLVM checks:** Verifying the LLVM IR generated via the ClangIR
pipeline.
3. **OGCG checks:** Verifying against the original CodeGen pipeline to
ensure name-mangling parity.
I have also moved the `Inputs/cuda.h` mock header to the upstream
`Inputs` directory to support this and future CUDA tests.
If this multi-stage verification approach looks correct to the
maintainers, I plan to follow up by upstreaming the other currently
passing CUDA test, `simple-nvptx-triple.cu`, using the same standard.
Verified locally with `llvm-lit`. Partially addresses #156747.
Commit: cbab7e65a720320c0478a2d15458d621bed2e81c
https://github.com/llvm/llvm-project/commit/cbab7e65a720320c0478a2d15458d621bed2e81c
Author: Bruce Changlong Xu <brucechanglongxu at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
Log Message:
-----------
[AMDGPU] Minor cleanups in offload plugin and AMDGPUEmitPrintf. NFC. (#187587)
Use empty() in assert, brace-init instead of std::make_pair in the
AMDGPU offload plugin, and fix a comment typo in AMDGPUEmitPrintf.
Commit: ec3a7192cc7f4e76213e318130bd174483996c33
https://github.com/llvm/llvm-project/commit/ec3a7192cc7f4e76213e318130bd174483996c33
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/test/CodeGen/X86/bitreverse.ll
Log Message:
-----------
[X86] bitreverse.ll - add additional i128/i256/i512 GFNI test coverage for #187502 (#187552)
Commit: 537e7b586e151edd80bc2ce93683ca224ab2c2ec
https://github.com/llvm/llvm-project/commit/537e7b586e151edd80bc2ce93683ca224ab2c2ec
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/lib/Tooling/DependencyScanningTool.cpp
Log Message:
-----------
[clang][DependencyScanning] Fix misplaced Driver includes (NFC) (#187599)
As pointed out in [the review of
#15277](https://github.com/llvm/llvm-project/pull/152770#discussion_r2962823008),
`DependencyScannerImpl.h` includes headers from the driver. However, the
dependency scanning library does not depend on the driver at all. This
PR fixes the include issue.
The dependency on the Driver was removed following the RFC:
https://discourse.llvm.org/t/rfc-new-clangoptions-library-remove-dependency-on-clangdriver-from-clangfrontend-and-flangfrontend/88773
Commit: 0e605742be6def694890ec475196bbed31ae42d3
https://github.com/llvm/llvm-project/commit/0e605742be6def694890ec475196bbed31ae42d3
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/Support/raw_socket_stream.cpp
Log Message:
-----------
[raw_socket_stream] Fix a file descriptor leak when connect failed (#187574)
Close the socket file descriptor if `::connect` returns error. This
prevents leaking file descriptor on failure.
Commit: 3fdc82c9ab1357d17ecc92697ea79986d85b1aaf
https://github.com/llvm/llvm-project/commit/3fdc82c9ab1357d17ecc92697ea79986d85b1aaf
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
M flang/test/Lower/OpenACC/acc-host-data-cuda-device.f90
M flang/test/Lower/OpenACC/acc-host-data.f90
Log Message:
-----------
[flang][openacc][cuda] Fix order of clause processing for host_data directive (#187600)
This was crashing lowering with `not yet implemented: lowering symbol to
HLFIR` because the symbol was not mapped correctly
Commit: 9eb852c0627b292b4d36c35ba2103053ca687dbe
https://github.com/llvm/llvm-project/commit/9eb852c0627b292b4d36c35ba2103053ca687dbe
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/test/CIR/CodeGen/replace-global.cpp
Log Message:
-----------
[CIR] Implement global variable replacement in global view (#186168)
This change upstreams the CIR implementation of global variable
replacement handling for cases where the global was used in a
cir.global_view operation, either as an initializer for another global
or as a constant ptr.
Commit: efc11383c9beef5b75cf3f70b79b64148216ffda
https://github.com/llvm/llvm-project/commit/efc11383c9beef5b75cf3f70b79b64148216ffda
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/globals.cpp
M clang/test/CIR/CodeGen/struct-init.cpp
Log Message:
-----------
[CIR] Add lowering for bool attributes (#187590)
When a boolean attribute was encountered in a constant global record or
constant global array, we were going to the default handler, which
returned a null value, and then trying to insert this null value in an
LLVM structure, which crashes.
This adds proper lowering for boolean attributes.
Commit: 13d99cecf03cbb1d692251b5f2ed00cc36006815
https://github.com/llvm/llvm-project/commit/13d99cecf03cbb1d692251b5f2ed00cc36006815
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
Log Message:
-----------
[gn build] Port 39b6a4d84ad8
Commit: d7dc03bc5bde24b502ec4be1f17cb5f29e2e3a04
https://github.com/llvm/llvm-project/commit/d7dc03bc5bde24b502ec4be1f17cb5f29e2e3a04
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Plugins/ExpressionParser/Clang/BUILD.gn
Log Message:
-----------
[gn build] Port 4f298d4efa2f
Commit: 7a544217fe54e12c0f76caa6b3007eb1cd79cdd5
https://github.com/llvm/llvm-project/commit/7a544217fe54e12c0f76caa6b3007eb1cd79cdd5
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Log Message:
-----------
[gn build] Port b17db271d030
Commit: 8771fd92f641658ab77d75f9481540de9161572a
https://github.com/llvm/llvm-project/commit/8771fd92f641658ab77d75f9481540de9161572a
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/profile/BUILD.gn
Log Message:
-----------
[gn build] Port d18a784d4106
Commit: 8ccda467e10014e8e89ffdad610f6e7cd9290532
https://github.com/llvm/llvm-project/commit/8ccda467e10014e8e89ffdad610f6e7cd9290532
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/DependencyScanning/BUILD.gn
Log Message:
-----------
[gn] port 02451f54d642ae
Also remove dependency on TargetsToBuild, which was apparently never
needed.
Commit: 3991dcbbd55d3e528bb4a640e9008480f0e210d3
https://github.com/llvm/llvm-project/commit/3991dcbbd55d3e528bb4a640e9008480f0e210d3
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
Log Message:
-----------
[gn] port 81e8a1e59ee28e54
Commit: 2f076c383ebb3350fa30d7d2e0a194b8a761bef3
https://github.com/llvm/llvm-project/commit/2f076c383ebb3350fa30d7d2e0a194b8a761bef3
Author: Jannick Kremer <jannick.kremer at mailbox.org>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/bindings/python/clang/cindex.py
M clang/bindings/python/tests/cindex/test_file.py
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[libclang/python] Deprecate _CXUnsavedFile, introduce UnsavedFile instead (#187412)
To maintain consistency with other classes mirrored from libclang, the
`_CX` prefix should be removed.
The old name is introduced as a subclass of the renamed class, and
deprecation warnings are added on every attribute access.
Commit: df85f45bf1c15624bae0d2c74afeca1f6d477c63
https://github.com/llvm/llvm-project/commit/df85f45bf1c15624bae0d2c74afeca1f6d477c63
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
A libc/docs/build_concepts.rst
M libc/docs/full_host_build.rst
M libc/docs/index.rst
Log Message:
-----------
[libc][docs][NFC] Add Build Concepts and consolidate patterns (#187490)
[libc][docs][NFC] Add Build Concepts page with five build scenarios
Added build_concepts.rst defining the five ways to build LLVM-libc:
overlay, full build, bootstrap, cross-compiler, and bootstrap
cross-compiler. Updated full_host_build.rst to cross-reference the new
concepts page for both the runtimes and bootstrap build sections, and
removed a duplicate GWP_ASAN flag from the sysroot CMake recipe. Added
the new page to index.rst.
Commit: 366da1252b2c9d6943fee9886391b27b755e9322
https://github.com/llvm/llvm-project/commit/366da1252b2c9d6943fee9886391b27b755e9322
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/math/clc_fmod.cl
M libclc/clc/lib/generic/math/clc_fmod.cl
Log Message:
-----------
[libclc] Restore previous generic fmod implementation (#187470)
Restore from before 3c7f70bb9cee for targets that do not yet implement
frem. Keep the __builtin_elementwise_fmod-based implementation for
AMDGPU.
Commit: edf0fb81326aa984da6d5550c3205ac252a1b683
https://github.com/llvm/llvm-project/commit/edf0fb81326aa984da6d5550c3205ac252a1b683
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
Log Message:
-----------
[GISEL][NFC] Remove a useless assert in constrainSelectedInstRegOperands (#187592)
Commit: 9e54ca12e91c054d5314629b66b0d78b0efeac0e
https://github.com/llvm/llvm-project/commit/9e54ca12e91c054d5314629b66b0d78b0efeac0e
Author: Akshay Deodhar <adeodhar at nvidia.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
R llvm/include/llvm/CodeGen/AtomicExpandUtils.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
Log Message:
-----------
[AtomicExpandPass] Remove AtomicExpandUtils.h (NFC) (#187609)
The purpose of AtomicExpandUtils.h was to allow code reuse with [PNaCl
](https://en.wikipedia.org/wiki/Google_Native_Client)which has since
been deprecated. This PR removes the file, and migrates the declarations
to be visible only in the necessary scopes.
Commit: 0e53fbcc43b552504ae77e60a9aa92d419e248f8
https://github.com/llvm/llvm-project/commit/0e53fbcc43b552504ae77e60a9aa92d419e248f8
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Port 81e8a1e59ee28e5403d8a78874c37f853d18d4fb
This patch introduces a dependency from driver to dependency_scanning.
We need to tease out dependency_scanning's current dependency on driver
(just some headers that can be removed) and then add a depenency in
driver on dependency_scanning to make the patch work.
Commit: 5881ce66b121eb090818f88912088da552f5c4a1
https://github.com/llvm/llvm-project/commit/5881ce66b121eb090818f88912088da552f5c4a1
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Port 7efcd6198c8d15a1ab2ae2b30a3aa8b5168ef9cc
Added a new header that needs to be handled properly.
Commit: 979048e04dc6965c5332afa1027a0e4c4bd01e01
https://github.com/llvm/llvm-project/commit/979048e04dc6965c5332afa1027a0e4c4bd01e01
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Dialect/FIROps.cpp
A flang/test/Fir/array-coor-canonicalization-acc.fir
Log Message:
-----------
[flang][openacc] Prevent SimplifyArrayCoorOp from folding rebox used by ACC data entry ops (#187616)
The SimplifyArrayCoorOp canonicalization pattern folds fir.rebox into
fir.array_coor by replacing the rebox result with its source. When the
rebox result is the variable of an acc.copyin (or other data entry op),
this folding breaks the chain that LegalizeDataValuesInRegion relies on
to replace host values with device pointers inside compute regions.
With default(none), ACCImplicitData cannot recover the mapping, leaving
the rebox source as an illegal live-in in the offload region.
This is causing illegal live-ins at higher optimization levels.
Guard the folding so it bails out when any user of the rebox is an
ACC_DATA_ENTRY_OPS.
Commit: 828da6176c495085536ea429b8428a6a658840c2
https://github.com/llvm/llvm-project/commit/828da6176c495085536ea429b8428a6a658840c2
Author: Jim Lin <jim at andestech.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/CodeGen/M68k/pipeline.ll
Log Message:
-----------
[M68k] Fix pipeline.ll test after CodeGenPrepare analysis change (#187617)
211279d11c36 added Post-Dominator Tree Construction, Branch Probability
Analysis, and Block Frequency Analysis before CodeGen Prepare but missed
updating the M68k pipeline test.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 89d8fe9d08c395875cf1201feaf9d213cadeea7a
https://github.com/llvm/llvm-project/commit/89d8fe9d08c395875cf1201feaf9d213cadeea7a
Author: wanglei <wanglei at loongson.cn>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
A llvm/test/DebugInfo/LoongArch/dwo-no-relocations.ll
Log Message:
-----------
[LoongArch] Ensure .dwo sections do not contain relocations (#187429)
When linker relaxation is enabled, LoongArchAsmBackend may emit
relocations for same-section symbol differences, even when the fixup
is in a .dwo section. This leads to errors such as:
error: A dwo section may not contain relocations
Split DWARF (.dwo) sections must not contain relocations. Fix this by
resolving such fixups immediately when they are emitted into .dwo
sections, even if the referenced symbols are in relaxable sections.
This avoids generating invalid relocations in .debug_*.dwo sections
when compiling with -gsplit-dwarf and -mrelax.
Fixes #187428
Commit: bf1db77fc87ce9d2ca7744565321b09a5d23692f
https://github.com/llvm/llvm-project/commit/bf1db77fc87ce9d2ca7744565321b09a5d23692f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBlock.cpp
M clang/lib/AST/ByteCode/InterpBlock.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
Log Message:
-----------
Revert "[clang][bytecode] Allocate local variables in `InterpFrame` tail storage" (#187410)
Reverts llvm/llvm-project#185835
Looks like this broke two msan builders:
https://lab.llvm.org/buildbot/#/builders/164/builds/19819
https://lab.llvm.org/buildbot/#/builders/94/builds/16257
Commit: 2e88fe7021ad8d9529f5f9661ee39dc2d28ae9ad
https://github.com/llvm/llvm-project/commit/2e88fe7021ad8d9529f5f9661ee39dc2d28ae9ad
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Dialect/FIROps.cpp
R flang/test/Fir/array-coor-canonicalization-acc.fir
Log Message:
-----------
Revert "[flang][openacc] Prevent SimplifyArrayCoorOp from folding rebox used by ACC data entry ops" (#187625)
Reverts llvm/llvm-project#187616
Commit: 19ced5ad8248b271b56bb7a1fe6e89471716009f
https://github.com/llvm/llvm-project/commit/19ced5ad8248b271b56bb7a1fe6e89471716009f
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M orc-rt/include/orc-rt/Session.h
M orc-rt/lib/executor/Session.cpp
M orc-rt/unittests/SessionTest.cpp
Log Message:
-----------
[orc-rt] Redesign Session to provide a clearer lifecycle. (#187496)
A Session begins in the Start state. In this state no calls will be
received from the controller (since none is attached yet). This provides
clients with an opportunity to configure the Session before attaching a
ControllerAccess object with the `attach` method.
The first call to the `attach` method will register a ControllerAccess
object with the Session, and the ControllerAccess's connect method will
be called to establish a connection with the controller.
If ControllerAccess::connect fails it must call
ControllerAccess::notifyDisconnected, at which point the Session will
proceed to the Detached state.
If ControllerAccess::connect succeeds (i.e. returns without calling
notifyDisconnected) then the Session moves to the Attached state, and
calls can be made in both directions between the executor and
controller.
If at any point Session::detach is called, or if the ControllerAccess
object calls notifyDisconnected, then the Session will release its
reference to the ControllerAccess object, and all Services will have
their onDetach callbacks run.
In the Detached state no calls can be made between the controller and
executor, but existing JIT'd code may continue running. Attempts to call
the controller will result in an error.
When the shutdown method is called the Session will begin shutting down.
The Session will first be detached (if it has not been already), and
then all Services will have their onShutdown methods called.
The `addService`, `attach`, `detach`, `shutdown`, and `callController`
methods can be called from any thread. Any Service added is guaranteed
to have its onDetach and onShutdown callbacks run in order, either when
those events occur or immediately upon being added (if added after the
respective events).
Commit: caf079fbb2f72d4c3af20720e43bcf73d306ca6f
https://github.com/llvm/llvm-project/commit/caf079fbb2f72d4c3af20720e43bcf73d306ca6f
Author: David Tenty <daltenty at ibm.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Headers/endian.h
M clang/test/Headers/endian.c
Log Message:
-----------
[clang][headers][endian.h] add some common extensions (#187565)
This PR adds two common extensions to `endian.h` found in some
implementations which we've encountered usages of in existing code (which
are allowable under POSIX), namely:
- double underscore versions of the byte order macros
- PDP endianness macros
(note: we don't attempt to implement the actual conversion helpers for
PDP endianness, as LLVM doesn't support these targeting platforms with
this endianness, we just provide the macro so code checking against them
on other targets will compile)
Commit: fa2df7e853d7f11c04af1fcdfe727b006c66c181
https://github.com/llvm/llvm-project/commit/fa2df7e853d7f11c04af1fcdfe727b006c66c181
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/test/Lower/Intrinsics/len.f90
M flang/test/Lower/Intrinsics/lge_lgt_lle_llt.f90
M flang/test/Lower/Intrinsics/log.f90
M flang/test/Lower/Intrinsics/matmul.f90
M flang/test/Lower/Intrinsics/max.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 35) (#187407)
Tests converted from test/Lower/Intrinsics: len.f90,
lge_lgt_lle_llt.f90, log.f90, matmul.f90, max.f90
Commit: c3f381ccfe4b48f204df07e2c8cd36542a60d553
https://github.com/llvm/llvm-project/commit/c3f381ccfe4b48f204df07e2c8cd36542a60d553
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M mlir/cmake/modules/AddMLIRPython.cmake
M mlir/include/mlir/Bindings/Python/Globals.h
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/lib/Bindings/Python/Globals.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/python/mlir/ir.py
M mlir/test/mlir-tblgen/enums-python-bindings.td
M mlir/test/python/dialects/affine.py
M mlir/test/python/dialects/index_dialect.py
M mlir/tools/mlir-tblgen/EnumPythonBindingGen.cpp
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[mlir-python] Fix duplicate EnumAttr builder registration across dialects. (#187191)
When multiple dialects share td `#includes` (e.g. `affine` includes
`arith`), each dialect's `*_enum_gen.py` file registers attribute
builders under the same keys, causing "already registered" errors on the
second import; the first commit checks in such a case which currently
fails on main:
```
# | RuntimeError: Attribute builder for 'Arith_CmpFPredicateAttr' is already registered with func: <function _arith_cmpfpredicateattr at 0x78d13cbe9a80>
```
This PR implements a two-pronged fix:
1. Add `allow_existing=True` to `register_attribute_builder` (and the
underlying C++ `registerAttributeBuilder`). When set, silently skips
registration if the key already exists (first-wins semantics). This
handles `EnumInfo`-based builders which have no dialect prefix (e.g.
`AtomicRMWKindAttr`, `Arith_CmpFPredicateAttr`), which may be emitted by
every dialect whose td file includes the defining file;
2. Filter `EnumAttr` builders by `-bind-dialect` in
`EnumPythonBindingGen.cpp` and register them under dialect qualified
keys (`"dialect.AttrName"`). Update `OpPythonBindingGen.cpp` to look up
the same qualified keys for EnumAttr typed op attributes (detected via
`isSubClassOf("EnumAttr")`). Pass `-bind-dialect` from
`AddMLIRPython.cmake`.
This approach incurs no changes to `ir.py` registrations (no "builtin."
prefix), and no manual builder additions to individual dialect Python
files (unlike the previous attempt
https://github.com/llvm/llvm-project/pull/117918).
Note, this PR was "clauded" not "coded".
Commit: 2bef931c4349a97589d6884fb9d0acae61996f05
https://github.com/llvm/llvm-project/commit/2bef931c4349a97589d6884fb9d0acae61996f05
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Dialect/CMakeLists.txt
M flang/lib/Optimizer/Dialect/FIROps.cpp
A flang/test/Fir/array-coor-canonicalization-acc.fir
Log Message:
-----------
Reland "[flang][openacc] Prevent SimplifyArrayCoorOp from folding rebox used by ACC data entry ops (#187616)" (#187626)
The SimplifyArrayCoorOp canonicalization pattern folds fir.rebox into
fir.array_coor by replacing the rebox result with its source. When the
rebox result is the variable of an acc.copyin (or other data entry op),
this folding breaks the chain that LegalizeDataValuesInRegion relies on
to replace host values with device pointers inside compute regions. With
default(none), ACCImplicitData cannot recover the mapping, leaving the
rebox source as an illegal live-in in the offload region.
This is causing illegal live-ins at higher optimization levels.
Guard the folding so it bails out when any user of the rebox is an
ACC_DATA_ENTRY_OPS.
The buildbots failure were cuased by a missing dependency
Commit: 984417de3f37ae21c49a0a78058f3e6d28bc2ed4
https://github.com/llvm/llvm-project/commit/984417de3f37ae21c49a0a78058f3e6d28bc2ed4
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/docs/resources/build.rst
Log Message:
-----------
[lldb][doc] Add cross-compilation guide for FreeBSD (#186216)
This is instruction for cross-compiling LLDB on FreeBSD based on
@mgorny's [blog
post](https://web.archive.org/web/20250827001729/https://www.moritz.systems/blog/freebsd-remote-process-plugin-on-non-x86-architectures/).
Tested building arm64 binary on amd64 machine and building amd64 binary
on arm64 machine.
---------
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
Co-authored-by: Michał Górny <mgorny at quansight.com>
Commit: f5e28768dc7bcc78311601fc7fe4f5b3190548d8
https://github.com/llvm/llvm-project/commit/f5e28768dc7bcc78311601fc7fe4f5b3190548d8
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-19 (Thu, 19 Mar 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix an AllowShortNamespacesOnASingleLine bug (#187451)
It erroneously merged the closing brace even when breaking after the
opening brace.
Fixes #187444
Commit: 416935e29f5a35202a79c26d4e37a3ba56fa739c
https://github.com/llvm/llvm-project/commit/416935e29f5a35202a79c26d4e37a3ba56fa739c
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M orc-rt/include/orc-rt/Session.h
M orc-rt/lib/executor/Session.cpp
M orc-rt/unittests/SessionTest.cpp
Log Message:
-----------
[orc-rt] Add BootstrapInfo argument to ControllerAccess::connect. (#187635)
This argument should be used by ControllerAccess implementations to pass
bootstrap information (process triple, page size, initial symbols and
values) to the controller.
Commit: e42c16f12de299d79fc090d7b7219bdbeaa67e85
https://github.com/llvm/llvm-project/commit/e42c16f12de299d79fc090d7b7219bdbeaa67e85
Author: yronglin <yronglin777 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/Lex/Preprocessor.h
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/Preprocessor.cpp
Log Message:
-----------
[NFC][clang] Add HandleModuleName to avoid redundant module name handling code (#184014)
This patch introduce a new HandleModuleName function to avoid duplicated
code snippet in module name handling stage.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Signed-off-by: Wang, Yihan <yronglin777 at gmail.com>
Commit: a4f97f0d9019ccf8c9b2c6d51ff91aa11502f47e
https://github.com/llvm/llvm-project/commit/a4f97f0d9019ccf8c9b2c6d51ff91aa11502f47e
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
A clang/lib/CIR/CodeGen/CIRGenAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMIR.cpp
A clang/test/CIR/CodeGenHIP/amdgpu-module-flags.hip
Log Message:
-----------
[CIR][AMDGPU] Add module flags for AMDGPU target using amendOperation of CIRDialectLLVMIRTranslationInterface (#186073)
Add the amendOperation override to handle CIR dialect attributes during
MLIR-to-LLVM IR translation. This dispatches to amendModule for ModuleOp,
enabling module metadata.
This PR also adds support to emit AMDGPU-specific module flags
amdhsa_code_object_version and amdgpu_printf_kind to match OGCG
behavior.
In CIRGenModule, the flags are stored as CIR module attributes:
cir.amdhsa_code_object_version (integer)
cir.amdgpu_printf_kind (string: "hostcall" or "buffered")
During lowering to LLVM IR (in LowerToLLVMIR.cpp), these attributes are
converted to LLVM module flags.
Upstreaming basic changes from clangIR PRs:
https://github.com/llvm/clangir/commit/61e9ebd9f80393a0d6d792142642e8edddbe1adc
https://github.com/llvm/clangir/pull/768
https://github.com/llvm/clangir/pull/773
https://github.com/llvm/clangir/pull/2100
Commit: 5599d6018758145462fc323a9b18d2af115e0396
https://github.com/llvm/llvm-project/commit/5599d6018758145462fc323a9b18d2af115e0396
Author: Weibo He <NewSigma at 163.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroElide.cpp
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/lib/Transforms/Coroutines/Coroutines.cpp
Log Message:
-----------
[Coroutines][NFC] Elide coro.free based on frame instead of coro.id (#187627)
Part 2/4: Implement HALO for coroutines that flow off final suspend.
Parent PR approved in https://github.com/llvm/llvm-project/pull/185336,
with no change since then
Since `coro.id` is unavailable in resumers, Elide `coro.free` based on
frame instead of `coro.id`
Commit: 090c40545f0f2ee7963e08a4b3496b3f5a69a4f9
https://github.com/llvm/llvm-project/commit/090c40545f0f2ee7963e08a4b3496b3f5a69a4f9
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_flush_if_daz.cl
M libclc/clc/lib/generic/math/clc_flush_if_daz.inc
Log Message:
-----------
libclc: Replace flush_if_daz implementation (#187569)
The fallback non-canonicalize path didn't work. Use a more
straightforward implementation. Eventually this should use
the pattern from #172998
Commit: 7f8e236136857e62b9262689aa46064e18f67567
https://github.com/llvm/llvm-project/commit/7f8e236136857e62b9262689aa46064e18f67567
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_cos.cl
M libclc/clc/lib/generic/math/clc_cos.inc
M libclc/clc/lib/generic/math/clc_sin.cl
M libclc/clc/lib/generic/math/clc_sin.inc
Log Message:
-----------
libclc: Implement sin and cos with sincos (#187571)
This eliminates duplicated epilog code. The unused half
optimizes out just fine after inlining.
Commit: a971089cb817d3c9107b88b55169d1b6690f14e6
https://github.com/llvm/llvm-project/commit/a971089cb817d3c9107b88b55169d1b6690f14e6
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/select-best-vf-tripcount.ll
Log Message:
-----------
[LV] Explain why a less profitable VF was chosen (NFCI) (#187469)
I was very puzzled the other day when it showed that VF 8 had a cost of
X and VF 16 had a cost of X/2, yet it still choose VF 8. This PR adds
some extra debug output to explain why this happens.
Commit: 421bf13e4bf1c19a0cc48fbb0af63b902d3118b1
https://github.com/llvm/llvm-project/commit/421bf13e4bf1c19a0cc48fbb0af63b902d3118b1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_sincos_helpers_decl.inc
M libclc/clc/include/clc/math/clc_sincos_helpers_fp16_decl.inc
M libclc/clc/include/clc/math/clc_sincos_helpers_fp64_decl.inc
A libclc/clc/include/clc/math/clc_sincospi.h
A libclc/clc/include/clc/math/clc_trigpi_helpers.h
A libclc/clc/include/clc/math/clc_trigpi_helpers_decl.inc
M libclc/clc/include/clc/math/gentype.inc
M libclc/clc/lib/generic/CMakeLists.txt
M libclc/clc/lib/generic/math/clc_cospi.cl
M libclc/clc/lib/generic/math/clc_cospi.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers_fp16.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers_fp64.inc
A libclc/clc/lib/generic/math/clc_sincospi.cl
A libclc/clc/lib/generic/math/clc_sincospi.inc
M libclc/clc/lib/generic/math/clc_sinpi.cl
M libclc/clc/lib/generic/math/clc_sinpi.inc
M libclc/clc/lib/generic/math/clc_tanpi.cl
M libclc/clc/lib/generic/math/clc_tanpi.inc
A libclc/clc/lib/generic/math/clc_trigpi_helpers.cl
A libclc/clc/lib/generic/math/clc_trigpi_helpers.inc
Log Message:
-----------
libclc: Update trigpi functions (#187579)
These were originally ported from rocm device
libs in bc81ebefb7d9d9d71d20bfee2ce4cccb09701e9b.
Merge in more recent changes.
Commit: 441790b31f06ed2300e0e8d74f3bdf446bc105aa
https://github.com/llvm/llvm-project/commit/441790b31f06ed2300e0e8d74f3bdf446bc105aa
Author: David Green <david.green at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
A llvm/test/CodeGen/AArch64/mops-mmo-size.ll
Log Message:
-----------
[AArch64] Use an unknown size for memcpy ops with non-constant sizes. (#187445)
The previous value of 0 was allowing loads to move past the mops
operations where it is not valid. Use a LocationSize::afterPointer()
size instead.
The GISel lowering currently loses the MMO, which is fine as it should
be conservatively treated as a load/store to any location.
Commit: a5de509e4ecd6ac0e2ab34bc5b96a7f76f52ccc0
https://github.com/llvm/llvm-project/commit/a5de509e4ecd6ac0e2ab34bc5b96a7f76f52ccc0
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_log.cl
M libclc/clc/lib/generic/math/clc_log10.cl
M libclc/clc/lib/generic/math/clc_log2.cl
R libclc/clc/lib/generic/math/clc_log_base.h
A libclc/clc/lib/generic/math/clc_log_base.inc
Log Message:
-----------
libclc: Rewrite log implementation as gentype inc file (#187537)
Follow the ordinary gentype conventions for the log implementation,
instead of using a plain header. This doesn't quite yet enable
vectorization, due to how the table is currently indexed. This should
make it easier for targets to selectively overload the function for
a subset of types.
Commit: edbe8277c10433ded3b8b28375dd8b0e85d108f1
https://github.com/llvm/llvm-project/commit/edbe8277c10433ded3b8b28375dd8b0e85d108f1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/math/clc_amdgpu_log.inc
A libclc/clc/lib/amdgpu/math/clc_log.cl
A libclc/clc/lib/amdgpu/math/clc_log10.cl
A libclc/clc/lib/amdgpu/math/clc_log2.cl
Log Message:
-----------
libclc: Use log intrinsic for half and float cases for amdgpu (#187538)
This is pretty verbose and ugly. We're pulling the base implementation
in for the double cases, and scalarizing it. Also fully defining the
half and float cases to directly use the intrinsic, for all vector
types. It would be much more convenient if we had linker based overrides
for the generic implementations, rather than per source file.
Commit: c8dd82916bc3867c8e08e3605622ef23c99d671e
https://github.com/llvm/llvm-project/commit/c8dd82916bc3867c8e08e3605622ef23c99d671e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/amdgpu/CMakeLists.txt
A libclc/clc/lib/amdgpu/math/clc_amdgpu_cbrt.inc
A libclc/clc/lib/amdgpu/math/clc_cbrt.cl
Log Message:
-----------
libclc: Override cbrt for AMDGPU (#187560)
Commit: facc82de4f210354537abb7abc5c2a8e6251f17b
https://github.com/llvm/llvm-project/commit/facc82de4f210354537abb7abc5c2a8e6251f17b
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[clang][cir] Adding myself in CODEOWNERS for CIRGenBuiltinAArch64.cpp (#187570)
This is to help with #185382 and to make sure that I don't miss any PRs.
Commit: 4df296733da97e368dd81bc0c366ed9781f92fe7
https://github.com/llvm/llvm-project/commit/4df296733da97e368dd81bc0c366ed9781f92fe7
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/include/lldb/Utility/Stream.h
M lldb/source/Core/UserSettingsController.cpp
M lldb/source/Interpreter/OptionValueProperties.cpp
M lldb/source/Target/TraceDumper.cpp
M lldb/source/Utility/Stream.cpp
M lldb/unittests/Utility/StreamTest.cpp
Log Message:
-----------
[lldb] Implement llvm::formatv overload for Stream::operator << (#187462)
This will allow us to more conveniently use llvm::formatv in the
codebase.
Commit: 69cd746bd2f1056791dd21f26d0e44a99d90bb52
https://github.com/llvm/llvm-project/commit/69cd746bd2f1056791dd21f26d0e44a99d90bb52
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
M llvm/docs/CommandGuide/llc.rst
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/lib/CodeGen/CommandFlags.cpp
A llvm/test/tools/llc/mtune.ll
M llvm/tools/llc/llc.cpp
M llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp
M llvm/tools/opt/optdriver.cpp
Log Message:
-----------
[llc] Add -mtune option (#186998)
This patch adds a Clang-compatible -mtune option to llc, to enable
decoupled ISA and microarchitecture targeting, which is especially
important for backend development. For example, it can enable to easily
test a subtarget feature or scheduling model effects on codegen across a
variaty of workloads on the IR corpus benchmark:
https://github.com/dtcxzyw/llvm-codegen-benchmark.
The implementation adds an isolated generic codegen flag, to establish a
base for wider usage - the plan is to add it to `opt` as well in a
followup patch. Then `llc` consumes it, and sets `tune-cpu` attributes
for functions, which are further consumed by the backend.
Commit: 689afb5ecd15bf927f0ed5e0ae6f5d9cede118a1
https://github.com/llvm/llvm-project/commit/689afb5ecd15bf927f0ed5e0ae6f5d9cede118a1
Author: Oliver Old <mail at oold.dev>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/utils/release/build_llvm_release.bat
Log Message:
-----------
Windows release build: Add checksum verification for downloaded source archives (#187113)
Add checksum verification for libxml2, zlib, and zstd source archives
via `cmake -E *sum` and `cmake -E compare_files` commands.
This also adds the following minor changes:
* Factor out libxml2 version into variable.
* Check `tar` return code.
Commit: d97adc4314a60f342b59c0bf1211d1e75575c520
https://github.com/llvm/llvm-project/commit/d97adc4314a60f342b59c0bf1211d1e75575c520
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bit-manip-i128.ll
M llvm/test/CodeGen/X86/bit-manip-i256.ll
M llvm/test/CodeGen/X86/bit-manip-i512.ll
M llvm/test/CodeGen/X86/bitreverse.ll
Log Message:
-----------
[X86] Perform i128/i256/i512 BITREVERSE on the FPU (#187502)
Bitcast the large scalar integer to a vXi64 vector, reverse the elements
and then perform a per-element vXi64 bitreverse
If we have SSSE3 or later, BITREVERSE expansion using PSHUFB is always
more efficient than performing it as a scalar sequence (no need for
mayFoldIntoVector check).
Fixes #187353
Commit: ab28384cd3e17565268c25567a3d400c3b885b0b
https://github.com/llvm/llvm-project/commit/ab28384cd3e17565268c25567a3d400c3b885b0b
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ExpandMemCmp.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/lib/CodeGen/ExpandMemCmp.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/test/tools/opt/no-target-machine.ll
Log Message:
-----------
[ExpandMemCmp] Remove unused TM/TLI dependency (#187660)
This pass does not actually use TargetMachine/TargetLoweringInfo.
Commit: 78f267f01d93d8083be26c10a070d2d309ac3ecb
https://github.com/llvm/llvm-project/commit/78f267f01d93d8083be26c10a070d2d309ac3ecb
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBlock.cpp
M clang/lib/AST/ByteCode/InterpBlock.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
Log Message:
-----------
Reapply "[clang][bytecode] Allocate local variables in `InterpFrame` … (#187644)
…tail storage" (#187410)
This reverts commit bf1db77fc87ce9d2ca7744565321b09a5d23692f.
Avoid using an `InterpFrame` member after calling its destructor this
time. I hope that was the only problem.
Commit: 4b17135d14aaaf2bbfb1878ecad6b551081eac43
https://github.com/llvm/llvm-project/commit/4b17135d14aaaf2bbfb1878ecad6b551081eac43
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
Log Message:
-----------
[LV] Simplify `matchExtendedReductionOperand()` (NFCI) (#185821)
This updates `matchExtendedReductionOperand` so the simple case of
`UpdateR(PrevValue, ext(...))` is matched first as an early exit. The
binop matching is then flattened to remove the extra layer of the
`MatchExtends` lambda.
Commit: 4376bf27c1ef216df47075a3b89d93b0ccd45b57
https://github.com/llvm/llvm-project/commit/4376bf27c1ef216df47075a3b89d93b0ccd45b57
Author: Thomas Köppe <tkoeppe at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/faster-string-find.cpp
Log Message:
-----------
[clang-tidy] Fix "effective" -> "efficient". (#187536)
"Effective" is the wrong word: Both overloads are effective; they do
what they're supposed to do. But the character overload does less work.
Commit: 895c281515fbf529bcbfc90dc3e3e2cf98c1188f
https://github.com/llvm/llvm-project/commit/895c281515fbf529bcbfc90dc3e3e2cf98c1188f
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-int-neon.ll
Log Message:
-----------
[AArch64][GlobalISel] Remove fallback for scalar usqadd/suqadd intrinsics (#187513)
Previously, GlobalISel was failing to select these intrinsics when given
scalar operands, as RegBankSelect would place these on GPR banks. Fixing
this enables GlobalISel to lower correctly, as in Instruction Selection
the intrinsic matches the SIMD patterns in AArch64InstrInfo.td.
Commit: e6789f94b9cb385e8dd339aa35f659fe47d76f49
https://github.com/llvm/llvm-project/commit/e6789f94b9cb385e8dd339aa35f659fe47d76f49
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[AMDGPU] Introduce ASYNC_CNT on GFX1250 (#185810)
Async operations transfer data between global memory and LDS. Their
progress is tracked by the ASYNC_CNT counter on GFX1250 and later
architectures. This change introduces the representation of that counter
in SIInsertWaitCnts. For now, the programmer must manually insert
s_wait_asyncnt instructions. Later changes will add compiler assistance
for generating the waits by including this counter in the asyncmark
instructions.
Assisted-by: Claude Sonnet 4.5
This is part of a stack:
- #185813
- #185810
Commit: 14de6dafee4d4455174f83766da9730a4253c849
https://github.com/llvm/llvm-project/commit/14de6dafee4d4455174f83766da9730a4253c849
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVMCInstLower.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.h
A llvm/test/CodeGen/SPIRV/transcoding/GlobalVarAnnotate.ll
Log Message:
-----------
[SPIR-V] Support global variable annotations in llvm.global.annotations (#187241)
SPIR-V backend previously only supported function annotations in
llvm.global.annotations and crashed with a fatal error when encountering
global variable entries
Commit: 21f439f13250bd9b7c19c8dd838177a04bf091ef
https://github.com/llvm/llvm-project/commit/21f439f13250bd9b7c19c8dd838177a04bf091ef
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Scalar/LoopRotation.h
M llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Scalar/LoopRotation.cpp
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
M llvm/test/Other/new-pm-print-pipeline.ll
A llvm/test/Transforms/LoopRotate/rotate-exitcount.ll
A llvm/test/Transforms/PhaseOrdering/AArch64/loop-rotate-to-enable-unrolling-and-vectorization.ll
Log Message:
-----------
[LoopRotate] Use SCEV exit counts to improve rotation profitability (#187483)
Most loop transformations, like unrolling and vectorization, expect the
latch branch to be countable. Allow rotation, if it turns the latch from
uncountable to countable.
This use SCEV to check for countable exits, if CheckExitCount set.
Currently it is not set for the LPM1 run (where SCEV is not used by
other passes), only in LPM.
With that compile-time impact is mostly neutral
https://llvm-compile-time-tracker.com/compare.php?from=eba342d0ba930a404a026c80aada51c43974f0db&to=2e676337b45fae63ce9498116d8e6e43772363c5&stat=instructions:u
ClamAV is consistently slower (~+0.15%) and 7zip faster in most cases
(~-0.13%)
Across a large test set based on C/C++ workloads, this rotates ~0.8%
more loops with ~2.68M rotated loops.
For the test set, ~2.7% more loops are runtime-unrolled and +6.36% more
early exit loops vectorized on ARM64 macOS.
This fixes a regression where std::ranges::find_last loops stopped
being runtime-unrolled after
https://github.com/llvm/llvm-project/commit/5f648c370edf5d71c471ffbabdaaa821ad05fb4b
which changed the loop
structure so we stopped rotating.
https://clang.godbolt.org/z/6baeE1av6
Based on https://github.com/llvm/llvm-project/pull/162654.
Co-authored-by: Marek Sedláček <mr.mareksedlacek at gmail.com>
PR: https://github.com/llvm/llvm-project/pull/187483
Commit: 66bc5652bde058c1583130b720b41c616d9e1bf7
https://github.com/llvm/llvm-project/commit/66bc5652bde058c1583130b720b41c616d9e1bf7
Author: Will Froom <willfroom at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel
Log Message:
-----------
[BAZEL] Add missing affine python enum gen (#187669)
Commit: 172c0bbfbd564166d0a1377b1476563f97935e11
https://github.com/llvm/llvm-project/commit/172c0bbfbd564166d0a1377b1476563f97935e11
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
Log Message:
-----------
[clang-tidy] Fix alphabetical order check for multiline doc entries and whitespace handling (#186950)
The `check_alphabetical_order.py` script previously only scanned the
first line of each bullet point in `ReleaseNotes.rst`, causing sorting
failures when a `:doc:` tag was split across multiple lines.
Also, when it is sorting the last entry of a section, the script will
insert an unnecessary whitespace.
This PR fixes these two problems.
Commit: 277bd13cc6fc9e6ffea59b1d4ea2c25ca64d7944
https://github.com/llvm/llvm-project/commit/277bd13cc6fc9e6ffea59b1d4ea2c25ca64d7944
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
Log Message:
-----------
[analyzer] Fix logic in CallEvent::getReturnValueUnderConstruction (#187020)
The `CallEvent` has data members that store the `LocationContext` and
the `CFGElementRef` (i.e. `CFGBlock` + index of statement within that
block); but the method `getReturnValueUnderConstruction` ignored these
and used the currently analyzed `LocationContext` and `CFGBlock` instead
of them.
This was logically incorrect and would have caused problems if the
`CallEvent` was used later when the "currently analyzed" things are
different. However, the lit tests do pass even if I assert that the
currently analyzed `LocationContext` and `CFGBlock` is the same as the
ones saved in the `CallEvent`, so I'm pretty sure that there was no
actual problem caused by this bad logic and this commit won't cause
functional changes.
I also evaluated this change on a set of open source projects (postgres,
tinyxml2, libwebm, xerces, bitcoin, protobuf, qtbase, contour, openrct2)
and validated that it doesn't change the results of the analysis.
Commit: 214bc4db9cc96b52bf93e9117fcb797e67056aec
https://github.com/llvm/llvm-project/commit/214bc4db9cc96b52bf93e9117fcb797e67056aec
Author: hanbeom <kese111 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx10_2_512fptosi_satcvtds.ll
M llvm/test/CodeGen/X86/avx10_2fptosi_satcvtds.ll
Log Message:
-----------
[X86][AVX10.2] Canonicalize narrow FP_TO_{S,U}INT_SAT (#186786)
When SatWidth < DstWidth, type legalization left narrow SatVT in
carrier-width nodes.
Example:
v8i32 = fp_to_sint_sat v8f32, sat=i24
Canonicalize narrow SatVT forms on AVX10.2.
Preserve existing legal full-width lowering.
Rewrite narrow SatVT forms to full-width sat + clamp.
Results:
v8i32 = fp_to_sint_sat v8f32, sat=i32
v8i32 = smax ..., min_i24
v8i32 = smin ..., max_i24
Avoid scalar i48 isel failures.
Reduce vector narrow-width scalarization.
Fixes #186572
Commit: a021a93e5320d8ef040dcc51559f218c5bd46f2f
https://github.com/llvm/llvm-project/commit/a021a93e5320d8ef040dcc51559f218c5bd46f2f
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/Analysis/MacroExpansionContext.h
M clang/lib/Analysis/CMakeLists.txt
M clang/lib/Analysis/MacroExpansionContext.cpp
M clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
M clang/test/Analysis/plist-macros-with-expansion-ctu.c
M clang/test/Analysis/plist-macros-with-expansion.c
M clang/test/Analysis/plist-macros-with-expansion.cpp
M clang/unittests/Analysis/MacroExpansionContextTest.cpp
Log Message:
-----------
Revert "Reapply [clang][analyzer] Format macro expansions" (#186614)
This reverts commit 6bc779506107d3a2f3cbf266621fc19649f593c5 (#172479)
Some concerns were raised on discourse:
https://discourse.llvm.org/t/can-we-link-clang-format-into-clanganalysis/89014/7
To be on the safe side, let's revert this for now.
Commit: 22f5b8db125c073af66b40e966ed77d70603013b
https://github.com/llvm/llvm-project/commit/22f5b8db125c073af66b40e966ed77d70603013b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_acos.cl
M libclc/clc/lib/generic/math/clc_acos.inc
Log Message:
-----------
libclc: Update acos (#187666)
This was originally ported from rocm device libs in
efeafa1bdaa715733fc100bcd9d21f93c7272368, merge in more
recent changes.
Commit: 39d6bb21804d21abe2fa0ec019919d72104827ac
https://github.com/llvm/llvm-project/commit/39d6bb21804d21abe2fa0ec019919d72104827ac
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/source/Plugins/SymbolLocator/SymStore/CMakeLists.txt
M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
A lldb/test/API/symstore/TestSymStore.py
R lldb/test/API/symstore/TestSymStoreLocal.py
M llvm/include/llvm/Support/HTTP/HTTPClient.h
M llvm/lib/Support/HTTP/CMakeLists.txt
M llvm/lib/Support/HTTP/HTTPClient.cpp
A llvm/test/tools/llvm-debuginfod-find/headers-curl.test
A llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
R llvm/test/tools/llvm-debuginfod-find/headers.test
Log Message:
-----------
[lldb] Add HTTP support in SymbolLocatorSymStore (#186986)
The initial version of SymbolLocatorSymStore supported servers only on
local paths. This patch extends it to HTTP/HTTPS end-points. For that to
work on Windows, we add a WinHTTP-based HTTP client backend in LLVM next
to the existing CURL-based implementation.
We don't add a HTTP server implementation, because there is no use right
now. Test coverage for the LLVM part is built on llvm-debuginfod-find
and works server-less, since it checks textual output of request
headers. The existing CURL-based implementation uses the same approach.
The LLDB API test for the specific SymbolLocatorSymStore feature spawns
a HTTP server from Python.
To keep the size of this patch within reasonable limits, the initial
implementation of the SymbolLocatorSymStore feature is dump: There is no
caching, no verification of downloaded files and no protection against
file corruptions. We use a local implementation of LLVM's
HTTPResponseHandler, but should think about extracting and reusing
Debuginfod's StreamedHTTPResponseHandler in the future.
The goal of this patch is a basic working implementation that is
testable in isolation. We will iterate on it to improve it further. This
should be fine since downloading from SymStores is not default-enabled
yet. Users have to set their server URLs explicitly.
---------
Co-authored-by: Alexandre Ganea <aganea at havenstudios.com>
Commit: b6accfa0b46f692eb62a8ecb88f0bf63e585f26d
https://github.com/llvm/llvm-project/commit/b6accfa0b46f692eb62a8ecb88f0bf63e585f26d
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/induction-ptrcasts.ll
Log Message:
-----------
[LV] Regen induction-ptrcasts test with UTC (NFC) (#187678)
Commit: 1dfd268f10088a97f90e223ed6cf55e9fbc35d46
https://github.com/llvm/llvm-project/commit/1dfd268f10088a97f90e223ed6cf55e9fbc35d46
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.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-interleave.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-uniform-store.ll
Log Message:
-----------
[VPlan] Simplify mul x, -1 -> sub 0, x (#187551)
Simplify exactly as InstCombine does. A follow-up would include
simplifying add x, (sub 0, y) -> sub x, y.
Alive2 proof: https://alive2.llvm.org/ce/z/Af7QiD
Commit: bdc8d9293d28b2993526eae9f2398a3cef556735
https://github.com/llvm/llvm-project/commit/bdc8d9293d28b2993526eae9f2398a3cef556735
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Headers/llvm_libc_wrappers/ctype.h
M clang/lib/Headers/llvm_libc_wrappers/string.h
Log Message:
-----------
[OFFLOAD] Add GPU wrappers for headers currently supported by SPIRV built libc (#181913)
This is to add GPU wrappers for headers that are currently supported by
libc built for SPIRV.
Commit: a6a34333a113c4e648d115b010317ae89646e7c4
https://github.com/llvm/llvm-project/commit/a6a34333a113c4e648d115b010317ae89646e7c4
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
A clang/test/Analysis/allow-equality-of-stack-and-symbolic-ptr.c
M clang/test/Analysis/ptr-arith.c
Log Message:
-----------
[analyzer] Don't rule out symbolic pointer pointing to stack (#187080)
Ensure that the analyzer doesn't rule out the equality (or guarantee
disequality) of a pointer to the stack and a symbolic pointer in unknown
space. Previously the analyzer incorrectly assumed that stack pointers
cannot be equal to symbolic pointers in unknown space.
It is true that functions cannot validly return pointers to their own
stack frame, but they can easily return a pointer to some other stack
frame (e.g. a function can return a pointer recieved as an argument).
The old behavior was introduced intentionally in 2012 by commit
3563fde6a02c2a75d0b4ba629d80c5511056a688, but it causes incorrect
analysis, e.g. it prevents the correct handling of some testcases from
the Juliet suite because it rules out the "fgets succeeds" branch.
Reported-by: Daniel Krupp <daniel.krupp at ericsson.com>
Commit: 2600c723e1011a3e17463b56ab8ee2fce2a97d9a
https://github.com/llvm/llvm-project/commit/2600c723e1011a3e17463b56ab8ee2fce2a97d9a
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libc/src/__support/File/file.cpp
Log Message:
-----------
[libc][NFC] Fix typo in file.cpp (#91192) (#187688)
Corrected language and spelling errors in a comment within file.cpp.
Credit GH user @iBlanket for identifying this typo.
Commit: 19b0c68ee012d035e73f0cc2e342cfed1bf2f424
https://github.com/llvm/llvm-project/commit/19b0c68ee012d035e73f0cc2e342cfed1bf2f424
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
Log Message:
-----------
[VPlan] Skip epilogue vectorization if dead after narrowing IGs. (#187016)
When narrowing interleave groups, the main vector loop processes IC
iterations instead of VF * IC. Update selectEpilogueVectorizationFactor
to use the effective VF, checking if the canonical IV controlling the
loop now steps by UF instead of VFxUF.
This avoids epilogue vectorization with dead epilogue vector loops and
also prevents crashes in cases where we can prove both the epilogue and
scalar loop are dead.
Fixes https://github.com/llvm/llvm-project/issues/186846
PR: https://github.com/llvm/llvm-project/pull/187016
Commit: da8d0ab202870984ade3154b64cb31f0c3798041
https://github.com/llvm/llvm-project/commit/da8d0ab202870984ade3154b64cb31f0c3798041
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/test/Lower/Intrinsics/maxloc.f90
M flang/test/Lower/Intrinsics/maxval.f90
M flang/test/Lower/Intrinsics/merge.f90
M flang/test/Lower/Intrinsics/merge_bits.f90
M flang/test/Lower/Intrinsics/minloc.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 36) (#187628)
Tests converted from test/Lower/Intrinsics: maxloc.f90, maxval.f90,
merge.f90, merge_bits.f90, minloc.f90
Commit: 35ebb8c370778565d280d3ebd6bf15055698d157
https://github.com/llvm/llvm-project/commit/35ebb8c370778565d280d3ebd6bf15055698d157
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
Log Message:
-----------
[AMDGPU] Saturate at i16 for f16 to i1/i8 conversion (#187467)
By using a native `v_cvt_i16/u16_f16` conversion and saturation at `i16`
we avoid additional `f16` to `f32` conversion that is required to
perform saturation at `i32`. It also allows to perform clamping using
`i16` instructions, reducing number of registers needed in *true16* mode
in some of the lit tests. The behavior is disabled for pre-gfx8 targets
by checking `has16BitInsts()`.
Commit: e3959a9c502ea8125fe583a3f2c36a31c756605d
https://github.com/llvm/llvm-project/commit/e3959a9c502ea8125fe583a3f2c36a31c756605d
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
A llvm/include/llvm/Object/BBAddrMap.h
M llvm/include/llvm/Object/ELFTypes.h
Log Message:
-----------
[NFC][Object] Move BBAddrMap related types to a shared header (#187268)
This is part of patches to port BBAddrMap to COFF.
Introduce BBAddrMap.h and move BBAddrMap/PGOAnalysisMap type definitions
out of ELFTypes.h.
Commit: bd3ba6042b3bc5f3004fab22f4d26d3c26fa8a61
https://github.com/llvm/llvm-project/commit/bd3ba6042b3bc5f3004fab22f4d26d3c26fa8a61
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.h
Log Message:
-----------
[AMDGPU] Remove unused forward declaration of GCNSubtarget (#187695)
Commit: d3a8666ec82da0de4c0146f6145dc6c28c271125
https://github.com/llvm/llvm-project/commit/d3a8666ec82da0de4c0146f6145dc6c28c271125
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.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
Log Message:
-----------
[mlir][spirv] Add reduction ops in TOSA Ext Inst Set (#187278)
This patch introduces the following reduction operators:
spirv.Tosa.ReduceAll
spirv.Tosa.ReduceAny
spirv.Tosa.ReduceMax
spirv.Tosa.ReduceMin
spirv.Tosa.ReduceProduct
spirv.Tosa.ReduceSum
Also dialect and serialization round-trip tests have been added.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 838354d9d805dd2874995cc200db1958c46f2475
https://github.com/llvm/llvm-project/commit/838354d9d805dd2874995cc200db1958c46f2475
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
Log Message:
-----------
[X86] Use GFNI for vXi8 per-element shifts (#89644)
As detailed here:
https://github.com/InstLatx64/InstLatX64_Demo/blob/master/GFNI_Demo.h
These are a bit more complicated than gf2p8affine look ups, requiring us
to convert a SHL shift value / amount into a GF so we can perform a
multiplication. SRL/SRA need to be converted to SHL via
bitreverse/variable-sign-extension.
Followup to #89115
Commit: 9ab77fa8daf2386b2744eb811a8cb453b7b3d0d2
https://github.com/llvm/llvm-project/commit/9ab77fa8daf2386b2744eb811a8cb453b7b3d0d2
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/tools/clang-scan-deps/BUILD.gn
Log Message:
-----------
[gn] port aa3465793a250
Exposed by 8ccda467e100.
Commit: a70419505471bd8240ef3451dcdd541f8676477c
https://github.com/llvm/llvm-project/commit/a70419505471bd8240ef3451dcdd541f8676477c
Author: Romanov Vlad <vromanov at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/LiveRangeEdit.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/InlineSpiller.cpp
M llvm/lib/CodeGen/LiveRangeEdit.cpp
M llvm/lib/CodeGen/SplitKit.cpp
M llvm/lib/CodeGen/TargetInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86InstrInfo.h
A llvm/test/CodeGen/AMDGPU/regalloc-sgpr128-partial-def.mir
Log Message:
-----------
[AMDGPU] Shrink S_MOV_B64 to S_MOV_B32 during rematerialization (#184333)
When rematerializing S_MOV_B64 or S_MOV_B64_IMM_PSEUDO and only a single
32-bit lane of the result is used at the remat point, emit S_MOV_B32
with the appropriate half of the 64-bit immediate instead.
This reduces register pressure by defining a 32-bit register instead of
a 64-bit pair when the other half is unused.
Commit: 52452aa447d2a7b0eba61c117a21bc118494991d
https://github.com/llvm/llvm-project/commit/52452aa447d2a7b0eba61c117a21bc118494991d
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/include/llvm/ADT/GenericCycleInfo.h
M llvm/include/llvm/Analysis/CFG.h
M llvm/lib/Analysis/CFG.cpp
M llvm/unittests/Analysis/CFGTest.cpp
Log Message:
-----------
[CFG] Support CycleInfo in isPotentiallyReachable() (#187681)
Essentially do the same thing as for LoopInfo. Anything inside a cycle
is mutually reachable, and the cycle can be replaced by its exit blocks
in the walk.
An interesting additional thing we could do for CycleInfo (but not
LoopInfo) is to early exit the walk if the stop block is not in a cycle
and dominates the start block. I've not included this in this patch to
keep the implementation the same as for LoopInfo to start with.
Commit: 6feced2a7cc201d805119ca9365e470303e5d462
https://github.com/llvm/llvm-project/commit/6feced2a7cc201d805119ca9365e470303e5d462
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/select-best-vf-tripcount.ll
Log Message:
-----------
Fix select-best-vf-tripcount.ll buildbot failure
This test failed on the llvm-clang-win-x-aarch64 buildbot.
It seems the rounding is different, leading to a different output.
Instead of:
Cost for VF 4: 9 (Estimated cost per lane: 2.2)
The windows buildbot it fails because the test output is:
Cost for VF 4: 9 (Estimated cost per lane: 2.3)
Commit: 78729251fbb223efb556f5dd17a105901f5af930
https://github.com/llvm/llvm-project/commit/78729251fbb223efb556f5dd17a105901f5af930
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/unittests/Target/SPIRV/CMakeLists.txt
A llvm/unittests/Target/SPIRV/SPIRVGlobalRegistryTests.cpp
Log Message:
-----------
[SPIR-V] Fix isAggregateType function implementation (#187685)
Commit: 40a6180cea1b4fb497831faf69072e30da7d714c
https://github.com/llvm/llvm-project/commit/40a6180cea1b4fb497831faf69072e30da7d714c
Author: Pranav Bhandarkar <pranav.bhandarkar at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
A flang/test/Analysis/AliasAnalysis/alias-analysis-omp-private-boxed-array.mlir
Log Message:
-----------
[Flang] - Fix AliasAnalysis to preserve Allocate source kind through box loads (#187152)
When a boxed array is privatized via `omp.private`, the `SourceKind` of
the loaded box data was being misclassified as `SourceKind::Indirect` by
the alias analyzer. Instead its `SourceKind::Allocate` should be
preserved. This caused AliasAnalysis to conservatively return `MayAlias`
for accesses to privatized arrays vs dummy arguments. This prevented
InlineHLFIRAssign from inlining array section assignments.
Propagate the Allocate source kind when the box source is classified as
`Allocate`, so that alias analysis correctly returns `NoAlias`.
Commit: 4a1e9f73103fa3d66c7db93f1047905c07d543e2
https://github.com/llvm/llvm-project/commit/4a1e9f73103fa3d66c7db93f1047905c07d543e2
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/CIR/LowerToLLVM.h
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/save-temps.c
Log Message:
-----------
[CIR] Make the -save-temps flag emit .cir and .mlir files (#186814)
This patch makes ClangIR emit .cir and .mlir files when the-save-temps
flag is specified. Having these files emitted is useful e.g. when
inspecting the generated code for OpenMP offloading.
Co-authored-by: Claude Opus 4.6 noreply at anthropic.com
Commit: 17d2890e7e41f82095ab7454760c3dedf1f7653e
https://github.com/llvm/llvm-project/commit/17d2890e7e41f82095ab7454760c3dedf1f7653e
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
Log Message:
-----------
[gn] port 7bf871c39f739
Commit: d339d0053ce2b415b43af0d2c42c2908979cd8c4
https://github.com/llvm/llvm-project/commit/d339d0053ce2b415b43af0d2c42c2908979cd8c4
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
Log Message:
-----------
[gn] port a021a93e5320d8
Commit: a3db68a97b2c321ef0af73f39a3725490c131468
https://github.com/llvm/llvm-project/commit/a3db68a97b2c321ef0af73f39a3725490c131468
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/tools/llvm-debuginfod-find/Inputs/capture_req.py
Log Message:
-----------
[llvm] Restrict llvm-debginfod-find test to localhost to fix winhttp case (#187705)
Listening on all interfaces is probably not permitted on the bots and
causes failures of llvm-debuginfod-find/headers-winhttp.test after
39d6bb21804d21abe2fa0ec019919d72104827ac. Restricting them to localhost
should fix that.
Commit: 4c60d48e1bbc9c2f681a567e2606e6a5cb5c7ab9
https://github.com/llvm/llvm-project/commit/4c60d48e1bbc9c2f681a567e2606e6a5cb5c7ab9
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/CodeGenCXX/dllexport-inherited-ctor.cpp
M clang/test/SemaCXX/dllexport-constrained-inherited-ctor.cpp
Log Message:
-----------
[clang] Don't dllexport inherited constructors with -fno-dllexport-inlines (#187684)
The inherited constructors are inline thunks, so like other inline
functions they are exempted from ABI compatibility concerns with this
flag, and should not be exported.
This is a follow-up to #182706
Commit: f5e2238a3e148f266c436a82c1bbca0a353ac5af
https://github.com/llvm/llvm-project/commit/f5e2238a3e148f266c436a82c1bbca0a353ac5af
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
M mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
Log Message:
-----------
[MLIR][XeGPU] Enhance multi-reduction layout propagation rules (#186308)
This PR enhance the multi-reduction layout propagation:
1. improve inst_data and lane_data to support fractional subgroup size
2. improve subgroup_layout/data setup to utilize the (nested) slice
layout from consumer op
It also removes the restriction in load_matrix/store_matrix layout
propagation to allow nd (n>2) layout
Commit: f58b6754a1f59b49eb4837b9f36d6318989ab11f
https://github.com/llvm/llvm-project/commit/f58b6754a1f59b49eb4837b9f36d6318989ab11f
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Driver/ModulesDriver.cpp
Log Message:
-----------
[clang][ModulesDriver] Fix build failure with Xcode 14 (#187713)
As pointed out by
https://github.com/llvm/llvm-project/pull/152770#issuecomment-4096179622,
81e8a1e causes build errors with older versions of Xcode (Xcode 14 and
older) when using std::not_fn() with llvm::make_filter_range().
This implements the same fix as in d1d9413.
Commit: 702582182d4d629b8f8e2fa299a5af24b5166538
https://github.com/llvm/llvm-project/commit/702582182d4d629b8f8e2fa299a5af24b5166538
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/tools/llc/llc.cpp
Log Message:
-----------
[llc] Flatten SkipModule branch and sink defs to their use(NFC) (#187661)
- Invert the condition to make the code more straight and sink
single-use variables there.
- Add a comment about on `createTargetMachine` side effects for
`-mcpu=help`.
- Remove redundant call to `setPGOOptions`
Commit: 7cc46928d9d3311f12c1a5d8ce4be75475a1a65f
https://github.com/llvm/llvm-project/commit/7cc46928d9d3311f12c1a5d8ce4be75475a1a65f
Author: David Green <david.green at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
A llvm/test/Transforms/PhaseOrdering/ARM/arm_var_q31.ll
Log Message:
-----------
[ARM] Add a phase ordering test for multiple reductions. NFC
Commit: 0506c03802b1d78ae536877e848b87817bfb74a6
https://github.com/llvm/llvm-project/commit/0506c03802b1d78ae536877e848b87817bfb74a6
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.writelane.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.readlane.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.writelane.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.writelane.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for readlane, writelane (#187386)
Commit: fa49ad564bae659f9e189dbc4b2b56fd21a2fe33
https://github.com/llvm/llvm-project/commit/fa49ad564bae659f9e189dbc4b2b56fd21a2fe33
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libcxx/include/__cxx03/__algorithm/shuffle.h
M libcxx/test/std/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp
Log Message:
-----------
[libc++] Fix random_shuffle signature in C++03 mode with frozen headers (#186443)
The frozen C++03 headers got an invalid simplification in #134045 that
changed the signature of random_shuffle to use a forwarding reference
instead of a lvalue reference. This patch fixes it and adds a test.
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: f064a9979ff5ddf69af66f524748def5ed852440
https://github.com/llvm/llvm-project/commit/f064a9979ff5ddf69af66f524748def5ed852440
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/ARM/select_const.ll
M llvm/test/CodeGen/Thumb2/mve-pred-and.ll
M llvm/test/CodeGen/Thumb2/mve-pred-vselect.ll
M llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
M llvm/test/CodeGen/Thumb2/mve-vselect-constants.ll
M llvm/test/CodeGen/VE/Vector/vec_divrem.ll
M llvm/test/CodeGen/WebAssembly/vector-extract-last-active.ll
M llvm/test/CodeGen/X86/vec-strict-cmp-128-fp16.ll
M llvm/test/CodeGen/X86/vec-strict-cmp-sub128.ll
M llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll
Log Message:
-----------
[DAGCombine] Optimize away cond ? 1 : 0 post-legalization (#186771)
Selects of the form `cond ? 1 : 0` are created during unrolling of
setcc+vselect. Currently these are not optimized away post-legalization
even if fully redundant. Having these extra selects sitting between
things can prevent other folds from applying.
Enabling this requires some mitigations in the ARM backend, in
particular in the interaction with MVE support. There's two changes
here:
* Form CSINV/CSNEG/CSINC from CMOV, rather than only creating it during
SELECT_CC lowering. (After this change, the lowering in SELECT_CC can be
dropped without test changes, let me know if I should do that.)
* Support pushing negations through CMOV in more cases, in particular if
the operands are constant or the negation can be handled by flipping
lshr/ashr.
Additionally, in the X86 backend, try to simplify CMOV to SETCC if only the
low bit is demanded.
Commit: 376907e09303cd18a8f1139e97c075dd9c506c94
https://github.com/llvm/llvm-project/commit/376907e09303cd18a8f1139e97c075dd9c506c94
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/CrossTU/CrossTranslationUnit.cpp
Log Message:
-----------
[NFC][clang][analyzer] Complete enumeration in emitCrossTUDiagnostics (#187646)
Make handling of all `index_error_code` values in
`CrossTranslationUnitContext::emitCrossTUDiagnostics` explicit.
--
CPP-7804
Commit: 0d251db0f1d939cb472d8af203b5f35e2e845699
https://github.com/llvm/llvm-project/commit/0d251db0f1d939cb472d8af203b5f35e2e845699
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/NVPTX/CMakeLists.txt
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/NVPTX/NVPTXMarkKernelPtrsGlobal.cpp
M llvm/lib/Target/NVPTX/NVPTXTagInvariantLoads.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
A llvm/lib/Target/NVPTX/NVVMProperties.cpp
A llvm/lib/Target/NVPTX/NVVMProperties.h
M llvm/utils/gn/secondary/llvm/lib/Target/NVPTX/BUILD.gn
Log Message:
-----------
[NVPTX] Split NVVM annotation query helpers out of NVPTXUtilities (NFC) (#187349)
Commit: c6ba0e00161e7d1f1a142a3827f005f3e86aae49
https://github.com/llvm/llvm-project/commit/c6ba0e00161e7d1f1a142a3827f005f3e86aae49
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Support/FormatProviders.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisBase.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisResult.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisTraits.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/SummaryAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
M clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
Log Message:
-----------
[clang][ssaf] Add whole-program analysis execution layer
This change Introduces the analysis execution layer of the Scalable
Static Analysis Framework. This layer bridges the LUSummary (entity
summaries from the linker phase) to WPASuite (the collection of
whole-program analysis results). It introduces the following classes:
- `AnalysisResult` — base class for all per-analysis results.
- `AnalysisBase` — minimal common base with a private kind tag used by
the driver for dispatch
- `SummaryAnalysis<ResultT, EntitySummaryT>` — processes per-entity
EntitySummary objects from LUSummary.
- `DerivedAnalysis<ResultT, DepResultTs...>` — consumes previously
produced AnalysisResult objects.
- `AnalysisRegistry` — unified `llvm::Registry` backed registry to
register analyses.
- `WPASuite` — Container bundling `EntityIdTable` and all
`AnalysisResult` objects from a driver run.
- `AnalysisDriver` — executes analyses topologically, feeding results of
child analyses to parent analyses.
Commit: a6cc2f5e07b86edb35bb71d2c3807ec839be69d0
https://github.com/llvm/llvm-project/commit/a6cc2f5e07b86edb35bb71d2c3807ec839be69d0
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
Log Message:
-----------
[AMDGPU] Remove `_e32` patterns for i32 saturated conversions (#187715)
This brings it in line with `i16` conversions. `_e32` patterns are not
needed as `_e64` are later narrowed where possible.
Commit: 8cbf3f3c393dbcf76a807ef2c517443db842c8bc
https://github.com/llvm/llvm-project/commit/8cbf3f3c393dbcf76a807ef2c517443db842c8bc
Author: Osman Yasar <osmanyas05 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/combine-binop-neg.mir
M llvm/test/CodeGen/RISCV/GlobalISel/rv32zbb-zbkb.ll
Log Message:
-----------
[GlobalISel] Fold `a bitwiseop (~b +/- c)` -> `a bitwiseop ~(b -/+ c)` (#181725)
Based on the suggestions in #140639, this PR adds the rewrite pattern `a
bitwiseop (~b +/- c)` -> `a bitwiseop ~(b -/+ c)` for AND, OR, and XOR
operations. This rewrite enables lowering to `ANDN`, `ORN`, and `XORN`
operations.
Added new MIR tests in `combine-binop-neg.mir` for AArch64 to verify the
new combine works for various commuted and uncommuted forms with AND,
OR, and XOR and added new LLVM IR tests for RISC-V in `rv32zbb-zbkb.ll`
to ensure the combine produces the expected `ANDN`, `ORN`, and `XORN`
operations.
Commit: 6d45f6dfb7e139671c569e4680894609f141c3c9
https://github.com/llvm/llvm-project/commit/6d45f6dfb7e139671c569e4680894609f141c3c9
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-store-check-profile-one-tu.cpp
Log Message:
-----------
[clang-tidy] Generate valid JSON for characters that require escaping (#187454)
As of AI Usage: This PR is assisted by Claude
Closes #187201
Commit: 20768a95765468ab64c6dd5674ce8f4e83c0a742
https://github.com/llvm/llvm-project/commit/20768a95765468ab64c6dd5674ce8f4e83c0a742
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForDevice.cpp
M mlir/test/Dialect/OpenACC/acc-specialize-for-device.mlir
Log Message:
-----------
[ACC] Use ExistingOps strictness in ACCSpecializeForDevice for non-specialized functions (#187645)
For non-specialized functions, ACCSpecializeForDevice collects ACC ops
inside compute constructs and applies device specialization patterns via
applyOpPatternsGreedily. With the default AnyOp strictness, the greedy
driver expands the worklist to parent ops when inner ops are modified,
accidentally unwrapping the parent acc.parallel via
ACCRegionUnwrapConversion. This leaves orphaned acc.loop
combined(parallel) ops that lose their parallelism and reduction
information downstream.
Set GreedyRewriteStrictness::ExistingOps so the greedy driver only
processes the initially collected inner ops, preserving the parent
compute construct for ACCComputeLowering to handle.
Commit: 2bb0fa46a8166b68495ac5623d4cbaad39d95cea
https://github.com/llvm/llvm-project/commit/2bb0fa46a8166b68495ac5623d4cbaad39d95cea
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/scalarize-load-ext-extract.ll
M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/externally-used-copyables.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll
M llvm/test/Transforms/SLPVectorizer/X86/bottom-to-top-reorder.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-shuffle.ll
M llvm/test/Transforms/SLPVectorizer/X86/bv-shuffle-mask.ll
M llvm/test/Transforms/SLPVectorizer/X86/commutable-node-with-non-sched-parent.ll
M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
M llvm/test/Transforms/SLPVectorizer/X86/matching-insert-point-for-nodes.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-drop-wrapping-flags.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbw-bitcast-to-fp.ll
M llvm/test/Transforms/SLPVectorizer/X86/multi-extracts-bv-combined.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-parent-multi-copyables.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-extern-use.ll
M llvm/test/Transforms/SLPVectorizer/X86/parent-node-schedulable-with-multi-copyables.ll
M llvm/test/Transforms/SLPVectorizer/X86/propagate_ir_flags.ll
M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
M llvm/test/Transforms/SLPVectorizer/X86/reused-last-instruction-in-split-node.ll
M llvm/test/Transforms/SLPVectorizer/X86/shl-compatible-with-add.ll
M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation.ll
M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
M llvm/test/Transforms/SLPVectorizer/alternate-non-profitable.ll
M llvm/test/Transforms/SLPVectorizer/extract-many-users-buildvector.ll
M llvm/test/Transforms/SLPVectorizer/operand-is-reduced-val.ll
M llvm/test/Transforms/SLPVectorizer/reduction-modified-values.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
[SLP]Prefer copyable over alternate
If the instructions state is alternate and/or contains non-directly
matching instructions, need to check if it is better to represent such
operations as non-alternate with copyables.
To do this, we need to compare operands between the instructions in their
different representations and choose the best one for optimal
vectorization.
Reviewers: RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/183777
Commit: 93d7583f4f2d267c66785c2543509d190d56d2ca
https://github.com/llvm/llvm-project/commit/93d7583f4f2d267c66785c2543509d190d56d2ca
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/test/CodeGen/AMDGPU/pseudo-scalar-transcendental.mir
M llvm/test/CodeGen/AMDGPU/required-export-priority.ll
M llvm/test/CodeGen/AMDGPU/required-export-priority.mir
Log Message:
-----------
[AMDGPU] Update features for gfx1170 (#186107)
- Enable `NoF16PseudoScalarTransInlineConstants` for 11.7.
- Add test for `RequiredExportPriority`, one of the differences between
11.5 and 11.7.
Commit: bb070ea56b3eaa670ec1f1a1fd3d0c8d2cd72a05
https://github.com/llvm/llvm-project/commit/bb070ea56b3eaa670ec1f1a1fd3d0c8d2cd72a05
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp-simple-hierarchy.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_cmp.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_no_return.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_two_calls.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fun-ptr-addrcast.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fun-ptr-service-func.ll
M llvm/test/CodeGen/SPIRV/pointers/fun-ptr-to-itself.ll
M llvm/test/CodeGen/SPIRV/pointers/fun-with-aggregate-arg-in-const-init.ll
Log Message:
-----------
[SPIRV][NFC] Update `SPV_INTEL_function_pointers` tests to check `spirv-val` output (#182549)
https://github.com/KhronosGroup/SPIRV-Tools/pull/6232 added support for
`SPV_INTEL_function_pointers` on `spirv-val`.
This PR updates some relevant tests to run `spirv-val` and document why
some others are failing.
Commit: 063109f758aa61fbd783b16957aeda775c810159
https://github.com/llvm/llvm-project/commit/063109f758aa61fbd783b16957aeda775c810159
Author: Anshul Nigham <nigham at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/test/CodeGen/AArch64/addsub-24bit-imm.mir
M llvm/test/CodeGen/AArch64/peephole-csel.mir
M llvm/test/CodeGen/AArch64/peephole-insert-subreg.mir
M llvm/test/CodeGen/AArch64/peephole-insvigpr.mir
M llvm/test/CodeGen/AArch64/peephole-movd.mir
M llvm/test/CodeGen/AArch64/peephole-orr.mir
M llvm/test/CodeGen/AArch64/peephole-sxtw.mir
M llvm/test/CodeGen/AArch64/redundant-orrwrs-from-zero-extend.mir
Log Message:
-----------
[NewPM] Adds a port for AArch64MIPeepholeOpt (#187515)
Adds a port for AArch64MIPeepholeOpt
- Refactored lib/Target/AArch64/AArch64MIPeepholeOpt.cpp to extract base
logic as Impl
- Renamed existing pass with "Legacy" suffix and updated references
- Added NewPM pass AArch64MIPeepholeOptPass
- Updated tests
Commit: e1347d1977236966da05d74edf6c814634bb2eb0
https://github.com/llvm/llvm-project/commit/e1347d1977236966da05d74edf6c814634bb2eb0
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/unittests/Target/SPIRV/CMakeLists.txt
Log Message:
-----------
[SPIR-V] Fix linker error after #187685 (#187722)
Fix build with `BUILD_SHARED_LIBS=On`
Commit: bf57f910abbe6a848dcbaa720503b8e8f01d59e3
https://github.com/llvm/llvm-project/commit/bf57f910abbe6a848dcbaa720503b8e8f01d59e3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Serialization/ASTReader.cpp
Log Message:
-----------
[Clang] Fix -Wunused-variable
Commit: d8104bfc9e9d5495fdb4dc2f809b9038f1a33eb2
https://github.com/llvm/llvm-project/commit/d8104bfc9e9d5495fdb4dc2f809b9038f1a33eb2
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/SPIRV/constant/spec-constant.ll
Log Message:
-----------
[SPIR-V] Add `llvm.spv.named.boolean.spec.constant` (#187420)
This adds a SPIR-V intrinsic for associating a name (textual identifier)
to a specialisation constant. The name is encoded in metadata, and is
intended to be used within LLVM / by the SPIR-V BE (e.g. #134016 would
be a direct user), as it is never emitted into the SPIR-V object.
Non-boolean and composite specialisation constants will be handled in
the future, via dedicated intrinsics, if there is interest.
Commit: c3e7b4556e40ac026c17f445ce8593498303ce25
https://github.com/llvm/llvm-project/commit/c3e7b4556e40ac026c17f445ce8593498303ce25
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M offload/test/lit.cfg
Log Message:
-----------
[offload] Define flang-rt as an available test feature (#187732)
Can now be used as `REQUIRES: flang-rt`, for example.
Commit: 97a1a70208811e90ff3f6fb6f974243e9c6815f2
https://github.com/llvm/llvm-project/commit/97a1a70208811e90ff3f6fb6f974243e9c6815f2
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_long_composites/long-composite-construct.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_long_composites/long-constant-composite.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_long_composites/long-spec-const-composite.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_long_composites/long-type-struct.ll
Log Message:
-----------
[SPIR-V] Fix SPV_INTEL_long_composites continued instruction handling (#187262)
Commit: 98eaa95baeb799454e0eeca611e6a95fea70b905
https://github.com/llvm/llvm-project/commit/98eaa95baeb799454e0eeca611e6a95fea70b905
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Store bad ExecutionPartConstruct in LoopSequence (#187556)
LoopSequence keeps track of whether it contains code that would be an
invalid intervening code, or that would prevent loop nesting from being
a perfect nesting. To improve the quality of diagnostic messages store
the pointer to the offending parser::ExecutionPartConstruct.
Issue: https://github.com/llvm/llvm-project/issues/185287
Commit: 18f7e625bd786f00cfe87b09f6b6c350d8b25c73
https://github.com/llvm/llvm-project/commit/18f7e625bd786f00cfe87b09f6b6c350d8b25c73
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/v_swap_b16.ll
M llvm/test/CodeGen/AMDGPU/v_swap_b32.mir
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
Log Message:
-----------
Revert "[AMDGPU] Generate more swaps" (#187723)
Reverts llvm/llvm-project#184164. Issue hit in testing, LCOMPILER-1587.
Commit: d7dbba55bff52f342f4d2c7b0bd04dd8e28a274b
https://github.com/llvm/llvm-project/commit/d7dbba55bff52f342f4d2c7b0bd04dd8e28a274b
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/tools/llvm-debuginfod-find/headers-curl.test
M llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
A llvm/test/tools/llvm-debuginfod-find/lit.local.cfg.py
Log Message:
-----------
[llvm] Run headers-winhttp.test only if the Python side of it works (#187727)
a3db68a97b2c321ef0af73f39a3725490c131468 seemed t be the obvious fix for
the winhttp issue from 39d6bb21804d21abe2fa0ec019919d72104827ac in
llvm-debuginfod-find, but there are still bots failing. This patch
disables the test on all bots that cannot spawn an HTTP server in Python
and record request headers. Ideally it turns all affected bots back to
green and gives us an error message to investigate.
Commit: ca54948d0b7a914211ae3d8d95e309358576c3f1
https://github.com/llvm/llvm-project/commit/ca54948d0b7a914211ae3d8d95e309358576c3f1
Author: Roman Vinogradov <roman.vinogradov at sap.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M compiler-rt/lib/asan/asan_poisoning.cpp
M compiler-rt/lib/asan/tests/asan_interface_test.cpp
Log Message:
-----------
[ASan] Fix missed poisoned suffix in first granule in __asan_region_is_poisoned (#187466)
Align beg address down instead of up in __asan_region_is_poisoned(), so
the shadow scan includes the first granule. This fixes a false negative
when first granule has an unpoisoned prefix and poisoned suffix.
Add test that covers this scenario.
Commit: a2c0c43699917bb26a3eb20fefcbf29ff120ce70
https://github.com/llvm/llvm-project/commit/a2c0c43699917bb26a3eb20fefcbf29ff120ce70
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
A clang/include/clang/ScalableStaticAnalysisFramework/Tool/Utils.h
M clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Tool/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Tool/Utils.cpp
M clang/tools/clang-ssaf-format/CMakeLists.txt
M clang/tools/clang-ssaf-format/SSAFFormat.cpp
M clang/tools/clang-ssaf-linker/CMakeLists.txt
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
Log Message:
-----------
[clang][ssaf] Consolidate tools and shared utilities under `clang/tools/clang-ssaf/`
This patch extracts the shared code between `clang-ssaf-format` and
`clang-ssaf-linker` into a new
`clangScalableStaticAnalysisFrameworkTool` library at
`clang/lib/ScalableStaticAnalysisFramework/Tool/`, with the public
header at
`clang/include/clang/ScalableStaticAnalysisFramework/Tool/Utils.h`. This
shared library provides:
- `fail()` overloads for fatal error reporting
- `initTool()` — sets the tool name and version, configures the version
printer, hides unrelated command-line options, and parses arguments
- `getToolName()` — accessor for the tool name set by `initTool()`
- `loadPlugins()` — loads plugin shared libraries from a list of paths
- `getFormatForExtension()` — cached format-registry lookup
- `SummaryFile` — resolves a file path to its serialization format
- `ErrorMessages` — shared diagnostic string constants
Tool-specific error strings remain in a `LocalErrorMessages` namespace
in each tool's anonymous namespace.
Binary names and locations (`bin/clang-ssaf-format`,
`bin/clang-ssaf-linker`) are unchanged.
Commit: 68a9e9ca3e9324c48bdd541fdbc79e002ef7f2bb
https://github.com/llvm/llvm-project/commit/68a9e9ca3e9324c48bdd541fdbc79e002ef7f2bb
Author: Dhruva <dhruvakodiadka at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/knownbits-abds.mir
A llvm/test/CodeGen/AArch64/GlobalISel/knownbits-abdu.mir
M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
Log Message:
-----------
[GlobalISel] Add G_ABDU and G_ABDS to computeKnownBits. (#186822)
This code is adapted from `SelectionDAG::computeKnownBits`
part of #150515
ticks off ABDS & ABDU
Commit: 5a14e4f231bbffd1168747a13d28e82d6212e979
https://github.com/llvm/llvm-project/commit/5a14e4f231bbffd1168747a13d28e82d6212e979
Author: laoshd <shandong.lao at hpe.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang-rt/lib/runtime/character.cpp
M flang-rt/unittests/Runtime/CharacterTest.cpp
M flang/docs/F202X.md
M flang/docs/FortranStandardsSupport.md
M flang/docs/Intrinsics.md
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/include/flang/Optimizer/Builder/Runtime/Character.h
M flang/include/flang/Runtime/character.h
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/Runtime/Character.cpp
A flang/test/Lower/Intrinsics/split.f90
A flang/test/Semantics/split.f90
Log Message:
-----------
[flang] Implement SPLIT intrinsic subroutine with tests (#185584)
This is the implementation of part of F2023 new feature US 03.
Extracting tokens from a string, SPLIT intrinsic.
It's section 16.9.196 SPLIT (STRING, SET, POS [, BACK]) of Fortran 2023
Standard.
It's part of Flang issue
[#178044](https://github.com/llvm/llvm-project/issues/178044). Note that
I work with @kwyatt-ext on this issue. He implemented the other part,
TOKENIZE.
A test will be added into
[llvm-test-suite](https://github.com/llvm/llvm-test-suite) later after
this PR is merged.
Commit: 537a8cc745ed36272e6543a7da962747f6c70d85
https://github.com/llvm/llvm-project/commit/537a8cc745ed36272e6543a7da962747f6c70d85
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/Instructions.h
M llvm/lib/IR/Instructions.cpp
Log Message:
-----------
[IR][NFC] Fix MSVC deprecation warnings about BranchInst (#187702)
MSVC apparently also warns about deprecation at the implementation
of deprecated functions...
Pull Request: https://github.com/llvm/llvm-project/pull/187702
Commit: 965ee6c91f7feb13b685aa05d2f2ec0ee72c7d1e
https://github.com/llvm/llvm-project/commit/965ee6c91f7feb13b685aa05d2f2ec0ee72c7d1e
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/alloca.mlir
Log Message:
-----------
[FIRToMemRef] copy ACC Variable Name attribute (#187724)
When converting from fir.alloca to memref.alloca, also copy the acc
variable name attribute if it exists
Commit: e835f8b687f693a25064f9fb47f5a785a2ca0e91
https://github.com/llvm/llvm-project/commit/e835f8b687f693a25064f9fb47f5a785a2ca0e91
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
M flang/test/Lower/OpenACC/acc-reduction-maxmin.f90
M flang/test/Lower/OpenACC/acc-reduction.f90
Log Message:
-----------
[flang][OpenACC] Fix reduction init value for minnumf/minimumf/maxnumf/maximumf (#187647)
The reduction recipe init region was producing 0.0 instead of the
correct identity value (largest representable float for min, smallest
for max) when the reduction operator was AccMinnumf, AccMinimumf,
AccMaxnumf, or AccMaximumf. Only AccMin and AccMax were handled,
causing the new operator variants to fall through to the else branch
which returns 0.
This caused min reductions to always produce 0.0 since
min(x, 0.0) = 0.0 for all positive x.
Replace the duplicated identity value logic with
arith::getIdentityValue, using a mapping from acc::ReductionOperator
to arith::AtomicRMWKind. Use minimumf/maximumf (which respect
useOnlyFiniteValue) instead of minnumf/maxnumf (whose MLIR identity
is NaN) to get correct finite identity values.
This also fixes a pre-existing bug where the max reduction identity
for floats used getSmallest (smallest subnormal, -1.4e-45) instead
of getLargest with negative (-3.4e+38).
Commit: d8e1f50780e174c417c95e8857ccf21ee4729442
https://github.com/llvm/llvm-project/commit/d8e1f50780e174c417c95e8857ccf21ee4729442
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/python-bytecode.test
Log Message:
-----------
[lldb][bytecode] Document invocation in compiler output (#187547)
Document compiler invocation in the compiler output, to aide subsequent
regeneration.
Commit: 65d84ea12725d543fc09686231c3971642585a39
https://github.com/llvm/llvm-project/commit/65d84ea12725d543fc09686231c3971642585a39
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/docs/resources/formatterbytecode.rst
M lldb/include/lldb/DataFormatters/TypeSynthetic.h
M lldb/source/DataFormatters/TypeSynthetic.cpp
Log Message:
-----------
[lldb] Update the calling convention of BytecodeSyntheticChildren::Update (#182155)
This changes the inputs to `update`. It's now the data stack that was
the result of `@init`. This makes `update` more predictable, as its
inputs are the same between the first call and the Nth call.
Commit: 5717524c02c2c68580d28dc0068e4dd496b30a3d
https://github.com/llvm/llvm-project/commit/5717524c02c2c68580d28dc0068e4dd496b30a3d
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCCGOps.td
M mlir/include/mlir/Dialect/OpenACC/OpenACCOpsTypes.td
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsCG.h
M mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCComputeLowering.cpp
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsCG.cpp
M mlir/test/Dialect/OpenACC/invalid-cg.mlir
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsCGTest.cpp
Log Message:
-----------
[mlir][acc] Use index for acc.par_width results (#187734)
When acc.par_width was introduced in
https://github.com/llvm/llvm-project/pull/184864
there was a discussion on whether to use index or create a new type for
the output of the operation. It was decided to create a new type; but
this means that launch arguments cannot be used directly in the region
such as for loop bounds without a conversion from the new type to index.
In order to avoid the casting operations (and introduction of an actual
operation to do this cast), simply restore acc.par_width to generate
index type. This allows its result to be directly used in
acc.compute_region.
Commit: 94e366ef2060b8b5cf297466fd2f70ded39f9040
https://github.com/llvm/llvm-project/commit/94e366ef2060b8b5cf297466fd2f70ded39f9040
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s352.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-float-and-extract-lane1.ll
M llvm/test/Transforms/SLPVectorizer/X86/dot-product.ll
M llvm/test/Transforms/SLPVectorizer/X86/fmaxnum.ll
M llvm/test/Transforms/SLPVectorizer/X86/fminnum.ll
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
M llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
M llvm/test/Transforms/SLPVectorizer/X86/parent-node-split-non-schedulable.ll
M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder-non-empty.ll
M llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
M llvm/test/Transforms/SLPVectorizer/buildvector-nodes-dependency.ll
M llvm/test/Transforms/SLPVectorizer/insert-element-build-vector-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/insert-element-build-vector.ll
Log Message:
-----------
[SLP] Initial support for ordered reductions
Patch models ordered reductions as a series of extractelements for the
cases which cannot be modeled as unordered reductions.
Fixes #50590
Reviewers: RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/182644
Commit: eaeca6d2fb88b229b966d5938ebbee0607801fbe
https://github.com/llvm/llvm-project/commit/eaeca6d2fb88b229b966d5938ebbee0607801fbe
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/AST/TemplateBase.cpp
Log Message:
-----------
[clang] fix #187352 breakage on 32-bit platforms (#187741)
Fixes breakage reported here:
https://github.com/llvm/llvm-project/pull/187352#issuecomment-4096403838
Commit: bc6a265e3be2cb19cece7827bd0d20375a1bccce
https://github.com/llvm/llvm-project/commit/bc6a265e3be2cb19cece7827bd0d20375a1bccce
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M offload/test/offloading/fortran/formatted-io.f90
M offload/test/offloading/fortran/implicit-record-field-mapping.f90
M offload/test/offloading/fortran/io.f90
Log Message:
-----------
[offload] Use flang-rt for test feature requirements (#187733)
Commit: 4a5da64759ae7ebdd55655d0b65f94e6cb4c171c
https://github.com/llvm/llvm-project/commit/4a5da64759ae7ebdd55655d0b65f94e6cb4c171c
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
Log Message:
-----------
[CIR][NFC] Minor cleanups to missing feature markers (#187754)
This fixes a few places where MissingFeatures asserts were incorrect,
extends the text of two errorNYI diagnostics to disambiguate them, and
fixes a typo in an adjacent comment.
Commit: 0ec6e1d21e83bedc8ca6a8f0b1c969197f1d1664
https://github.com/llvm/llvm-project/commit/0ec6e1d21e83bedc8ca6a8f0b1c969197f1d1664
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/address-space.c
M clang/test/CIR/CodeGenCUDA/address-spaces.cu
M clang/test/CIR/IR/address-space.cir
M clang/test/CIR/IR/invalid-addrspace.cir
A clang/test/CIR/Lowering/global-address-space.cir
Log Message:
-----------
[CIR] Address Space support for GlobalOps (#179082)
Related: https://github.com/llvm/llvm-project/issues/179278,
https://github.com/llvm/llvm-project/issues/160386
Extends cir.global to accept address space attributes. Globals can now
specify either `target_address_space(N)` or
`lang_address_space(offload_*)`. Address spaces are also preserved
throughout get_global ops.
Commit: 60db764b90b127b0a414252d23a6d5cb8d6d2cf2
https://github.com/llvm/llvm-project/commit/60db764b90b127b0a414252d23a6d5cb8d6d2cf2
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Port a2c0c43699917bb26a3eb20fefcbf29ff120ce70
Commit: 07896d44a32021818708b4fdddef0d304572ebbf
https://github.com/llvm/llvm-project/commit/07896d44a32021818708b4fdddef0d304572ebbf
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/OpenMP/declare_target_codegen.cpp
M clang/test/OpenMP/declare_target_link_codegen.cpp
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/openmp_offload_codegen.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_private_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M offload/cmake/Modules/LibomptargetGetDependencies.cmake
M offload/plugins-nextgen/host/CMakeLists.txt
R offload/plugins-nextgen/host/dynamic_ffi/ffi.cpp
R offload/plugins-nextgen/host/dynamic_ffi/ffi.h
M offload/plugins-nextgen/host/src/rtl.cpp
Log Message:
-----------
[OpenMP] Emit aggregate kernel prototypes and remove libffi dependency (#186261)
Summary:
This PR changes the handling of the emitted kernels when targeting a CPU
to be a pointer struct.
The old handling emitted a standard function prototype, this
necessitated a target specific ABI to call it because the signature
differed with the number of arguments. Instead, this PR emits a void
pointer to a naturally aligned struct, this is what APIs like `pthreads`
assert.
This allows us to remove all the complexity around launching host
kernels and just pass the argument list.
Commit: 9431920bfaee50f4b1552fc01ea081a5c18a5a3b
https://github.com/llvm/llvm-project/commit/9431920bfaee50f4b1552fc01ea081a5c18a5a3b
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/tools/llvm-debuginfod-find/headers-winhttp.test
Log Message:
-----------
[llvm] Silence llvm-debuginfod-find/headers-winhttp.test on Windows bots temporarily (#187753)
Windows bots are still failing after a3db68a97b2c321e and
d7dbba55bff52f342. This test is new, let's take it off while
we investigate.
Commit: 63c9573f1c6bafbf4dc57c470cbef13842283b58
https://github.com/llvm/llvm-project/commit/63c9573f1c6bafbf4dc57c470cbef13842283b58
Author: Aleksandr Popov <42888396+aleks-tmb at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
A llvm/test/Transforms/LoopStrengthReduce/X86/reuse-existing-phi.ll
Log Message:
-----------
[LSR] Add regression test for unnecessary phi introduction (#187751)
Test case for https://github.com/llvm/llvm-project/issues/187728
Commit: 78b651a2cba912a5c696c5b24ae7382f77956bea
https://github.com/llvm/llvm-project/commit/78b651a2cba912a5c696c5b24ae7382f77956bea
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/test/tools/llvm-mca/RISCV/SiFiveX100/floating-point.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveX100/zfhmin.test
Log Message:
-----------
[RISCV] Fix the pipe used by `fmv.x.<fp>/<fp>.x` in SiFive7 sched model (#187740)
These FP <-> Integer conversion instructions should use PipeA instead.
Commit: cfc94a6fd7fa573e8176e71f189a1c4b4295968a
https://github.com/llvm/llvm-project/commit/cfc94a6fd7fa573e8176e71f189a1c4b4295968a
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Introduce `WithReason<T>` for nest/sequence properties (#187563)
This helper class contains an optional value and a "reason" message. It
replaces the uses of std::pair<optional<...>, Reason>.
Issue: https://github.com/llvm/llvm-project/issues/185287
Commit: 950eaaabe318b27c2c6eee4d1e3e4e8a94fdd215
https://github.com/llvm/llvm-project/commit/950eaaabe318b27c2c6eee4d1e3e4e8a94fdd215
Author: James Y Knight <jyknight at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaLookup.cpp
Log Message:
-----------
[Clang] Use stable_sort for UnqualUsingDirectiveSet for determinism in ambiguity notes (#187750)
In SemaLookup.cpp, `UnqualUsingDirectiveSet::done()` uses `llvm::sort`
with a comparator that only checks the ancestor relationships. So, if
there are multiple "neighbor" namespaces, they are considered equal, and
thus `llvm::sort` may return the using directives in a non-deterministic
order.
This was observed as a test failure on clang/test/CXX/drs/cwg0xx.cpp at
line 220 after PR #187219 started verifying the diagnostics ordering.
The two "candidate found by name lookup" notes were emitted in the
opposite order from the test's expectations -- in some builds of Clang,
but not others.
Switching to `llvm::stable_sort` ensures that using-directives are
always traversed in a deterministic order, and thus the notes emitted
deterministically.
Commit: 498dd13f72288e9936fdd55a8f0f9a628ff908f8
https://github.com/llvm/llvm-project/commit/498dd13f72288e9936fdd55a8f0f9a628ff908f8
Author: Mariusz Sikora <mariusz.sikora at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/DSInstructions.td
A llvm/test/MC/AMDGPU/gfx13_asm_vds.s
A llvm/test/MC/AMDGPU/gfx13_asm_vds_alias.s
Log Message:
-----------
Add VDS encoding for gfx13 (#187693)
Co-authored-by: Jay Foad <jay.foad at amd.com>
Commit: dd30239f3315cde541874f563979561cbb518498
https://github.com/llvm/llvm-project/commit/dd30239f3315cde541874f563979561cbb518498
Author: Lleu Yang <hello at megakite.icu>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/convergent.mir
A llvm/test/MachineVerifier/AMDGPU/invalid-vop3-source-modifiers.mir
Log Message:
-----------
[AMDGPU] Add basic verification for source modifiers (#186733)
Source modifiers (input modifiers) should always be immediates.
This commit made machine verifier reject non-immediate source modifiers.
Closes #182243
Commit: 827ddb205144747a08c34d24a9b04a6121545fb2
https://github.com/llvm/llvm-project/commit/827ddb205144747a08c34d24a9b04a6121545fb2
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/waitcnt-wcg-attributes.mir
Log Message:
-----------
[AMDGPU][SIInsertWaitcnts] Add test functions in waitcnt-wcg-attributes.mir (#186504)
This patch adds two more functions for exercising the target-cpu
attribute.
Commit: bb369f1c30a1c34ae662f8264781175288757b88
https://github.com/llvm/llvm-project/commit/bb369f1c30a1c34ae662f8264781175288757b88
Author: Ilya Tokar <tokarip at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libc/src/string/memory_utils/op_x86.h
M libc/src/string/memory_utils/x86_64/inline_memcpy.h
Log Message:
-----------
[libc][x86] Add Non-temporal code path for large memcpy (#187108)
Large memcopies are pretty rare, but are more common in ML workloads
(copying large matrixes/tensors, often to/from CPU host).
For large copies NTA stores can provide performance advantages for both
memcpy itself and the rest of the workload (by reducing cache
pollution). Other runtimes already have NTA path for large copies, so
add 1 to the llvm-libc.
Internal whole-program loadtests shows small, but statistically
significant improvement of 0.1%. ML specific bencahmrks showed 10-20%
performance gain, and fleetbench (https://github.com/google/fleetbench,
which has more up-to-date version of libc benchmarks) shows ~3% gain
(ns/byte for distributions taken from various applications).
```
[Memcpy_0]_L1 0.01950n ± 3% 0.01900n ± 5% ~ (p=0.390 n=20)
[Memcpy_0]_L2 0.02300n ± 0% 0.02300n ± 0% ~ (p=0.256 n=20)
[Memcpy_0]_LLC 0.1335n ± 1% 0.1310n ± 1% -1.87% (p=0.000 n=20)
[Memcpy_0]_Cold 0.1540n ± 2% 0.1520n ± 1% -1.30% (p=0.021 n=20)
[Memcpy_1]_L1 0.04300n ± 5% 0.04200n ± 2% -2.33% (p=0.000 n=20)
[Memcpy_1]_L2 0.05000n ± 2% 0.04800n ± 0% -4.00% (p=0.000 n=20)
[Memcpy_1]_LLC 0.2500n ± 2% 0.2390n ± 1% -4.40% (p=0.000 n=20)
[Memcpy_1]_Cold 0.2750n ± 1% 0.2640n ± 1% -4.00% (p=0.000 n=20)
[Memcpy_2]_L1 0.03800n ± 3% 0.03800n ± 3% ~ (p=0.420 n=20)
[Memcpy_2]_L2 0.04400n ± 2% 0.04300n ± 0% -2.27% (p=0.000 n=20)
[Memcpy_2]_LLC 0.2320n ± 1% 0.2220n ± 1% -4.31% (p=0.000 n=20)
[Memcpy_2]_Cold 0.2565n ± 1% 0.2460n ± 1% -4.09% (p=0.000 n=20)
[Memcpy_3]_L1 0.1380n ± 1% 0.1355n ± 2% ~ (p=0.095 n=20)
[Memcpy_3]_L2 0.1490n ± 1% 0.1430n ± 1% -4.03% (p=0.000 n=20)
[Memcpy_3]_LLC 0.7955n ± 1% 0.7450n ± 0% -6.35% (p=0.000 n=20)
[Memcpy_3]_Cold 0.8495n ± 1% 0.7935n ± 0% -6.59% (p=0.000 n=20)
[Memcpy_4]_L1 0.04000n ± 3% 0.03900n ± 3% ~ (p=0.466 n=20)
[Memcpy_4]_L2 0.04500n ± 2% 0.04400n ± 2% ~ (p=0.130 n=20)
[Memcpy_4]_LLC 0.2040n ± 1% 0.1950n ± 1% -4.41% (p=0.000 n=20)
[Memcpy_4]_Cold 0.2240n ± 1% 0.2150n ± 1% -4.02% (p=0.000 n=20)
[Memcpy_5]_L1 0.05800n ± 3% 0.06050n ± 1% +4.31% (p=0.000 n=20)
[Memcpy_5]_L2 0.06400n ± 0% 0.06400n ± 2% 0.00% (p=0.004 n=20)
[Memcpy_5]_LLC 0.3320n ± 1% 0.3140n ± 1% -5.42% (p=0.000 n=20)
[Memcpy_5]_Cold 0.3620n ± 1% 0.3430n ± 0% -5.25% (p=0.000 n=20)
[Memcpy_6]_L1 0.05700n ± 2% 0.05750n ± 3% ~ (p=0.403 n=20)
[Memcpy_6]_L2 0.06500n ± 0% 0.06250n ± 1% -3.85% (p=0.000 n=20)
[Memcpy_6]_LLC 0.3410n ± 1% 0.3205n ± 1% -6.01% (p=0.000 n=20)
[Memcpy_6]_Cold 0.3670n ± 1% 0.3470n ± 1% -5.45% (p=0.000 n=20)
[Memcpy_7]_L1 0.05900n ± 2% 0.05900n ± 2% ~ (p=0.296 n=20)
[Memcpy_7]_L2 0.06400n ± 2% 0.06400n ± 0% ~ (p=0.327 n=20)
[Memcpy_7]_LLC 0.3145n ± 1% 0.2965n ± 1% -5.72% (p=0.000 n=20)
[Memcpy_7]_Cold 0.3410n ± 1% 0.3220n ± 0% -5.57% (p=0.000 n=20)
[Memcpy_8]_L1 0.03600n ± 3% 0.03600n ± 3% ~ (p=0.804 n=20)
[Memcpy_8]_L2 0.04200n ± 0% 0.04100n ± 2% -2.38% (p=0.000 n=20)
[Memcpy_8]_LLC 0.2210n ± 1% 0.2090n ± 1% -5.43% (p=0.000 n=20)
[Memcpy_8]_Cold 0.2415n ± 1% 0.2300n ± 1% -4.76% (p=0.000 n=20)
geomean 0.1184n 0.1148n -3.03%
```
Commit: bd3b06b0a7974ac1edf2dd29d37723fe4c3a3c85
https://github.com/llvm/llvm-project/commit/bd3b06b0a7974ac1edf2dd29d37723fe4c3a3c85
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.class.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Add RegBankLegalize rules for amdgcn.class (#178827)
Commit: 66f06f54cb4d9fda87aed346b9d5747d0bc0215e
https://github.com/llvm/llvm-project/commit/66f06f54cb4d9fda87aed346b9d5747d0bc0215e
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCComputeLowering.cpp
M mlir/test/Dialect/OpenACC/acc-compute-lowering-compute.mlir
Log Message:
-----------
[mlir][acc] Sink constants into acc.compute_region when creating (#187777)
When converting OpenACC compute constructs to acc.compute_region, also
sink constants inside so they do not become live-ins.
Commit: 1b44e34b18e8823c858036087407c5e5976cec06
https://github.com/llvm/llvm-project/commit/1b44e34b18e8823c858036087407c5e5976cec06
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/allocator_config.def
M compiler-rt/lib/scudo/standalone/chunk.h
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/flags.inc
M compiler-rt/lib/scudo/standalone/options.h
M compiler-rt/lib/scudo/standalone/report.cpp
M compiler-rt/lib/scudo/standalone/report.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/flags_test.cpp
M compiler-rt/lib/scudo/standalone/tests/report_test.cpp
M compiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp
M compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.inc
M compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp
Log Message:
-----------
[scudo] Add free_sized and free_aligned_sized (#186881)
Add one new flag, dealloc_align_mismatch that turns on/off alignment
checks. Add three new config parameters, one for deallocate type
mismatch (such as abort on new/free if true), one for checking if the
size parameter matches on dealloc and one for checking if the alignment
is correct on a dealloc.
Add extra flags to be passed for to indicate to do an align/size check.
Update report functions to better indicate the errors. Add unit tests
for all of these.
This is based on these upstream cls by jcking:
https://github.com/llvm/llvm-project/pull/147735
https://github.com/llvm/llvm-project/pull/146556
Commit: 44c6a0acb70f6ea8192bdae1e5646d5a4b8fdfe9
https://github.com/llvm/llvm-project/commit/44c6a0acb70f6ea8192bdae1e5646d5a4b8fdfe9
Author: Andrey Pavlenko <andrey.a.pavlenko at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
Log Message:
-----------
[MLIR][XeGPU] Fix dpas f16 output layout (#184419)
The layout propagation fails if dpas has an f16 accumulator. This fix
resolves the issue by removing the packingSize argument which seems not
valid here.
Commit: b260861b388e8fdab06bb69b1452afacb3df3ed8
https://github.com/llvm/llvm-project/commit/b260861b388e8fdab06bb69b1452afacb3df3ed8
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/reduced-ordered-values-update.ll
Log Message:
-----------
[SLP]Update values after ordered vectorization
Need to update matching between the original reduced values and their
vectorized matches after ordered reduction vectorization to avoid
a compiler crash
Commit: 8c49c53a7f38b6d8af60e84cb6c84fc7b8a1a972
https://github.com/llvm/llvm-project/commit/8c49c53a7f38b6d8af60e84cb6c84fc7b8a1a972
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/include/llvm/DWARFLinker/AddressesMap.h
M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
A llvm/test/tools/dsymutil/Inputs/asm-line-tables.s
A llvm/test/tools/dsymutil/Inputs/private/tmp/asm/asm-line-tables.arm64
A llvm/test/tools/dsymutil/Inputs/private/tmp/asm/asm-line-tables.o
A llvm/test/tools/dsymutil/asm-line-tables.test
M llvm/tools/dsymutil/DebugMap.h
M llvm/tools/dsymutil/DwarfLinkerForBinary.h
Log Message:
-----------
[dsymutil] Preserve DWARF debug info for assembly files (#187575)
Assembly files compiled with debug info generate `DW_TAG_label entries`
with `DW_AT_low_pc` but no `DW_AT_high_pc` attributes. Without address
range information, `dsymutil` would call `addLabelLowPc()` which only
records the start address, making the compilation unit appear "empty"
with no ranges. This caused dsymutil to discard all debug information
including line tables.
This patch adds infrastructure to query symbol sizes from the debug map
and use them to reconstruct address ranges for assembly labels.
rdar://166225328
---------
Co-authored-by: Ryan Mansfield <ryan_mansfield at apple.com>
Commit: 82f18b02d9fec1bcc225a92251466ffee82f56b5
https://github.com/llvm/llvm-project/commit/82f18b02d9fec1bcc225a92251466ffee82f56b5
Author: Khem Raj <raj.khem at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/OffloadBundler.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
Log Message:
-----------
[Clang] Rename OffloadArch::UNUSED to UNUSED_ to avoid macro collisions (#174528)
OffloadArch uses an enumerator named `UNUSED`, which is a very common
macro name in external codebases (e.g. Mesa defines UNUSED as an
attribute helper). If such a macro is visible when including
clang/Basic/OffloadArch.h, the preprocessor expands the token inside the
enum and breaks compilation of the installed Clang headers.
Rename the enumerator to `UNUSED_` and update all in-tree references.
This is a spelling-only change (no behavioral impact) and mirrors the
existing approach used for SM_32_ to avoid macro clashes.
Commit: 9b30151594a71c891baf49a26ff8afcd2d71b16a
https://github.com/llvm/llvm-project/commit/9b30151594a71c891baf49a26ff8afcd2d71b16a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
A lldb/test/API/commands/expression/ptrauth-auth-traps/Makefile
A lldb/test/API/commands/expression/ptrauth-auth-traps/TestPtrAuthAuthTraps.py
A lldb/test/API/commands/expression/ptrauth-auth-traps/main.c
Log Message:
-----------
[lldb] Support PointerAuthAuthTraps in the expression evaluator (#187612)
Enable and test PointerAuthAuthTraps, which ensures that we trap after
an authentication failures.
Commit: a99dbc5be5981806399632c7b3f32d121910adae
https://github.com/llvm/llvm-project/commit/a99dbc5be5981806399632c7b3f32d121910adae
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaHLSL.cpp
M clang/test/AST/HLSL/resources-in-structs.hlsl
Log Message:
-----------
[HLSL] Add binding attributes to resources from structs (#184731)
Add binding attributes to global variables that were created for resources embedded in structs. The binding values are based on `register` annotations and `[[vk::binding]]` attribute on the struct instance.
Fixes #182992
Commit: 2d3b8cecfbcfe1eb28c14fb1d4b34c700ad7964a
https://github.com/llvm/llvm-project/commit/2d3b8cecfbcfe1eb28c14fb1d4b34c700ad7964a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/tools/dsymutil/asm-line-tables.test
Log Message:
-----------
[dsymutil] Require AArch64 backend in asm-line-tables.test (#187797)
This should fix the test on all the builders that don't enable this backend.
Commit: 3eecb98b3702dca2fa895b406773b0e0dd0eb53c
https://github.com/llvm/llvm-project/commit/3eecb98b3702dca2fa895b406773b0e0dd0eb53c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Separate some of the control for the i32->i64 optimization out of BuildUDIVPattern. (#187739)
Check the type before we call getOperationAction. Give BuildUDIVPattern
only AllowWiden and a WideSVT.
Update variable names and comments to avoid spreading "64" to too many
places.
Commit: 343b566b5746c2bb06d758d8a70e14c376a33de4
https://github.com/llvm/llvm-project/commit/343b566b5746c2bb06d758d8a70e14c376a33de4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Move the MULH/MUL_LOHI legality checks to the beginning of BuildSDIV/UDIV. NFCI (#187780)
This groups the type and operation legality checks to the beginning. The
rest of the code can focus on the transformation.
Commit: 79f3104e09e8c7885a1cf12743562c83819af7d7
https://github.com/llvm/llvm-project/commit/79f3104e09e8c7885a1cf12743562c83819af7d7
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
Log Message:
-----------
[lldb] Fix warning style for SymStore symbol locator (#187776)
Missed this when reviewing #186986. This fixes the warnings to follow
the [LLVM Coding
Standards](https://llvm.org/docs/CodingStandards.html#error-and-warning-messages).
Commit: 2b78c71cb5aaa794562d263ebd7b16fa707abc36
https://github.com/llvm/llvm-project/commit/2b78c71cb5aaa794562d263ebd7b16fa707abc36
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py
M lldb/test/API/commands/expression/ptrauth/main.c
Log Message:
-----------
[lldb] Support -fptrauth-indirect-gotos in the expression evaluator (#187562)
When targeting arm64e, we enable `-fptrauth-indirect-gotos` by default,
which signs label addresses and authenticates indirect branches. Add
support (and a test) for this in the LLDB expression evaluator.
Commit: d514a4aa6a259fbb460a262efba8d8ae45c04a2b
https://github.com/llvm/llvm-project/commit/d514a4aa6a259fbb460a262efba8d8ae45c04a2b
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/test/CodeGenHLSL/builtins/mul.hlsl
M clang/test/CodeGenHLSL/builtins/transpose.hlsl
M llvm/include/llvm/IR/MatrixBuilder.h
Log Message:
-----------
[HLSL][Matrix] Support row-major `transpose` and `mul` by inserting matrix memory layout transformations (#186898)
Fixes #184906
The SPIRV and DXIL backends assume matrices are provided in column-major
order when lowering matrix transpose and matrix multiplication
intrinsics.
To support row-major order matrices from Clang/HLSL, we therefore need
to convert row-major order matrices into column-major order matrices
before applying matrix transpose and multiplication. A conversion from
column-major order back to row-major order is also required for
correctness after a matrix transpose or matrix multiply.
For the matrix transpose case on row-major order matrices, the last two
matrix memory layout transforms cancel each other out. So a row-major
order matrix transpose is simply a column-major order transpose with the
row and column dimensions swapped.
For the matrix multiply case, this PR adds helper functions to the
MatrixBuilder to convert a NxM row-/column-major order matrix into a NxM
column-/row-major order matrix by applying a matrix transpose.
These transformations take advantage of the fact that a row-major order
matrix of NxM dimensions `rNxM` interpreted in column-major order is
equivalent to its transpose in column-major order.
Example: Let `r3x2 = [ 0, 1, 2, 3, 4, 5 ]`. The 3x2 row-major order
matrix is visualized as
```
0 1
2 3
4 5
```
When `r3x2`, or `[ 0, 1, 2, 3, 4, 5 ]` is interpreted as a 2x3
column-major order matrix, it is visualized as:
```
0 2 4
1 3 5
```
which is equal to the transpose of `r3x2` but in column-major order.
These matrix memory layout transformations are inserted before and after
the matrix multiply and transpose intrinsics when lowering HLSL mul and
transpose.
We don't simplify the matrix multiply case because HLSL in Clang will
eventually need to support the `row_major` and `column_major` keywords
that allow matrices to independently be row-major or column-major
regardless of the default matrix memory layout.
While this method of supporting row-major order matrices is not
performant, it is correct and will suffice for now until benchmarks are
created and performance becomes a primary concern.
Assisted-by: GitHub Copilot (powered by Claude Opus 4.6)
Commit: a2615482d178c1228e54dc68dc25baf85b277fec
https://github.com/llvm/llvm-project/commit/a2615482d178c1228e54dc68dc25baf85b277fec
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/constraint_handler_t.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/constraint_handler_t.h
M libc/include/stdlib.yaml
Log Message:
-----------
[libc][annex_k] Add constraint_handler_t. (#163239)
RFC https://discourse.llvm.org/t/rfc-bounds-checking-interfaces-for-llvm-libc/87685
Add `constraint_handler_t` type required by Annex K interface in LLVM libc.
Commit: 485eda9cb32eede1eb89b47abde34e13d315907f
https://github.com/llvm/llvm-project/commit/485eda9cb32eede1eb89b47abde34e13d315907f
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/constant_folding.mlir
Log Message:
-----------
[mlir][tosa] Fix crash in slice op folder when input values are not iterable (#187339)
A crash was encountered in the slice op folder when the input was a
constant with dense resource values. The folder was trying to iterate
over the input values, which is not possible for resource values. This
change fixes the crash and adds a test.
Commit: 7a5431eee3c233fa30679a5d2a48b19d8343f435
https://github.com/llvm/llvm-project/commit/7a5431eee3c233fa30679a5d2a48b19d8343f435
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M lldb/source/DataFormatters/TypeSynthetic.cpp
M lldb/test/API/functionalities/data-formatter/bytecode-synthetic/main.cpp
Log Message:
-----------
[lldb][bytecode] Fix Update() and failing test (#187795)
Fixes a breakage from https://github.com/llvm/llvm-project/pull/182155
Commit: 8cc0124508a55de25ccb2422ec9a2a95f1bc8020
https://github.com/llvm/llvm-project/commit/8cc0124508a55de25ccb2422ec9a2a95f1bc8020
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
Log Message:
-----------
[scudo] Make the default for size/align checks to not die. (#187799)
Commit: 720615f4958617289e00b89535bbe920b4456724
https://github.com/llvm/llvm-project/commit/720615f4958617289e00b89535bbe920b4456724
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
Log Message:
-----------
[SandboxVec][DAG] Fix DAG update when user is scheduled (#187148)
This patch fixes the update of the DAGNode UnscheduledSucc counter when
a use edge is modified. This is the result of a setOperand() or a RAUW
(and friends) operation.
Before this patch we would not check if the User (i.e., the consumer of
the use-def edge) is scheduled and we would update the definition's
UnscheduledSucc counter, resulting in counting errors.
For example, consider the following IR:
```
%A = ...
%B = ...
%U = %A ; scheduled
```
Note that %U's DAGNode is marked as "scheduled" while %A and %B are not.
If we change %U's operand from %A to %B then we should not attempt to
update %A's or %B's UnscheduledSuccs because %U is scheduled so it
should not get counted as an "unscheduled" successor.
Commit: 51c158b5d29bf7b16651344b402354f5d2339519
https://github.com/llvm/llvm-project/commit/51c158b5d29bf7b16651344b402354f5d2339519
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/function-template.mustache
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
Log Message:
-----------
[clang-doc] Fix incorrectly rendered specialization args in HTML (#187761)
Function template specialization arguments were incorrectly rendered
without a comma. This was due to the "End" JSON property also being
used in the levels above. Mustache looks for missing properties in
parent contexts, see #174359.
Commit: a60b3a83cf32a0b14f4b24b17ae72e6856448c7d
https://github.com/llvm/llvm-project/commit/a60b3a83cf32a0b14f4b24b17ae72e6856448c7d
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M libc/include/threads.yaml
Log Message:
-----------
[libc] Fix function prototypes for <threads.h> C11 header. (#187808)
Fix return types and/or function arguments of several functions:
* mtx_destroy
* tss_delete
* thrd_exit
Commit: 368f38b9fcfeeff4138a7003a59cceddcf631285
https://github.com/llvm/llvm-project/commit/368f38b9fcfeeff4138a7003a59cceddcf631285
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][SIInsertWaitcnts][NFC] SGPRInfo: Move score selection logic closer (#186518)
Selecting the score in SGPRInfo used to require an index which you would
get by calling a getSgprScoresIdx(), which is defined in a different
class.
This patch moves the score selection logic into the SGPRinfo. This makes
the interface simpler and more intuitive.
Also given that SGPRInfo contains only two scores, this patch also
replaces the score array with individual score variables.
Should be NFC.
Commit: 335a2d0e7e5a7e83723b9a32a0eed8aa373e8f62
https://github.com/llvm/llvm-project/commit/335a2d0e7e5a7e83723b9a32a0eed8aa373e8f62
Author: Joe Kirchoff <Kirchoff.Joseph.P at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/Expr.cpp
M clang/test/CodeGenCXX/builtin_FUNCTION.cpp
Log Message:
-----------
[clang] fix error: cannot compile this l-value expression yet (#187755)
Commit: bae6a2a76b632fa5fa4f103bb7aaff067c19c949
https://github.com/llvm/llvm-project/commit/bae6a2a76b632fa5fa4f103bb7aaff067c19c949
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
Log Message:
-----------
[Runtimes] Fix Unix Makefiles race between runtimes-build and EXTRA_TARGETS (#187634)
In our downstream we have a non-runtime target depending on libclc
EXTRA_TARGET and then observe a race condition in parallel build: both
runtimes-build (full build, no lock) and libclc EXTRA_TARGET (triggered
by non-runtime target, FileLock) build concurrently, leading to corrupt
libclc library.
This exposes an limitation in ExternalProject EXTRA_TARGET design:
EXTRA_TARGETS in llvm_ExternalProject_Add only depend on
${name}-configure, not ${name}-build. This makes EXTRA_TARGETS unsafe as
dependencies of a non-runtime target..
Fix: Add a locked BUILD_COMMAND to ExternalProject_Add for Unix
Makefiles generator, using the same cmake.lock as EXTRA_TARGETS. This
serializes runtimes-build with all EXTRA_TARGETS under one lock.
With this PR, a non-runtime target can depend on a specific
EXTRA_TARGET, rather than needing to depend on the umbrella runtimes
target. This is an improvement. A non-runtime target can start as soon
as its dependent specific EXTRA_TARGET build finishes, without waiting
for other runtimes. In addition, the non-runtime target may only need a
specific EXTRA_TARGET and minimal dependency on it is accurate.
Assisted-by: Claude Sonnet 4.6
---------
Co-authored-by: Petr Hosek <phosek at google.com>
Commit: 6891a6ef0e2466ffb8a921d7f58934ef464f137a
https://github.com/llvm/llvm-project/commit/6891a6ef0e2466ffb8a921d7f58934ef464f137a
Author: Michael Jones <michaelrj at google.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/chunk.h
Log Message:
-----------
[compiler-rt] Add bitmask to fix warning (#187812)
After #186881 was merged the gcc libc bots started complaining about the
conversion from u8 to 2 bit integer being unsafe (see:
https://lab.llvm.org/buildbot/#/builders/131/builds/42788). This PR
adds a bitmask that fixes the warning.
Commit: 0ec9f7ebbdf72a94e0e2c0872d4d11fc8d0efa6b
https://github.com/llvm/llvm-project/commit/0ec9f7ebbdf72a94e0e2c0872d4d11fc8d0efa6b
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M lldb/include/lldb/Core/Debugger.h
M lldb/include/lldb/Target/Platform.h
M lldb/source/Core/CMakeLists.txt
M lldb/source/Core/CoreProperties.td
M lldb/source/Core/Debugger.cpp
M lldb/source/Core/Module.cpp
A lldb/source/Core/SafeAutoloadPaths.inc.in
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
M lldb/source/Target/Platform.cpp
A lldb/test/Shell/Platform/AutoLoad/Darwin/dsym-takes-priority.test
A lldb/test/Shell/Platform/AutoLoad/Darwin/safe-path-fallback-no-dsym-script.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-basic-load.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-last-path-wins.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-no-match-nested-dir.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-no-match-wrong-dirname.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-no-match-wrong-scriptname.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-no-paths-configured.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-special-chars-sanitized.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-submodule-import.test
A lldb/test/Shell/Platform/AutoLoad/UNIX/safe-path-subpackage-import.test
M lldb/unittests/Platform/PlatformTest.cpp
Log Message:
-----------
[lldb] Add mechanism for auto-loading Python scripts from pre-configured paths (#187031)
Depends on:
* https://github.com/llvm/llvm-project/pull/187229
(only second commit and onwards are relevant)
This patch implements the base infrastructure described in this [RFC re.
Moving libc++ data-formatters out of
LLDB](https://discourse.llvm.org/t/rfc-lldb-moving-libc-data-formatters-out-of-lldb/89591)
The intention is to provide vendors with a way to pre-configure a set of
paths that LLDB can automatically ingest formatter scripts from.
Three main changes:
1. Adds a CMake variable `LLDB_SAFE_AUTO_LOAD_PATHS` which is a
semi-colon separated list of paths. This is intended to be set by
vendors when building LLDB for distribution.
2. Adds a setting that only exists in asserts mode called
`testing.safe-auto-load-paths` which allows setting the paths without a
CMake configuration. Used for local development and, more crucially, the
shell and unit tests
3. Adds a `LocateScriptingResourcesFromSafePaths` which
`Platform::LocateExecutableScriptingResources` calls by default (and
hence used by all platforms). I add a
`LocateExecutableScriptingResourcesImpl` that platforms can override if
they have platform-specific resource script locations (e.g., dSYMs on
Darwin).
Whenever we load an image, we check the safe path (starting with the
last appended path) for a directory called
`/safe/path/to/<module>/<module>.py`. If such script exists, we import
it as a Python module. If not, we move on to the next safe path.
Currently the default for `LLDB_SAFE_AUTO_LOAD_PATHS` is empty.
Eventually the plan is to make those point to the libc++ installation
(where the formatters will live) depending on platform/vendor. For macOS
we'll add a special `$SDK_ROOT` that can be used in the path variable,
which `LocateScriptingResourcesFromSafePaths` will resolve to an actual
SDK path.
*AI Usage*:
* Claude assisted with the CMake machinery which I then reviewed and
cleaned up. I'm not sure this is the most idiomatic way of letting a
user provide lists of paths, but I couldn't find a better way.
* Wrote the basic auto-load Shell tests myself and asked claude to stamp
out a bunch more for different scenarios. Reviewed and cleaned those up
myself.
Commit: 0ae9aaf53973055b71dfe815361e1d49722adab3
https://github.com/llvm/llvm-project/commit/0ae9aaf53973055b71dfe815361e1d49722adab3
Author: Chang Lin <chang-sun.lin.jr at intel.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
A llvm/test/Transforms/InstCombine/scalar_vector_gep.ll
Log Message:
-----------
[InstCombine] When rewriting GEPs, check that the types match. (#186886)
Commit: 367da15a11c52886c50e7f020cb4de59fe6d07ca
https://github.com/llvm/llvm-project/commit/367da15a11c52886c50e7f020cb4de59fe6d07ca
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
M mlir/test/Dialect/XeGPU/invalid.mlir
M mlir/test/Dialect/XeGPU/layout.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg.mlir
Log Message:
-----------
[MLIR][XeGPU] Enhance XeGPU lane layout to support "wrap-around" distribution (#186958)
This PR extends XeGPU lane layout to support wrap-around distribution,
enabling replication of lane-level tensor tiles across all lanes when
the tile size matches lane_data along a given dimension. Previously,
distribution required the tile size to exceed the number of lanes ×
lane_data for even partitioning.
This PR also refactors layout attribute interface functions:
computeDistributedShape() computes the distributed vector shape and is
shared by work-to-subgroup and subgroup-to-lane distribution, which
follow the same distribution rule (even or wrap-around).
computeStaticDistributedCoords() computes compile-time distributed
coordinates of sub-tiles per subgroup/lane. It is the compile-time
counterpart of computeDistributedCoords() and is used by
isCompatibleWith().
Commit: 3d4dd4b944185c0b1c672d4af3a484a530c6d783
https://github.com/llvm/llvm-project/commit/3d4dd4b944185c0b1c672d4af3a484a530c6d783
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M lldb/unittests/Platform/PlatformTest.cpp
Log Message:
-----------
[lldb][test] Don't build PlatformLocateSafePathTest in non-asserts builds (#187829)
>From a CI failure:
```
FAILED: [code=1] tools/lldb/unittests/Platform/CMakeFiles/LLDBPlatformTests.dir/PlatformTest.cpp.obj
C:\Users\tcwg\scoop\shims\ccache.exe C:\Users\tcwg\scoop\apps\llvm-arm64\current\bin\clang-cl.exe /nologo -TP -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build\tools\lldb\unittests\Platform -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build\tools\lldb\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\llvm\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\llvm\..\clang\include -IC:\Users\tcwg\ll
vm-worker\lldb-aarch64-windows\build\tools\lldb\..\clang\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\source -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\third-party\unittest\googletest\include -IC:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4 -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw -Wno-vla-extension /O2 /Ob2 /DNDEBUG -std:c++17 -MD -wd4018 -wd4068 -wd4150 -wd4201 -wd4251 -wd4521 -wd4530 -wd4589 -Wno-suggest-override -Wno-gn
u-zero-variadic-macro-arguments /EHs-c- /GR- /showIncludes /Fotools\lldb\unittests\Platform\CMakeFiles\LLDBPlatformTests.dir\PlatformTest.cpp.obj /Fdtools\lldb\unittests\Platform\CMakeFiles\LLDBPlatformTests.dir\ -c -- C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(197,5): error: use of undeclared identifier 'TestingProperties'
197 | TestingProperties::GetGlobalTestingProperties().SetSafeAutoLoadPaths({});
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(238,3): error: use of undeclared identifier 'TestingProperties'
238 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(265,3): error: use of undeclared identifier 'TestingProperties'
265 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(295,3): error: use of undeclared identifier 'TestingProperties'
295 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(364,3): error: use of undeclared identifier 'TestingProperties'
364 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(367,3): error: use of undeclared identifier 'TestingProperties'
367 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(370,3): error: use of undeclared identifier 'TestingProperties'
370 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(388,3): error: use of undeclared identifier 'TestingProperties'
388 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(413,3): error: use of undeclared identifier 'TestingProperties'
413 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(449,3): error: use of undeclared identifier 'TestingProperties'
449 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(487,3): error: use of undeclared identifier 'TestingProperties'
487 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(516,3): error: use of undeclared identifier 'TestingProperties'
516 | TestingProperties::GetGlobalTestingProperties().AppendSafeAutoLoadPaths(
| ^
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\PlatformTest.cpp(550,3): error: use of undeclared identifier 'TestingProperties'
```
Commit: b9d276748ecaf748e0bab32ed82834644ed6827a
https://github.com/llvm/llvm-project/commit/b9d276748ecaf748e0bab32ed82834644ed6827a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
A lldb/test/API/commands/expression/ptrauth-objc/Makefile
A lldb/test/API/commands/expression/ptrauth-objc/TestPtrAuthObjectiveC.py
A lldb/test/API/commands/expression/ptrauth-objc/main.m
Log Message:
-----------
[lldb] Support arm64e Objective-C signing in the expression evaluator (#187765)
When targeting arm64e, ISA pointers, class_ro_t pointers, and interface
selectors are signed in Objective-C. This PR adds support for that in
the expression evaluator.
Commit: 2b47497f6e0a3d11443e55d6ada333c7883833e5
https://github.com/llvm/llvm-project/commit/2b47497f6e0a3d11443e55d6ada333c7883833e5
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M libc/docs/build_concepts.rst
M libc/docs/getting_started.rst
Log Message:
-----------
[libc][docs][NFC] Restructure Getting Started guide and update Build Concepts. (#187701)
Restructured the Getting Started guide into a numbered step-by-step path
for easier readability. Added a Hello World verification step to confirm
build integrity after build completion.
Additionally, updated build_concepts.rst and the Getting Started guide
to clarify that Overlay Mode is intended for augmenting the system's C
library rather than incremental adoption.
Commit: 8eccc21e47fbd2a81b10d3f5041c685d273d0e97
https://github.com/llvm/llvm-project/commit/8eccc21e47fbd2a81b10d3f5041c685d273d0e97
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M libclc/CMakeLists.txt
M libclc/test/CMakeLists.txt
R libclc/test/check_external_funcs.sh
M libclc/test/lit.cfg.py
M libclc/test/lit.site.cfg.py.in
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[libclc] Replace llvm-dis with llvm-nm in check-external-funcs.test (#187190)
llvm-nm is covered by extra_deps in runtime build when
LLVM_INCLUDE_TESTS is true.
Commit: 36798cfa860f18a130a896d75434ca70123804f7
https://github.com/llvm/llvm-project/commit/36798cfa860f18a130a896d75434ca70123804f7
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll
Log Message:
-----------
[AMDGPU][GlobalISel][NFC] Change mbcnt test to use new-reg-bank-select (#187772)
The amdgcn_mbcnt_lo and amdgcn_mbcnt_hi intrinsics already have
RegBankLegalize rules but the test was not converted to use
new-reg-bank-select yet.
Commit: 4cba4ad8d73b9e4934c03a483a42bd08c93d8298
https://github.com/llvm/llvm-project/commit/4cba4ad8d73b9e4934c03a483a42bd08c93d8298
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.pops.exiting.wave.id.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for pops_exiting_wave_id (#187778)
Merge rule with groupstaticsize, also change to use fast uniform rule
since both of these intrinsics are uniform with no inputs.
Commit: 91dbaf5d89c093b6c16b2aa5478078e1a0526958
https://github.com/llvm/llvm-project/commit/91dbaf5d89c093b6c16b2aa5478078e1a0526958
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h
M llvm/lib/Target/NVPTX/NVPTX.td
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/test/CodeGen/NVPTX/inline-asm-b128-test1.ll
A llvm/test/CodeGen/NVPTX/param-space-subqualifiers.ll
M llvm/test/CodeGen/NVPTX/tensormap_replace.ll
M llvm/test/CodeGen/NVPTX/used-bytes-mask.ll
Log Message:
-----------
[NVPTX] Print param space sub-qualifiers where supported (#187350)
Print param space sub-qualifiers (`param::entry` and `param::func`) for
PTX 8.3+, as described in the [PTX ISA
docs](https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#parameter-state-space).
This requires threading the `MCSubtargetInfo` through the inst printer,
which is done by setting `PassSubtarget = 1` on the asm writer.
Emitting the full space avoids the need for ptxas to infer it, improving
readability and more importantly preventing potential bugs if valid LLVM
IR transformations were to move a load from ADDRESS_SPACE_ENTRY_PARAM
into a device function.
Commit: f0a652e351d83146b252b7b642b7e498f2ea74aa
https://github.com/llvm/llvm-project/commit/f0a652e351d83146b252b7b642b7e498f2ea74aa
Author: yronglin <yronglin777 at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/Lex/PPDirectives.cpp
Log Message:
-----------
[NFC][clang] Remove dead code in HandleCXXModuleDirective (#187737)
Remove the dead code in `Preprocessor::HandleCXXModuleDirective`.
Signed-off-by: yronglin <yronglin777 at gmail.com>
Commit: d7fe9c87ce9a5fc5b48d6b19415542f5807fc154
https://github.com/llvm/llvm-project/commit/d7fe9c87ce9a5fc5b48d6b19415542f5807fc154
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-20 (Fri, 20 Mar 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Handle sizeof in C compound literals (#187633)
Fixes #168237
Commit: 1087db5b1f80d1f5dc70a93c63d7ec8f19425b9b
https://github.com/llvm/llvm-project/commit/1087db5b1f80d1f5dc70a93c63d7ec8f19425b9b
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.h
Log Message:
-----------
[clang-tidy] Speed up `bugprone-suspicious-semicolon` (#187558)
```txt
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
Status quo: 0.4743 (100.0%) 0.3802 (100.0%) 0.8546 (100.0%) 0.8567 (100.0%) bugprone-suspicious-semicolon
With this change: 0.0103 (100.0%) 0.0027 (100.0%) 0.0130 (100.0%) 0.0133 (100.0%) bugprone-suspicious-semicolon
```
Continuing the trend of registering one `anyOf` matcher being slower
than registering each of its matchers separately (see #178829 for a
previous example).
(This PR also changes the traversal mode, but I only saw a small speedup
from that. Most of it came from registering the matchers separately.)
This check wasn't super expensive to begin with, but the speedup is
still pretty nice.
Commit: 64c4e529a9560b77a049fe80f635d9a29a7b515e
https://github.com/llvm/llvm-project/commit/64c4e529a9560b77a049fe80f635d9a29a7b515e
Author: Artem Gindinson <gindinson at roofline.ai>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M mlir/lib/Conversion/MemRefToSPIRV/MemRefToSPIRV.cpp
M mlir/test/Conversion/MemRefToSPIRV/memref-to-spirv.mlir
Log Message:
-----------
[mlir][SPIRV] Add alignment calculation to support `PhysicalStorageBuffer` with vector types (#187698)
This allows to lower `memref.load`/`store` operations on
`PhysicalStorageBuffer`-typed resources with the underlying type being a
vector type. This improves support for the `PhysicalStorageBuffer`
capability in pipelines that use the Vector dialect for distribution.
Signed-off-by: Artem Gindinson <gindinson at roofline.ai>
Commit: b3c1098211c8f71800d16b82d5672fb78871a284
https://github.com/llvm/llvm-project/commit/b3c1098211c8f71800d16b82d5672fb78871a284
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M lldb/unittests/Platform/PlatformTest.cpp
Log Message:
-----------
[lldb][test] PlatformTest: fix comment
Commit: 1f9c54a15a87f72ca45fb47ec006d1eae63f4eb0
https://github.com/llvm/llvm-project/commit/1f9c54a15a87f72ca45fb47ec006d1eae63f4eb0
Author: Devajith <devajith.valaparambil.sreeramaswamy at cern.ch>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/AST/QualTypeNames.cpp
M clang/test/Interpreter/pretty-print.cpp
Log Message:
-----------
[clang][AST] Preserve qualifiers in getFullyQualifiedType for AutoType (#187717)
A previous change (86c4e96) did not preserve qualifiers attached to the
AutoType QualType when the type was deduced.
For an AutoType after `getDeducedType()`, qualifiers from the original
QualType were dropped. Preserve and reapply them to the deduced type.
Commit: 2d01df187f1ce7d6995855c5c8d3608f2f9ee1d5
https://github.com/llvm/llvm-project/commit/2d01df187f1ce7d6995855c5c8d3608f2f9ee1d5
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/test/CIR/CodeGen/arg-attrs.cpp
M clang/test/CIR/CodeGen/invoke-attrs.cpp
Log Message:
-----------
[CIR] Fix reference alignment to use pointee type (#186667)
getNaturalTypeAlignment on a reference type returned pointer alignment
instead of pointee alignment. Pass the pointee type with
forPointeeType=true to match traditional codegen's
getNaturalPointeeTypeAlignment behavior. Fix applies to both argument
and return type attribute construction paths.
Commit: db143fb2b9e61a7fff2bd32c08c0cd78ca0a3b84
https://github.com/llvm/llvm-project/commit/db143fb2b9e61a7fff2bd32c08c0cd78ca0a3b84
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Use block number instead of pointer for stable sorting, NFC
Commit: 3b9106149c6867494049d7af4958eebeec5e2393
https://github.com/llvm/llvm-project/commit/3b9106149c6867494049d7af4958eebeec5e2393
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M lldb/source/Plugins/SymbolLocator/SymStore/CMakeLists.txt
Log Message:
-----------
[lldb] Fix linking liblldb in a dylib build after 39d6bb21804d21ab
Referencing libSupportHTTP under LINK_LIBS of add_lldb_library() pulls
in the static archive even in a build configuration with
LLVM_LINK_LLVM_DYLIB=On, where libSupportHTTP is part of libLLVM. This
patch moves it to LINK_COMPONENTS to fix the issue.
This is the same fix as in
036429881f8d3037894042c6268b2a94eac8c950, applied on another
library.
Commit: 656fce889c65157daa0aea7f9fd1080e0f04d7dd
https://github.com/llvm/llvm-project/commit/656fce889c65157daa0aea7f9fd1080e0f04d7dd
Author: efferre79 <rossi.f at inwind.it>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/bindings/python/clang/cindex.py
A clang/bindings/python/tests/cindex/test_version.py
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[libclang/python] export libclang version to the bindings (#86931)
It's useful to know which clang library the python bindings are running.
---------
Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Commit: acf9eede2302fa2798607039e36a241bd2a956bf
https://github.com/llvm/llvm-project/commit/acf9eede2302fa2798607039e36a241bd2a956bf
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/include/llvm/Object/BBAddrMap.h
Log Message:
-----------
[Object] Fix issues in BBAddrMap.h (#187704)
Commit: 616240369e11c87b5a33c1219e9d708662b4c8e9
https://github.com/llvm/llvm-project/commit/616240369e11c87b5a33c1219e9d708662b4c8e9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/RISCV/split-vectorize-parent-for-copyables.ll
Log Message:
-----------
[SLP]Do not consider copyable node with SplitVectorize parent
If the copyables are schedulable and the parent node is plit vectorize,
need to skip the scheduling analysis for such nodes to avoid a compiler
crash
Commit: 4d058aeb08cafad4c706f0cab35c24180470e74b
https://github.com/llvm/llvm-project/commit/4d058aeb08cafad4c706f0cab35c24180470e74b
Author: Michał Górny <mgorny at gentoo.org>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
Log Message:
-----------
[lldb] Fix LLVMSupportHTTP linkage against libLLVM (#187848)
Regression introduced in 39d6bb21804d21abe2fa0ec019919d72104827ac.
Signed-off-by: Michał Górny <mgorny at gentoo.org>
Commit: 82eee26ccccd3d139bad649376ef56fb8bf28e83
https://github.com/llvm/llvm-project/commit/82eee26ccccd3d139bad649376ef56fb8bf28e83
Author: Jannick Kremer <jannick.kremer at mailbox.org>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/bindings/python/clang/cindex.py
Log Message:
-----------
[libclang/python] Fix Type.get_offset annotation (#187841)
As discussed in
https://github.com/llvm/llvm-project/pull/180876#discussion_r2934372753,
`Type.get_offset` can process `bytes` arguments as well. For consistency
with other functions taking `str` arguments, its type annotation is
adapted to reflect this.
Commit: 7d7cd745af221c8690ea6deb2dfbf232658158cd
https://github.com/llvm/llvm-project/commit/7d7cd745af221c8690ea6deb2dfbf232658158cd
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-21 (Sat, 21 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/atanbf16.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/atanbf16.h
M libc/src/math/CMakeLists.txt
A libc/src/math/atanbf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/atanbf16.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/atanbf16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/atanbf16_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math][c23] Add atanbf16 function (#184019)
This PR intends to add atanbf16 higher math function for BFloat16 type
along with the tests.
Commit: c1df6937bac1191663c7f3a84f5c8faf2e79db35
https://github.com/llvm/llvm-project/commit/c1df6937bac1191663c7f3a84f5c8faf2e79db35
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/RISCV/urem-lkk.ll
Log Message:
-----------
[TargetLowering] Use legally typed shifts to split chunks in expandDIVREMByConstant. (#187567)
This replaces LegalVT with HiLoVT and LegalWidth with HBitWidth as
they are the same for all current uses.
Then we rewrite the shifts to operate on LL and LH.
There's a slight regression on RISC-V due to different node creation
order leading to different DAG combine order. I have other refactoring
I'd like to explore then I may try to fix that.
Commit: 93d256b076b12bf30e546910d9ae473ec93146c0
https://github.com/llvm/llvm-project/commit/93d256b076b12bf30e546910d9ae473ec93146c0
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
M llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
M llvm/test/DebugInfo/PDB/pdbdump-mergetypes.test
A llvm/test/tools/llvm-pdbutil/Inputs/forward-refs1.yaml
A llvm/test/tools/llvm-pdbutil/Inputs/forward-refs2.yaml
A llvm/test/tools/llvm-pdbutil/merged-forward-refs.test
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
Log Message:
-----------
[llvm-pdbutil] Hash type records in yaml2pdb (#187593)
The TPI and IPI streams didn't include a hash map for the generated
types, because the types never got hashes. A hash map is necessary to
resolve forward references when dumping the PDB (checks for
`TpiStream::supportsTypeLookup` which checks the hash map).
With this PR, the hashes are generated. There's no good test that we do
this for the IPI stream as well, because it doesn't have forward
references.
Commit: d818fa4c55c24b989eb925581e62b284c3c3a461
https://github.com/llvm/llvm-project/commit/d818fa4c55c24b989eb925581e62b284c3c3a461
Author: Twice <twice at apache.org>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M mlir/python/mlir/dialects/ext.py
M mlir/test/python/dialects/ext.py
M mlir/test/python/dialects/transform_op_interface.py
M mlir/test/python/integration/dialects/bf.py
Log Message:
-----------
[MLIR][Python] Make init parameters follow the field definition order (#186574)
Currently, Python-defined operations automatically generate an
`__init__` function to serve as the operation builder. Previously, the
parameters of this `__init__` function followed a fairly complex set of
rules. For example:
* All result fields were moved to the front to align with other op
builders.
* Fields of `Optional` type were automatically moved to the end and
treated as keyword parameters.
* If the types of all result fields could be inferred automatically,
then all result fields were removed from the parameter list.
* Other than that, the parameter order followed the field definition
order.
These rules may seem reasonable, and they have worked well in practice,
but they have one major drawback: users cannot easily tell what the
actual `__init__` parameter list will look like when writing code,
because the rules are simply too complicated. Users can inspect the
signature at runtime via `MyOp.__init__.__signature__`, but this is
clearly poor for the development experience.
After some offline discussion with Rolf, we decided to replace this with
the following rules, which is what this PR implements:
* The parameters of `__init__` now strictly follow the field definition
order.
* By default, all parameters are required. A field becomes a keyword
parameter only if it is declared with `= None`.
* By default, no type inference is performed. A field becomes a keyword
parameter and participates in type inference only if it is declared with
`= infer_type()`.
These new rules give users full control over the `__init__` parameter
list, making it easy to understand the parameter order and explicitly
control optional parameters and type inference. In addition, this makes
it much easier in the future to use `dataclass_transform` so that type
checkers can understand these automatically generated `__init__`
methods, although there are still some issues to resolve at the moment.
NOTE that this is a **breaking change**. Even so, I still believe it is
worth making, mainly for two reasons:
- the current number of users of Python-defined dialects is still quite
limited;
- this change will bring long-term benefits.
Assisted by Copilot.
Commit: df9eb79970c012990e829d174d181d575d414efe
https://github.com/llvm/llvm-project/commit/df9eb79970c012990e829d174d181d575d414efe
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/test/CodeGen/amdgpu-image-rsrc-type-debug-info.c
M clang/test/CodeGen/builtins-extended-image.c
M clang/test/CodeGen/builtins-image-load.c
M clang/test/CodeGen/builtins-image-store.c
Log Message:
-----------
[Clang][AMDGPU] Lower `__amdgpu_texture_t` to `<8 x i32>` instead of ptr adrspace(0) (#187774)
Fix the IR lowering for `__amdgpu_texture_t` to generate a single
256-bit load instead of a double indirection through a flat pointer.
Previously, `__amdgpu_texture_t` was lowered to `ptr addrspace(0)`
(64-bit flat pointer), which caused the double load and indirection.
With the same reproducer like #187697.
```c
#define TSHARP __constant uint *
// Old tsharp handling:
// #define LOAD_TSHARP(I) *(__constant uint8 *)I
#define LOAD_TSHARP(I) *(__constant __amdgpu_texture_t *)I
float4 test_image_load_1D(TSHARP i, int c) {
return __builtin_amdgcn_image_load_1d_v4f32_i32(15, c, LOAD_TSHARP(i), 0, 0);
}
```
old output:
```llvm
define hidden <4 x float> @test_image_load_1D(ptr addrspace(4) noundef readonly captures(none) %i, i32 noundef %c) local_unnamed_addr #0 {
entry:
%0 = load ptr, ptr addrspace(4) %i, align 32, !tbaa !9
%1 = addrspacecast ptr %0 to ptr addrspace(1)
%tex.rsrc.val = load <8 x i32>, ptr addrspace(1) %1, align 32
%2 = tail call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i32.v8i32(i32 15, i32 %c, <8 x i32> %tex.rsrc.val, i32 0, i32 0)
ret <4 x float> %2
}
```
This matches the old `__constant uint8 *` behavior. With this fix new
output is
```llvm
define hidden <4 x float> @test_image_load_1D(ptr addrspace(4) noundef readonly captures(none) %0, i32 noundef %1) local_unnamed_addr #0 {
%3 = load <8 x i32>, ptr addrspace(4) %0, align 32, !tbaa !10
%4 = tail call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i32.v8i32(i32 15, i32 %1, <8 x i32> %3, i32 0, i32 0)
ret <4 x float> %4
}
```
Fixes #187697
Commit: 34203a53b60dc79a956ff67a21b08eb9f7660da1
https://github.com/llvm/llvm-project/commit/34203a53b60dc79a956ff67a21b08eb9f7660da1
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/docs/RISCVUsage.rst
Log Message:
-----------
[RISCV][Docs] Removed 'specified in' text from SiFive custom instruction links. NFC (#187817)
The URL isn't printed, the text in the backticks is the link text.
Commit: f146677396ea0b02b902743633a1f934023ae15f
https://github.com/llvm/llvm-project/commit/f146677396ea0b02b902743633a1f934023ae15f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Refactor expandDIVREMByConstant to share more code. NFC (#187582)
Make the (1 << HBitWidth) % Divisor == 1 path a special case within
the recently added chunk summing algorithm. This allows us to
share the trailing zero shifting code.
While there make some comment improvements and avoid creating
unnecessary nodes.
Commit: b7d97d9e8dfaeabc6a5271d810d2e2af4e485a4e
https://github.com/llvm/llvm-project/commit/b7d97d9e8dfaeabc6a5271d810d2e2af4e485a4e
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
Log Message:
-----------
[BOLT] Remove outdated assertion from local symtab update logic (#187409)
The assert condition (function is not split or split
into less than three fragments) is not always true now
that we will emit more local symbols due to #184074.
Commit: 2702570686d7e7e38bc0db6fd857c76076190a50
https://github.com/llvm/llvm-project/commit/2702570686d7e7e38bc0db6fd857c76076190a50
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/source/Core/SafeAutoloadPaths.inc
Log Message:
-----------
[Bazel] Port 0ec9f7ebbdf72a94e0e2c0872d4d11fc8d0efa6b
Commit: d3c7f23d2f3fee7209f84ca7da5411868d656995
https://github.com/llvm/llvm-project/commit/d3c7f23d2f3fee7209f84ca7da5411868d656995
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanValue.h
Log Message:
-----------
[VPlan] Remove unused VPlan friend declaration from VPValue (NFC)
VPlan only accesses VPValue through public APIs (getUnderlyingValue(),
etc.), so the friend declaration is unnecessary.
Commit: 1075a2fa7ed0a576e5aeb4af03b570eab1aaae04
https://github.com/llvm/llvm-project/commit/1075a2fa7ed0a576e5aeb4af03b570eab1aaae04
Author: Takashi Idobe <idobetakashi at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp
A llvm/test/Transforms/InstCombine/atomicrmw-add-neg.ll
Log Message:
-----------
[Instcombine] Write Instcombine pass to strength reduce lock xadd to lock sub (#184715)
Resolves: https://github.com/llvm/llvm-project/issues/174933
The issue goes into a case where fetch_sub(n) is properly optimized but
fetch_add(neg(n)) is not optimized to the same code.
Although the issue is tagged for x86 I assumed this be best handled
outside of the backends so I put this in InstCombine.
Commit: 2be28d65fbf1b5660ecef61a406542cb3b37b7e7
https://github.com/llvm/llvm-project/commit/2be28d65fbf1b5660ecef61a406542cb3b37b7e7
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Core/BUILD.gn
Log Message:
-----------
[gn] "port" 0ec9f7ebbdf72a94
Just use an empty list always.
Commit: adcb17b47641a1afb1cc694e3ff363fb1cb2a288
https://github.com/llvm/llvm-project/commit/adcb17b47641a1afb1cc694e3ff363fb1cb2a288
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
Log Message:
-----------
[Clang][HLSL] Fix -Wunused-variable
Inline the definition of a variable into an assertion given it has no
other users and no side effects.
Commit: 1f1d3167b203f3c22be5d96c5560a311e46d1de4
https://github.com/llvm/llvm-project/commit/1f1d3167b203f3c22be5d96c5560a311e46d1de4
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Correctly annotate Java lambda/sychronized blocks (#187842)
Fixes #171841
Commit: eea589f951e188be57860459f45763985bd2233e
https://github.com/llvm/llvm-project/commit/eea589f951e188be57860459f45763985bd2233e
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M libc/src/__support/CPP/type_traits/is_constant_evaluated.h
M libc/src/__support/FPUtil/PolyEval.h
M libc/src/__support/FPUtil/multiply_add.h
M libc/src/__support/macros/attributes.h
M libc/src/__support/macros/config.h
M libc/src/__support/math/log.h
M libc/src/__support/math/log_range_reduction.h
M libc/test/shared/shared_math_test.cpp
Log Message:
-----------
[libc][math] Qualify log with constant evaluation support (#184745)
Lay the ground for C++26 `constexpr` math functions:
- Introduce `LIBC_ENABLE_CONSTEXPR` macro switch to specify the desire
of `constexpr`-only code route.
- Introduce `LIBC_HAS_CONSTANT_EVALUATION` to indicate that we are using
`constexpr`-only code in all dependent functions.
- Introduce `LIBC_CONSTEXPR` macro qualifier to aid in altering the
signature of non-`constexpr` functions.
Note that non-`constexpr` qualified functions are caused by the
exploitation of non-`constexpr` compatible utils, resulting in
non-qualified dependent function, but it can be modified to be qualified
using other code routes.
If the function is `constexpr` compatible, then it's prohibited to use
`LIBC_CONSTEXPR` as a function qualifier. We only qualify it with
`constexpr` as usual.
`LIBC_CONSTEXPR` may or may not evaluate to `constexpr` depending on the
environment configurations, thus it's only used to modify the function
signature in constant evaluation context and remove the qualifier if
it's not desired (depending on provided configurations).
Possible side effects:
- Current qualified routes may or may not produce the desired ULP, this
is implementation dependent (function by function basis) and needs
further testing of the chosen code route.
- The shared tests in the current configuration can still compile with
unsupported compiler. I didn't want to raise compilation error with
unsupported compilers now, but we need to push compiler support with
newer versions for this one to work as intended.
Commit: 1120c971c8499ea404417cc598b6306326ac2e40
https://github.com/llvm/llvm-project/commit/1120c971c8499ea404417cc598b6306326ac2e40
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M llvm/test/MachineVerifier/AMDGPU/invalid-vop3-source-modifiers.mir
Log Message:
-----------
[NFC][AMDGPU] Set output to null for llvm/test/MachineVerifier/AMDGPU/invalid-vop3-source-modifiers.mir (#187888)
Commit: aa62224a73b10da9154aa0c1111e009a8cd48ef2
https://github.com/llvm/llvm-project/commit/aa62224a73b10da9154aa0c1111e009a8cd48ef2
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M libc/shared/math.h
A libc/shared/math/sqrtbf16.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/sqrtbf16.h
M libc/src/math/generic/CMakeLists.txt
M libc/src/math/generic/sqrtbf16.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math] Refactor sqrtbf16 function header-only (#187849)
Commit: 2bbb4491a6fdb6e316641224dba7cb722e70a675
https://github.com/llvm/llvm-project/commit/2bbb4491a6fdb6e316641224dba7cb722e70a675
Author: Björn Schäpers <bjoern at hazardy.de>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/lib/Format/WhitespaceManager.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Merge case alignment into AlignTokens (#187811)
Use (nearly) the same code to align case statements and expression, as
the other alignments do. That way we also fix two things:
- Keep the ColumnLimit intact, without duplicating the calculation.
- Align all the case colons, even for empty cases.
Commit: f014202dac325c576addd857b558f7d9d2b28905
https://github.com/llvm/llvm-project/commit/f014202dac325c576addd857b558f7d9d2b28905
Author: Owen Pan <owenpiano at gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
Log Message:
-----------
[clang-format][NFC] Remove redundant parens enclosing braced list
Commit: 3258d361cbc5d57e5e507004706eb36acf120066
https://github.com/llvm/llvm-project/commit/3258d361cbc5d57e5e507004706eb36acf120066
Author: James Y Knight <jyknight at google.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
Log Message:
-----------
[Clang] Use stable_sort in VerifyDiagnosticsConsumer. (#187827)
The new code introduced for `-verify-directives` in PR #179835 enforces
that the order of diagnostics matches the order of the directives.
However, before checking this, it sorts the directives by
SourceLocation. Perhaps non-obviously, all directives which appear
inside a single comment are given the same SourceLocation, pointing to
the beginning of the comment. While these are added in order they appear
in the comment, the non-stable std::sort may non-detministically
misorder them. Switching to stable_sort ensures the correct order is
verified.
This was observed as a random test failure on the checks in
clang/test/CXX/drs/cwg25xx.cpp lines 250 and 264, in some builds of
Clang. Note that those lines end in backslashes, and thus, despite
appearances, the directives on the following lines are also within the
same single comment.
Commit: 6f6adfbca46c0955608a0744131a7f3868fbd127
https://github.com/llvm/llvm-project/commit/6f6adfbca46c0955608a0744131a7f3868fbd127
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M orc-rt/include/orc-rt/Session.h
M orc-rt/unittests/SessionTest.cpp
Log Message:
-----------
[orc-rt] Add Session::tryCreateService convenience function. (#187640)
Session::tryCreateService will try to create an instance of ServiceT by
forwarding the given arguments to the ServiceT::Create method, which
must return an Expected<std::unique_ptr<ServiceT>>.
This enables one-line construction and registration of Services with
fallible constructors (which are expected to be common).
Commit: 24546d96445a6d4d7f6209795975faa7e3310356
https://github.com/llvm/llvm-project/commit/24546d96445a6d4d7f6209795975faa7e3310356
Author: Bogdan Vetrenko <b.vetrenko at yandex.ru>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGExprScalar.cpp
Log Message:
-----------
[clang][CodeGen] Use FieldDecl::getFieldIndex() in VisitOffsetOfExpr (#187826)
Use FieldDecl::getFieldIndex() instead of manually iterating over
fields.
Commit: a5472086ce24cd58b2f91381320b112511a12a27
https://github.com/llvm/llvm-project/commit/a5472086ce24cd58b2f91381320b112511a12a27
Author: Mir Immad <mirimmad17 at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
Log Message:
-----------
[clang-tidy] False negatives readability-redundant-parantheses member of struct (#187054)
Fixes #186749
Commit: 5b71607f384ea4a357c158fe6cdeb86a53f617a6
https://github.com/llvm/llvm-project/commit/5b71607f384ea4a357c158fe6cdeb86a53f617a6
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
M mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir
Log Message:
-----------
[mlir][linalg] Specialize transform op - emit category ops (#187506)
Adds optional attribute to allow specialization into category Linalg
ops.
The default behavior of the transform op remains unchanged.
Commit: 5324c23d6c4e1e6f6d244fe261ae70729409abff
https://github.com/llvm/llvm-project/commit/5324c23d6c4e1e6f6d244fe261ae70729409abff
Author: Konrad Kleine <193408+kwk at users.noreply.github.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
M llvm/unittests/Support/FormatVariadicTest.cpp
Log Message:
-----------
[llvm][DebugInfo] Use formatv instead of format in DWARFDebugLoc (#186800)
This relates to #35980.
Commit: a0d550856342a9a4a98f9561ba7aef2ff0b76678
https://github.com/llvm/llvm-project/commit/a0d550856342a9a4a98f9561ba7aef2ff0b76678
Author: SiliconA-Z <gfunni234 at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/abdu-neg.ll
M llvm/test/CodeGen/X86/abdu.ll
M llvm/test/CodeGen/X86/midpoint-int.ll
Log Message:
-----------
[X86] Prefer branchless code with sbb for abdu (#187783)
We can use the negate if carry trick for abdu, and it works on all legal for sbb
Commit: b4084bd213224799d350359a89235a41b3297f4a
https://github.com/llvm/llvm-project/commit/b4084bd213224799d350359a89235a41b3297f4a
Author: Berkay Sahin <berkaysahindev at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-pointers.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
Log Message:
-----------
[clang] Detect pointee mutations in placement new expressions (#187508)
Fixes #187012 which is a false positive on clang-tidy end.
Commit: 4c4925f1a25998f913d04934d710a69cea44e75a
https://github.com/llvm/llvm-project/commit/4c4925f1a25998f913d04934d710a69cea44e75a
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/test/ELF/aarch64-feature-bti.s
M lld/test/ELF/aarch64-feature-gcs.s
Log Message:
-----------
[LLD] [ELF] Make {bti,gcs}-report=none silence warnings from force-bti/gcs=always (#186343)
Previously, the implicit warnings from force-bti (or gcs=always) weren't
possible to silence.
The force-ibt/cet-report flags could also be handled the same way, but I
haven't checked with GNU ld how they behave. And there, the force-ibt
flag only produces warnings if the IBT bit is missing, while cet-report
warns if either IBT or SHSTK are missing - but force-ibt probably
shouldn't implicitly start warning for missing SHSTK.
This addresses a discrepancy to GNU ld that was noted in #186173.
Commit: 720abd76e71f722f546c58af11049c773a583058
https://github.com/llvm/llvm-project/commit/720abd76e71f722f546c58af11049c773a583058
Author: Devajith <devajith.valaparambil.sreeramaswamy at cern.ch>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/lib/AST/QualTypeNames.cpp
M clang/test/Interpreter/pretty-print.cpp
Log Message:
-----------
[clang][AST] Fix assertion in getFullyQualifiedType for DecltypeType (#187725)
Commit: 26ee552ef583c47977026285aa684da5d4c53a2d
https://github.com/llvm/llvm-project/commit/26ee552ef583c47977026285aa684da5d4c53a2d
Author: A. Jiang <de34 at live.cn>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M libcxx/include/string
Log Message:
-----------
[libc++] Fix includes in `<string>` for no-`wchar_t` modes (#187650)
Since befaa35212dbaac39cd76a8dc748e4df7c90a0d9, the CI stably failed for
the generic-no-wide-characters build, because in no-`wchar_t` modes, the
header for `__remove_cv_t` wasn't properly included.
This PR adds the missing include of `<__type_traits/remove_cv.h>`.
As drive-by, `<__cstddef/size_t.h>` and
`<__type_traits/is_constant_evaluated.h>`, which are included by
`<cwchar>`, are also made included by `<string>` to avoid potential
regression as we're using `size_t` and
`__libcpp_is_constant_evaluated()` in `<string>`.
Commit: b1cf9b0835d214bcbd0d6e8882760c07cfccb298
https://github.com/llvm/llvm-project/commit/b1cf9b0835d214bcbd0d6e8882760c07cfccb298
Author: Zihao Wang <rekind133 at outlook.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Headers/avx512fintrin.h
M clang/lib/Headers/avx512vbmi2intrin.h
M clang/lib/Headers/avx512vlintrin.h
M clang/lib/Headers/avx512vlvbmi2intrin.h
M clang/test/CodeGen/X86/avx512f-builtins.c
M clang/test/CodeGen/X86/avx512vbmi2-builtins.c
M clang/test/CodeGen/X86/avx512vl-builtins.c
M clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c
Log Message:
-----------
[Clang] Support constexpr for AVX512 compress intrinsics (#187656)
Fixes #163732
Commit: 6eb5ac52ca56fd31c41a619a14093430b27132c3
https://github.com/llvm/llvm-project/commit/6eb5ac52ca56fd31c41a619a14093430b27132c3
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/test/CodeGen/SystemZ/is_fpclass.ll
Log Message:
-----------
[SystemZ] Remove custom lowering of f16 IS_FPCLASS (#187532)
As pointed out in #187518 , currently, `__builtin_isnormal` returns
`true` for subnormal half precision floating point numbers on `s390x.
This is because there is a custom lowering defined which lowers an `f16`
`IS_FPCLASS` ISD node by extending the `f16` value to `f32`, and then
using SystemZ's "test data class" instruction to determine whether the
number is subnormal. However, a number that is subnormal in 16 bits of
precision will no longer be subnormal in 32 bits of precision, and so
the test always returns true, i.e. all subnormal numbers are classified
as normal.
This PR addresses this by removing the custom lowering and instead
relying on the generic expansion of `IS_FPCLASS`, which does not have
this error.
Fixes #187518 .
Commit: 2566961cefad0aea6c9376ac7dcd7c09b00e7c7e
https://github.com/llvm/llvm-project/commit/2566961cefad0aea6c9376ac7dcd7c09b00e7c7e
Author: juan.vazquez <juvazq at google.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
Log Message:
-----------
[clang-tidy] use-after-move: Support null_after_move annotations (#186903)
Extend the bugprone-use-after-move check to recognize user defined
smart-pointer-like types that make guarantees on the state of a
moved-from object, leaving it in a valid and specified state that
matches the standard smart pointer's moved-from state (nullptr), where
it is safe to use but not dereference.
Following the RFC discussion:
* Use `[[clang::annotate]]` to mark the types.
* Use an schema for the `[[clang::annotate]]` annotation and arguments
to help avoid conflicts with other users of the attribute.
* The annotation will identify the tool ("clang-tidy") and the arguments
the plugin ("bugprone-use-after-move"), and the behavior of the type
("null_after_move"). E.g.:
`[[clang::annotate("clang-tidy", "bugprone-use-after-move",
"null_after_move")]]`
RFC:
https://discourse.llvm.org/t/rfc-add-a-class-attribute-clang-null-after-move-for-use-after-move-analysis/89760
Commit: 34bc5d580b73c0ca79653bb03e5c50419be2c634
https://github.com/llvm/llvm-project/commit/34bc5d580b73c0ca79653bb03e5c50419be2c634
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
A clang/test/Misc/noexecstack.c
M clang/tools/driver/cc1as_main.cpp
M llvm/lib/MC/MCELFStreamer.cpp
R llvm/test/MC/ELF/noexec.s
A llvm/test/MC/ELF/noexecstack.s
M llvm/tools/llvm-mc/llvm-mc.cpp
Log Message:
-----------
[MC,clang] Fix -Wa,--noexecstack not emitting .note.GNU-stack (#187880)
AsmPrinter (clang -c a.c) and AsmParser (clang -c a.s, llvm-mc
-filetype=obj a.s) have different ways to emit .note.GNU-stack section.
913c5b4d1fff removed a redundant initSections call from cc1as, but
that was the only place where NoExecStack was consumed for the
assembler path.
Unify the .note.GNU-stack emission in MCELFStreamer::finishImpl,
making the `initSections` parameter redundant.
Add a -filetype=obj test for Solaris (see
https://reviews.llvm.org/D159179), which doesn't use .note.GNU-stack
`initSections` has 20+ uses. The parameter cleanup will be deferred to a
subsequent change.
Fixes https://github.com/llvm/llvm-project/issues/186004
Commit: 88f830aed8ac1ba116d31a41defeabf07a3a754c
https://github.com/llvm/llvm-project/commit/88f830aed8ac1ba116d31a41defeabf07a3a754c
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
Log Message:
-----------
[SLP]Do not try to reduced instruction, marked for deletion in previous attempts
Need to skip instructions, which were vectorized and marked for deletion
to prevent a compiler crash
Commit: 33a14cbe35c153ddf98b3d197e0a82ff083dc4b9
https://github.com/llvm/llvm-project/commit/33a14cbe35c153ddf98b3d197e0a82ff083dc4b9
Author: Kavin Gnanapandithan <kavin.balag at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
A llvm/test/CodeGen/RISCV/rv32-move-merge-crash.ll
Log Message:
-----------
[RISCV] Add guard to prevent GPRPair merge on targets without Zdinx or P (#186600)
Resolves #186527.
The issue points out that GPRPair merge logic in the RISCVMoveMerger
pass was being called on a target without `zdinx` or `experimental-P`,
triggering an unreachable in `getGPRPairCopyOpcode`.
This patch fixes this issue by guarding `isEvenRegisterCopy` and
`isOddRegisterCopy` to return false when neither Zdinx nor P is present.
Commit: 45039dfac472c31fc72d6ac56348f8c4352821b0
https://github.com/llvm/llvm-project/commit/45039dfac472c31fc72d6ac56348f8c4352821b0
Author: Alexandre Ganea <alex_toresh at yahoo.fr>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/unittests/Analysis/CFGBackEdgesTest.cpp
Log Message:
-----------
[clang] On Windows, silence warning in `CFGBackEdgesTest` with MSVC (#187939)
This fixes:
```
[5804/7029] Building CXX object tools\clang\unittests\CMakeFiles\AllClangUnitTests.dir\Analysis\CFGBackEdgesTest.cpp.obj
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\xutility(721): warning C4018: '>': signed/unsigned mismatch
...
C:\git\llvm-project\clang\unittests\Analysis\CFGBackEdgesTest.cpp(170): note: see the first reference to 'testing::internal::PredicateFormatterFromMatcher<testing::internal::SizeIsMatcher<testing::internal::GtMatcher<int>>>::operator ()' in 'clang::analysis::`anonymous-namespace'::CFGBackEdgesTest_WhileWithContinueLoop_Test::TestBody'
```
Commit: ca3d04561ba8686bb6dd094190a1f49f59ace652
https://github.com/llvm/llvm-project/commit/ca3d04561ba8686bb6dd094190a1f49f59ace652
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M .github/new-prs-labeler.yml
Log Message:
-----------
[llubi][Github] Add llubi labelling support (#187877)
So that one can easily subscribe to llubi PRs which are currently not
labelled at all.
Commit: ea489fe12ee994549a9e93e9762ae96a12f5d329
https://github.com/llvm/llvm-project/commit/ea489fe12ee994549a9e93e9762ae96a12f5d329
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/benchmarks/CMakeLists.txt
A llvm/benchmarks/PointerUnionBM.cpp
Log Message:
-----------
[llvm][ADT] Add PointerUnion benchmarks. NFC. (#187874)
Add microbenchmarks for `PointerUnion`'s `isa` and `isNull` operations
across union sizes of 2, 4, and 8 types. This it to establish baseline
performance numbers before making changes to the implementation.
I plan to refactor the implementation a bit and add support for more
variants using sparse encoding.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: c58f32215d492bf6fb7db6b7d83891783b108723
https://github.com/llvm/llvm-project/commit/c58f32215d492bf6fb7db6b7d83891783b108723
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/Target/SPIRV/BUILD.gn
Log Message:
-----------
[gn build] Port 78729251fbb2
Commit: 0e7a8ac6c15dd8df1592f310c5a3d7482ff4a870
https://github.com/llvm/llvm-project/commit/0e7a8ac6c15dd8df1592f310c5a3d7482ff4a870
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Core/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
Log Message:
-----------
[gn build] Port c6ba0e00161e
Commit: 651482267dc2934f107f69d1379c21574ef1ffa9
https://github.com/llvm/llvm-project/commit/651482267dc2934f107f69d1379c21574ef1ffa9
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
A llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Tool/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-format/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker/BUILD.gn
Log Message:
-----------
[gn] port a2c0c436999
Commit: c079372099cf04de6c4ada5b6a1b5f61fc22aecd
https://github.com/llvm/llvm-project/commit/c079372099cf04de6c4ada5b6a1b5f61fc22aecd
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Add m_VPPhi pattern matcher and use in removeDeadRecipes (NFC).
Add m_VPPhi to match VPPhi instructions with exactly 2 operands.
Split off from https://github.com/llvm/llvm-project/pull/156262.
Commit: b2ba79578b35f11759a856cf9dc7e66a46258206
https://github.com/llvm/llvm-project/commit/b2ba79578b35f11759a856cf9dc7e66a46258206
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/reduced-ordered-values-update.ll
M llvm/test/Transforms/SLPVectorizer/insert-element-build-vector-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/insert-element-build-vector.ll
Log Message:
-----------
[SLP]Fix patterns for compile time blow up with ordered reductions
Excluded patterns, leading to compile time blow up for integer ordered
reductions.
Commit: 8d64f56892b539b312140e204e51fa16e747962d
https://github.com/llvm/llvm-project/commit/8d64f56892b539b312140e204e51fa16e747962d
Author: Jean-Christian CÎRSTEA <jean-christian.cirstea at tuta.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/Sema.cpp
A clang/test/SemaCXX/warn-maybe-unused-private-field.cpp
Log Message:
-----------
[Clang] Honour [[maybe_unused]] on private fields (#187940)
Before this commit, [[maybe_unused]] on private fields was ignored. In
conjunction with `-Wunused-private-field`, false warnings were emitted
by clang. This commit fixes this by checking if an unused private field
is annotated with [[maybe_unused]].
Commit: ce288f444102a0d8ca1c1223b4f85bf4d1b6300e
https://github.com/llvm/llvm-project/commit/ce288f444102a0d8ca1c1223b4f85bf4d1b6300e
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp
Log Message:
-----------
[MLIR][XeGPU] Add distribution patterns for vector insert & extract ops in sg to wi pass (#184665)
This PR adds patterns for following vector ops in the new sg-to-wi pass
1. ExtractOp
2. ExtractStridedSliceOp
3. InsertStridedSliceOp
4. InsertOp
Commit: 98f84f9bf2dfdf8a77c025303e594ede8336eb8e
https://github.com/llvm/llvm-project/commit/98f84f9bf2dfdf8a77c025303e594ede8336eb8e
Author: Hippolyte Melica <51196136+etyloppihacilem at users.noreply.github.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/CodeComplete.cpp
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaCodeCompletion.h
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/SemaCodeComplete.cpp
M clang/test/CodeCompletion/cpp23-explicit-object.cpp
M clang/test/CodeCompletion/member-access.cpp
M clang/test/Index/complete-qualified.cpp
Log Message:
-----------
[clangd] Code completion for declaration of class method (#165916)
Code completion previously could not tell apart the declaration of
a method from a call to it, and provided call-like behaviour even
in declaration contexts. This included things like not offering
completion for private methods, and inserting placeholders for
the parameters as though the user was going to fill in arguments.
This patch adds support to Parser and SemaCodeComplete to
detect and provide dedicated behaviour for declaration contexts.
In these contexts, the flag CodeCompletionResult::DeclaringEntity
is set, and createCodeCompletionString() is adjusted to handle this
flag, e.g. by inserting parameter declarations as text chunks rather
than placeholder chunks.
The DeclaringEntity flag is also available for consumers of
SemaCodeComplete, such as clangd, to customize their behaviour.
In addition, the patch tweaks the conditions under which the
existing CodeCompletionResult::FunctionCanBeCall flag is set to
be more accurate, excluding declaration contexts and cases where
the address of the function is likely being taken.
Fixes clangd/clangd#753
Fixes clangd/clangd#880
Fixes clangd/clangd#1752
Commit: e1286d963eeba241e2b1b67f3b1e716dfab83d95
https://github.com/llvm/llvm-project/commit/e1286d963eeba241e2b1b67f3b1e716dfab83d95
Author: Colin He <50345320+CPlusMinus2000 at users.noreply.github.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
Log Message:
-----------
[mlir] Deterministic containers in BytecodeWriter (#187819)
Iteration over use lists in writeUseListOrders is non-deterministic as a
result of using a DenseMap. Replacing with a Vector-backed `MapVector`
restores deterministic behaviour.
Commit: 7482655a6b57864cd8b94949a6eb0b2fa5621f4d
https://github.com/llvm/llvm-project/commit/7482655a6b57864cd8b94949a6eb0b2fa5621f4d
Author: Alexandre Ganea <alex_toresh at yahoo.fr>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang/lib/AST/TemplateBase.cpp
Log Message:
-----------
[clang] On Windows, silence warning when building with MSVC (#187937)
This fixes:
```
[2124/7029] Building CXX object tools\clang\lib\AST\CMakeFiles\obj.clangAST.dir\TemplateBase.cpp.obj
C:\git\llvm-project\clang\lib\AST\TemplateBase.cpp(753): warning C4312: 'reinterpret_cast': conversion from 'clang::SourceLocation::UIntTy' to 'clang::TemplateArgumentLocInfo::LocOrPointer' of greater size
```
Commit: 6dabcef0b3ffa0beadd426e0fd56c61c45b5b396
https://github.com/llvm/llvm-project/commit/6dabcef0b3ffa0beadd426e0fd56c61c45b5b396
Author: Twice <twice at apache.org>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/IRDL/IRDLLoading.cpp
M mlir/python/mlir/dialects/ext.py
M mlir/test/python/dialects/ext.py
Log Message:
-----------
[MLIR][IRDL][Python] Fix error while composing `irdl.any_of` and `irdl.base` (#187914)
Previously, while users compose `irdl.any_of` and `irdl.base`, e.g.
```mlir
module {
irdl.dialect @ext_attr_in_op {
irdl.operation @op_with_attr {
%0 = irdl.base "#builtin.integer"
%1 = irdl.base "#builtin.string"
%2 = irdl.any_of(%0, %1)
irdl.attributes {"a" = %2}
}
}
}
```
The program will crash due to `llvm_unreachable("unknown IRDL
constraint")`.
This PR implements `getBases(..)` for `irdl::BaseOp` to make this work.
This make fields like `attr: IntegerAttr | StringAttr` work in
Python-defined dialects, which led to a crash previously.
Commit: 5567572c44a017fb6b27e5bec791aeb5eb1a5151
https://github.com/llvm/llvm-project/commit/5567572c44a017fb6b27e5bec791aeb5eb1a5151
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove optimized container implementations in `misc-no-recursion` (#187630)
About half of this check's code is dedicated to implementing a pair of
set containers with optimizations for when the element count is small.
But the check only uses these containers while constructing the warning
message. That's not generally a hot path in any check. Just to confirm,
I ran the check over `clang/lib/Sema/Sema.cpp` and all its included
headers before and after, and saw no performance difference. So, these
containers seem like a false optimization.
Commit: 076226f378df115622d0d959e975ee7c7fb3c051
https://github.com/llvm/llvm-project/commit/076226f378df115622d0d959e975ee7c7fb3c051
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M lld/ELF/SyntheticSections.cpp
M lld/ELF/SyntheticSections.h
Log Message:
-----------
[ELF] Separate relative and non-relative dynamic relocations (#187959)
Previously, the flow was:
1. Parallel scan adds relative relocs to per-thread `relocsVec`
2. `mergeRels()` copies all into `relocs`
3. `partitionRels()` uses `stable_partition` to separate
Now, relative relocs are routed at `addReloc` time by checking
`reloc.type == relativeRel`. In `mergeRels`, sharded entries are
classified through the same `addReloc` path rather than blindly
appended. `relocsVec` may contain non-relative entries like
`R_AARCH64_AUTH_RELATIVE`.
This eliminates the `stable_partition` on the full relocation vector
(543K entries for clang) and avoids copying relative relocations into
`relocs` only to move them out again.
Linking an x86_64 release+assertions build of clang is 1.04x as fast.
`numRelativeRelocs` caches `relativeRelocs.size()` at `finalizeContents`
time for `DT_RELACOUNT`. Using a live `relativeRelocs.size()` would
cause `DynamicSection::writeTo` to emit an extra entry when thunks add
relocs after `.dynamic` is sized, overflowing into adjacent sections.
Tested by ppc64-long-branch-rel14.s.
Commit: dc4df5da886e09d36577b3302952bc91b5e7e154
https://github.com/llvm/llvm-project/commit/dc4df5da886e09d36577b3302952bc91b5e7e154
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M lld/ELF/SyntheticSections.cpp
M lld/ELF/SyntheticSections.h
M lld/test/ELF/combreloc.s
Log Message:
-----------
[ELF] Always separate relative relocations regardless of -z combreloc (#187964)
Remove the combreloc guard from addReloc and mergeRels so that
relative relocations are always routed to relativeRelocs, even with -z
nocombreloc or --pack-dyn-relocs=android.
Update AndroidPackedRelocationSection::updateAllocSize to iterate
both relativeRelocs and relocs.
Commit: 5ef593b75010301528f665ddbe7d2999165b9238
https://github.com/llvm/llvm-project/commit/5ef593b75010301528f665ddbe7d2999165b9238
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
Log Message:
-----------
[clangd] [C++ Modules] Enable content validation for module input files (#187653)
The IsModuleFileUpToDate function was not properly validating input
files for C++20 modules. By default, ASTReader skips input file
validation for StandardCXXModule files unless
ForceCheckCXX20ModulesInputFiles and ValidateASTInputFilesContent are
both set.
This change:
- Passes ValidateASTInputFilesContent=true to ASTReader constructor
- Uses ARR_OutOfDate flag for cleaner error handling
- Simplifies the validation logic (ReadAST already validates internally)
- Adds a test to verify header changes in module units are detected
Assised with AI.
Commit: 98fe2fb67aed936dc6cedd03a93cab19901eda5e
https://github.com/llvm/llvm-project/commit/98fe2fb67aed936dc6cedd03a93cab19901eda5e
Author: Rick Gaiser <rgaiser at gmail.com>
Date: 2026-03-22 (Sun, 22 Mar 2026)
Changed paths:
M llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
M llvm/lib/Target/Mips/MicroMipsInstrFPU.td
M llvm/lib/Target/Mips/Mips.td
M llvm/lib/Target/Mips/MipsInstrFPU.td
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.h
M llvm/test/CodeGen/Mips/fcmp.ll
A llvm/test/CodeGen/Mips/r5900-fpu-compare.ll
A llvm/test/CodeGen/Mips/r5900-fpu-softfloat.ll
A llvm/test/MC/Mips/r5900-fpu.s
M llvm/test/MC/Mips/r5900-invalid.s
Log Message:
-----------
[Mips] Add r5900 (PlayStation 2 Emotion Engine) FPU Support (#178942)
This PR adds basic FPU support for the MIPS R5900 processor used in the
PlayStation 2 Emotion Engine. The R5900 has a non-standard
single-precision-only FPU with limited functionality compared to
standard MIPS FPUs. Just like the previous r5900 PR, only existing
instructions are used to implement basic support first.
## Changes
### Infrastructure for single-precision-only FPU (ce13ddea7bc7)
- Add `isSingleFloat()` method to MipsAsmParser
- Add `SINGLE` FpABIKind to MipsABIFlagsSection
- Properly set CPR1Size and FpABI for single-float mode
- Exclude double-precision PseudoCVT instructions when using
single-float
### R5900 FPU support (13032c4d55b2)
- Switch R5900 from soft-float to single-float mode
- Implement R5900-specific FPU lowering with limited compare conditions
- Use CVT.W.S instead of TRUNC.W.S for FP-to-int conversion (R5900 lacks
TRUNC)
- Add test coverage for R5900 FPU instructions and comparisons
### Invalidate unsupported FPU instructions (ee4222711dab)
- Add predicates to exclude FPU instructions not supported by the R5900
- Add `C_COND_NOTR5900_M` multiclass for unsupported compare conditions
- Add `ISA_MIPS2_NOT_R5900` predicate for ROUND/TRUNC/CEIL/FLOOR.W.S
- Add test coverage for invalid R5900 FPU instructions
## R5900 FPU Limitations
The R5900 FPU differs from standard MIPS FPUs in several ways:
| Feature | Standard MIPS | R5900 |
|---------|---------------|-------|
| Precision | Single + Double | Single only |
| Compare conditions | 16 | 4 (C.F, C.EQ, C.LT, C.LE) |
| Rounding instructions | ROUND/TRUNC/CEIL/FLOOR.W.S | None (use
CVT.W.S) |
## Test Plan
- [x] Added `llvm/test/MC/Mips/r5900-fpu.s` - tests valid R5900 FPU
instructions
- [x] Added `llvm/test/MC/Mips/r5900-invalid.s` - tests rejection of
unsupported instructions
- [x] Added R5900 FPU comparison tests in
`llvm/test/CodeGen/Mips/fcmp.ll`
Commit: 95c906a31c451f273c2d4b2aca0ac4494c06ae98
https://github.com/llvm/llvm-project/commit/95c906a31c451f273c2d4b2aca0ac4494c06ae98
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
Log Message:
-----------
[clangd] [C++ Modules] Fix handling of relative paths in prebuilt mod… (#187654)
…ule files
When compile_commands.json contains relative paths in -fmodule-file=
arguments (as generated by CMake), clangd failed to find the BMI files
because it was looking for them relative to the wrong working directory.
This patch fixes the issue by converting relative paths to absolute
paths based on the compilation directory (CompileCommand.Directory)
before checking if the module file exists and is up to date.
Added a unit test that verifies the fix works correctly.
AI Assisted
Commit: c911b8492374942bf4cfe35411e90a35d3837f6a
https://github.com/llvm/llvm-project/commit/c911b8492374942bf4cfe35411e90a35d3837f6a
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/misc/multiple-inheritance.rst
Log Message:
-----------
[clang-tidy][NFC] Remove guidelines in documentation of misc-multiple-inheritance (#186657)
Closes https://github.com/llvm/llvm-project/issues/186058
Commit: 036b755daedb3b45b750d85493b1a93de8bafb8e
https://github.com/llvm/llvm-project/commit/036b755daedb3b45b750d85493b1a93de8bafb8e
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Parallelize demoteAndCopyLocalSymbols. NFC (#187970)
Use parallelFor to process files in parallel, collecting Symbol*
pointers per-file, then merge into the symbol table serially.
Linking clang-14 (208K .symtab entries) is 1.04x as fast.
Commit: 054e11d1a17e5ba88bb1a8ef32fad3346e80b186
https://github.com/llvm/llvm-project/commit/054e11d1a17e5ba88bb1a8ef32fad3346e80b186
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Program.cpp
M clang/test/AST/ByteCode/lambda.cpp
Log Message:
-----------
[clang][bytecode] Create descriptor for invalid record fields (#187311)
We otherwise refuse to register the Record for the RecordDecl entirely.
Commit: 5efb3dd026f0c592eef40b97c4e92fcc8b9828a7
https://github.com/llvm/llvm-project/commit/5efb3dd026f0c592eef40b97c4e92fcc8b9828a7
Author: Aaditya <115080342+easyonaadit at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fadd.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmin.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fsub.ll
Log Message:
-----------
[AMDGPU] DPP implementations for Wave Reduction (#187214)
Add support for DPP wave reduction for floating
point numbers.
Supported Ops: `fmin`, `fmax`, `fadd`, `fsub`.
Commit: 4bd9b1c0c9136e24a9b14ddba5a50ee9a1bdde09
https://github.com/llvm/llvm-project/commit/4bd9b1c0c9136e24a9b14ddba5a50ee9a1bdde09
Author: Alexandre Ganea <alex_toresh at yahoo.fr>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Format/WhitespaceManager.cpp
Log Message:
-----------
[clang] Silence warning in `WhitespaceManager` when building with MSVC (#187938)
This fixes:
```
[4544/7029] Building CXX object tools\clang\lib\Format\CMakeFiles\obj.clangFormat.dir\WhitespaceManager.cpp.obj
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveColons'::`2'::<lambda_1> &,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveShortCaseStatements'::`2'::<lambda_1> &,3>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveDeclarations'::`2'::<lambda_1> &,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveAssignments'::`2'::<lambda_1> &,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveMacros'::`2'::<lambda_1> &,1>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignChainedConditionals'::`7'::<lambda_3> &,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveColons'::`2'::<lambda_1>,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveAssignments'::`2'::<lambda_1>,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignChainedConditionals'::`5'::<lambda_1> &,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveDeclarations'::`2'::<lambda_1>,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignChainedConditionals'::`5'::<lambda_1>,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignConsecutiveShortCaseStatements'::`2'::<lambda_1> &,2>'::`4'::<lambda_2>::operator()': not all control paths return a value
C:\git\llvm-project\clang\lib\Format\WhitespaceManager.cpp(640) : warning C4715: '`clang::format::AlignTokens<`clang::format::WhitespaceManager::alignChainedConditionals'::`7'::<lambda_3>,0>'::`4'::<lambda_2>::operator()': not all control paths return a value
```
Commit: 4754d24f7bbb93e7084e5329db6555e798065cd8
https://github.com/llvm/llvm-project/commit/4754d24f7bbb93e7084e5329db6555e798065cd8
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Extract negating dependence logic (NFCI) (#185576)
Extract the logic to negate the dependence object from
`Dependence::normalize`. The extracted method will be used in the next
PR #185577 to refactor the Weak Zero SIV tests.
Commit: 69594b76f2ecb2ee254ccb5b9f9f02ca76931630
https://github.com/llvm/llvm-project/commit/69594b76f2ecb2ee254ccb5b9f9f02ca76931630
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRAttributes.h
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
Log Message:
-----------
[MLIR] [Python] A few minor fixes to type annotations (#187956)
* ir.IntegerAttr.value is now an int
* ir.Value.type correctly returns a value of type _T
* ir.OpView.build_generic returns ir.Operation, which matches the
implementation.
Commit: a17b132a42c93e20fe07c410cb06bd56930b82bf
https://github.com/llvm/llvm-project/commit/a17b132a42c93e20fe07c410cb06bd56930b82bf
Author: Michael Spencer <bigcheesegs at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/Support/FileSystem.h
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Windows/Path.inc
M llvm/unittests/Support/Path.cpp
Log Message:
-----------
[llvm][support] Refactor symlink handling and add readlink (#184256)
This adds a portable `readlink` function, and adds `create_symlink` to
enable testing this on Windows. `create_link` previously created a hard
link on Windows, but it now tries to create a symlink first.
The Windows implementation is based on posix_compat.h from libc++.
Assisted-by: claude-opus-4.6
Commit: 4b084f23bac39343d93ec91369efb2027d9fa153
https://github.com/llvm/llvm-project/commit/4b084f23bac39343d93ec91369efb2027d9fa153
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix regression in annotating angles in static_assert (#187966)
Fixes #187936
Commit: 5dcda94b163eab26a75a27529ff3894dc41dc235
https://github.com/llvm/llvm-project/commit/5dcda94b163eab26a75a27529ff3894dc41dc235
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/records.cpp
Log Message:
-----------
[clang][bytecode] Handle missing DynamicDecl in CallVirt (#187980)
Don't return true from getDynamicDecl() if the returned DynamicDecl is
null.
Commit: 922e916350f272bbc47d271c832051f4b0531b67
https://github.com/llvm/llvm-project/commit/922e916350f272bbc47d271c832051f4b0531b67
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/arrays.cpp
Log Message:
-----------
[clang][bytecode] Handle discarded OpaqueValueExpr (#187982)
... if they are already cached.
Commit: 9687ef36938922dcfa02d90a118b6675bcf3aefd
https://github.com/llvm/llvm-project/commit/9687ef36938922dcfa02d90a118b6675bcf3aefd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Headers/avx512fintrin.h
M clang/lib/Headers/avx512vbmi2intrin.h
M clang/lib/Headers/avx512vlintrin.h
M clang/lib/Headers/avx512vlvbmi2intrin.h
M clang/test/CodeGen/X86/avx512f-builtins.c
M clang/test/CodeGen/X86/avx512vbmi2-builtins.c
M clang/test/CodeGen/X86/avx512vl-builtins.c
M clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c
Log Message:
-----------
[clang][x86] Allow AVX512 expand intrinsics to be used in constexpr (#187946)
Fixes #163734
Commit: cda88c253cbdc832c798cd36cd7670d359ee71bb
https://github.com/llvm/llvm-project/commit/cda88c253cbdc832c798cd36cd7670d359ee71bb
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/builtins.c
Log Message:
-----------
[clang][bytecode] Check for block pointers in __builtin_strlen() (#187988)
Commit: d7059572eb721a30c925ed6dfe573fe0d5ed36d9
https://github.com/llvm/llvm-project/commit/d7059572eb721a30c925ed6dfe573fe0d5ed36d9
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
Log Message:
-----------
[clang][Neon] Extract code shared by classic and CIR codegen (NFC) (#186448)
Extract intrinsic maps shared by the classic and CIR codegen into a new
header, AArch64CodeGenUtils.h, which is reused by both. This keeps the
implementations in sync and avoids code duplication.
The maps are moved without modification. The accompanying code (e.g.
`ARMVectorIntrinsicInfo`) is updated to follow Clang coding style
(CamelCase instead of the camelCase used in CIR).
Commit: 252eb2a743f56f1f34048d8c311bad6037052232
https://github.com/llvm/llvm-project/commit/252eb2a743f56f1f34048d8c311bad6037052232
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
A flang/test/Fir/bitcast-fold.fir
M flang/test/Fir/convert-to-llvm.fir
M flang/test/Fir/fir-ops.fir
M flang/test/Fir/invalid.fir
Log Message:
-----------
[flang][FIR] add a new fir.bitcast operation (#187793)
This patch introduces a new bitcast operation for integer, float,
character, and logical.
The main rational for it is that it is currently not possible to express
such bitcast in FIR without going trough memory and there is a need to
have some bitcast support when interfacing with the memref dialect where
one cannot use fir.char<> and fir.logical and must use the underlying
storage type. Using fir.convert is not a good idea because it is a
semantic cast and it will for instance normalize integers when
converting from/to logical.
This could also be used to simplify the implementation of TRANSFER for
the cases of simple scalars of those types.
Assisted by: Claude
Commit: 66afa8fd9017bd5bc6aab5d60522a94c8394091e
https://github.com/llvm/llvm-project/commit/66afa8fd9017bd5bc6aab5d60522a94c8394091e
Author: bala-bhargav <penugondabalabharghav at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
A llvm/test/CodeGen/X86/x86-fp80-ret-no-x87.ll
Log Message:
-----------
[X86] Emit user-friendly error for x86_fp80 with x87 disabled on x86_64 (#183932)
When compiling a function that uses `x86_fp80` on x86_64 with x87 disabled (`-mattr=-x87`), LLVM crashes with a cryptic internal error.
Fixes #182450
Commit: 3fa88f0846b21503f0a14689a2696b979dd25c5d
https://github.com/llvm/llvm-project/commit/3fa88f0846b21503f0a14689a2696b979dd25c5d
Author: Hocky Yudhiono <hocky.yudhiono at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/test/Dialect/Tensor/canonicalize.mlir
Log Message:
-----------
[mlir][tensor] Fix empty tensor with cast encoding fold (#187963)
Fixed a todo where empty tensor with cast fold can't fold encoding or
attributes.
Commit: de514fbaba35833a195f5d338ac326114471ab10
https://github.com/llvm/llvm-project/commit/de514fbaba35833a195f5d338ac326114471ab10
Author: Shanzhi Chen <chenshanzhi at huawei.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M bolt/include/bolt/Profile/DataReader.h
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/lib/Profile/DataReader.cpp
Log Message:
-----------
[BOLT] Remove some unused code (NFC) (#183880)
Remove some unused code in BOLT:
- `RewriteInstance::linkRuntime` is declared but not defined
- `BranchContext` typedef is never used
- `FuncBranchData::getBranch` is defined but never used
- `FuncBranchData::getDirectCallBranch` is defined but never used
Commit: bb86440c60a5c0e993c8dcdfded75d15881be294
https://github.com/llvm/llvm-project/commit/bb86440c60a5c0e993c8dcdfded75d15881be294
Author: Tom <41913303+t-a-james at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/DerivedMethodShadowingBaseMethodCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/derived-method-shadowing-base-method.cpp
Log Message:
-----------
[clang-tidy] Correctly ignore function templates in derived-method-shadowing-base-method (#185741) (#185875)
This commit fixes a false positive in the
derived-method-shadowin-base-method clang-tidy check, as described in
[ticket 185741](https://github.com/llvm/llvm-project/issues/185741)
Fixes #185741
---------
Co-authored-by: Tom James <tom.james at siemens.com>
Co-authored-by: Zeyi Xu <mitchell.xu2 at gmail.com>
Commit: 0d6185e9ebaadf0780110b724d7f2d0bef419dfb
https://github.com/llvm/llvm-project/commit/0d6185e9ebaadf0780110b724d7f2d0bef419dfb
Author: Diana Picus <Diana-Magda.Picus at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
Log Message:
-----------
[AMDGPU] Update test to match comment. NFC (#187273)
The comment says there shouldn't be any free registers, so update the
inline assembly to clobber all non-preserved SGPRs.
Commit: 85ab2a9706b68272d5413f660a4de978752044ee
https://github.com/llvm/llvm-project/commit/85ab2a9706b68272d5413f660a4de978752044ee
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.h
Log Message:
-----------
[AsmPrinter] Add generic support for verifying instruction sizes (#187703)
Many backends rely on TII reporting correct instruction sizes for MIR
level branch relaxation passes. Reporting a too small size can result in
MC fixup failures (or silent miscompiles for unvalidated fixups).
Some time ago I added validation to the PPC asm printer to verify that
the TII instruction size matches the actually emitted size. This was
very helpful to systematically fix all incorrectly reported instruction
sizes.
However, the same problem also exists in lots of other backends, so this
moves the validation into AsmPrinter, controlled by a new
getInstSizeVerifyMode() hook in TII, which is disabled by default.
The intention here is to gradually enable this validation for more
backends (which requires fixing them first).
Commit: 7c6996fc8fff8a24290b52b90ead246c7afdce65
https://github.com/llvm/llvm-project/commit/7c6996fc8fff8a24290b52b90ead246c7afdce65
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[ValueType][NFC] Add widenIntegerElementType method (#187816)
Fixes #187805
Commit: ac795f0b0b3ba4a5cb3c1b9325b92e130814809b
https://github.com/llvm/llvm-project/commit/ac795f0b0b3ba4a5cb3c1b9325b92e130814809b
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
Log Message:
-----------
[clang][bytecode] Create fewer pointers in __builtin_nan() (#187990)
Check the elements directly for initialization state and keep track of
whether we found a NUL byte.
Commit: d6373b4ceb0541f387b903d245a178df8bda9ef8
https://github.com/llvm/llvm-project/commit/d6373b4ceb0541f387b903d245a178df8bda9ef8
Author: Matthias Springer <me at m-sp.org>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
M mlir/test/Dialect/LLVMIR/roundtrip.mlir
M mlir/test/Target/LLVMIR/Import/intrinsic.ll
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
Log Message:
-----------
[mlir][LLVM] Add more `llvm.intr.experimental.constrained.*` ops (#187948)
Add additional "constrained" intrinsic ops. A rounding mode can be
specified for these ops.
Assisted by: claude-4.6-opus-high
Commit: 1a9fe1769a0f9684dc9ecfcb7a2cec2d66077cc3
https://github.com/llvm/llvm-project/commit/1a9fe1769a0f9684dc9ecfcb7a2cec2d66077cc3
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/remquo_decl.inc
A libclc/clc/include/clc/shared/binary_with_out_arg_scalarize.inc
M libclc/clc/lib/generic/math/clc_remquo.cl
M libclc/clc/lib/generic/math/clc_remquo.inc
A libclc/clc/lib/generic/math/clc_remquo_stret.inc
Log Message:
-----------
libclc: Update remquo (#187998)
This was failing in the float case without -cl-denorms-are-zero
and failing for double. This now passes in all cases.
This was originally ported from rocm device libs in
8db45e4cf170cc6044a0afe7a0ed8876dcd9a863. This is mostly a port
in of more recent changes with a few changes.
- Templatification, which almost but doesn't quite enable
vectorization yet due to the outer branch and loop.
- Merging of the 3 types into one shared code path, instead of
duplicating per type with 3 different functions implemented together.
There are only some slight differences for the half case, which mostly
evaluates as float.
- Splitting out of the is_odd tracking, instead of deriving it from the
accumulated quotient. This costs an extra register, but saves several
instructions. This also enables automatic elimination of all of the quo
output handling when this code is reused for remainder. I'm guessing
this would be unnecessary if SimplifyDemandedBits handled phis.
- Removal of the slow FMA path. I don't see how this would ever be
faster with the number of instructions replacing it. This is really a
problem for the compiler to solve anyway.
Commit: befad798a91ef8c74f605bdb15c352528f8d9807
https://github.com/llvm/llvm-project/commit/befad798a91ef8c74f605bdb15c352528f8d9807
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_remainder.cl
A libclc/clc/lib/generic/math/clc_remainder.inc
Log Message:
-----------
libclc: Implement remainder with remquo
(#187999)
This fixes conformance failures for double and
without -cl-denorms-are-zero. Optimizations are
able to eliminate the unusued quo handling without
duplicating most of the code.
Commit: 2ab8924c5377d113bf6dc55d6e55c0490be94a18
https://github.com/llvm/llvm-project/commit/2ab8924c5377d113bf6dc55d6e55c0490be94a18
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/deque
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/forward_list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/functional
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/queue
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/set
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stack
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/string
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/tuple
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_set
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/utility
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/vector
M clang-tools-extra/test/clang-tidy/checkers/bugprone/dangling-handle.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/infinite-loop.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-bounds-pointer-arithmetic.cpp
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/trailing-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/google/build-explicit-make-pair.cpp
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-structured-binding/fake_std_pair_tuple.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-emplace.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-structured-binding.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-transparent-functors.cpp
M clang-tools-extra/test/clang-tidy/checkers/portability/std-allocator-const.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-contains.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/isolate-declaration-cxx17.cpp
Log Message:
-----------
[clang-tidy][NFC] Use universal containers mock (#186669)
Changes are quite big but most of them is just copypasting and creating
mocks.
Commit: 9426fc19afb106ff964a43ab7f3c7a0be940111c
https://github.com/llvm/llvm-project/commit/9426fc19afb106ff964a43ab7f3c7a0be940111c
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/test/CodeGen/arm64-microsoft-sys.c
M clang/test/Sema/builtins-microsoft-arm64.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/aarch64-sys-intrinsic.ll
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-misc-instructions.s
Log Message:
-----------
[AArch64] Fix _sys implemantation and MRS/MSR Sema checks (#187290)
This patch fixes lowering of _sys builtin, which used to lower into
invalid MSR S1... instruction. This was fixed by adding new sys llvm
intrinsic and proper lowering into sys instruction and its aliases.
I also fixed the sema check for _sys, _ReadStatusRegister and
_WriteStatusRegister builtins so they correctly capture invalid
usecases.
Commit: 9fa53a818ba34c8d749a326c8884f394c3c02414
https://github.com/llvm/llvm-project/commit/9fa53a818ba34c8d749a326c8884f394c3c02414
Author: Shanzhi Chen <chenshanzhi at huawei.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
Log Message:
-----------
[AArch64] Combine cases with the same code in `expandMOVImm` (NFC) (#187843)
Combine cases for `ORRWri`, `ORRXri`, `ANDXri` and `EORXri` in
`AArch64ExpandPseudoImpl::expandMOVImm`, because these cases are handled
with exactly the same code.
Commit: 94b222bec71a46c3f3aa11169f0a7638779d1fe1
https://github.com/llvm/llvm-project/commit/94b222bec71a46c3f3aa11169f0a7638779d1fe1
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
Log Message:
-----------
[GlobalISel] Add `widenScalarFor()` function (#187731)
The function is mentioned in `Legalizer.rst` but has been missing. This
also fixes the asymetry between `narrowScalarXXX()` that has both
`narrowScalarFor()` and `narrowScalarIf()`, and `widenScalarXXX()` that
only had `widenScalarIf()`.
Commit: e3c287ffc53eaaf63817be228901af2acc88c516
https://github.com/llvm/llvm-project/commit/e3c287ffc53eaaf63817be228901af2acc88c516
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
A llvm/test/CodeGen/AMDGPU/insert-skips-gfx1250.mir
M llvm/test/CodeGen/AMDGPU/vgpr-set-msb-coissue.mir
Log Message:
-----------
[AMDGPU] Handle S_WAIT_XCNT in SIInstrInfo::isWaitcnt (#187726)
This affects the behavior of SIPreEmitPeephole and
AMDGPULowerVGPREncoding.
Commit: 00f8ed1eb5152817d62e254d5f5205a15388e0a6
https://github.com/llvm/llvm-project/commit/00f8ed1eb5152817d62e254d5f5205a15388e0a6
Author: Gergo Stomfai <stomfaig at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-div.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-identity.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-lshr.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-mul.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-or.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-ptr-add.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-rem.mir
A llvm/test/CodeGen/X86/GlobalISel/prelegalizer-combiner-sub.mir
Log Message:
-----------
[X86][Gisel] add trivial arith tests for gisel x86-prelegalizer-combiner (#183544)
Commit: 249b08654549abcafc39119fffe567cd5f4c6b39
https://github.com/llvm/llvm-project/commit/249b08654549abcafc39119fffe567cd5f4c6b39
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-replicate-extends.ll
Log Message:
-----------
[LV] Fix crash when extends are not widened in partial reduction matching (#187782)
Fixes https://github.com/llvm/llvm-project/pull/185821#issuecomment-4098933551
Commit: dcaab6dd99a33edbf98ad1ade0ea0d196b797910
https://github.com/llvm/llvm-project/commit/dcaab6dd99a33edbf98ad1ade0ea0d196b797910
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/test/AST/ByteCode/constexpr-steps.cpp
Log Message:
-----------
[clang][bytecode] Add source info to jump ops (#188003)
The attached test case otherwise results in a function with one jump op
but no source info at all.
Commit: f1d4dda8045fd3361bc34d0779567381ab72fea4
https://github.com/llvm/llvm-project/commit/f1d4dda8045fd3361bc34d0779567381ab72fea4
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
Log Message:
-----------
[AMDGPU] Use s_cvt_i32/u32_f32 instructions for saturated uniform conversions (#187711)
We attempt to select `s_cvt_i32/u32_f32` where possible, with some
considerations:
* For `f64` default to `v_` instructions as there is no support for
`f64` in SALU.
* For `f16` to `i16` select `v_cvt_i16/u16_f16` which is consistent with
non-saturating conversions behavior. However we could emit
`s_cvt_f32_f16` followed by `s_cvt_i32/u32_f32` to keep the computation
in SALU, as SALU does not have `s_cvt_i16_f16`. Happy to look into it if
beneficial.
* When it comes to clamping, ISel turns min and max sequence into
`v_med3` with `v0` destination, whereas globalisel keeps min and max as
`s_min` and `s_max` and then moves the result into `v0`, as lit tests
expect the return value to be in `v0` in both cases. This is unrelated
to this change but I thought it is worth highlighting.
Commit: 733bc3409be7e6f97719d3eb5c150b239e99c22f
https://github.com/llvm/llvm-project/commit/733bc3409be7e6f97719d3eb5c150b239e99c22f
Author: Ádám Kallai <kadam at inf.u-szeged.hu>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/lib/Profile/DataAggregator.cpp
Log Message:
-----------
[BOLT][Perf2bolt] Add support to generate pre-parsed perf data (#171144)
Adding a generator into Perf2bolt is the initial step to support the
large end-to-end tests for Arm SPE. This functionality proves unified format of
pre-parsed profile that Perf2bolt is able to consume.
Why does the test need to have a textual format SPE profile?
* To collect an Arm SPE profile by Linux Perf, it needs to have
an arm developer device which has SPE support.
* To decode SPE data, it also needs to have the proper version of
Linux Perf.
* The minimum required version of Linux Perf is v6.15.
Bypassing these technical difficulties, that easier to prove
a pre-generated textual profile format.
The generator relies on the aggregator work to spawn the required
perf-script jobs based on the the aggregation type, and merges the
results of the pref-script jobs into a single file.
This hybrid profile will contain all required events such as BuildID,
MMAP, TASK, BRSTACK, or MEM event for the aggregation.
Two examples below how to generate a pre-parsed perf data as
an input for ARM SPE aggregation:
`perf2bolt -p perf.data BINARY -o perf.text --spe
--generate-perf-script`
Or for basic aggregation:
`perf2bolt -p perf.data BINARY -o perf.text --ba --generate-perf-script`
Commit: bd6e8a8c66f73d35fb9ead04767b81938c05eaf4
https://github.com/llvm/llvm-project/commit/bd6e8a8c66f73d35fb9ead04767b81938c05eaf4
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M polly/lib/External/isl/GIT_HEAD_ID
M polly/lib/External/isl/isl_map.c
M polly/lib/External/isl/isl_tab.c
M polly/lib/External/isl/isl_tab_pip.c
Log Message:
-----------
[Polly] Update isl to isl-0.27-89-gdc16f8e3 (#188013)
Update isl to include
https://repo.or.cz/isl.git/commit/ee3677039011f2f87f3630f8b2a004f9e4944a08
which fixes #187216
Closes #187216
Thanks @skimo-openhub for the fix and @thapgua for the bugreport.
Commit: 621fc8774ea5dca4712e09340f8d9b2ed4b99d8a
https://github.com/llvm/llvm-project/commit/621fc8774ea5dca4712e09340f8d9b2ed4b99d8a
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/test/CodeGen/AMDGPU/cf-loop-on-constant.ll
M llvm/test/CodeGen/AMDGPU/copy-to-reg.ll
M llvm/test/CodeGen/AMDGPU/ds-negative-offset-addressing-mode-loop.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/idiv-licm.ll
A llvm/test/CodeGen/AMDGPU/lsr-cost-model-vector-iv.ll
M llvm/test/CodeGen/AMDGPU/machine-sink-loop-var-out-of-divergent-loop-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
M llvm/test/CodeGen/AMDGPU/memset-pattern.ll
M llvm/test/CodeGen/AMDGPU/uniform-cfg.ll
M llvm/test/CodeGen/AMDGPU/valu-i1.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-loop-ds-prefetch-pattern.ll
M llvm/test/Transforms/LoopStrengthReduce/AMDGPU/atomics.ll
M llvm/test/Transforms/LoopStrengthReduce/AMDGPU/different-addrspace-addressing-mode-loops.ll
M llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-invalid-ptr-extend.ll
M llvm/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll
Log Message:
-----------
[AMDGPU] Implement LSR cost model for GFX9+ (#184138)
AMDGPU previously had no target-specific LSR cost model, so the generic
heuristic would often introduce extra induction variables and base-add
chains that hurt VALU throughput on GFX9+ (observed on gfx942).
Implement a custom cost model:
- isLSRCostLess(): prioritize per-iteration instruction count over setup
costs, penalize IV multiplies, and demote register count. Pre-GFX9 falls
back to the default comparator.
- getScalingFactorCost(): report that base+scale*index addressing
requires an extra ADD instruction.
- isNumRegsMajorCostOfLSR(): return false.
- shouldDropLSRSolutionIfLessProfitable(): return true.
Assisted-by: Claude Opus
Commit: 69fb96ba659fba8a720bcfa2b102182367fc63c6
https://github.com/llvm/llvm-project/commit/69fb96ba659fba8a720bcfa2b102182367fc63c6
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
R clang/test/AST/ByteCode/builtin-align-cxx.cpp
M clang/test/SemaCXX/builtin-align-cxx.cpp
Log Message:
-----------
[clang][bytecode] __builtin_is_aligned needs a declaration (#188011)
Reject pointers to expressions.
Also remove the bytecode version of this test.
Commit: 6491750a871c660832ef219177b80dd1e559837d
https://github.com/llvm/llvm-project/commit/6491750a871c660832ef219177b80dd1e559837d
Author: David Truby <david.truby at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang-rt/lib/runtime/file.cpp
M flang-rt/unittests/Runtime/ExternalIOTest.cpp
Log Message:
-----------
[flang-rt] Fix file opening in APPEND mode on Windows (#186144)
Commit: 2e2600cb765eabe899837d3c446f5f7ed2a12a49
https://github.com/llvm/llvm-project/commit/2e2600cb765eabe899837d3c446f5f7ed2a12a49
Author: hev <wangrui at loongson.cn>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/LoongArch/lasx/intrinsic-pickve2gr.ll
M llvm/test/CodeGen/LoongArch/lsx/intrinsic-pickve2gr.ll
Log Message:
-----------
[LoongArch] Add tests for VPICK_ZEXT_ELT zero-extension known bits (#187176)
Commit: 3330ca954e466a09ce20e7aa1dcb71909eba6081
https://github.com/llvm/llvm-project/commit/3330ca954e466a09ce20e7aa1dcb71909eba6081
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm-interface.mlir
M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir
M mlir/test/Dialect/Vector/invalid.mlir
Log Message:
-----------
[MLIR][Vector] Remove implicit bitcast behavior from vector.extract (#186383)
Drop the `isCompatibleReturnTypes` override on `ExtractOp` that allowed
`vector.extract` to return a `vector<1xT>` when the natural inferred
return type is scalar `T` (and vice versa). Switch the op from
`InferTypeOpAdaptorWithIsCompatible` to `InferTypeOpAdaptor` to match.
RFC:
https://discourse.llvm.org/t/rfc-remove-implicit-bitcast-behavior-of-vector-extract/90178
Commit: 3011d68a7810ff25653c33ff0389fae9413a26a7
https://github.com/llvm/llvm-project/commit/3011d68a7810ff25653c33ff0389fae9413a26a7
Author: hev <wangrui at loongson.cn>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A llvm/test/CodeGen/LoongArch/lsx/remat.ll
Log Message:
-----------
[LoongArch] Add tests for VREPLGR2VR/XVREPLGR2VR rematerialization (#187430)
Commit: b3927c06b5648efbb927357207d04500e00e35a2
https://github.com/llvm/llvm-project/commit/b3927c06b5648efbb927357207d04500e00e35a2
Author: Fady Farag <com.webkit.iidmsa at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/test/AST/ast-crash-doc-function-template.cpp
Log Message:
-----------
[clang][test] Add missing FileCheck pipe in ast-crash-doc-function-template.cpp (#187969)
The test had a CHECK directive that was never executed because the RUN
line did not pipe output to FileCheck.
Commit: 986daded95eb8c15a1a5d0db8be67e99bd5aece3
https://github.com/llvm/llvm-project/commit/986daded95eb8c15a1a5d0db8be67e99bd5aece3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx-vperm2x128.ll
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-7.ll
M llvm/test/CodeGen/X86/vector-pack-512.ll
M llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining.ll
M llvm/test/CodeGen/X86/vector-shuffle-v192.ll
Log Message:
-----------
[X86] combineX86ShufflesRecursively - decode insert_subvector(undef, x, c) as shuffle if c != 0 (#188021)
Allows us to combine non-free subvector widening patterns into the
shuffle chain - combineX86ShufflesRecursively already peeks through free
cases where c == 0
Removes some unnecessary shuffles reported on #187447 for v2i256 cases
Commit: bb3f2bc86ca2dcd0c8688edd989055e0025c3554
https://github.com/llvm/llvm-project/commit/bb3f2bc86ca2dcd0c8688edd989055e0025c3554
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Utils/Utils.cpp
M mlir/test/Dialect/Affine/pipeline-data-transfer.mlir
Log Message:
-----------
[MLIR][Affine] Fix crash in replaceAllMemRefUsesWith when replacement fails (#186282)
When the multi-user overload of `replaceAllMemRefUsesWith` iterates over
collected ops and calls the single-op overload, the single-op version
can legitimately fail (e.g., when the op uses the same memref in
multiple incompatible roles, such as both source and tag in
`affine.dma_start`). The code previously called `llvm_unreachable` in
this case, causing a crash.
Fix by propagating the failure via `return failure()` instead.
Fixes #60021
Assisted-by: Claude Code
Commit: b16f6da50b3b730abf8eb68ba68ba0cf71d29c34
https://github.com/llvm/llvm-project/commit/b16f6da50b3b730abf8eb68ba68ba0cf71d29c34
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
M mlir/test/Dialect/Affine/memref-dependence-check.mlir
Log Message:
-----------
[mlir][affine] Fix crash in addAffineParallelOpDomain with min/max bounds (#184130)
`addAffineParallelOpDomain` checked `isConstant()` on the per-IV bound
maps of `affine.parallel`, then called `getSingleConstantResult()`.
However, `isConstant()` returns true for maps with *any* number of
constant results, while `getSingleConstantResult()` asserts exactly one.
When an `affine.parallel` has a multi-result bound (e.g., `to (min(128,
122))`), the per-IV upper bound map has two results `{128, 122}`, so
`isConstant()` is true but the subsequent `getSingleConstantResult()`
call aborts.
Fix by using `isSingleConstant()` (which requires exactly one result)
instead. Multi-result constant maps (min/max with all-constant
alternatives) are then handled by the general `addBound` path, which
correctly models the min/max semantics as multiple constraints.
Fixes #61734
Assisted-by: Claude Code
Commit: fdd00d2555a7d9a7c4d6c5c52e90bc5c157bd01f
https://github.com/llvm/llvm-project/commit/fdd00d2555a7d9a7c4d6c5c52e90bc5c157bd01f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
M clang/test/SemaTemplate/stack-exhaustion.cpp
M clang/utils/TableGen/ClangOpcodesEmitter.cpp
Log Message:
-----------
[clang][bytecode] Use tailcalls via `[[clang::musttail]]` (#173756)
This PR attempts to use a tailcall design for the bytecode interpreter
instead of the giant-switch design, similar to [what Python has been
doing](https://blog.reverberate.org/2025/02/10/tail-call-updates.html).
Using the two benchmarks from
https://developers.redhat.com/articles/2025/10/15/clang-bytecode-interpreter-update,
I get these numbers:
```
-- Sqlite
BASELINE:
Benchmark 1: bin/clang++ -c -std=c++26 sqlite.cpp -fconstexpr-steps=1000000000
Time (mean ± σ): 18.197 s ± 0.370 s [User: 17.926 s, System: 0.269 s]
Range (min … max): 17.657 s … 19.215 s 30 runs
BEFORE:
Benchmark 1: bin/clang++ -c -std=c++26 sqlite.cpp -fconstexpr-steps=1000000000 -fexperimental-new-constant-interpreter
Time (mean ± σ): 8.156 s ± 0.148 s [User: 7.881 s, System: 0.273 s]
Range (min … max): 7.909 s … 8.491 s 30 runs
AFTER:
Benchmark 1: bin/clang++ -c -std=c++26 sqlite.cpp -fconstexpr-steps=1000000000 -fexperimental-new-constant-interpreter
Time (mean ± σ): 7.492 s ± 0.171 s [User: 7.214 s, System: 0.277 s]
Range (min … max): 7.213 s … 7.876 s 30 runs
-- Heap allocation:
BASELINE:
Benchmark 1: bin/clang++ -c -std=c++26 test.cpp -fconstexpr-steps=1000000000
Time (mean ± σ): 28.650 s ± 0.475 s [User: 28.627 s, System: 0.021 s]
Range (min … max): 27.767 s … 29.554 s 30 runs
BEFORE:
Benchmark 1: bin/clang++ -c -std=c++26 test.cpp -fconstexpr-steps=1000000000 -fexperimental-new-constant-interpreter
Time (mean ± σ): 4.543 s ± 0.194 s [User: 4.527 s, System: 0.016 s]
Range (min … max): 4.340 s … 5.143 s 30 runs
AFTER:
Benchmark 1: bin/clang++ -c -std=c++26 test.cpp -fconstexpr-steps=1000000000 -fexperimental-new-constant-interpreter
Time (mean ± σ): 4.055 s ± 0.140 s [User: 4.039 s, System: 0.015 s]
Range (min … max): 3.827 s … 4.430 s 30 runs
```
However, the numbers on the compile-time tracker are slightly worse:
https://llvm-compile-time-tracker.com/compare.php?from=699354a4146e2ebc7e7c7aa84d14c396a4300508&to=0b9191c493c35d33721c9aad7ab341fe2a731f3f&stat=instructions:u
Commit: 71b53ad78cb7ca3f67c6e04cf2de62748d1bb03f
https://github.com/llvm/llvm-project/commit/71b53ad78cb7ca3f67c6e04cf2de62748d1bb03f
Author: Jacques Pienaar <jacques+gh at japienaar.info>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/AttrTypeBase.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
Log Message:
-----------
IntegerAttr accessor changed to returning APInt by reference. (#187351)
IntegerAttr accessor getValue() returned an APInt by value. This works
well for the case where APInt is small, but leads to unnecessary copies
for larger bitwidths. This change switches this to returnsa const APInt&
instead.
Commit: 691c6532139deba0f95f7229b0f1064e81e6409a
https://github.com/llvm/llvm-project/commit/691c6532139deba0f95f7229b0f1064e81e6409a
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/TableGen/Interfaces.cpp
A mlir/test/mlir-tblgen/interface-method-arg-error.td
Log Message:
-----------
[mlir][tblgen] Emit diagnostic instead of crashing for invalid interface method arg type (#186430)
When an interface method argument uses a non-string type (e.g., a
TableGen class reference like `Foo` instead of a string literal
`"Foo"`), the code in `InterfaceMethod::InterfaceMethod` would crash
with an assertion failure in `cast<StringInit>`. Replace the unchecked
cast with a `dyn_cast` and emit a `PrintFatalError` with a descriptive
error message pointing to the source location and identifying which
argument has the wrong type.
Before this fix:
mlir-tblgen: Assertion `isa<To>(Val) && "cast<Ty>() argument of
incompatible type\!"' failed.
After this fix:
error: expected string type for interface method argument #0 ('arg') ...
Fixes #61869
Assisted-by: Claude Code
Commit: d7128d8edcb3a3f7cf67a606a418042f6fba1c9f
https://github.com/llvm/llvm-project/commit/d7128d8edcb3a3f7cf67a606a418042f6fba1c9f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
M mlir/test/IR/invalid-custom-print-parse.mlir
Log Message:
-----------
[MLIR] Fix crash when parsing typed attribute via parseOptionalAttribute (#186192)
When calling `parseOptionalAttribute(result, type)` with a typed result
(e.g. `FloatAttr`), the call resolved to the generic
`parseOptionalAttribute(Attribute&, Type)` overload via implicit
conversion. This overload accepted any attribute, including ones that
don't match the expected concrete type. The caller would then invoke
type-specific methods (e.g. `FloatAttr::getValue()`) on storage that
belongs to a different attribute kind (e.g. `IntegerAttr`), causing a
type-confusion crash.
The fix adds a non-virtual template overload of `parseOptionalAttribute`
in `AsmParser` that intercepts calls for concrete attribute types not
covered by the dedicated virtual overloads (`Attribute`, `ArrayAttr`,
`StringAttr`, `SymbolRefAttr`). It parses the attribute generically and
then validates the result type via `dyn_cast`, emitting an error if the
parsed attribute is of the wrong kind.
Fixes #108135
Assisted-by: Claude Code
Commit: 364f8d42398382315d7be61eacd0b13a857d078d
https://github.com/llvm/llvm-project/commit/364f8d42398382315d7be61eacd0b13a857d078d
Author: Abdullah Sarkar <fa2818 at nyu.edu>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/X86/known-never-zero.ll
Log Message:
-----------
[DAG] isKnownNeverZero - add ISD::VECTOR_SHUFFLE handling (#187855)
Fixes #183351
Commit: 0f9562d587397fe8bd8b2765c4dfc21d79beb686
https://github.com/llvm/llvm-project/commit/0f9562d587397fe8bd8b2765c4dfc21d79beb686
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/test/lib/Dialect/Bufferization/TestOneShotModuleBufferize.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for modernize-use-equals-default in TestOneShotModuleBufferize.cpp (NFC)
Commit: fe383fa6cf9c4cf1dffb77f2c597d50e4f78fc69
https://github.com/llvm/llvm-project/commit/fe383fa6cf9c4cf1dffb77f2c597d50e4f78fc69
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in TileUsingInterface.cpp (NFC)
Commit: dd6f3534afe1f9ec5a8533a77cb02e0e2f38a778
https://github.com/llvm/llvm-project/commit/dd6f3534afe1f9ec5a8533a77cb02e0e2f38a778
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Transforms/RemoveDeadValues.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-else-after-return in RemoveDeadValues.cpp (NFC)
Commit: 9aaba7c24aa59c7c33d939948bfcb527ef09e597
https://github.com/llvm/llvm-project/commit/9aaba7c24aa59c7c33d939948bfcb527ef09e597
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Index/IR/IndexOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in IndexOps.cpp (NFC)
Commit: 16e0cc8308379857ecd69e6fe1aaf71e15b94910
https://github.com/llvm/llvm-project/commit/16e0cc8308379857ecd69e6fe1aaf71e15b94910
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
Log Message:
-----------
[SLP]Fix codegen of compares with consts, being trunced
If the const values have more active bits, than requested by the another
operand of the compare, such constants should not be trunced to avoid
miscompilation
Commit: 95951fca847a8b988b2a433e8f8fd421d6e97d16
https://github.com/llvm/llvm-project/commit/95951fca847a8b988b2a433e8f8fd421d6e97d16
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libc/src/math/docs/add_math_function.md
Log Message:
-----------
[libc] Add missing shared_math docs in `add_math_function.md` (#188026)
This PR intends to add/update the following things:
- Add missing doc for CMake for shared_math
- Add missing testing command for shared_math_test
- Nits (e.g., grammar, spaces, missing colons, etc.)
Commit: bcdb7d3c8f3fb554938185d1f286941651864664
https://github.com/llvm/llvm-project/commit/bcdb7d3c8f3fb554938185d1f286941651864664
Author: David Green <david.green at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/ARM/vld2.ll
Log Message:
-----------
[ARM] Regenerate vld2.ll test. NFC
Commit: 85f529dda149d2d4b1f2c4980dc1c4de7849bd03
https://github.com/llvm/llvm-project/commit/85f529dda149d2d4b1f2c4980dc1c4de7849bd03
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
Log Message:
-----------
Revert "[SLP]Fix codegen of compares with consts, being trunced"
This reverts commit 16e0cc8308379857ecd69e6fe1aaf71e15b94910 to add
a new test case for the miscompile
Commit: 5563b8279e0f3926eaaddb05396895bb9b529b4b
https://github.com/llvm/llvm-project/commit/5563b8279e0f3926eaaddb05396895bb9b529b4b
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
Log Message:
-----------
AMDGPU: Add more tests for v_dot2_f32_f16/bf16 (#179223)
Test for src modifiers, inline constants and vopd codegen.
Commit: 073de3f7e367caca4150cb20495fe14ed26b386c
https://github.com/llvm/llvm-project/commit/073de3f7e367caca4150cb20495fe14ed26b386c
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
Log Message:
-----------
[PowerPC] Fix typo in getInstSizeVerifyMode() hook
The logic here was inverted from what it was intended to be (which
shows up when forcing tests to emit object files).
Commit: c4b01ec20d3e845d348b0b005102b1301a8550ca
https://github.com/llvm/llvm-project/commit/c4b01ec20d3e845d348b0b005102b1301a8550ca
Author: hev <wangrui at loongson.cn>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/test/CodeGen/LoongArch/lasx/intrinsic-pickve2gr.ll
M llvm/test/CodeGen/LoongArch/lsx/intrinsic-pickve2gr.ll
Log Message:
-----------
[LoongArch] Mark VPICK_ZEXT_ELT as zero-extending in computeKnownBits (#187177)
Teach computeKnownBitsForTargetNode that VPICK_ZEXT_ELT produces a
zero-extended result.
VPICK_ZEXT_ELT extracts a narrower element (e.g. i16) and returns it in
a larger integer type (e.g. i64) with the upper bits guaranteed to be
zero. However, without KnownBits information, LLVM treats the upper bits
as unknown, which inhibits optimizations.
By marking all bits above the source element width as known zero, this
enables DAG combine and other optimizations to eliminate redundant
operations such as AND masks and SIGN_EXTEND_INREG.
For example, this allows patterns like:
(sign_extend_inreg (VPICK_ZEXT_ELT ...), i32)
to be simplified when the sign bit is known to be zero.
Commit: 5f5ad9588645d3a686c220403f288a77380b2bf5
https://github.com/llvm/llvm-project/commit/5f5ad9588645d3a686c220403f288a77380b2bf5
Author: hev <wangrui at loongson.cn>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/test/CodeGen/LoongArch/lsx/remat.ll
Log Message:
-----------
[LoongArch] Mark VREPLGR2VR/XVREPLGR2VR as rematerializable to reduce register pressure (#187431)
The VREPLGR2VR and XVREPLGR2VR instruction families replicate a scalar
general-purpose register value into all elements of a vector register.
These instructions are side-effect free and relatively cheap, with their
result depending only on the input register.
Mark them as isReMaterializable to allow the register allocator to
recompute the value when profitable instead of spilling and reloading it
from memory.
This can help reduce register pressure and avoid unnecessary memory
traffic in vectorized code.
Commit: 8c200875d72fdce54bda82b6f39469d5f59c1701
https://github.com/llvm/llvm-project/commit/8c200875d72fdce54bda82b6f39469d5f59c1701
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
Log Message:
-----------
[MLIR] Move SFINAE from return type to template argument in OpImplementation.h (NFC) (#188039)
Migrate all template methods that used `std::enable_if_t<cond,
ReturnType>` return-type SFINAE to the `typename =
std::enable_if_t<cond>` default template parameter style. This makes the
actual return type visible at a glance and the constraint readable as
part of the template signature.
Complementary overload pairs that require the `* = nullptr` non-type
parameter trick to remain structurally distinct
(parseCustomAttributeWithFallback, parseCustomTypeWithFallback) are left
unchanged.
Addressing post-merge comment on #186192
Assisted-by: Claude Code
Commit: 61b3b20fd96ea06a32738915771543e0dd49a687
https://github.com/llvm/llvm-project/commit/61b3b20fd96ea06a32738915771543e0dd49a687
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
[AsmPrinter] Fix some issues with instruction size verification
If the instruction is part of a bundle, then emitInstruction() will
emit the entire bundle. As such, we should be summing up the sizes
of all instructions in the bundle.
Additionally, do not run the verification if an error has already
occurred. In that case, there may be a size mismatch as a result
of the error.
These came up when trying to enable the verification on additional
targets.
Commit: df00c1c00be26bff7d548b6baa5655c5254b601e
https://github.com/llvm/llvm-project/commit/df00c1c00be26bff7d548b6baa5655c5254b601e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/icmp-wrong-bitwidth.ll
Log Message:
-----------
[SLP][NFC]Add a test with the icmp miscompilation, NFC
Commit: af9bc2ab1ecc75e96cc086db18918e95e24b6df5
https://github.com/llvm/llvm-project/commit/af9bc2ab1ecc75e96cc086db18918e95e24b6df5
Author: Xinlong Chen <49522466+Xinlong-Chen at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/mergeable-string-pool-large.ll
M llvm/test/CodeGen/PowerPC/mergeable-string-pool.ll
M llvm/test/CodeGen/PowerPC/pr59074.ll
Log Message:
-----------
[PowerPC] Skip tryBitfieldInsert when an operand is a constant (#187663)
When either operand of an OR node is a constant, bail out of
`tryBitfieldInsert` and let `ORI`/`ORIS`/`ADDI`/`ADDIS` tablegen
patterns handle it.
These patterns produce a single instruction without the tied-register
constraint that RLWIMI requires, avoiding unnecessary LI + RLWIMI
sequences.
Prep work to help with regressions identified on
https://github.com/llvm/llvm-project/pull/186461
Commit: 4a06f38c6b925eb587ac0b6ab51d9e3c5844d33c
https://github.com/llvm/llvm-project/commit/4a06f38c6b925eb587ac0b6ab51d9e3c5844d33c
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/invalid.mlir
Log Message:
-----------
[mlir][linalg] Fix crash in linalg.reduce verifier when inputs \!= inits count (#186278)
Add an early check in `ReduceOp::verify()` that compares the operand
count from the ODS accessor with `getNumDpsInputs()`. A mismatch means
the `SameVariadicOperandSize` invariant is violated and the verifier
emits a clear diagnostic instead of crashing.
Fixes #93973
Assisted-by: Claude Code
Commit: 40f0b312e3b7ab48fbd91360d892cc28e4baba6b
https://github.com/llvm/llvm-project/commit/40f0b312e3b7ab48fbd91360d892cc28e4baba6b
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode] Disable tail calls on MSVC and PPC (#188033)
Disable tail calls on MSVC and PPC.
Commit: 20fe74ebe19c844079f7093eeb945994274737a1
https://github.com/llvm/llvm-project/commit/20fe74ebe19c844079f7093eeb945994274737a1
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/X86/X86.td
M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
M mlir/lib/Dialect/X86/IR/X86Dialect.cpp
M mlir/lib/Dialect/X86/Transforms/ShuffleVectorFMAOps.cpp
M mlir/lib/Dialect/X86/Transforms/VectorContractBF16ToFMA.cpp
M mlir/lib/Dialect/X86/Transforms/VectorContractToPackedTypeDotProduct.cpp
Log Message:
-----------
[mlir][x86] Hardware extension namespaces (#184392)
Adds hardware extension C++ namespaces to X86 dialect op definitions to
match their IR mnemonic extensions.
All X86 dialect ops are updated to follow the scheme first introduced
with AMX ops i.e., 'x86::{ext}::{op_name}'.
Nested namespaces improve source code readability by explicitly
indicating which hardware extension each operation requires, and it
aligns naming scheme between code and IR.
Commit: 256a4e03b7f4fb2b3a6865ff75385305e4cc8e73
https://github.com/llvm/llvm-project/commit/256a4e03b7f4fb2b3a6865ff75385305e4cc8e73
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.swap.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane32.swap.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Add RegBankLegalize rules for permlane16_swap/permlane32_swap (#187810)
Add register bank legalize rules for the amdgcn_permlane16_swap and
amdgcn_permlane32_swap intrinsics. Both results and both source register
operands map to VGPR since these are VALU lane swap operations.
Enable -new-reg-bank-select in the permlane16.swap and permlane32.swap
tests.
Commit: dfb2c773d22e2eb116cc71c6f14eec5dba7fd154
https://github.com/llvm/llvm-project/commit/dfb2c773d22e2eb116cc71c6f14eec5dba7fd154
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Shard/Transforms/ShardingPropagation.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in ShardingPropagation.cpp (NFC)
Commit: a6caf52908bf499fd7fc3ae96dcd3ef8c41d5ce1
https://github.com/llvm/llvm-project/commit/a6caf52908bf499fd7fc3ae96dcd3ef8c41d5ce1
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
Log Message:
-----------
[NFC][analyzer] Clean up and document `ExplodedNodeSet` (#187742)
`ExplodedNodeSet` is a simple and useful utility type in the analyzer,
but its insertion methods were a bit confusing, so this commit clarifies
them (and adds doc-comments for this class).
Previously this class had `void Add(ExplodedNode*)` for inserting single
nodes and `void insert(const ExplodedNodeSet &)` for inserting all nodes
from another set; but `ExplodedNode*` is implicitly convertible to
`ExplodedNodeSet`, so it was also possible to insert single nodes with
`insert`. There was also a subtle difference between `Set.Add(Node)` and
`Set.insert(Node)`: `Add` accepted and ignored nullpointers and sink
nodes (which is often useful) while the constructor
`ExplodedNodeSet(ExplodedNode*)` enforced the same invariant in a less
helpful way, with an assertion.
This commit eliminates the name `Add` (because `insert` is more
customary for set types), but standardizes its "null or sink nodes are
silently ignored" behavior which is very useful in practice.
After this commit `insert` has two overloads:
`ExplodedNodeSet::insert(ExplodedNode*)` which inserts a single node (or
does nothing if the argument is null or sink) and
`ExplodedNodeSet::insert(const ExplodedNodeSet&)` which inserts all
nodes from the other set.
Note that around half of the calls to `Add` were recently introduced by
my `NodeBuilder` cleanup commit series; I expect to introduce dozens of
calls in the foreseeable future -- this commit can be considered as
preparation for those.
Commit: f4b523d669faf92d096f335b6c9dc832521dba93
https://github.com/llvm/llvm-project/commit/f4b523d669faf92d096f335b6c9dc832521dba93
Author: Kiva <zengtao at iscas.ac.cn>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/PatternMatch.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/unittests/IR/PatternMatch.cpp
Log Message:
-----------
[PatternMatch][NFC] Add `m_IToFP` and `m_FPToI` (#188040)
Added two patterns for IR pattern matching, `m_IToFP` and `m_FPToI`
which are basically shortcuts of `m_CombinedOr(..., ...)`
> if there isn't already one, PatternMatch should have an m_ItoFP which
covers both
_Originally posted by @arsenm in
https://github.com/llvm/llvm-project/pull/185826#discussion_r2967473936_
/cc @arsenm
Commit: 75ac07d3692828ca22b10dce2fc2208d7ea9e840
https://github.com/llvm/llvm-project/commit/75ac07d3692828ca22b10dce2fc2208d7ea9e840
Author: lntue <lntue at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libc/src/__support/math/acosf.h
M libc/src/__support/math/asinf.h
M libc/src/__support/math/inv_trigf_utils.h
Log Message:
-----------
[libc][math] Use Estrin's scheme to improve asinf and acosf performance. (#187885)
Commit: a7efdeb464dd3ccb742a0125621853120c4ca4eb
https://github.com/llvm/llvm-project/commit/a7efdeb464dd3ccb742a0125621853120c4ca4eb
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/include/flang/Parser/openmp-utils.h
M flang/include/flang/Parser/tools.h
M flang/lib/Parser/openmp-utils.cpp
M flang/lib/Parser/tools.cpp
M flang/lib/Semantics/canonicalize-do.cpp
M flang/lib/Semantics/resolve-labels.cpp
A flang/test/Semantics/bug2436.f
A flang/test/Semantics/canondo18.f90
Log Message:
-----------
[flang] Accept label DO loop after !$ACC LOOP (#187581)
Extend Semantics/canonicalize-do.cpp to rewrite a label DO loop into a
DO construct in the parse tree even when its terminal statement is an
OpenACC block construct or atomic construct. Some tools were relocated
from Parser/openmp-utils.{h,cpp} to /tools.{h,cpp}.
Commit: bd46a7d172661d4477737a65b107bf40782c7e40
https://github.com/llvm/llvm-project/commit/bd46a7d172661d4477737a65b107bf40782c7e40
Author: Carlo Cabrera <github at carlo.cab>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M .github/workflows/bazel-checks.yml
M .github/workflows/build-ci-container-tooling.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
M .github/workflows/build-libc-container.yml
M .github/workflows/build-metrics-container.yml
M .github/workflows/check-ci.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.yml
M .github/workflows/docs.yml
M .github/workflows/email-check.yaml
M .github/workflows/gha-codeql.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/ids-check.yml
M .github/workflows/issue-subscriber.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-build-containers.yml
M .github/workflows/libcxx-check-generated-files.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/lldb-pylint-action.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/merged-prs.yml
M .github/workflows/mlir-spirv-tests.yml
M .github/workflows/new-prs.yml
M .github/workflows/pr-code-format.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/pr-subscriber.yml
M .github/workflows/premerge.yaml
M .github/workflows/prune-branches.yml
M .github/workflows/release-asset-audit.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/spirv-tests.yml
M .github/workflows/sycl-tests.yml
M .github/workflows/test-unprivileged-download-artifact.yml
M .github/workflows/version-check.yml
Log Message:
-----------
[Workflows] Set `persist-credentials` (#187951)
This is needed for #187905. Unless we disable the check, Zizmor will
flag uses of `actions/checkout` without an explicit
`persist-credentials` setting.
Of course, some workflows could rely on the credentials persisted by
`actions/checkout`. I asked Claude to check each affected job, and it
flagged only `prune-branches.yml`. The script `prune-unused-branches.py`
relies on the persisted credentials, so I've left that as
`persist-credentials: true` for now.
Commit: a90f583e7a11703aab50bdc5ece8717e089c69da
https://github.com/llvm/llvm-project/commit/a90f583e7a11703aab50bdc5ece8717e089c69da
Author: Carlo Cabrera <github at carlo.cab>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A .github/workflows/zizmor.yml
Log Message:
-----------
[Workflows] Add Zizmor check (#187905)
The recent Trivy breach[^1] made me consider re-opening #117787.
Trivy was breached using an impostor commit[^2], which Zizmor can flag.
It's also much more widely used since my last PR.[^3]
The new workflow was taken from the example workflow in their
documentation.[^4]
[^1]: https://github.com/aquasecurity/trivy/discussions/10425
[^2]: https://docs.zizmor.sh/audits/#impostor-commit
[^3]: https://docs.zizmor.sh/trophy-case/
[^4]: https://docs.zizmor.sh/integrations/#via-zizmorcorezizmor-action
Commit: 034054431d6cb280c70f51291aa6ec938a0118a6
https://github.com/llvm/llvm-project/commit/034054431d6cb280c70f51291aa6ec938a0118a6
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
Log Message:
-----------
AMDGPU: Fix src2_modifiers for v_dot2_f32_f16/bf16 (#179224)
Commit: 5b7ad38d6ba835e4d4acef538846931fd64a2028
https://github.com/llvm/llvm-project/commit/5b7ad38d6ba835e4d4acef538846931fd64a2028
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/icmp-wrong-bitwidth.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
Log Message:
-----------
[SLP]Fix codegen of compares with consts, being trunced
If the const values have more active bits, than requested by the another
operand of the compare, such constants should not be trunced to avoid
miscompilation
Commit: a9775221ae31d626ceacdb72a49550ba7e566d67
https://github.com/llvm/llvm-project/commit/a9775221ae31d626ceacdb72a49550ba7e566d67
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/CodeGen/Targets/NVPTX.cpp
A llvm/include/llvm/Support/NVVMAttributes.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
M llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/NVPTX/NVVMProperties.cpp
M llvm/lib/Target/NVPTX/NVVMProperties.h
M mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
Log Message:
-----------
[NVPTX] Canonicalize NVVM attribute strings and refactor property queries (NFC) (#187752)
Commit: 7bda811f5a034263a0128a7cacfb4f2827be2b5e
https://github.com/llvm/llvm-project/commit/7bda811f5a034263a0128a7cacfb4f2827be2b5e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode] Disable tailcalls on aarch64 (#188042)
Apparently it causes problems there, too.
See https://lab.llvm.org/buildbot/#/builders/24/builds/18781
Commit: b16efa69ee5ca67331348e4a41e7304a9d51af42
https://github.com/llvm/llvm-project/commit/b16efa69ee5ca67331348e4a41e7304a9d51af42
Author: Jorn Tuyls <jorn.tuyls at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRCore.h
Log Message:
-----------
[mlir][python] Fix PyObjectRef copy/move assignment for MSVC (#186758)
PyObjectRef has a user-declared move constructor but no explicit
copy/move assignment operators. On at least some version of MSVC,
instantiation of operator= is forced, causing a compile error:
```
In file included from mlir/lib/Bindings/Python/Globals.cpp:9:
In file included from mlir/include/mlir/Bindings/Python/IRCore.h:16:
<MSVC>/include/vector(1461,27): error: object of type 'value_type' (aka 'mlir::python::mlir::PyDiagnostic::DiagnosticInfo') cannot be assigned because its copy assignment operator is implicitly deleted
1461 | *_Mid = *_First;
| ^
<MSVC>/include/vector(1539,9): note: in instantiation of function template specialization 'std::vector<mlir::python::mlir::PyDiagnostic::DiagnosticInfo>::_Assign_counted_range<mlir::python::mlir::PyDiagnostic::DiagnosticInfo *>' requested here
1539 | _Assign_counted_range(_Right_data._Myfirst, static_cast<size_type>(_Right_data._Mylast - _Right_data._Myfirst));
| ^
mlir/include/mlir/Bindings/Python/IRCore.h(1317,33): note: in instantiation of member function 'std::vector<mlir::python::mlir::PyDiagnostic::DiagnosticInfo>::operator=' requested here
1317 | struct MLIR_PYTHON_API_EXPORTED MLIRError {
| ^
mlir/include/mlir/Bindings/Python/IRCore.h(369,16): note: copy assignment operator of 'DiagnosticInfo' is implicitly deleted because field 'location' has a deleted copy assignment operator
369 | PyLocation location;
| ^
mlir/include/mlir/Bindings/Python/IRCore.h(304,45): note: copy assignment operator of 'PyLocation' is implicitly deleted because base class 'BaseContextObject' has a deleted copy assignment operator
304 | class MLIR_PYTHON_API_EXPORTED PyLocation : public BaseContextObject {
| ^
mlir/include/mlir/Bindings/Python/IRCore.h(300,20): note: copy assignment operator of 'BaseContextObject' is implicitly deleted because field 'contextRef' has a deleted copy assignment operator
300 | PyMlirContextRef contextRef;
| ^
mlir/include/mlir/Bindings/Python/IRCore.h(73,3): note: copy assignment operator is implicitly deleted because 'PyObjectRef<mlir::python::mlir::PyMlirContext>' has a user-declared move constructor
73 | PyObjectRef(PyObjectRef &&other) noexcept
| ^
1 error generated.
```
Encountered on this env:
```
Compiler: clang-cl 20.1.8
STL: MSVC 14.44.35207 (Visual Studio 2022 Enterprise)
Runner: windows-2022 (GitHub Actions)
```
Commit: 7152266d80c58201a583d56942b278261f1730b0
https://github.com/llvm/llvm-project/commit/7152266d80c58201a583d56942b278261f1730b0
Author: Marco Elver <elver at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/ThreadSafetyAnalysis.rst
M clang/include/clang/Analysis/Analyses/ThreadSafety.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/AST/ASTImporter.cpp
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/Sema/warn-thread-safety-analysis.c
M clang/test/SemaCXX/thread-safety-annotations.h
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
M clang/test/SemaCXX/warn-thread-safety-parsing.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
Thread Safety Analysis: Support guarded_by/pt_guarded_by with multiple capabilities (#186838)
Previously, `guarded_by` and `pt_guarded_by` only accepted a single
capability argument. Introduce support for declaring that a variable is
guarded by multiple capabilities, which exploits the following property:
any writer must hold all capabilities, so holding any one of them
(exclusive or shared) guarantees at least shared (read) access.
Therefore, writing requires all listed capabilities to be held
exclusively, while reading only requires at least one to be held.
This synchronization pattern is frequently used where the underlying
lock implementation does not support real reader locking, and instead
several lock "shards" are used to reduce contention for readers. For
example, the Linux kernel makes frequent use of this pattern [1].
Backwards compatibility is not affected by this change: for the time
being we deliberately do not change the semantics of multiple stacked
attributes (this retains existing semantics precisely, while giving a
way to choose the "stricter" semantics if needed).
Previous Version: https://github.com/llvm/llvm-project/pull/185173
Link: https://lore.kernel.org/all/20250307085204.GJ16878@noisy.programming.kicks-ass.net/ [1]
Commit: be31cffb422da20898685aa4c4a572659006f909
https://github.com/llvm/llvm-project/commit/be31cffb422da20898685aa4c4a572659006f909
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/test/Lower/Intrinsics/minval.f90
M flang/test/Lower/Intrinsics/modulo.f90
M flang/test/Lower/Intrinsics/move_alloc.f90
M flang/test/Lower/Intrinsics/mvbits.f90
M flang/test/Lower/Intrinsics/not.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 37) (#188009)
Tests converted from test/Lower/Intrinsics: minval.f90, modulo.f90,
move_alloc.f90, mvbits.f90, not.f90
Commit: ed3d3bfc75b5f2afddf5cd823460a0d39de36562
https://github.com/llvm/llvm-project/commit/ed3d3bfc75b5f2afddf5cd823460a0d39de36562
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
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
Log Message:
-----------
[mlir][spirv] Add first 3 data layout ops in TOSA Ext Inst Set (#187714)
This patch introduces the following reduction operators:
spirv.Tosa.Concat
spirv.Tosa.Pad
spirv.Tosa.Reshape
Also dialect and serialization round-trip tests have been added.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: c75b8a1649d4f132eefbfc741e68bda0f81e3f24
https://github.com/llvm/llvm-project/commit/c75b8a1649d4f132eefbfc741e68bda0f81e3f24
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Avoid unnecessary nodes in the chunk loop in expandDIVREMByConstant (#187967)
We don't need an AND on the last iteration. If we shifted the dividend
due to trailing zeros in the divisor, we don't need a chunk that only
contains shifted in zeros.
Commit: 0afc30f8d528dc15634b762cd64682707d8f7da5
https://github.com/llvm/llvm-project/commit/0afc30f8d528dc15634b762cd64682707d8f7da5
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Add helper to create FSHR like operation in expandDIVREMByConstant. NFC (#187979)
Commit: 6e5e1c97e024582bcca8eccf9b78f3b5d0991024
https://github.com/llvm/llvm-project/commit/6e5e1c97e024582bcca8eccf9b78f3b5d0991024
Author: laoshd <shandong.lao at hpe.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang-rt/include/flang-rt/runtime/format-implementation.h
M flang-rt/include/flang-rt/runtime/format.h
M flang-rt/lib/runtime/edit-output.cpp
M flang-rt/lib/runtime/io-api.cpp
M flang-rt/lib/runtime/io-stmt.cpp
M flang-rt/unittests/Runtime/CMakeLists.txt
A flang-rt/unittests/Runtime/LeadingZeroTest.cpp
M flang/docs/F202X.md
M flang/docs/FortranStandardsSupport.md
M flang/include/flang/Common/format.h
M flang/include/flang/Optimizer/Transforms/RuntimeFunctions.inc
M flang/include/flang/Parser/format-specification.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Runtime/io-api.h
M flang/include/flang/Support/Fortran.h
M flang/lib/Lower/IO.cpp
M flang/lib/Parser/io-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-io.cpp
A flang/test/Semantics/io18.f90
M flang/test/Transforms/set-runtime-call-attributes.fir
M flang/test/Transforms/verify-known-runtime-functions.fir
Log Message:
-----------
[flang][flang-rt] Implement F202X leading-zero control edit descriptors LZ, LZS, and LZP for formatted output (F, E, D, and G editing) (#183500)
LZ: processor-dependent (default, flang prints leading zero); LZS:
suppress the optional leading zero before the decimal point; LZP: print
the optional leading zero before the decimal point. Changes span the
source parser, compile-time format validator, runtime format processing,
and runtime output formatting. Includes semantic test (io18.f90) and
documentation updates.
Commit: a57db57e1b6a57c02eeb0def2dea6e969dc5fec7
https://github.com/llvm/llvm-project/commit/a57db57e1b6a57c02eeb0def2dea6e969dc5fec7
Author: Steven Perron <stevenperron at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl
M clang/test/AST/HLSL/Texture2D-vector-AST.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-subscripts.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Subscript.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-subscript.hlsl
M clang/test/SemaHLSL/BuiltIns/resource_getpointer-errors.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-Subscript.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/test/CodeGen/DirectX/MemIntrinsics/memcpy-pointee.ll
M llvm/test/CodeGen/DirectX/forward_handle_on_alloca.ll
M llvm/test/Transforms/GVN/PRE/no-pre-load-for-token-like.ll
M llvm/test/Transforms/GVN/no-sink-dxgetpointer.ll
M llvm/test/Transforms/SimplifyCFG/DirectX/no-sink-dxgetpointer.ll
M llvm/test/Transforms/SimplifyCFG/token_like_type.ll
Log Message:
-----------
[HLSL] Implement Texture2D::operator[] (#186110)
Implments the Texture2D::operator[] method. It uses the same design as
Buffer::operator[]. However, this requires us to chagne the
resource_getpointer intrinsic to accept integer vectors for the index.
Assisted-by: Gemini
Commit: 074851578402961ef2caa82e32461086e0cbe534
https://github.com/llvm/llvm-project/commit/074851578402961ef2caa82e32461086e0cbe534
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mov.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for mov_dpp (#187807)
Commit: ce5a1dffa228885b0b7e7811e95dae93277a6c4f
https://github.com/llvm/llvm-project/commit/ce5a1dffa228885b0b7e7811e95dae93277a6c4f
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
Log Message:
-----------
AMDGPU: Improve codegen for VOP2 v_dot2c_f32_f16/bf16 (#179225)
Select VOP2 version when there are no src_modifers, otherwise VOP3.
Commit: 7fa2752a286bb86945b929356c1dc7d429bcbcdb
https://github.com/llvm/llvm-project/commit/7fa2752a286bb86945b929356c1dc7d429bcbcdb
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Support/APFloat.cpp
Log Message:
-----------
[NFC][Support] Minor code cleanup in APFloat.cpp (#187526)
Minor code cleanup: define variables at their first assignment as
opposed to at the start of functions, and use `[[maybe_unused]]` for
variables used in assert only.
Commit: b2edc0a3f8a5c711ff894dda9541a46874633511
https://github.com/llvm/llvm-project/commit/b2edc0a3f8a5c711ff894dda9541a46874633511
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/CMakeLists.txt
M llvm/lib/Target/WebAssembly/WebAssembly.h
A llvm/lib/Target/WebAssembly/WebAssemblyReduceToAnyAllTrue.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
A llvm/test/CodeGen/WebAssembly/any-all-true.ll
Log Message:
-----------
wasm: recognize `any_true` and `all_true` (#155885)
fixes https://github.com/llvm/llvm-project/issues/129441
cc @lukel97 @badumbatish
https://github.com/llvm/llvm-project/pull/145108
I've been learning a bit about LLVM, trying to make progress on some of
these issues. The code below is based on
https://github.com/llvm/llvm-project/pull/145108#issuecomment-3004561085,
by implementing `shouldExpandReduction`.
The implementation works for the test cases I added, but (obviously)
fails for any existing cases. `ISD::VECREDUCE_AND` and
`ISD::VECREDUCE_OR` are now marked as legal, which is required for the
`Pat`s to fire, but when they don't that causes a selection failure.
So, I'm wondering, what is the right approach here. Should I mark these
intrinsics as `Custom` instead and manually perform the transformation
in C++? Or is there some trick to still get the default lowering (a
series of loads and scalar bitwise operations) when the patterns don't
fire?
Commit: 44df4116c87c023264c2a0551f808f031489e8f9
https://github.com/llvm/llvm-project/commit/44df4116c87c023264c2a0551f808f031489e8f9
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
M compiler-rt/lib/builtins/CMakeLists.txt
M compiler-rt/test/builtins/CMakeLists.txt
Log Message:
-----------
[compiler-rt][ARM] cmake properties for complicated builtin sources (#179919)
In the builtins library, most functions have a portable C implementation
(e.g. `mulsf3.c`), and platforms might provide an optimized assembler
implementation (e.g. `arm/mulsf3.S`). The cmake script automatically
excludes the C source file corresponding to each assembly source file it
includes. Additionally, each source file name is automatically
translated into a flag that lit tests can query, with a name like
`librt_has_mulsf3`, to indicate that a function is available to be
tested.
In future commits I plan to introduce cases where a single .S file
provides more than one function (so that they can share code easily),
and therefore, must supersede more than one existing source file.
I've introduced the `crt_supersedes` cmake property, which you can set
on a .S file to name a list of .c files that it should supersede. Also,
the `crt_provides` property can be set on any source file to indicate a
list of functions it makes available for testing, in addition to the one
implied by its name.
Commit: 0e0dc535d1b3df0faa84df03e7a9b1fb46b4276d
https://github.com/llvm/llvm-project/commit/0e0dc535d1b3df0faa84df03e7a9b1fb46b4276d
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.m0.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ptr.ll
Log Message:
-----------
AMDGPU/GlobalISel: Use B32 for readfirstlane (#187809)
Using B32 would also add missing pointer support to readfirstlane
intrinsic rule.
Commit: b670265b588f51eac9f7cc08edb3787361022af8
https://github.com/llvm/llvm-project/commit/b670265b588f51eac9f7cc08edb3787361022af8
Author: Xinlong Chen <49522466+Xinlong-Chen at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AArch64/insertextract.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll
M llvm/test/CodeGen/ARM/combine-vmovdrr.ll
M llvm/test/CodeGen/ARM/pr122670-regression.ll
M llvm/test/CodeGen/PowerPC/aix-vec_insert_elt.ll
M llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.ll
M llvm/test/CodeGen/PowerPC/vec_insert_elt.ll
M llvm/test/CodeGen/RISCV/xaluo.ll
M llvm/test/CodeGen/RISCV/xqcisls.ll
M llvm/test/CodeGen/RISCV/xtheadmemidx.ll
M llvm/test/CodeGen/X86/avx512-insert-extract.ll
M llvm/test/CodeGen/X86/clmul-vector.ll
M llvm/test/CodeGen/X86/known-bits.ll
Log Message:
-----------
[DAG] ComputeKnownBits - set low bit to zero for ADD(X,X) (#186461)
ADD(X,X) is equivalent to SHL(X,1), so bit[0] is always zero.
This allows downstream folds like `and(add(x,x), 1) -> 0`.
Fixes #186091
Commit: 27adb8f7ad47380011d879bada73ddb5b28ed6f7
https://github.com/llvm/llvm-project/commit/27adb8f7ad47380011d879bada73ddb5b28ed6f7
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn-exp-compr.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.compr.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for exp_compr (#187822)
This intrinsic only accepts vectorTy. Correct the test to use v2s16.
Commit: ada44b090b7b0f2bf17716b12c2964ba09240878
https://github.com/llvm/llvm-project/commit/ada44b090b7b0f2bf17716b12c2964ba09240878
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode] Avoid a macro redefinition (#188052)
Fixes:
```
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/AST/ByteCode/Interp.cpp:46:9: error: 'MUSTTAIL' macro redefined [-Werror,-Wmacro-redefined]
46 | #define MUSTTAIL
| ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/AST/ByteCode/Interp.cpp:32:9: note: previous definition is here
32 | #define MUSTTAIL [[clang::musttail]]
| ^
1 error generated.
```
Commit: d69c6709349b9672502f22917a325ccfa44d516b
https://github.com/llvm/llvm-project/commit/d69c6709349b9672502f22917a325ccfa44d516b
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
A llvm/test/Transforms/SLPVectorizer/WebAssembly/simd-splat-shuffle-cost.ll
Log Message:
-----------
[WebAssembly] Add initial shuffle cost capabilities (#187596)
Fixes #178940
Fixes the case of i16x8, i8x16 manual splat not recognized but the case of i32x4 still remains.
Commit: 3e4efe3ed4a2eedf49f2296e0ab9a7d4a65c2f7c
https://github.com/llvm/llvm-project/commit/3e4efe3ed4a2eedf49f2296e0ab9a7d4a65c2f7c
Author: Austin Kerbow <Austin.Kerbow at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
A llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
A llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
A llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
A llvm/test/CodeGen/AMDGPU/coexec-sched-warning.mir
Log Message:
-----------
[AMDGPU] Add ML-oriented coexec scheduler selection and queue handling (#169616)
This patch adds the initial coexec scheduler scaffold for machine
learning workloads on gfx1250.
It introduces function and module-level controls for selecting the
AMDGPU preRA and postRA schedulers, including an `amdgpu-workload-type`
module flag that maps ML workloads to coexec preRA scheduling and a nop
postRA scheduler by default.
It also updates the coexec scheduler to use a simplified top-down
candidate selection path that considers both available and pending
queues through a single flow, setting up follow-on heuristic work.
Commit: da5d4214bc89021558311055bb5cd905a78020bd
https://github.com/llvm/llvm-project/commit/da5d4214bc89021558311055bb5cd905a78020bd
Author: Robert Konicar <rkonicar at mail.muni.cz>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
M mlir/lib/AsmParser/AsmParserImpl.h
M mlir/test/IR/enum-attr-roundtrip.mlir
M mlir/test/lib/Dialect/Test/TestEnumDefs.td
M mlir/test/lib/Dialect/Test/TestOpsSyntax.td
M mlir/tools/mlir-tblgen/EnumsGen.cpp
Log Message:
-----------
[MLIR][TableGen] Make optional enum parser not consume the token when it is not matched (#188008)
Previously the optional parser would consume the token even when it
failed to match a value of the enum and prevented parsers later in the
op syntax from having an attempt. This PR changes that so that the token
is consumed only when the parsing succeeds. This change is made to the
emitted `FieldParser<std::optional<T>>` for enums.
This, for example, allows having a simple list of default valued props
in the assembly format without needing decorations around them. This
mimics the behaviour that is emitted for `DefaultValuedAttribute` when
it is used with `EnumAttr`.
This PR also adds `parseOptionalString` variant with an allow-list
argument as `parseOptionalKeyword` has and adds
`parseOptionalKeywordOrString` allow-list variant which combines these
two into a single utility wrapper. These methods do not consume the
token unless it is from the allow-list.
Commit: 079be4e73982e1c7e0cddb8f9bd1b2009c6fb720
https://github.com/llvm/llvm-project/commit/079be4e73982e1c7e0cddb8f9bd1b2009c6fb720
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libc/utils/libctest/format.py
Log Message:
-----------
[libc] Support Windows test executables in LibcTest lit format (#188057)
Updated LibcTest to handle Windows test executables:
* Added support for .exe extensions when identifying test executables.
* Skipped the executable bit check on Windows as it is not applicable.
* Updated .params file discovery to look for both <test>.exe.params and
<test>.params.
This allows running libc tests on Windows hosts.
Commit: af37ac8aee16f1a32c7f323bdb62c7019aad6322
https://github.com/llvm/llvm-project/commit/af37ac8aee16f1a32c7f323bdb62c7019aad6322
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/reduction-across-different-bb.ll
Log Message:
-----------
[SLP]Use reduction root explicitly from reduction analysis to avoid non-determinism
Initially, the reduction root was detected using the last member of the UserIgnoreList set, which is unordered. Better to use the reduction root explicitly to avoid non-determinism in the reduction parent block, which may cause incorrect scale factor estimation for the reduction cost.
Commit: b32b31e6a7d003a96d8110c3debd891ba6977d25
https://github.com/llvm/llvm-project/commit/b32b31e6a7d003a96d8110c3debd891ba6977d25
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Fix compiler crash with `static operator()` (#187853)
This PR removes the first argument from the `Args` list (which is `S()`)
before doing lifetime safety checks to ensure correct indexing.
It also adds a test to prevent regressions in the future
Fixes #187426
<details>
<summary>Bug details</summary>
When calling a `static operator()` directly (with `S()(...)`), we also
store `S()` in `Args` as the first argument, so all indexing is off by
one.
The most interesting part is that `S::operator()(...)` works correctly
and does not add `S()` at the beginning of the argument list, so it does
not crash during lifetime checks.
This solution is probably not the cleanest, but I would love to hear
feedback on where to put it!
</details>
Commit: 94239b34508d48434f73b1b8ae874e9ec6d83d2b
https://github.com/llvm/llvm-project/commit/94239b34508d48434f73b1b8ae874e9ec6d83d2b
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
M llvm/test/CodeGen/AMDGPU/permlane16_opsel.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Add RegBankLegalize rules for permlane16/permlanex16 (#187906)
Add RegBankLegalize rules for the amdgcn_permlane16
and amdgcn_permlanex16 intrinsics. Both intrinsics
are sources of divergence, so only the divergent
case is needed: result, old, and src0 map to VGPR,
while src1 and src2 are SGPR with ReadFirstLane if
divergent.
Update the GISEL RUN lines in llvm.amdgcn.permlane.ll
and permlane16_opsel.ll to use -new-reg-bank-select,
and regenerate check lines. The v8i16 test cases now
produce identical SDAG/GISEL output so their checks
are unified.
Commit: 239ca11a55b40ce12b21bc47e45cb4065d1cc3d4
https://github.com/llvm/llvm-project/commit/239ca11a55b40ce12b21bc47e45cb4065d1cc3d4
Author: Théo Degioanni <tdegioanni at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/SCF/IR/SCF.h
M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
M mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
M mlir/lib/Dialect/SCF/IR/CMakeLists.txt
A mlir/lib/Dialect/SCF/IR/MemorySlot.cpp
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Dialect/LLVMIR/mem2reg.mlir
M mlir/test/Dialect/MemRef/mem2reg.mlir
A mlir/test/Dialect/SCF/mem2reg-reject.mlir
A mlir/test/Dialect/SCF/mem2reg.mlir
M mlir/test/Transforms/mem2reg.mlir
Log Message:
-----------
[MLIR][Mem2Reg] Add support for region control flow and SCF (#185036)
This PR adds support for region control-flow. Region control-flow and
CFG can be mixed together in the same program. See the [accompanying
RFC](https://discourse.llvm.org/t/rfc-support-region-control-flow-in-mem2reg/90082)
for some design considerations.
Beyond the considerations in the RFC, a few minor changes were
introduced:
- Calling the visitor hook for defined values is now deferred to the end
of promotion.
- The lazy creation of default values has been moved to the places where
it happens to prepare for a future change where it is actually lazy.
Documentation about it not working as intended for now was also added.
All SCF operations are supported, including `forall` and `parallel`,
which is pretty cool I think.
I am sorry in advance for git diff displaying a really bad diff for
Mem2Reg.cpp around where the liveness analysis used to be. Do consider
simply reading this part of the code off the file.
As a disclaimer, I designed all the test cases myself, but I used a
large amount of matrix multiplications to produce the corresponding IR
and FileCheck tests. I have reviewed them carefully and they correspond
to my intent.
---------
Co-authored-by: Slava Zakharin <szakharin at nvidia.com>
Commit: 1aa64ff937e71a64710b6290169eeaefa3374fcb
https://github.com/llvm/llvm-project/commit/1aa64ff937e71a64710b6290169eeaefa3374fcb
Author: Sarah Spall <sarahspall at microsoft.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaHLSL.cpp
M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
Log Message:
-----------
[HLSL] handle hlslAttributedResourceType in init list code (#187813)
Handle HLSL Attributed Resource Type in the init list code. Treat it
like its a scalar value.
Closes #187568
Commit: 54a3518fc3a9efad598d6a83c90fff316bb8f6c1
https://github.com/llvm/llvm-project/commit/54a3518fc3a9efad598d6a83c90fff316bb8f6c1
Author: Joshua Batista <jbatista at microsoft.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd-errors.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/DirectX/ShaderFlags/wave-ops.ll
A llvm/test/CodeGen/DirectX/WaveActiveBitAnd.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveBitAnd.ll
Log Message:
-----------
[HLSL] Add WaveActiveBitAnd builtin function (#187149)
This PR adds the WaveActiveBitAnd HLSL function.
Fixes https://github.com/llvm/llvm-project/issues/99166
Commit: c624851037b0d5f4b42880b57d137f94241215c9
https://github.com/llvm/llvm-project/commit/c624851037b0d5f4b42880b57d137f94241215c9
Author: Alan Zhao <ayzhao at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
A llvm/test/Transforms/LoopVectorize/X86/cost-divisor-overflow.ll
Log Message:
-----------
[LoopVectorize] Fix an integer narrowing conversion in `getPredBlockCostDivisor(...)` (#187605)
`LoopVectorizationCostModel::getPredBlockCostDivisor(...)` may return
large `uint64_t` values that get coerced to an `unsigned` by
`VPCostContext::getPredBlockCostDivisor(...)`, which can cause division
by zero.
Fixes #187584
Commit: 4cef1c13416d020cc2f8a67a374ff34b444f1b5b
https://github.com/llvm/llvm-project/commit/4cef1c13416d020cc2f8a67a374ff34b444f1b5b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
Log Message:
-----------
[X86] canonicalizeShuffleWithOp - add handling for SHUFFLE(PSADBW(X,Y),PSADBW(Z,W)) -> PSADBW(SHUFFLE(X,Z),SHUFFLE(Y,W)) (#188072)
PSADBW takes vXi8 inputs and gives a vXi64 result so we need to tweak
the bitcasts (shuffle types checks will already ensure that the result
type isn't affected).
Minor improvement to #187447
Commit: a9ae2fd79eaef357b77c5c71ae067b1ed6da14b6
https://github.com/llvm/llvm-project/commit/a9ae2fd79eaef357b77c5c71ae067b1ed6da14b6
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/pointer-induction-index-width-smaller-than-iv-width.ll
Log Message:
-----------
[NFC][LV] Fix what seems to be a typo in the test (#187769)
The test was added in
https://github.com/llvm/llvm-project/commit/4e9894498e166ef6b207c25e780db0b6f006cc89.
Alternative fixes would be:
* Remove unused GEP, although not clear why we'd want to overwrite
stored `i64` with `ptr` store.
* Keep this patch, but perform both GEPs with `i64` element type to
reduce the diff. It's not clear if the scalarization caused by that type
mismatch is intentional/relevant for the original change.
Commit: 4219fb8a21c6c25d42bb2502c1a46f57a6b8045d
https://github.com/llvm/llvm-project/commit/4219fb8a21c6c25d42bb2502c1a46f57a6b8045d
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
A flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
Log Message:
-----------
[flang] Fix FIRToMemRef index computation for array_coor with shape_shift and slice (#186523)
When fir.array_coor carries an explicit shape_shift (non-default lower
bounds) and an explicit slice, the indices are Fortran indices rather
than 1-based section indices. The FIRToMemRef pass was unconditionally
subtracting 1 from sliced indices, which is only correct for 1-based
section indices (the embox-with-embedded-slice case).
For shape_shift + explicit slice, the correct adjustment is to subtract
the slice lower bound instead of 1. This produces proper 0-based memref
indices.
This pattern arises after the FIR inliner canonicalizes
fir.embox(shape_shift, slice) + fir.array_coor(box) into a single
fir.array_coor with explicit shape_shift and slice operands, where the
indices become Fortran indices.
Without this fix, arrays with non-default lower bounds (e.g., A(0:N) or
A(-1:N)) produce negative memref indices, writing before the array
allocation and causing a segfault.
Commit: 291923ba16ad57ce7db599a4d6af0b2936ea17a9
https://github.com/llvm/llvm-project/commit/291923ba16ad57ce7db599a4d6af0b2936ea17a9
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Lower/OpenMP/indirect-reference-privatization.f90
M flang/test/Lower/OpenMP/parallel-lastprivate-clause-scalar.f90
R flang/test/Lower/OpenMP/privatize_predetermined_only_when_defined_by_eval.f90
Log Message:
-----------
[flang][OpenMP] Privatize indirectly referenced symbols (#187097)
Symbols that may be referenced indirectly by lastprivate or linear
DSAs in nested constructs must not have their privatization skipped
in the enclosing context. This avoids updates to the wrong symbols.
This is needed to unblock PRs that fix #170784.
Fixes #179345
Commit: b32d078782c5e05d9a54ada1ba257edd31e28fe6
https://github.com/llvm/llvm-project/commit/b32d078782c5e05d9a54ada1ba257edd31e28fe6
Author: Mark Danial <mark.danial at ibm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/test/Dialect/Builtin/Bytecode/builtin_fixed.mlir
Log Message:
-----------
[AIX] XFAIL mlir builtin test on big endian AIX [NFC] (#187365)
Similar to https://github.com/llvm/llvm-project/pull/186305
Commit: 87bab31c27dee5ec69022df3beaa018744c4e8d1
https://github.com/llvm/llvm-project/commit/87bab31c27dee5ec69022df3beaa018744c4e8d1
Author: Pranav Bhandarkar <pranav.bhandarkar at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/InlineHLFIRAssign.cpp
A flang/test/HLFIR/inline-hlfir-assign-allocatable-expr.fir
Log Message:
-----------
[Flang] - Add optional inlining of allocatable assignments with hlfir.expr RHS (#186880)
Add support for inlining hlfir.assign operations where the LHS is an
allocatable and the RHS is an `hlfir.expr` (e.g., from
`hlfir.elemental`). Since `hlfir.expr` values cannot alias with memory
locations, these assignments can be safely inlined without alias
analysis.
The optimization is controlled by the
-inline-hlfir-allocatable-expr-assign flag:
fir-opt -inline-hlfir-allocatable-expr-assign --inline-hlfir-assign
file.fir
flang -mmlir -inline-hlfir-allocatable-expr-assign file.f90
The generated code uses `fir::factory::genReallocIfNeeded` to properly
handle Fortran allocatable assignment semantics (F2018 10.2.1.3):
- If not allocated: allocate with RHS shape
- If allocated with same shape: reuse existing allocation
- If allocated with different shape: reallocate
This is motivated by the increased link time that I am seeing when
`__FortranAAssign` is called from the user code. The details of the
problem are documented in
https://github.com/llvm/llvm-project/issues/187720
Commit: dc4073fbe7ffb8a1886a09029fc1572cdebc1847
https://github.com/llvm/llvm-project/commit/dc4073fbe7ffb8a1886a09029fc1572cdebc1847
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 239ca11 (#188083)
This fixes 239ca11a55b40ce12b21bc47e45cb4065d1cc3d4.
Commit: d2e70414b685a31021b7d5f84661ca5a59c33727
https://github.com/llvm/llvm-project/commit/d2e70414b685a31021b7d5f84661ca5a59c33727
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.live.mask.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.live.mask.mir
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for live_mask (#187833)
Commit: e672e88a966c939bfd32d5619cea496ad67bf338
https://github.com/llvm/llvm-project/commit/e672e88a966c939bfd32d5619cea496ad67bf338
Author: idubinov <igor.dubinov at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVBuiltins.td
M llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange.ll
R llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange_2.ll
A llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange_no_sret.ll
Log Message:
-----------
[SPIRV] Fix OpBuildNDRange (#186153)
- Fix buildNDRange according to OpenCL and SPIRV specs.
- Fix tablegen SPIRV builtins for ndrange_* functions: despite of OpenCL
spec, the real call has additional first argument - structure return,
changed min and max num arguments accordingly.
- Update test, add checks, combined with BuildNDRange_2
Commit: 412aaeb739eac354110ea4a5dfc66e14f7c90f94
https://github.com/llvm/llvm-project/commit/412aaeb739eac354110ea4a5dfc66e14f7c90f94
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/Transforms/bit.cir
Log Message:
-----------
[CIR] Add Involution trait to BitReverseOp and ByteSwapOp (#187862)
bitreverse(bitreverse(x)) == x and byte_swap(byte_swap(x)) == x are
mathematical involutions.
This adds MLIR Involution trait to CIR opetation, it encodes this
property and automatically folds away the outer application when an op's
input is produced by the same op type.
Commit: 89503bda38f77a4567902d43428a6e6a84c551fa
https://github.com/llvm/llvm-project/commit/89503bda38f77a4567902d43428a6e6a84c551fa
Author: Austin Kerbow <Austin.Kerbow at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
Log Message:
-----------
[AMDGPU] Add structural stall heuristic to scheduling strategies (#169617)
Implements a structural stall heuristic that considers both resource
hazards and latency constraints when selecting instructions. In coexec,
this changes the pending queue from a binary “not ready to issue”
distinction into part of a unified candidate comparison. Pending
instructions still identify structural stalls in the current cycle, but
they are now evaluated directly against available instructions by stall
cost, making the heuristics both more intuitive and more expressive.
- Add getStructuralStallCycles() to GCNSchedStrategy that computes the
number of cycles an instruction must wait due to:
- Resource conflicts on unbuffered resources (from the SchedModel)
- Sequence-dependent hazards (from GCNHazardRecognizer)
- Add getHazardWaitStates() to GCNHazardRecognizer that returns the
number
of wait states until all hazards for an instruction are resolved,
providing cycle-accurate hazard information for scheduling heuristics.
Commit: 729480c4aec6ea8a18149fd3c73de57aaa677d2a
https://github.com/llvm/llvm-project/commit/729480c4aec6ea8a18149fd3c73de57aaa677d2a
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
A clang/test/CIR/CodeGen/cleanup-scope-return-in-loop.cpp
A clang/test/CIR/CodeGen/new-array-size-conv.cpp
Log Message:
-----------
[CIR] Generalize cxx alloc new size handling (#187790)
The non-constant size handling in `emitCXXNewAllocSize` was making the
incorrect assumption that the default behavior of the size value being
explicitly cast to size_t would be the only behavior we'd see. This is
actually only true with C++14 and later. To properly handle earlier
standards, we need the more robust checking that classic codegen does in
the equivalent function. This change adds that handling.
Assisted-by: Cursor / claude-4.6-opus-high
Commit: b75222caf3e3247f6cfa5b243619d776dd5b5863
https://github.com/llvm/llvm-project/commit/b75222caf3e3247f6cfa5b243619d776dd5b5863
Author: Amy Kwan <amy.kwan1 at ibm.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Driver/CMakeLists.txt
Log Message:
-----------
[clang][Driver][CMake] Link pthread when available to fix shared-lib link errors.
Commit: 0ae0ee03619a0db2f8d754d2ea049d2a55e656f7
https://github.com/llvm/llvm-project/commit/0ae0ee03619a0db2f8d754d2ea049d2a55e656f7
Author: kwyatt-ext <kwyatt.external at hpe.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/docs/Extensions.md
Log Message:
-----------
[flang] Adding a new extension that was noticed to be intentionally in the code. (#182891)
The flang compiler intentionally issues a warning on duplicate
prefix-specs for procedures. This is not consistent with the standard
which says "shall contain at most one of each". Other tested compilers
correctly issue an error.
It is safe to leave this as a warning. It can be turned into an error
condition by using the "-Werror" flag.
However, it should be noted in the Extensions document, similar to the
mention of the SAVE attribute.
Commit: 0c1013bfd4144b3d2f91df193f8da4e08c63998c
https://github.com/llvm/llvm-project/commit/0c1013bfd4144b3d2f91df193f8da4e08c63998c
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/IR/Instructions.h
M llvm/lib/IR/Instructions.cpp
Log Message:
-----------
[IR][NFC] Rename UncondBrInst 'IfTrue' argument to 'Target' (#187631)
Follow-up on @slackito's suggestion about the naming of the variable and
discussion with @aengelke in #187196
Commit: e38e87dbb0f3ac4897cf307867b6a3c8c9c7aa35
https://github.com/llvm/llvm-project/commit/e38e87dbb0f3ac4897cf307867b6a3c8c9c7aa35
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
Log Message:
-----------
[LoongArch] Fix -Wunused-variable in c4b01ec20d3e845d348b0b005102b1301a8550ca
This variable was only used in assertions which was causing warnings in
release+noasserts builds.
Commit: 9acfa56d8f23659a568715d502c64f96735bffea
https://github.com/llvm/llvm-project/commit/9acfa56d8f23659a568715d502c64f96735bffea
Author: Owen Anderson <resistor at mac.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
A llvm/test/Transforms/Coroutines/coro-split-addrspace.ll
Log Message:
-----------
[Coro] Preserve program address spaces correctly in CoroSplit. (#188002)
Commit: f7d5e593d38a83bcd9ccaff6fbc1cdbca623fdb2
https://github.com/llvm/llvm-project/commit/f7d5e593d38a83bcd9ccaff6fbc1cdbca623fdb2
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/configuration.py
M lldb/packages/Python/lldbsuite/test/decorators.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/dotest_args.py
M lldb/test/API/lit.cfg.py
M lldb/test/API/lit.site.cfg.py.in
M lldb/test/CMakeLists.txt
M lldb/utils/lldb-dotest/CMakeLists.txt
M lldb/utils/lldb-dotest/lldb-dotest.in
Log Message:
-----------
[lldb] Check for arm64e debugserver in skipUnlessArm64eSupported (#188082)
Explicitly check whether we are building debugserver for arm64e. To
debug an arm64e binary, debugserver itself needs to be an arm64e
process.
This PR eliminates the possibility of configuring LLDB with Right now,
it's possible to configure CMake with
`LLDB_ENABLE_ARM64E_DEBUGSERVER=Off` and the decorator wouldn't account
for that.
Commit: 205187c5cfe318109deb215583edd5434f69c487
https://github.com/llvm/llvm-project/commit/205187c5cfe318109deb215583edd5434f69c487
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Transforms/ACCDeclareActionConversion.cpp
M flang/test/Fir/OpenACC/declare-action-conversion.fir
Log Message:
-----------
[openacc][flang] full support to handle allocatable/pointer runtime declare-action calls in ACCDeclareActionConversion (#188055)
Supported before: `fir.store`, `fir.box_addr`, and `fir.call` only for
PointerAllocate/PointerDeallocate.
Added now: fir.call support for PointerAllocateSource,
PointerDeallocatePolymorphic, AllocatableAllocate,
AllocatableAllocateSource, AllocatableDeallocate,
AllocatableDeallocatePolymorphic (found in
flang/include/flang/Runtime/allocatable.h).
Commit: 9096c9cda3df4d09c9c6e4efa1a07a232a9ac8f8
https://github.com/llvm/llvm-project/commit/9096c9cda3df4d09c9c6e4efa1a07a232a9ac8f8
Author: Afonso Rafael (Gafanhoto) <afonsorafael at sapo.pt>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/test/Transforms/LoopFusion/da_separate_loops.ll
Log Message:
-----------
[LoopFusion] Remove the InvalidDependencies duplicates (#187744)
If the function dependencesAllowFusion returns false, in fuseCandidates
the reportLoopFusion function is used to increment InvalidDependencies
and to emit a OptimizationRemarkMissed. If both dependencesAllowFusion
and reportLoopFusion increment InvalidDependencies, statistics will
appear duplicated
Commit: 3124cb3fe779ab65aa1f7b1e875d4efd62852757
https://github.com/llvm/llvm-project/commit/3124cb3fe779ab65aa1f7b1e875d4efd62852757
Author: Alireza Torabian <alireza.torabian at huawei.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
Log Message:
-----------
[DA] Bug fix regarding the SameSD levels (#188098)
SCEV isKnownPredicate may crash if the expressions are involved with
different loops. To verify if two loops have the same iteration space,
we do not need to use the SCEV apis, and it can be done by the equality
check.
Moreover, no pass (not even loop fusion) requires to check SameSD levels
for more than one level. In this patch, we limit the analysis of SameSD
levels to only one level after the common levels.
Commit: 22977fd99ed9f580bbc3bbe3c43c1224f393d348
https://github.com/llvm/llvm-project/commit/22977fd99ed9f580bbc3bbe3c43c1224f393d348
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.permute.ll
Log Message:
-----------
[AMDGPU][NFC] Update permute tests to use auto-generated checks (#188107)
Also add global-isel run line.
Commit: 2f1e0d14f40da09379b489ba4e78fbfd8794f68e
https://github.com/llvm/llvm-project/commit/2f1e0d14f40da09379b489ba4e78fbfd8794f68e
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
Log Message:
-----------
[LV] Add additional epilogue vector tests.
Add additional epilogue vectorization tests for
* https://github.com/llvm/llvm-project/issues/187323
* https://github.com/llvm/llvm-project/issues/185345
Commit: c0634cbb07149c8e8fea428c654774cf06be764a
https://github.com/llvm/llvm-project/commit/c0634cbb07149c8e8fea428c654774cf06be764a
Author: Zhen Wang <37195552+wangzpgi at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang-rt/lib/cuda/registration.cpp
M flang/include/flang/Runtime/CUDA/registration.h
Log Message:
-----------
[flang][cuda] Add CUFRegisterManagedVariable runtime entry for __cudaRegisterManagedVar (#188124)
Add CUFRegisterManagedVariable runtime wrapper in flang-rt that calls
__cudaRegisterManagedVar.
This is preparation for supporting non-allocatable managed variables.
No functional change -- nothing calls this yet.
Commit: a235d96e48e47b33d5772f73661a3d178c11777b
https://github.com/llvm/llvm-project/commit/a235d96e48e47b33d5772f73661a3d178c11777b
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/Instrumentation/AddressSanitizer/remove-memory-effects.ll
Log Message:
-----------
[test][ASan] Precommit test for #187794 (#188112)
Commit: fe03749f08f86e8cf94132bd9155a68637657a8c
https://github.com/llvm/llvm-project/commit/fe03749f08f86e8cf94132bd9155a68637657a8c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
Log Message:
-----------
[Clang] Do not emit multi-gpu warning if they are all the same (#185490)
Summary:
This warning exists because if you do `-mcpu=native` in some contexts it
may not be obvious which GPU you get. But if they are all the same then
it really don't make a difference since we just pass the first one to
`-mcpu` anyway. Relax this so it doesn't annoyingly warn on machines
with more than one of the same GPU.
---------
Co-authored-by: Jacob Lambert <jacob.lambert at amd.com>
Commit: 53e3ed82f690aee90d74f5459fbbf5bb7ba21980
https://github.com/llvm/llvm-project/commit/53e3ed82f690aee90d74f5459fbbf5bb7ba21980
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/test/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#188129)
f7d5e593d38a
b2edc0a3f8a5
3e4efe3ed4a2
Commit: 2bee9585993506a06765b06f8cc83f1e219c45ee
https://github.com/llvm/llvm-project/commit/2bee9585993506a06765b06f8cc83f1e219c45ee
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.u16.ll
Log Message:
-----------
[AMDGPU][NFC] Update test to use update_llc_test_checks (#188102)
Also add globalisel run lines.
Precommit test for https://github.com/llvm/llvm-project/pull/187834.
Commit: 599d74fdc3cee5fa1ed84d6e10830f9aa5fe6b53
https://github.com/llvm/llvm-project/commit/599d74fdc3cee5fa1ed84d6e10830f9aa5fe6b53
Author: lntue <lntue at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/acoshf_utils.h
M libc/test/src/math/acoshf_test.cpp
M libc/test/src/math/asinhf_test.cpp
M libc/test/src/math/atanhf_test.cpp
Log Message:
-----------
[libc][math] Reduce memory usage for single precision inverse hyperbolic functions for LIBC_MATH_HAS_SMALL_TABLES option. (#188110)
Commit: bcfe1e94d3f062139aae009e44ae458f69cf2df2
https://github.com/llvm/llvm-project/commit/bcfe1e94d3f062139aae009e44ae458f69cf2df2
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/test/CodeGenHLSL/BasicFeatures/AggregateSplatCast.hlsl
Log Message:
-----------
[HLSL] Allow 1x1 matrices to be splatted like scalars (#188119)
Fixes #186859 by allowing 1x1 matrices to be splatted like the scalar
and vec1 cases.
Assisted-by: GitHub Copilot (powered by Claude Opus 4.6)
Commit: 20e863de1373fd255f77afcd21ea4b90d47f838e
https://github.com/llvm/llvm-project/commit/20e863de1373fd255f77afcd21ea4b90d47f838e
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 599d74f (#188138)
This fixes 599d74fdc3cee5fa1ed84d6e10830f9aa5fe6b53.
Commit: d194afe062bc2a27f4664590549990e90d27c6a1
https://github.com/llvm/llvm-project/commit/d194afe062bc2a27f4664590549990e90d27c6a1
Author: Théo Degioanni <tdegioanni at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/include/mlir/Transforms/Passes.td
Log Message:
-----------
[MLIR] [Mem2Reg] [NFC] Update pass documentation (#188140)
In #185036, we added region control flow support but forgot to update
the pass declaration documentation. This NFC addresses this.
Commit: 77fb848894cc0d6b3027c6e82e10d32069fc6430
https://github.com/llvm/llvm-project/commit/77fb848894cc0d6b3027c6e82e10d32069fc6430
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-factors.ll
M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/f128-fmuladd-reduction.ll
M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-runtime-checks.ll
M llvm/test/Transforms/LoopVectorize/AArch64/intrinsiccost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
M llvm/test/Transforms/LoopVectorize/AArch64/neon-inloop-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/exit-branch-cost.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/optimal-epilog-vectorization.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/epilog-vectorization-inductions.ll
M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
M llvm/test/Transforms/LoopVectorize/X86/scatter_crash.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory.ll
M llvm/test/Transforms/LoopVectorize/epilog-iv-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
M llvm/test/Transforms/PhaseOrdering/X86/pr48844-br-to-switch-vectorization.ll
Log Message:
-----------
Reapply "[LV] Simplify and unify resume value handling for epilogue vec." (#187504)
This reverts commit cdaf29f84dd0abbd1f961982799059c92d76625b.
This version skips removeBranchOnConst when vectorizing the epilogue, as
it may trigger folds that remove the resume phi used as resume value
from the epilogue.
This fixes https://github.com/llvm/llvm-project/issues/187323.
Original message:
This patch tries to drastically simplify resume value handling for the
scalar loop when vectorizing the epilogue.
It uses a simpler, uniform approach for updating all resume values in
the scalar loop:
1. Create ResumeForEpilogue recipes for all scalar resume phis in the
main loop (the epilogue plan will have exactly the same scalar resume
phis, in exactly the same order)
2. Update ::execute for ResumeForEpilogue to set the underlying value
when executing. This is not super clean, but allows easy lookup of the
generated IR value when we update the resume phis in the epilogue. Once
we connect the 2 plans together explicitly, this can be removed.
3. Use the list of ResumeForEpilogue VPInstructions from the main loop
to update the resume/bypass values from the epilogue.
This simplifies the code quite a bit, makes it more robust (should fix
https://github.com/llvm/llvm-project/issues/179407) and also fixes a
mis-compile in the existing tests (see change in
llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll,
where previously we would incorrectly resume using the start value when
the epilogue iteration check failed)
In some cases, we get simpler code, due to additional CSE, in some cases
the induction end value computations get moved from the epilogue
iteration check to the vector preheader. We could try to sink the
instructions as cleanup, but it is probably not worth the trouble.
Fixes https://github.com/llvm/llvm-project/issues/179407.
PR for recommit https://github.com/llvm/llvm-project/pull/188134
Commit: 4f32ea35f5956c4a2fd93d1c9416421c6f7f71c5
https://github.com/llvm/llvm-project/commit/4f32ea35f5956c4a2fd93d1c9416421c6f7f71c5
Author: Zhen Wang <37195552+wangzpgi at users.noreply.github.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang-rt/lib/cuda/registration.cpp
M flang/include/flang/Runtime/CUDA/registration.h
Log Message:
-----------
[flang][cuda] Fix const mismatch in CUFRegisterManagedVariable for __cudaRegisterManagedVar (#188142)
Change varName parameter from `const char *` to `char *` in
CUFRegisterManagedVariable to match the CUDA runtime API signature of
__cudaRegisterManagedVar, which declares deviceAddress as `char *`.
Commit: b4f50cfd4a3a086db3f88271c9595056a877ef90
https://github.com/llvm/llvm-project/commit/b4f50cfd4a3a086db3f88271c9595056a877ef90
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/src/__support/CPP/bit.h
M libc/src/__support/FPUtil/NearestIntegerOperations.h
M libc/src/__support/FPUtil/bfloat16.h
M libc/src/__support/FPUtil/comparison_operations.h
M libc/src/__support/FPUtil/generic/add_sub.h
M libc/src/__support/FPUtil/generic/div.h
M libc/src/__support/FPUtil/generic/mul.h
M libc/src/__support/FPUtil/rounding_mode.h
M libc/src/__support/math/ceil.h
M libc/src/__support/math/ceilbf16.h
M libc/src/__support/math/ceilf.h
M libc/src/__support/math/ceilf128.h
M libc/src/__support/math/ceilf16.h
M libc/src/__support/math/ceill.h
M libc/test/shared/CMakeLists.txt
A libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
Log Message:
-----------
[libc][math] Qualify ceil functions to constexpr (#184948)
Commit: 08070b75f2a2643ab5eee04e2a6a6e37d006c25e
https://github.com/llvm/llvm-project/commit/08070b75f2a2643ab5eee04e2a6a6e37d006c25e
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/lib/Evaluate/tools.cpp
M flang/lib/Semantics/check-cuda.cpp
A flang/test/Lower/CUDA/cuda-data-transfer-implicit.cuf
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/CUDA/cuda-managed.cuf
Log Message:
-----------
[flang][cuda] Do not check for implicit transfer on managed symbols (#188143)
Avoid to trigger a semantic error when only managed symbols are on the
right hand side.
Commit: 5624cce586c74ec7cfcbd0243f65cb1870677af7
https://github.com/llvm/llvm-project/commit/5624cce586c74ec7cfcbd0243f65cb1870677af7
Author: Ruiling, Song <ruiling.song at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-delay-value-replacement.ll
Log Message:
-----------
AMDGPU: Delay value replacement in PromoteAlloca (#186944)
When we do alloca promotion, there might be cross references to the
values derived from different allocas. RAUW immediately during promotion
may fail to update the values cached in the AllocaAnalysis structure.
Solving the problem by postpone the value replacement, and also the
value deletion as well to make this possible.
Commit: 99a4d78bef28fc0a32e8be24a560ee26f459925d
https://github.com/llvm/llvm-project/commit/99a4d78bef28fc0a32e8be24a560ee26f459925d
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/include/clc/integer/gentype.inc
M libclc/clc/include/clc/math/gentype.inc
Log Message:
-----------
[libclc][NFC] Simplify __CLC_GENTYPE/__CLC_U_GENTYPE/__CLC_S_GENTYPE define in gentype.inc (#188027)
Reduce macro re-definition overhead.
Commit: 0e5e434f999ba0b9011cd30b086512634e355d99
https://github.com/llvm/llvm-project/commit/0e5e434f999ba0b9011cd30b086512634e355d99
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
M mlir/test/Dialect/Affine/ops.mlir
Log Message:
-----------
[affine] Support xori/maxnumf/minnumf reduction types. (#184450)
This is a follow-up on #163310, which supported the above reduction
kinds, but did not update affine.parallel verification code.
Commit: 6a8a1008b56c8a3532b19551292e71216f0ea03e
https://github.com/llvm/llvm-project/commit/6a8a1008b56c8a3532b19551292e71216f0ea03e
Author: Midhunesh <midhunesh.p at ibm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/cmake/base-config-ix.cmake
Log Message:
-----------
[compiler-rt] Error only if sanitizer builds are enabled (#187944)
This fix is to error out only if sanitizer builds are enabled as opposed
to forcing flang to use an option or install the development package.
Commit: 7fc3d6edef2fe3ce799bfc7bc31f46ed68d35e15
https://github.com/llvm/llvm-project/commit/7fc3d6edef2fe3ce799bfc7bc31f46ed68d35e15
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/PointerUnion.h
Log Message:
-----------
[llvm][ADT] Refactor PointerUnion to use PunnedPointer. NFC. (#187950)
Replace `PointerIntPair`-based storage with raw `PunnedPointer<void*>`
and explicit tag encoding. The bit layout stay identical. Use constexpr
functions (`minBits`, `tagBits`, `tagShift`) whose bodies are only
instantiated when called, for incomplete-type compatibility
The goal is to prepare `PointerUnion` for future extension to support
variable-length encoding and allow for more variants than with simple
tags, which will require direct bit manipulation not possible with
`PointerIntPair`.
I benchmarked this with https://github.com/llvm/llvm-project/pull/187874
and the performance is identical on my system.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 79ae4c741940707c5cb44223e25f248c9bb56552
https://github.com/llvm/llvm-project/commit/79ae4c741940707c5cb44223e25f248c9bb56552
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Object/ELF.cpp
Log Message:
-----------
[Object] Normalize BBAddrMap decode address types in ELF (#187962)
This is part of patches to port BBAddrMap to COFF.
DataExtractor::getAddress reads 4 or 8 bytes according to AddressSize and
returns a uint64_t container value. This code path already sets AddressSize
from ELFT::Is64Bits and stores range/function addresses as uint64_t.
Replace temporary uintX_t/unsigned values in this decoder path with uint64_t
and remove the redundant cast from getAddress(). This preserves behavior for
ELF32/ELF64 inputs.
This is a preparatory step for extracting a format-agnostic BBAddrMap decoder.
Commit: d734ead1328675bf644620cc524c8dab10344815
https://github.com/llvm/llvm-project/commit/d734ead1328675bf644620cc524c8dab10344815
Author: LeeYoungJoon <dog3hk.dev at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/PointerArithmeticOnPolymorphicObjectCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/pointer-arithmetic-on-polymorphic-object-all.cpp
Log Message:
-----------
[clang-tidy] Fix false positive in cert-ctr56-cpp (PointerArithmeticOnPolymorphicObjectCheck) (#187452)
## Summary
This change adds `unless(isInstantiationDependent())` to the
`ArraySubscript` matcher.
## Motivation
In template code, some array subscript expressions are not fully
resolved yet.
Because of this, the matcher may treat them incorrectly and produce
false positives.
## Change
This patch skips instantiation-dependent expressions in templates.
It helps the matcher work only on resolved expressions.
Closes https://github.com/llvm/llvm-project/issues/187009.
Commit: 74ca05748f657a39ed53ef50a9a1f8e972f53959
https://github.com/llvm/llvm-project/commit/74ca05748f657a39ed53ef50a9a1f8e972f53959
Author: Jan Voung <jvoung at google.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp
Log Message:
-----------
[clang][dataflow] Fix bugprone-unchecked-optional-access for recent changes to libcxx (#188044)
Fix for https://github.com/llvm/llvm-project/issues/187788
- When checking the receiver with an UncheckedDerivedToBase cast, just
check each component of the chain if we've hit the public optional
class, rather than rely on public vs private/protected inheritance. This
covers the case when the class derives from optional.
- or check if the SubExpr of the cast is already the public optional
type (when not deriving from optional -- since you won't see this first
layer in the cast chain).
See comment about why there is public inheritance to a private base
class at the moment:
https://github.com/llvm/llvm-project/issues/187788#issuecomment-4106543794
The performance doesn't seem much different in several benchmarks.
Perhaps because we first see if the method name matches, which filters a
bunch out.
Also, make the operator* and operator-> calls do this search, since
https://github.com/llvm/llvm-project/pull/185252 moved the methods to
the internal base class.
Update the test mock headers slightly to reflect the operator* and
operator-> change.
Commit: 494b98236fc766b21657bb10b0b9787c5f40cdd6
https://github.com/llvm/llvm-project/commit/494b98236fc766b21657bb10b0b9787c5f40cdd6
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/vector-extract-last-active.ll
Log Message:
-----------
[TargetLowering][RISCV] Using index type for step vector in expandVectorFindLastActive (#187984)
This patch change the type of the step vector lowered from
`expandVectorFindLastActive` from `e8` to the index type of the target
machine.
This can help the index out of bound issue when the VLEN is large.
Note that after this patch, there are still some issue in
expandVectorFindLastActive.
Commit: 6c6b4c154c49eeedc5c0a7e460bf529a73bbfcd6
https://github.com/llvm/llvm-project/commit/6c6b4c154c49eeedc5c0a7e460bf529a73bbfcd6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/test/CodeGen/RISCV/abi-empty-structs.c
M clang/test/CodeGen/RISCV/bfloat-abi.c
M clang/test/CodeGen/RISCV/riscv32-abi.c
M clang/test/CodeGen/RISCV/riscv64-abi.c
Log Message:
-----------
[RISCV] Disable rounding of aggregate return/arguments to iXLen. (#184736)
If the type is rounded to iXLen, an additional zext instruction is
generated. For example, https://godbolt.org/z/bG7vG4dvM
Commit: caf619642a6dbb216969a9450d33dbac5a8d30df
https://github.com/llvm/llvm-project/commit/caf619642a6dbb216969a9450d33dbac5a8d30df
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
A clang/test/ClangScanDeps/p1689-suppress-warnings.cppm
Log Message:
-----------
[ClangScanDeps] Do not emit warning for P1689 format (#186966)
Close https://github.com/llvm/llvm-project/issues/185394
This is only for P1689 format as ClangScanDeps/optimize-vfs-pch.m will
check for warning message. I'll leave this to people who want to change
that.
Commit: a2c6b34193fbcaf76d48d2896c816adb9ee45ffe
https://github.com/llvm/llvm-project/commit/a2c6b34193fbcaf76d48d2896c816adb9ee45ffe
Author: hanbeom <kese111 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
M llvm/test/CodeGen/WebAssembly/load-ext.ll
Log Message:
-----------
[WebAssembly][FastISel] Fold i64 extension chains into widened loads (#187934)
FastISel can already fold some sign- and zero-extending loads, but a
number of i64 extension patterns still leave redundant instructions
behind.
This patch series extends load folding to recognize several such cases,
including:
- promoted sign-extension chains
- copy + i64.extend_i32_{u,s} chains
- AND-based zero-extension chains
- shift-based sign-extension chains
When these patterns originate from narrow integer loads, fold them
directly into widened i64 loads instead of materializing intermediate
i32 loads followed by redundant i64 extends.
Fixes #179672
Commit: fd11cf430e5a9fd11f93bdcc929a1ce8dfa60f37
https://github.com/llvm/llvm-project/commit/fd11cf430e5a9fd11f93bdcc929a1ce8dfa60f37
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/C/C2y/n3622.c
A clang/test/Sema/Inputs/warn-unused-but-set-static-global-header.h
A clang/test/Sema/warn-unused-but-set-static-global.c
A clang/test/Sema/warn-unused-but-set-static-global.cpp
M clang/test/SemaCXX/warn-variable-not-needed.cpp
Log Message:
-----------
[clang] Extend -Wunused-but-set-variable to static globals (#178342)
This PR extends the capability of -Wunused-but-set-variable to track and
diagnose static global variables that are assigned values within a
function but whose values are never used. This change complements
-Wunused-variable, which detects static globals that are neither set nor
used.
I created this change with the help of claude for some initial guidance.
Fixes #148361
Commit: c1a45ffc84eee23c7c330ea16eb08e9cf8fd623e
https://github.com/llvm/llvm-project/commit/c1a45ffc84eee23c7c330ea16eb08e9cf8fd623e
Author: Owen Pan <owenpiano at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/docs/ClangFormatStyleOptions.rst
M clang/include/clang/Format/Format.h
Log Message:
-----------
[clang-format][doc] Add a note to OneLineFormatOffRegex option
Closes #184639
Commit: dee01fbf2c401f7ff3bad8341c2ace6e192915cf
https://github.com/llvm/llvm-project/commit/dee01fbf2c401f7ff3bad8341c2ace6e192915cf
Author: owenca <owenpiano at gmail.com>
Date: 2026-03-23 (Mon, 23 Mar 2026)
Changed paths:
M clang/Maintainers.md
Log Message:
-----------
Step down as clang-format maintainer (#187910)
I'm stepping down as clang-format maintainer and nominating
@HazardyKnusperkeks to take my place.
Commit: bd597259a8543a5705cbdb985612de573e5cb962
https://github.com/llvm/llvm-project/commit/bd597259a8543a5705cbdb985612de573e5cb962
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
M clang/test/SemaTemplate/stack-exhaustion.cpp
M clang/utils/TableGen/ClangOpcodesEmitter.cpp
Log Message:
-----------
[clang][bytecode] Revert tailcalls (#188169)
This _still_ causes problems on aarch64+msan, even when not using
tailcalls at all.
Reverts #173756
Commit: 704c60fe9110256d2698d8e56b8c44ec5d1e733f
https://github.com/llvm/llvm-project/commit/704c60fe9110256d2698d8e56b8c44ec5d1e733f
Author: Dominique Fuchs <df at 0x9d.net>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
M clang/unittests/Tooling/CompilationDatabaseTest.cpp
Log Message:
-----------
[clang][Tooling] Preserve -std flag when transferring compile commands across same-family language (#184560)
Previously, transfering a compile command from e.g. an ObjC++ source
(`.mm) to a C++ header (`.hh`) would drop `-std=c++20` because they
were different languages.
Fixes https://github.com/clangd/clangd/issues/1014
Fixes https://github.com/clangd/clangd/issues/2613
Signed-off-by: Dominique Fuchs <df at 0x9d.net>
Commit: 4444f517e99690c1221f906a8c4c4dec1333cb75
https://github.com/llvm/llvm-project/commit/4444f517e99690c1221f906a8c4c4dec1333cb75
Author: pkarveti <quic_pkarveti at quicinc.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonLoadStoreWidening.cpp
A llvm/test/CodeGen/Hexagon/load-widen-addasl.mir
A llvm/test/CodeGen/Hexagon/store-widen-addasl.mir
Log Message:
-----------
[Hexagon] Optimize load/store instruction during widening (#186962)
This change enhances the Hexagon Load-Store Widening pass to recognize
and optimize a specific pattern involving the S2_addasl_rrri
instruction. When widening loads/stores, the pass now detects cases
where the base register is defined by an S2_addasl_rrri instruction and
combines the operations into a single load double/store double
instruction with register shift op, eliminating the intermediate address
calculation.
Eg, for load,
If the definition of the base register came from a addasl instruction,
we generate a
memd(Rs + Rt << #imm) instead of memd(Rs + #imm) instruction.
Transform:
%18 = S2_addasl_rrri %8, %17, 3
%19 = L2_loadri_io %18, 0
to
%19 = L4_loadrd_rr %8, %17, 3
Patch By: Pavani Karveti <pkarveti at qti.qulacomm.com>
Author: Santanu Das <santdas at qti.qualcomm.com>
Co-authored-by: quic-santdas <quic_santdas at quicinc.com>
Commit: a8b669ba6ee4ec3eb523d91deaf28ef0f8734100
https://github.com/llvm/llvm-project/commit/a8b669ba6ee4ec3eb523d91deaf28ef0f8734100
Author: Aleksandr Platonov <arcsinx45 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang-tools-extra/Maintainers.rst
Log Message:
-----------
[clangd] Add ArcsinX as a maintainer (#187886)
To address clangd maintance problem, I'm nominating myself as a clangd
maintainer.
I'm currently actively reviewing PRs. I also participated in
clangd-related discourse discussions, subscribed to clangd issues and
PRs. For a while I plan to spend some time for PRs review in clangd.
Commit: c378b79c145a36c6c45dcedd8dc197e001a75a64
https://github.com/llvm/llvm-project/commit/c378b79c145a36c6c45dcedd8dc197e001a75a64
Author: Ruiling, Song <ruiling.song at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
R llvm/test/CodeGen/AMDGPU/promote-alloca-delay-value-replacement.ll
Log Message:
-----------
Revert "AMDGPU: Delay value replacement in PromoteAlloca (#186944)" (#188180)
This reverts commit 5624cce586c74ec7cfcbd0243f65cb1870677af7.
This is causing libclc failure. revert to fix it properly.
Commit: 85e1c641eba7628070b561089af787ed5d07ed86
https://github.com/llvm/llvm-project/commit/85e1c641eba7628070b561089af787ed5d07ed86
Author: David Sherwood <david.sherwood at arm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/2016-07-27-loop-vec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll
M llvm/test/Transforms/LoopVectorize/AArch64/nontemporal-load-store.ll
M llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_prefer_scalable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/pr33053.ll
M llvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll
M llvm/test/Transforms/LoopVectorize/AArch64/prefer-fixed-if-equal-to-scalable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-illegal-type.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-invalid-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-known-trip-count.ll
M llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-allowed.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-loop-hint.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-prefer-flag.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-reductions-allowed.ll
M llvm/test/Transforms/LoopVectorize/Hexagon/minimum-vf.ll
M llvm/test/Transforms/LoopVectorize/LoongArch/loongarch-interleaved.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/interleave_IC.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/optimal-epilog-vectorization-profitability.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/predcost.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-bswap.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-call.ll
M llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-vfabi-attr.ll
M llvm/test/Transforms/LoopVectorize/RISCV/illegal-type.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-interleaved.ll
M llvm/test/Transforms/LoopVectorize/Sparc/no-vectorize.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs-03.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/VE/disable_lv.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-half.ll
M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.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/interleaved-accesses-use-after-free.ll
M llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
M llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
M llvm/test/Transforms/LoopVectorize/X86/pr54634.ll
M llvm/test/Transforms/LoopVectorize/X86/reg-usage-debug.ll
M llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
M llvm/test/Transforms/LoopVectorize/X86/tail_folding_and_assume_safety.ll
M llvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll
M llvm/test/Transforms/LoopVectorize/X86/uniformshift.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/X86/x86-pr39099.ll
M llvm/test/Transforms/LoopVectorize/diag-missing-instr-debug-loc.ll
M llvm/test/Transforms/LoopVectorize/diag-with-hotness-info-2.ll
M llvm/test/Transforms/LoopVectorize/diag-with-hotness-info.ll
M llvm/test/Transforms/LoopVectorize/discriminator.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-const-TC.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_detection.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_nonuniform_inner.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_uniform_diverg_branch.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/fix-reduction-dbg.ll
M llvm/test/Transforms/LoopVectorize/forked-pointers.ll
M llvm/test/Transforms/LoopVectorize/induction-ptrcasts.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-1.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-2.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-masked-group.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-uniform-load.ll
M llvm/test/Transforms/LoopVectorize/libcall-remark.ll
M llvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll
M llvm/test/Transforms/LoopVectorize/memdep.ll
M llvm/test/Transforms/LoopVectorize/memory-dep-remarks.ll
M llvm/test/Transforms/LoopVectorize/middle-block-dbg.ll
M llvm/test/Transforms/LoopVectorize/no_array_bounds_scalable.ll
M llvm/test/Transforms/LoopVectorize/nounroll.ll
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
M llvm/test/Transforms/LoopVectorize/outer_loop_scalable.ll
M llvm/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
M llvm/test/Transforms/LoopVectorize/pr31098.ll
M llvm/test/Transforms/LoopVectorize/pr33706.ll
M llvm/test/Transforms/LoopVectorize/pr35773.ll
M llvm/test/Transforms/LoopVectorize/pr38800.ll
M llvm/test/Transforms/LoopVectorize/pr39099.ll
M llvm/test/Transforms/LoopVectorize/pr51614-fold-tail-by-masking.ll
M llvm/test/Transforms/LoopVectorize/runtime-check.ll
M llvm/test/Transforms/LoopVectorize/tail-folding-counting-down.ll
M llvm/test/Transforms/LoopVectorize/unroll-novec-memcheck-metadata.ll
M llvm/test/Transforms/LoopVectorize/vect-phiscev-sext-trunc.ll
M llvm/test/Transforms/LoopVectorize/vectorizeVFone.ll
Log Message:
-----------
[LV][NFC] Remove some unused attributes from tests (#188091)
The local_unnamed_addr and dso_local attributes add no value to any of
the tests and simply increase file size, so I've removed all instances.
Commit: 428995b49750a97fe4993aa4b2ab3de86c173481
https://github.com/llvm/llvm-project/commit/428995b49750a97fe4993aa4b2ab3de86c173481
Author: Honey Goyal <honeygoyal24 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/tools/sancov/XCOFF/lit.local.cfg
A llvm/test/tools/sancov/XCOFF/xcoff-sancov-symbols.test
M llvm/tools/sancov/sancov.cpp
Log Message:
-----------
Add XCOFF object file support in sanitizer coverage tool (#179884)
The sancov tool fails to find coverage symbols in XCOFF object files
because XCOFF uses a "." prefix for function entry point symbols. For
example, `__sanitizer_cov_trace_pc_guard appears` as
`.__sanitizer_cov_trace_pc_guard` in the symbol table.
Before this change, sancov reports:
`ERROR: __sanitizer_cov* functions not found`
This change strips the prefix "." when checking symbol names in XCOFF
files, allowing sancov to correctly identify coverage symbols.
---------
Co-authored-by: Honey Goyal <honey.goyal3 at ibm.com>
Commit: ef5658a289e24fa145663a1c22e0751d6c12991c
https://github.com/llvm/llvm-project/commit/ef5658a289e24fa145663a1c22e0751d6c12991c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/conversion/clc_convert_float.inc
Log Message:
-----------
libclc: Simplify rtz conversion (#188137)
Commit: 31aa52086fb2208f451be9e22197ae1a63cdc4af
https://github.com/llvm/llvm-project/commit/31aa52086fb2208f451be9e22197ae1a63cdc4af
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/conversion/clc_convert_float.inc
M libclc/clc/lib/generic/conversion/clc_convert_float2float.cl
M libclc/clc/lib/generic/conversion/clc_convert_int2float.cl
Log Message:
-----------
libclc: Use nextup and nextdown in place of nextafter (#188141)
Unfortunately it seems the optimizer isn't able to clean this
up, so this is a code quality improvement.
Commit: f7fb46701a374d2a15d9e79197f21b128e249b95
https://github.com/llvm/llvm-project/commit/f7fb46701a374d2a15d9e79197f21b128e249b95
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-coeff-may-zero.ll
Log Message:
-----------
[DA] Add a test where the Weak Crossing SIV test misses dependency (NFC) (#188183)
The root cause is that the Weak Crossing SIV test assumes the
coefficients are non‑zero without verifying it.
Commit: ff68154480eccdfeaa18d87fd6d83906e93a85c1
https://github.com/llvm/llvm-project/commit/ff68154480eccdfeaa18d87fd6d83906e93a85c1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_asin.cl
M libclc/clc/lib/generic/math/clc_asin.inc
Log Message:
-----------
libclc: Update asin (#188094)
This was originally ported from rocm device libs in
64a8e1b83e14836f97dab4d28dae498e897804e6. Update for more
recent changes.
Commit: cba948b2b93cc5d51f70f0fa0d66bc5cacef9d76
https://github.com/llvm/llvm-project/commit/cba948b2b93cc5d51f70f0fa0d66bc5cacef9d76
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A libclc/clc/include/clc/math/clc_atan_helpers.h
A libclc/clc/include/clc/math/clc_atan_helpers_decl.inc
M libclc/clc/lib/generic/CMakeLists.txt
M libclc/clc/lib/generic/math/clc_atan.cl
M libclc/clc/lib/generic/math/clc_atan.inc
A libclc/clc/lib/generic/math/clc_atan_helpers.cl
A libclc/clc/lib/generic/math/clc_atan_helpers.inc
Log Message:
-----------
libclc: Update atan (#188095)
This was originally ported from rocm device libs in
47882923c7b48c00d6c0ea9960b5457e957093c4. Merge in more
recent changes.
Commit: 2e39b1e56025f6fad5b5f84cdf4051b4d1475ec0
https://github.com/llvm/llvm-project/commit/2e39b1e56025f6fad5b5f84cdf4051b4d1475ec0
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
Log Message:
-----------
[ORC] Add a bootstrap symbols JITDylib to ExecutionSession. (#188172)
The ExecutionSession constructor now creates a "<bootstrap>" JITDylib
and populates it with the bootstrap symbols from the
ExecutorProcessControl object. This allows bootstrap symbols to be
looked up via ExecutionSession::lookup, providing greater consistency
with other JIT symbol lookups.
Commit: 32c6a53b767850183208aff8b783e6bc08f21515
https://github.com/llvm/llvm-project/commit/32c6a53b767850183208aff8b783e6bc08f21515
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/conversion/clc_convert_float.inc
M libclc/clc/lib/generic/conversion/clc_convert_float2float.cl
Log Message:
-----------
libclc: Fix -cl-denorms-are-zero for rtp and rtn conversions (#188148)
Commit: 1a5e52168c0bef0c5abecb89e9f18253f8a43dda
https://github.com/llvm/llvm-project/commit/1a5e52168c0bef0c5abecb89e9f18253f8a43dda
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_ep_decl.inc
M libclc/clc/lib/generic/math/clc_ep.inc
M libclc/clc/lib/generic/math/clc_log1p.cl
M libclc/clc/lib/generic/math/clc_log1p.inc
Log Message:
-----------
libclc: Update log1p (#188186)
Commit: d1b9b4c5488f051a84669b2f8e4b038f49ba4c22
https://github.com/llvm/llvm-project/commit/d1b9b4c5488f051a84669b2f8e4b038f49ba4c22
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Passes/AsmDump.cpp
M llvm/include/llvm/MC/MCELFStreamer.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/MC/MCWinCOFFStreamer.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/tools/llvm-ml/Disassembler.cpp
M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
M llvm/unittests/MC/DwarfLineTableHeaders.cpp
Log Message:
-----------
[MC] Remove unused NoExecStack parameter from MCStreamer::initSections. NFC (#188184)
Unused after commit 34bc5d580b73c0ca79653bb03e5c50419be2c634
Commit: fbddf80156a831179d5b12c213721d2368704776
https://github.com/llvm/llvm-project/commit/fbddf80156a831179d5b12c213721d2368704776
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/include/clang/AST/ASTMutationListener.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/lib/Frontend/MultiplexConsumer.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Serialization/ASTWriter.cpp
A clang/test/Modules/class-instantiate-no-change-02.cppm
A clang/test/Modules/special-member-definitions.cppm
Log Message:
-----------
[C++20] [Modules] Apply DeclUpdate lazily in reduced BMI (#175498)
Previously we will apply all decl update unconditionally, but it might
not be best. See the attached example
'class-instantiate-no-change-02.cppm' for example. Sometimes these BMIs
are reducible.
Would land after 22 cut.
Commit: b929f2f0189ef3698d7b65168ff51976bb6f86e2
https://github.com/llvm/llvm-project/commit/b929f2f0189ef3698d7b65168ff51976bb6f86e2
Author: Wenju He <wenju.he at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/gentype.inc
M libclc/clc/include/clc/relational/binary_decl.inc
M libclc/clc/include/clc/relational/unary_decl.inc
M libclc/clc/lib/generic/atomic/clc_atomic_exchange.cl
M libclc/clc/lib/generic/atomic/clc_atomic_load.cl
M libclc/clc/lib/generic/atomic/clc_atomic_store.cl
M libclc/clc/lib/generic/common/clc_sign.inc
M libclc/opencl/lib/generic/relational/relational_binary_def.inc
M libclc/opencl/lib/generic/relational/relational_unary_def.inc
Log Message:
-----------
[libclc][NFC] Remove __CLC_BIT_INTN macro (#188023)
This macro was originally introduced in 64735ad63975 for relational
built-ins. It is functionally identical to __CLC_S_GENTYPE. Replacing it
simplifies gentype.inc, which is widely used in the library.
Commit: d607d6f78f803d51a961d991811f0f2f439f695a
https://github.com/llvm/llvm-project/commit/d607d6f78f803d51a961d991811f0f2f439f695a
Author: Alexey Merzlyakov <60094858+AlexeyMerzlyakov at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/test/CodeGen/AArch64/cls.ll
M llvm/test/CodeGen/AArch64/pr61549.ll
M llvm/test/CodeGen/VE/Scalar/ctlz.ll
Log Message:
-----------
[LegalizeTypes] Keep non-negative info in SUB(CTLZ) (#186338)
When legalizing CTLZ for a wider type with a SUB bit-width compensation,
the result for a zero-defined case can have an extra bit that exceeds
the maximum value of the original type width. Unlike CTLS, which covers
all bits within its type width, CTLZ leads to producing undefined
KnownBits. So, after subtraction, the KnownBits could represent a
negative value, which prevents subsequent optimizations.
This patch ensures that non-negative information is preserved during the
SUB(CTLZ) expansion, so that KnownBits after SUB will take a stricter
range within the type width, thus allowing further combine optimizations
following by SUB. Particularly, this enables the DAG Combiner to remove
unnecessary AND instructions for CTLZ output type conversion.
Fixes #136516
---------
Co-authored-by: Simon Pilgrim <git at redking.me.uk>
Commit: 96fb2942cb522b05f773f7492c1c125c7aef620c
https://github.com/llvm/llvm-project/commit/96fb2942cb522b05f773f7492c1c125c7aef620c
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/test/asan/TestCases/disable_container_overflow_checks.cpp
M compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.cpp
Log Message:
-----------
[ASan] Enable __SANITIZER_DISABLE_CONTAINER_OVERFLOW__ tests (#181721)
Now that the corresponding libcxx change has landed, these tests should
be passing on some platforms.
This patch re-enables them for all platforms, so that we can see which
bots these do not work on and mark them unsupported accordingly.
rdar://167946476
Commit: 76177971a8f74f533a136577b8f709df96cd6b37
https://github.com/llvm/llvm-project/commit/76177971a8f74f533a136577b8f709df96cd6b37
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/tools/opt/mattr-mcpu-help.ll
M llvm/tools/opt/optdriver.cpp
Log Message:
-----------
[opt] Enable -mcpu=help without an input file (#187876)
This patch enables `-mcpu=help` or `-mattr=help` invocation without an
input file, like `llc`. For example, the following command `opt
-mtriple=aarch64 -mattr=help` would previously hang but now it succeeds.
The implementation is similar to llc, creating a target machine for help
printing side effects and existing early. Note: llc has a bug in the
default triple handling that we already fix here upfront. Ill submit a
separate fix for llc.
Commit: 5e79d9798584e04fa03e48dd50ba152f74266ff0
https://github.com/llvm/llvm-project/commit/5e79d9798584e04fa03e48dd50ba152f74266ff0
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/test/tools/llc/mattr-mcpu-help.ll
M llvm/test/tools/llc/mtune.ll
M llvm/tools/llc/llc.cpp
Log Message:
-----------
[llc] Fix -mcpu=help for default target triple (#187878)
Previously, a command like `llc -mcpu=help` would fail on invalid target
triple, due to wrongly passing empty target to `Triple::normalize`
resulting in `unknown`.
Commit: 65b576d2b0c49adf2d477e90b43ea9ef35b165c3
https://github.com/llvm/llvm-project/commit/65b576d2b0c49adf2d477e90b43ea9ef35b165c3
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
A llvm/test/CodeGen/AMDGPU/atomic_optimizations_single_lane.ll
Log Message:
-----------
[AMDGPU] Disable atomic optimizer for single lane execution (#187915)
Optimized IR will have worse performance when only a single lane is
active. Disable optimizer when single lane is expected at compile time.
Commit: 34875331d956862d6f5b750c0bcf026d40564671
https://github.com/llvm/llvm-project/commit/34875331d956862d6f5b750c0bcf026d40564671
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/Headers/ptrauth.h
M compiler-rt/lib/builtins/crtbegin.c
Log Message:
-----------
[PAC][compiler-rt] Use `__ptrauth` qualifier instead of builtins (#188109)
Since #100830 has landed, we no longer need to rely on builtins
Commit: ff3632cdf37c94a4eb830c6cd501b3067a79163d
https://github.com/llvm/llvm-project/commit/ff3632cdf37c94a4eb830c6cd501b3067a79163d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_lgamma_r.h
A libclc/clc/include/clc/math/clc_lgamma_r_decl.inc
M libclc/clc/include/clc/shared/binary_with_out_arg_scalarize.inc
A libclc/clc/include/clc/shared/unary_with_out_arg_scalarize_loop.inc
M libclc/clc/lib/generic/math/clc_lgamma_r.cl
M libclc/clc/lib/generic/math/clc_lgamma_r.inc
A libclc/clc/lib/generic/math/clc_lgamma_r_stret.inc
Log Message:
-----------
libclc: Update lgamma_r (#188065)
This was originally ported from rocm device libs in
0ab07e1bde7d002f1a4c30babb6241c0cc366320. Merge
in more recent changes.
Commit: 641569de4e07f3a38af6720cabd84a91c73d8143
https://github.com/llvm/llvm-project/commit/641569de4e07f3a38af6720cabd84a91c73d8143
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_tgamma.cl
A libclc/clc/lib/generic/math/clc_tgamma.inc
Log Message:
-----------
libclc: Improve tgamma handling (#188066)
Commit: 8f85bb16548c67eba62d3458afd21d311ab4d478
https://github.com/llvm/llvm-project/commit/8f85bb16548c67eba62d3458afd21d311ab4d478
Author: Chris Cotter <ccotter14 at bloomberg.net>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/lib/Pass/PassRegistry.cpp
Log Message:
-----------
[mlir][nfc] Fix gcc compiler error on destructor in PassRegistry.cpp (#187900)
Remove template arguments from out-of-line destructor definition, as
C++20 does not allow template-ids on destructors.
Commit: f243d8656b11e915f6edbffeed2c4afefb67a69f
https://github.com/llvm/llvm-project/commit/f243d8656b11e915f6edbffeed2c4afefb67a69f
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/utils/git/github-automation.py
Log Message:
-----------
[llvm][utils] Handle Issue/PR authors having no display name set (#186094)
user.login is the account name and user.name is an optional display name
(often their full name). I got an email generated from a colleague's PR
that said:
```
Author: None (<their username>)
```
As they hadn't set user.name in their account. Which isn't a problem,
but it would be neater if we didn't print None.
So I've added a helper function to handle that. If the user has set
both, the output is as it was before, if the user has not, we just show
the login name.
The login name can apparently be None too. In that case we'll print
"None" for it. This does not seem to be a common case though, and I'm
not sure printing anything else would be any more useful.
Commit: 040b7e0a1deb08702cf2c929f2f3bb9c62bd3b0c
https://github.com/llvm/llvm-project/commit/040b7e0a1deb08702cf2c929f2f3bb9c62bd3b0c
Author: Markus Böck <markus.boeck02 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/PointerUnion.h
Log Message:
-----------
Revert "[llvm][ADT] Refactor PointerUnion to use PunnedPointer. NFC." (#188210)
Reverts llvm/llvm-project#187950
Commit: fe105347e2b6092ef4ce9704bcbdbcf6ad7d3d6b
https://github.com/llvm/llvm-project/commit/fe105347e2b6092ef4ce9704bcbdbcf6ad7d3d6b
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-24 (Tue, 24 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
M llvm/test/CodeGen/RISCV/rvv/cttz-elts.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-elts.ll
Log Message:
-----------
[SelectionDAG] Expand CTTZ_ELTS[_ZERO_POISON] and handle splitting (#185605)
Currently a cttz.elts of e.g. nxv32i1 will get expanded to a reduction
of nxv32i64 or equivalent, but we can split it into two legal nxv16i1
cttz.elts once we have dedicated SelectionDAG nodes.
This implements the splitting for them the same way we implement type
splitting for vp.cttz.elts, i.e. check if the low result is VF, and if
so add it to the result of the high result. It also implements operand
type promotion for NEON which needs to promote i1 vectors to something
larger first.
We also need to move expansion into LegalizeVectorOps so it doesn't get
expanded before type legalization can do splitting. This uses
LegalizeVectorOps in case the scalar reduction type, which depends on
the minimum bitwidth needed to store the result, still needs type
promotion.
The TTI costs should be updated after this to reflect the more efficient
codegen, but that is deferred to another PR.
Commit: 1a5d1763595dd424d127da6e26dcc4e6ad481e3b
https://github.com/llvm/llvm-project/commit/1a5d1763595dd424d127da6e26dcc4e6ad481e3b
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang-rt/unittests/Runtime/Stop.cpp
Log Message:
-----------
[flang-rt] Fix test isolation, fixture usage, and other issues in Stop.cpp tests (#188155)
- Use TEST_F instead of TEST so CrashHandlerFixture::SetUp() is actually
called, registering the custom crash handler for death tests.
- Move putenv/executionEnvironment.Configure calls inside EXPECT_EXIT
blocks so they run in the forked child process, preventing the
NO_STOP_MESSAGE environment variable and configured global state from
leaking into subsequent tests.
- Replace const_cast<char *>("NO_STOP_MESSAGE=1") with a mutable static
char array, to avoid casting away constness of a string literal.
- Update CrashTest's expected pattern to match the output format of the
custom crash handler installed by CrashHandlerFixture, which was
previously never invoked due to the TEST vs TEST_F bug. (Note: there was
a buildbot failure related to this:
https://lab.llvm.org/buildbot/#/builders/130/builds/18413 )
Assisted-by: AI
Commit: 1b255ef5acdc5ebb14320efb135377f3b417c958
https://github.com/llvm/llvm-project/commit/1b255ef5acdc5ebb14320efb135377f3b417c958
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_ep.cl
M libclc/clc/lib/generic/math/clc_expm1.cl
M libclc/clc/lib/generic/math/clc_expm1.inc
Log Message:
-----------
libclc: Update expm1 (#188209)
This was originally ported from rocm device libs in
900bd7eb7f5426ad13f624cbf29716afe376c878. Merge in more
recent changes.
Commit: d491f702062d5ca14a7f633baf4b307a900fc02f
https://github.com/llvm/llvm-project/commit/d491f702062d5ca14a7f633baf4b307a900fc02f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_ep_decl.inc
M libclc/clc/lib/generic/math/clc_ep.inc
M libclc/clc/lib/generic/math/clc_sinh.cl
M libclc/clc/lib/generic/math/clc_sinh.inc
Log Message:
-----------
libclc: Update sinh (#188213)
This was originally ported from rocm device libs in
9f7172965c650627c020264e9dbdb32d005ce69e. Merge in more
recent changes.
Commit: c15edf8208f01b2bde0b7dfcbe9ac05757cdefb7
https://github.com/llvm/llvm-project/commit/c15edf8208f01b2bde0b7dfcbe9ac05757cdefb7
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/shared/math/cbrtf.h
Log Message:
-----------
[libc] cbrtf guard to sync with general format (#188207)
This PR intends to make the cbrtf guard sync with the general format (
as other functions consistently use `LLVM_LIBC_SHARED_MATH_<func>_H`).
This was found during refactoring cbrtbf16.
Commit: aeba5d62e5352aa3ed2f0d5a6a563ac873dde716
https://github.com/llvm/llvm-project/commit/aeba5d62e5352aa3ed2f0d5a6a563ac873dde716
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_cosh.cl
M libclc/clc/lib/generic/math/clc_cosh.inc
Log Message:
-----------
libclc: Update cosh (#188214)
This was originally ported from rocm device libs in
9cb070f96a8a9af5f513ffba0a8eed362623f216. Merge in more
recent changes.
Commit: f1931cb6df0f66204f878647b9c341d3d57de241
https://github.com/llvm/llvm-project/commit/f1931cb6df0f66204f878647b9c341d3d57de241
Author: Konrad Kleine <kkleine at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp
M llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp
M llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp
Log Message:
-----------
[llvm][DebugInfo] Use formatv instead of format in DebugAbbrev/Addr/ArangeSet (#186768)
This relates to #35980.
Commit: 3286de333b691d3d815939ce5618f85be71b1575
https://github.com/llvm/llvm-project/commit/3286de333b691d3d815939ce5618f85be71b1575
Author: Konrad Kleine <kkleine at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp
Log Message:
-----------
[llvm][DebugInfo] DWARFCompileUnit use formatv instead of format (#186761)
This relates to #35980.
Commit: f046f4518dc7c707289b2fc8b748d3034cfa4c15
https://github.com/llvm/llvm-project/commit/f046f4518dc7c707289b2fc8b748d3034cfa4c15
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_tanh.cl
M libclc/clc/lib/generic/math/clc_tanh.inc
Log Message:
-----------
libclc: Update tanh (#188215)
This was originally ported from rocm device libs in
f51df5ba8c4512dbeb7828ac0c34f89177b551d6. Merge in more
recent changes.
Commit: fcc9ce94f6ba54484e2438aa5d456cc5dcaa40b6
https://github.com/llvm/llvm-project/commit/fcc9ce94f6ba54484e2438aa5d456cc5dcaa40b6
Author: Konrad Kleine <kkleine at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/DebugInfo/BTF/BTFParser.cpp
Log Message:
-----------
[llvm][DebugInfo] BTFParser use formatv instead of format (#186109)
This relates to #35980.
Commit: 25da0c8ddbefc7b9c519dc45ae582ec6f5d9121c
https://github.com/llvm/llvm-project/commit/25da0c8ddbefc7b9c519dc45ae582ec6f5d9121c
Author: Konrad Kleine <kkleine at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/unittests/Support/FormatVariadicTest.cpp
Log Message:
-----------
[llvm][DebugInfo] Make to be formatted test value 64-bit (#188211)
Commit: 80245f3b1471c264cdac87f1d8ceb7169f5f68d6
https://github.com/llvm/llvm-project/commit/80245f3b1471c264cdac87f1d8ceb7169f5f68d6
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_asinh.cl
M libclc/clc/lib/generic/math/clc_asinh.inc
Log Message:
-----------
libclc: Update asinh (#188219)
This was originally ported from rocm device libs in
2b4ef39b2f46acf29294f1fbb223ea5a243c2567. Merge in more
recent changes.
Commit: 7d39664a6ae8daaf186b65578492244d96a50bf2
https://github.com/llvm/llvm-project/commit/7d39664a6ae8daaf186b65578492244d96a50bf2
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-24 (Tue, 24 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
M llvm/test/CodeGen/RISCV/rvv/cttz-elts.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-elts.ll
Log Message:
-----------
Revert "[SelectionDAG] Expand CTTZ_ELTS[_ZERO_POISON] and handle splitting" (#188220)
Reverts llvm/llvm-project#185605
Buildbot failures caused by ISel crashes in
https://lab.llvm.org/buildbot/#/builders/157/builds/45416 and
https://lab.llvm.org/buildbot/#/builders/10/builds/25156
Commit: ad39e5a6b84819b75581ab8b1adafd1c8ffc9899
https://github.com/llvm/llvm-project/commit/ad39e5a6b84819b75581ab8b1adafd1c8ffc9899
Author: Twice <twice at apache.org>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/docs/Bindings/Python.md
Log Message:
-----------
[MLIR][Python][Docs] Fix example of Python-defined dialects (#188174)
Some breaking changes are introduced in #186574 for Python-defined
dialects. So we need to fix the example in the docs.
Commit: 2857f3bb6af5b7befee796c7ad3bb4edf8b6b028
https://github.com/llvm/llvm-project/commit/2857f3bb6af5b7befee796c7ad3bb4edf8b6b028
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaSYCL.cpp
M clang/test/ASTSYCL/ast-dump-sycl-kernel-call-stmt.cpp
M clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
Log Message:
-----------
[clang][SYCL] Strip references from generated kernel argument types (#186788)
Prior to this patch kernel generation copied kernel argument types
exactly as they're written in function's signature of the function
attributed with [[clang::sycl_kernel_entry_point]] attribute. This
caused generation of kernels that have reference kernel argument instead
of byval kernel argument.
SYCL 2020 doesn't allow reference kernel arguments and it doesn't seem
to work with the backends.
Arguments to [[clang::sycl_kernel_entry_point]]-attributed function can
be big, so we preserve references during host code generation to avoid
performance issues in SYCL Runtime library implementation because the
same function will be used for actual kernel argument setting via
sycl_kernel_launch interface.
Note that we still need to diagnose references in user's kernel
arguments since they are explicitly not allowed by SYCL 2020 spec and
this task is in TODO list. This patch simply removes references from
types written in SYCL Runtime library.
Assisted-by: claude in test writing.
Commit: 8b224162fa6aa6ebb6dd963c89b45571b1b0c8e5
https://github.com/llvm/llvm-project/commit/8b224162fa6aa6ebb6dd963c89b45571b1b0c8e5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
R libclc/clc/include/clc/math/clc_ep_log.h
R libclc/clc/include/clc/math/clc_ep_log_decl.inc
M libclc/clc/lib/generic/CMakeLists.txt
M libclc/clc/lib/generic/math/clc_acosh.cl
M libclc/clc/lib/generic/math/clc_acosh.inc
R libclc/clc/lib/generic/math/clc_ep_log.cl
R libclc/clc/lib/generic/math/clc_ep_log.inc
Log Message:
-----------
libclc: Update acosh (#188224)
libclc: Update acosh
This was originally ported from rocm device libs
in ca4d382e119e1389c83dbb07d9ca0085e88b2944. Merge in
more recent changes.
Remove unused ep_log.
Commit: 46205ff9b4cbe2bc18cc6600f0acf76bb4810053
https://github.com/llvm/llvm-project/commit/46205ff9b4cbe2bc18cc6600f0acf76bb4810053
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_atanh.cl
M libclc/clc/lib/generic/math/clc_atanh.inc
Log Message:
-----------
libclc: Update atanh (#188225)
Commit: b1aa6a45060bb9f89efded9e694503d6b4626a4a
https://github.com/llvm/llvm-project/commit/b1aa6a45060bb9f89efded9e694503d6b4626a4a
Author: Denis.G <34353767+DenisGZM at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
M llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/LowLevelTypeUtils.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGenTypes/LowLevelType.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-subvector.ll
M llvm/test/CodeGen/AArch64/GlobalISel/pr168872.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-gep.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument-multiple.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument.ll
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid0.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid1.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid2.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err0.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err1.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err10.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err11.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err12.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err13.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err14.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err15.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err2.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err4.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err5.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err6.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err7.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err8.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err9.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid0.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid1.mir
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
M llvm/test/TableGen/GlobalISelEmitter/HwModes.td
M llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
A llvm/unittests/CodeGen/GlobalISel/IRTranslatorBF16Test.cpp
M llvm/utils/TableGen/Common/CMakeLists.txt
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.h
Log Message:
-----------
[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)
Added extra information in LLT to support ambiguous fp types during
GlobalISel. Original idea by @tgymnich
Main differences from https://github.com/llvm/llvm-project/pull/122503
are:
* Do not deprecate LLT::scalar
* Allow targets to enable/disable IR translation with extenden LLT via
`TargetOption::EnableGlobalISelExtendedLLT` (disabled by default)
* `IRTranslator` use `TargetLoweringInfo` for appropriate `LLT`
generation.
* For this reason added flag in GlobalISelMatchTable` to allow switch
between legacy and new extended LLT names
* Revert using stubs like `LLT::float32` for float types as they are
real now. Added `TODO` for such cases.
Also MIRParser now may parse new type indentifiers.
---------
Co-authored-by: Tim Gymnich <tim at gymni.ch>
Co-authored-by: Ryan Cowan <ryan.cowan at arm.com>
Commit: 8a61e8f816b8f960e3671d458cc3b74f3c9131dc
https://github.com/llvm/llvm-project/commit/8a61e8f816b8f960e3671d458cc3b74f3c9131dc
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Facts.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
M clang/lib/Analysis/LifetimeSafety/MovedLoans.cpp
M clang/test/Sema/warn-lifetime-safety-dataflow.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
Log Message:
-----------
[LifetimeSafety] Introduce AccessPath-based expiry (#187708)
Refactored the loan system to use access paths instead of loan IDs for
expiry tracking, consolidating PathLoan and PlaceholderLoan into a
unified Loan class.
This is a non-functional refactoring to move towards more granular
paths. This also removes a quadratic complexity of `handleLifetimeEnds`
where we iterated over all loans to find which loans expired.
Commit: 17d28a5b53b04c6a89ff3087a3fb57f462e563fa
https://github.com/llvm/llvm-project/commit/17d28a5b53b04c6a89ff3087a3fb57f462e563fa
Author: yronglin <yronglin777 at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Lex/PPDirectives.cpp
M clang/test/CXX/module/dcl.dcl/dcl.module/p1.cpp
Log Message:
-----------
[clang] Don't crash when module directive `export module foo` not following a semicolon and there are no rest pp-tokens in current module file (#187845)
This PR add the missing check of nullable `std::optional<Token>` object
when the module directive `export module foo` not following a semicolon
and there are no rest pp-tokens in current module file.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>
Commit: 95d54423d9abb3ed577f68e32b1c158cf984193a
https://github.com/llvm/llvm-project/commit/95d54423d9abb3ed577f68e32b1c158cf984193a
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
M flang/test/Fir/declare_value-codegen.fir
M flang/test/Integration/debug-allocatable-1.f90
M flang/test/Integration/debug-common-block-1.f90
M flang/test/Integration/debug-complex-1.f90
M flang/test/Integration/debug-complex-2.f90
M flang/test/Integration/debug-fixed-array-type-2.f90
M flang/test/Integration/debug-local-var-2.f90
M flang/test/Integration/debug-module-2.f90
M flang/test/Integration/debug-proc-ptr-e2e.f90
M flang/test/Integration/debug-ptr-type.f90
M flang/test/Transforms/debug-allocatable-1.fir
M flang/test/Transforms/debug-associate-component.fir
M flang/test/Transforms/debug-complex-1.fir
M flang/test/Transforms/debug-derived-type-1.fir
M flang/test/Transforms/debug-fixed-array-type.fir
M flang/test/Transforms/debug-fn-info.fir
M flang/test/Transforms/debug-index-type.fir
M flang/test/Transforms/debug-local-var.fir
M flang/test/Transforms/debug-module-1.fir
M flang/test/Transforms/debug-module-2.fir
M flang/test/Transforms/debug-proc-ptr.fir
M flang/test/Transforms/debug-ptr-type.fir
M flang/test/Transforms/debug-vector-type.fir
Log Message:
-----------
[flang][debug] Always include (kind=X) suffix in debug type names (#186255)
Previously, 32-bit types (integer, real, logical, complex) were printed
without the (kind=4) suffix in DWARF debug type names, while other sizes
always included the kind suffix. This inconsistency is now removed by
always appending (kind=X) to all basic type names, making the format
uniform across all type sizes.
Fixes https://github.com/llvm/llvm-project/issues/119478.
Commit: 4961700c1004067dab2454df09a0de6b02410025
https://github.com/llvm/llvm-project/commit/4961700c1004067dab2454df09a0de6b02410025
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/shared/rpc.h
M libc/shared/rpc_util.h
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/include/RPC.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/common/src/RPC.cpp
Log Message:
-----------
[libc] Support AMDGPU device interrupts for the RPC interface (#188067)
Summary:
One of the main disadvantages to using the RPC interface is that it
requires a server thread to spin on the mailboxes checking for work.
The vast majority of the time, there will be no work and work will come
in large bursts.
The HSA / KFD interface supports device-side interrupts and already has
handling for binding these events to an HSA signal. This means that we
can send interrupts from the GPU to wake a sleeping thread on the CPU.
The sleeping thread will be descheduled with a blocking HSA wait call
and woken up when its event ID is raised through the kernel driver's
interrupt.
This is very target-specific handling, but I believe it is valuable
enough to warrant it being in the protocol. It is completely optional,
as it is ignored if uninitialized. This should bring this support at
parity with the interface HIP expects.
Commit: fb3c8228ed362ed2f778ff44382d61af2395790f
https://github.com/llvm/llvm-project/commit/fb3c8228ed362ed2f778ff44382d61af2395790f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/cttz-elts.ll
Log Message:
-----------
[RISCV] canCreateUndefOrPoisonForTargetNode - RISCVISD::READ_VLENB nodes don't create undef/poison (#188231)
Fixes a number of regressions in an upcoming FREEZE patch
Commit: 7af471a8eda3e1882657115d36eb000df3ffa5fd
https://github.com/llvm/llvm-project/commit/7af471a8eda3e1882657115d36eb000df3ffa5fd
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
Log Message:
-----------
Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#183794)" (#187766)
Linear iteration variables were being treated as private. This fixes
one of the issues reported in #170784.
The previous regressions are fixed by #187097.
Commit: ef6172f32757aff6e4c4bb237ed3132d7ef24c12
https://github.com/llvm/llvm-project/commit/ef6172f32757aff6e4c4bb237ed3132d7ef24c12
Author: keinflue <keinflue at posteo.de>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaChecking.cpp
M clang/test/SemaCXX/builtin-classify-type.cpp
Log Message:
-----------
[clang] Apply lvalue conversions to __builtin_classify_type argument (#175627)
According to GCC documentation default argument promotion is applied to
the argument, which includes the function-to-pointer and
array-to-pointer lvalue conversions.
This also implies checking of the argument for placeholder types.
Fixes #175589.
Commit: 376874a345d3fd5f7171f78e48e5dea01c703dd8
https://github.com/llvm/llvm-project/commit/376874a345d3fd5f7171f78e48e5dea01c703dd8
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
Log Message:
-----------
[Offload] Fix destroying signal that was never initialized
Summary:
We create the RPC doorbell signal lazily and destroy it at the plugin
level. This means that we can't rely on the normal 'per-device' handling
so this needs to be called unconditionally. We only create the signal if
a device is registered, but deinit is called unconditionally. Just check
the handle.
Commit: da439d54267d478d1771928a714c0c52d7e7fc17
https://github.com/llvm/llvm-project/commit/da439d54267d478d1771928a714c0c52d7e7fc17
Author: Petter Berntsson <petter.berntsson at arm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
Log Message:
-----------
[libc][docs] Avoid docgen target collisions and restore pthread docs (#188221)
Fixes llvm/llvm-project#123821.
Re-enabling pthread docs created a global CMake utility target named
`pthread`, which collides in combined runtime builds where `pthread` is
expected to be a library name. Namespace the internal libc docgen helper
targets under `libc-docgen-*` and restore the generated pthread docs
page. `docs-libc-html` is unchanged.
Commit: 5bce5f54f081a9ab8b8819634573b03108752764
https://github.com/llvm/llvm-project/commit/5bce5f54f081a9ab8b8819634573b03108752764
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Support/Unix/Process.inc
Log Message:
-----------
[llvm] Update terminal list with ANSI colors (#187920)
ncurses hasn't adopted terminal entries for some terminal emulators like
Alacritty, Ghostty, and kitty in `xterm-*` format. To fix mismatch
between remote terminfo-db and terminal emulator that is accessing (e.g.
SSH), users explicitly set `$TERM` to `ghostty` or similar on the remote
side to make colors work. However, since `$TERM` has changed to non
`xterm-*` format in this case, llvm's `xterm-*` filter fails to catch
the terminal. Thus add entries for most widely used terminal emulators
(Alacritty, Ghostty, kitty) in terminfo-db version so llvm's filter can
catch it.
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
Commit: 6638cee0d8db18cf19b9d832e8c5f0be12b4f1c8
https://github.com/llvm/llvm-project/commit/6638cee0d8db18cf19b9d832e8c5f0be12b4f1c8
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/src/math/generic/logf.cpp
Log Message:
-----------
[libc] Remove redundant and incorrect comments in `logf.cpp` (#188236)
This PR intends to fix the nit (mostly caused during the refactor in
693a018dcf08e )
- During refactor we move the implementation along with the explanation
comments to header.
```CPP
// This is an algorithm for log(x) in single precision which is correctly
// rounded for all rounding modes, based on the implementation of log(x) from
// the RLIBM project at:
// https://people.cs.rutgers.edu/~sn349/rlibm
// Step 1 - Range reduction:
// For x = 2^m * 1.mant, log(x) = m * log(2) + log(1.m)
// If x is denormal, we normalize it by multiplying x by 2^23 and subtracting
.....
// Symposium on Principles of Programming Languages (POPL-2022), Philadelphia,
// USA, January 16-22, 2022.
// https://people.cs.rutgers.edu/~sn349/papers/rlibmall-popl-2022.pdf
```
Though the explanation comments were copied and moved to header in
d2492c1 . It wasn't deleted from the `cpp` file.
Along with this in the same,
`#include "src/__support/math/logf.h" // Lookup table for (1/f) and
log(f)`
is wrong as it is actually for
`#include "src/__support/math/common_constants.h" // Lookup table for
(1/f) and log(f)`
Commit: 227bab0a623c42a631d3b30446e668335732c488
https://github.com/llvm/llvm-project/commit/227bab0a623c42a631d3b30446e668335732c488
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/src/L0Context.cpp
M offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
M offload/plugins-nextgen/level_zero/src/L0Program.cpp
Log Message:
-----------
[OFFLOAD][L0] Improve cleanup on errors (#188251)
Additional cleanup improvements on error conditions (in addition to
those in #187597):
* Fixed incomplete cleanup in L0Context::init()
* Fixed build log leak in addModule()
* Fixed context inconsistent state in findDevices()
Disclaimer: The base of this PR was generated by Claude and adjusted by
me afterwards.
Commit: 0328820004d89ca9876ac75c8c55f1eb239a6be7
https://github.com/llvm/llvm-project/commit/0328820004d89ca9876ac75c8c55f1eb239a6be7
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/test/CIR/IR/invalid-func.cir
Log Message:
-----------
[CIR][NFC] Fix regression in clang/test/CIR/IR/func.cir (#188069)
This patch fixes a regression in `clang/test/CIR/IR/func.cir` where the
parsing of `special_member` attributes fails.
Commit: 4fcc3d7f4ced4f911883f4427907d2a7d66d951f
https://github.com/llvm/llvm-project/commit/4fcc3d7f4ced4f911883f4427907d2a7d66d951f
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
Log Message:
-----------
[Sparc] Report correct size for GETPCX pseudo (#188075)
This currently reports size 4, but the actual size is larger.
Commit: d422ffe19f1cacc7c6a6908d9f73d81ba8e65b6e
https://github.com/llvm/llvm-project/commit/d422ffe19f1cacc7c6a6908d9f73d81ba8e65b6e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/unprofitable-alternate-subtree.ll
Log Message:
-----------
[SLP][NFC]Add a test with the non-profitable alternate vectorization, not throttled
Commit: c312bf3fa94430185410c06c502abd9953f838fa
https://github.com/llvm/llvm-project/commit/c312bf3fa94430185410c06c502abd9953f838fa
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Support/DivisionByConstantInfo.cpp
Log Message:
-----------
[DivisionByConstant] Don't compare bool to 0. Use APInt::getOneBitSet. NFC (#188178)
Commit: ff07361fdf18bb9094331814db9dae000a35e254
https://github.com/llvm/llvm-project/commit/ff07361fdf18bb9094331814db9dae000a35e254
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/rem-by-const.ll
M llvm/test/CodeGen/RISCV/urem-lkk.ll
M llvm/test/CodeGen/X86/divmod128.ll
M llvm/test/CodeGen/X86/i128-udiv.ll
M llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
Log Message:
-----------
[TargetLowering] In expandDIVREMByConstant, combine shift by trailing zeros with chunk shifts. (#188086)
This reduces the number of generated instructions in some cases.
While I was there, I changed an Add to a Disjoint OR since DAGCombine
was going to do it anyway.
Commit: 2c2706dd04dea8803437b7cb96152179a848862e
https://github.com/llvm/llvm-project/commit/2c2706dd04dea8803437b7cb96152179a848862e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-8.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
Log Message:
-----------
[X86] getFauxShuffleMask - decode insert_subvector(undef, x, c) as shuffle if c != 0 (#188258)
Move existing combineX86ShufflesRecursively handling into
getFauxShuffleMask to allow other shuffle folds to make use of it
Commit: 20e59c8e2dbbd3b574e2358e0b690f0ddec129fc
https://github.com/llvm/llvm-project/commit/20e59c8e2dbbd3b574e2358e0b690f0ddec129fc
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/cube.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for cube intrinsics (#187762)
Add RegBankLegalize rules for cube* intrinsics. Also update manual tests
to use autogenerated checks.
Commit: 1034c7077296542fe0f88d38dbcfa6814f85be6c
https://github.com/llvm/llvm-project/commit/1034c7077296542fe0f88d38dbcfa6814f85be6c
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.u16.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for cvt_pknorm (#187834)
Commit: 9708da6f2dc95edcfc98a82c67c8f44079110f55
https://github.com/llvm/llvm-project/commit/9708da6f2dc95edcfc98a82c67c8f44079110f55
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmad.ftz.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmad.ftz.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for fmad_ftz (#188132)
Commit: 4a2b384f1518b0e2bd35ac2d04bc3aac72db25d3
https://github.com/llvm/llvm-project/commit/4a2b384f1518b0e2bd35ac2d04bc3aac72db25d3
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/test/CodeGen/NVPTX/i1-int-to-fp.ll
Log Message:
-----------
[NVPTX] Fix sign issue in sint -> bf16 (#188118)
Fixes #187000
Commit: c1ea10a854dcbbb50c954ebb87246d822cd01e21
https://github.com/llvm/llvm-project/commit/c1ea10a854dcbbb50c954ebb87246d822cd01e21
Author: Justin Cady <desk at justincady.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang-tools-extra/clangd/CMakeLists.txt
A clang-tools-extra/clangd/remap/CMakeLists.txt
A clang-tools-extra/clangd/remap/RemapMain.cpp
M clang-tools-extra/clangd/test/CMakeLists.txt
A clang-tools-extra/clangd/test/remap.test
Log Message:
-----------
[clangd] Add background index path remapping tool (#185482)
Introduce a standalone tool to remap paths inside clangd background
index files. This allows users to pay the cost of generating a full
background index once, then reuse the background index across multiple
clients. Each client rewrites the background index in place after
copying the original, specifying the path(s) to be remapped.
This is an alternative approach to the dynamic path remapping proposed
in #180285.
Fixes clangd/clangd#847
Assisted-by: claude
Commit: 9391ce93a1b82b85890e5d15b36849b542e11db8
https://github.com/llvm/llvm-project/commit/9391ce93a1b82b85890e5d15b36849b542e11db8
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang/test/Lower/Intrinsics/pack.f90
M flang/test/Lower/Intrinsics/parity.f90
M flang/test/Lower/Intrinsics/popcnt.f90
M flang/test/Lower/Intrinsics/poppar.f90
M flang/test/Lower/Intrinsics/present.f90
Log Message:
-----------
[flang][NFC] Converted five tests from old lowering to new lowering (part 38) (#188151)
Tests converted from test/Lower/Intrinsics: pack.f90, parity.f90,
popcnt.f90, poppar.f90, present.f90
Commit: 8443dfaacf520b22700555718ecfb71508c15a64
https://github.com/llvm/llvm-project/commit/8443dfaacf520b22700555718ecfb71508c15a64
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/docs/OpenMPSupport.rst
Log Message:
-----------
[OpenMP] Mark dyn_groupprivate support as partial for C/C++ (#186706)
Commit: 26fcbd5aaed125ab99b19299f4ec686912a7af92
https://github.com/llvm/llvm-project/commit/26fcbd5aaed125ab99b19299f4ec686912a7af92
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][SIInsertWaitcnts] Fix counterOutOfOrder() check for LOAD_CNT (#187758)
This is a follow-up to @piotrAMD's comment in #178511 .
`hasPendingEvent()` used to return an unsigned mask but this changed in
#178511 when this function started to return bool. This changed the
functionality of `counterOutOfOrder()` which was still using an unsigned
mask that was erroneously being assigned a boolean instead of the
expected mask.
Commit: d0f5df111865ea4bb9d7d6ff35b517ee1aa7402f
https://github.com/llvm/llvm-project/commit/d0f5df111865ea4bb9d7d6ff35b517ee1aa7402f
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
Log Message:
-----------
[lldb][Process/FreeBSDKernelCore] Remove interactive mode check (#187981)
`debugger.GetCommandInterpreter().IsInteractive()` doesn't necessarily
mean that the debugger is running without `-b` or `--batch` flag. This
caused an issue where the message isn't printed in any case. Remove the
check so the message is always printed for now.
Fixes: 9d9c7fc00bdddd72e78b19e9fbb6af9d07c2218b (#178027)
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
Commit: 1d883c675e786920d9e1c6af4fb5fcfb40b4f09a
https://github.com/llvm/llvm-project/commit/1d883c675e786920d9e1c6af4fb5fcfb40b4f09a
Author: Kunwar Grover <groverkss at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
M mlir/test/Dialect/Linalg/transform-tile-reduction.mlir
M mlir/test/Interfaces/TilingInterface/tile-and-fuse-with-reduction-tiling.mlir
Log Message:
-----------
[mlir][linalg] Fix linalg.index handeling in partial reduction tiling (#188261)
PartialReduction tiling wasn't handeling linalg.index offsets properly.
This patch fixes it to do the same thing as TilingInterface.
Commit: 5f0b3d6af425d2cd849a5914d5bb65d45f091cca
https://github.com/llvm/llvm-project/commit/5f0b3d6af425d2cd849a5914d5bb65d45f091cca
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Fix formatting and debug printing, NFC
Commit: ab903b4f783fbed6f005d40b17b8050d79a662b2
https://github.com/llvm/llvm-project/commit/ab903b4f783fbed6f005d40b17b8050d79a662b2
Author: Oliver Hunt <oliver at apple.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/StringSwitch.h
M llvm/unittests/ADT/StringSwitchTest.cpp
Log Message:
-----------
[ADT] Add predicate based match support to StringSwitch (#188046)
This introduces `Predicate` and `IfNotPredicate` case selection to
StringSwitch to allow use cases like
```
StringSwitch<...>(..)
.Case("foo", FooTok)
.Predicate([](StringRef Str){ ... }, IdentifierTok)
...
```
This is mostly useful for improving conciseness and clarity when
processing generated strings, diagnostics, and similar.
Commit: ce44d63e0d14039f1e8f68e6b7c4672457cabd4e
https://github.com/llvm/llvm-project/commit/ce44d63e0d14039f1e8f68e6b7c4672457cabd4e
Author: Alan Li <me at alanli.org>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/unittests/CodeGen/GlobalISel/IRTranslatorBF16Test.cpp
Log Message:
-----------
[GlobalISel][Test] Fix `IRTranslatorBF16Test` crash (#188273)
Skip the test when the AArch64 target is unavailable.
Commit: de6ed3c81dabee9772d77f95510480c8e1cee1ff
https://github.com/llvm/llvm-project/commit/de6ed3c81dabee9772d77f95510480c8e1cee1ff
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
Log Message:
-----------
[PowerPC] Fix some instruction sizes (#188227)
This fixes:
* PADDIdtprel: Lowers to PADDI8, which is prefixed.
* PATCHABLE_FUNTION_ENTER/PATCHABLE_RET: Handle xray sleds.
These came up when generalizing the instruction size verification
infrastructure.
Commit: 4eedd518be53814395dcba5c78bb14d09a77821c
https://github.com/llvm/llvm-project/commit/4eedd518be53814395dcba5c78bb14d09a77821c
Author: earnol <earnol at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/std-namespace-modification-implicit.cpp
A clang/test/AST/ast-dump-implicit-align-val.cpp
Log Message:
-----------
[clang-tidy] Do not provide diagnostics for cert-dcl58-cpp on implicit declarations (#188152)
Do not provide diagnostics for cert-dcl58-cpp for compiler generated
intrinsic as it will be a false positive.
In provided tests compiler generates align_val_t which ends up inside
std namespace, resulting in std::align_val_t symbol. This symbol is
compiler generated, having no location, causing compiler crash. Also
there is no point to notify user about violations which user has no
control of.
Resolution: Diagnostics suppressed.
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
Commit: e73d8f8fc59ae2108baf863a6c8c8cfddbbca537
https://github.com/llvm/llvm-project/commit/e73d8f8fc59ae2108baf863a6c8c8cfddbbca537
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
M compiler-rt/cmake/caches/GPU.cmake
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/builtins/CMakeLists.txt
M compiler-rt/test/builtins/Unit/lit.cfg.py
M compiler-rt/test/lit.common.cfg.py
Log Message:
-----------
[compiler-rt] Support unit tests for the GPU build (#187895)
Summary:
This PR enables the basic unit tests for builtins to be run on the GPU
architectures. Other targets like profiling are supported, but the
host-device natures will make it more difficult to adequately unit
test. It may be be possible to do basic tests there, to simply verify
that
counters are present and in the proper format for when they are copied
to the host.
Commit: c7b5f7c635e2534a9b2b2b204998b0bc39921b7e
https://github.com/llvm/llvm-project/commit/c7b5f7c635e2534a9b2b2b204998b0bc39921b7e
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[Support] Use atomic counter in parallelFor instead of per-task spawning (#187989)
This function is primarily used by lld and debug info tools.
Instead of pre-splitting work into up to MaxTasksPerGroup (1024) tasks
and spawning each through the Executor's mutex+condvar, use an atomic
counter for work distribution. Only ThreadCount workers are spawned;
each grabs the next chunk via atomic fetch_add.
This reduces futex calls from ~31K (glibc, release+assertions build) to
~1.4K when linking clang-14 (191MB PIE with --export-dynamic) with
`ld.lld --threads=8` (each parallelFor spawned up to 1024 tasks, each
requiring mutex lock + condvar signal).
```
Wall System futex
glibc (assertions) before: 927ms 897ms 31K
glibc (assertions) after: 879ms 765ms 1.4K
mimalloc before: 872ms 694ms 25K
mimalloc after: 830ms 661ms 1K
```
Commit: 6e2a720dd1890d49afef6ab5165cb6e7fd346048
https://github.com/llvm/llvm-project/commit/6e2a720dd1890d49afef6ab5165cb6e7fd346048
Author: Pankaj Dwivedi <pankajkumar.divedi at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericUniformityImpl.h
M llvm/include/llvm/ADT/Uniformity.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/UniformityAnalysis.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
A llvm/test/Analysis/UniformityAnalysis/AMDGPU/uniform_intrinsic.ll
Log Message:
-----------
[AMDGPU][Uniformity][TTI] Make Uniformity Analysis Operand-Aware via Custom Uniformity Checks (#137639)
See: https://github.com/llvm/llvm-project/issues/131779
Extends uniformity analysis to support instructions whose uniformity
depends on which specific operands are uniform. Introduces
`InstructionUniformity::Custom` and a target hook `TTI::isUniform(I,
UniformArgs)` that allows targets to define custom uniformity rules.
During propagation, custom candidates are checked via the target hook.
If we can prove they are uniform, we skip marking them divergent and let
iterative propagation re-evaluate as operands change.
Implements AMDGPU's `llvm.amdgcn.wave.shuffle` rules (uniform when
either operand is uniform, divergent only when both are divergent) as
the motivating example.
This inverted-logic approach is critical for correctness: proving
uniformity early during propagation would be unsafe, as operands can
transition from uniform to divergent during divergence propagation.
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: ca2bc5505c18e9a72c6f4c8f7c60d2fc5172d86b
https://github.com/llvm/llvm-project/commit/ca2bc5505c18e9a72c6f4c8f7c60d2fc5172d86b
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ps.live.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for ps_live (#188101)
Commit: 6159b253ef4ebf7ee8e996e94d4ba2378cf2eec3
https://github.com/llvm/llvm-project/commit/6159b253ef4ebf7ee8e996e94d4ba2378cf2eec3
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/test/CIR/IR/invalid-linkage.cir
Log Message:
-----------
[CIR][NFC] Mark invalid-linkage.cir as XFAIL (#188279)
The invalid-linkage.cir test is currently failing as a result of a
recent change to the MLIR attribute parser. I am temporarily marking
this test as XFAIL while that problem is being worked on to unblock CIR
development. I added a check that will force the test to fail even after
the problem is fixed so that we don't start getting unexpected passes
when the fix is merged. (CIR testing isn't run during CI for MLIR
changes.) I will reenable the test after the problem has been fixed.
Commit: 3deca2dc322e0c4328da35247157b28bb4b552fc
https://github.com/llvm/llvm-project/commit/3deca2dc322e0c4328da35247157b28bb4b552fc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/unittests/Support/KnownBitsTest.cpp
Log Message:
-----------
[KnownBits] KnownBits::add - add optional arg indicating a X+X self add pattern (#188078)
Compute knownbits for ADD(X,X) as SHL(X,1)
Followup to #186461
Commit: 549b529225050ecf597b2e0824857f041065d465
https://github.com/llvm/llvm-project/commit/549b529225050ecf597b2e0824857f041065d465
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86AsmPrinter.h
M llvm/test/CodeGen/X86/npm-asmprint.ll
Log Message:
-----------
[X86][NewPM] Mark X86AsmPrinter isRequired (#188278)
Otherwise the pass does not run when a function has the optnone
attribute, which means we get no assembly out for functions marked
optnone.
Commit: 8d8f635e4b2c669d8f84d615ddcb74e883f1d10f
https://github.com/llvm/llvm-project/commit/8d8f635e4b2c669d8f84d615ddcb74e883f1d10f
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/Analysis/SPIRVConvergenceRegionAnalysis.h
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.h
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVTargetStreamer.h
M llvm/lib/Target/SPIRV/SPIRVCBufferAccess.h
M llvm/lib/Target/SPIRV/SPIRVCommandLine.h
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVLegalizeZeroSizeArrays.h
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.h
M llvm/lib/Target/SPIRV/SPIRVMetadata.h
M llvm/lib/Target/SPIRV/SPIRVPushConstantAccess.h
M llvm/lib/Target/SPIRV/SPIRVStructurizerWrapper.h
M llvm/lib/Target/SPIRV/SPIRVTypeInst.h
Log Message:
-----------
[NFC][SPIR-V] Fix include guard names to match file paths (#187689)
Commit: 047cd90b5efdd41655fc32f00410d69b899abd95
https://github.com/llvm/llvm-project/commit/047cd90b5efdd41655fc32f00410d69b899abd95
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
R clang/test/ClangScanDeps/p1689-suppress-warnings.cppm
Log Message:
-----------
Revert "[ClangScanDeps] Do not emit warning for P1689 format" (#188179)
Reverts llvm/llvm-project#186966
Commit: 01af1528f8497c58b5390ba514eaf3244818df73
https://github.com/llvm/llvm-project/commit/01af1528f8497c58b5390ba514eaf3244818df73
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/test/CodeGen/NVPTX/i1-int-to-fp.ll
Log Message:
-----------
[NVPTX] Fix assumption of sm versioning (#188282)
The test case in #188118 assumes sm-90 is always available, leading to a
crash
```
# | ptxas fatal : SM version specified by .target is higher than default SM version assumed
```
This PR updates the test case to follow the check specified in
`llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-reduce.ll`,
namely `%if ptxas-sm_90 && ptxas-isa-7.8`
Commit: 95546c849ea6a2be66767879617b24f0750d7c6b
https://github.com/llvm/llvm-project/commit/95546c849ea6a2be66767879617b24f0750d7c6b
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/examples/python/formatter_bytecode.py
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterC.txt
M lldb/test/Shell/ScriptInterpreter/Python/Inputs/FormatterBytecode/RigidArrayLLDBFormatterSwift.txt
Log Message:
-----------
[lldb] Fix value of sig_update in formatter_bytecode.py (#188292)
Commit: 0158cd04e3a29c265d4695e25d022ba07b86be97
https://github.com/llvm/llvm-project/commit/0158cd04e3a29c265d4695e25d022ba07b86be97
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
A llvm/test/CodeGen/RISCV/fold-addi-loadstore-cpi.mir
A llvm/test/CodeGen/RISCV/sfb-merge-base-offset.ll
Log Message:
-----------
[RISCV] Merge Base Offset for SFB Pseudos (#187620)
This implements the Merge Base Offset pass for the SFB Load Pseudos.
These Pseudos are expanded after Merge Base Offset, so the pass needs to
handle them.
I also had to extend support in MergeBaseOffset to ensuring that ImmOp
could be a Constant Pool Index, which seemed to be supported in some
checks but not others.
Commit: efaf00194404f227b037ad5822e885e21a11f79b
https://github.com/llvm/llvm-project/commit/efaf00194404f227b037ad5822e885e21a11f79b
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/docs/resources/formatterbytecode.rst
Log Message:
-----------
[lldb][docs] Restore correct @update bytecode signature (#188295)
Mistakenly changed in https://github.com/llvm/llvm-project/pull/182155
Commit: 82287496072bef952bd400c335459f4fa4c750c7
https://github.com/llvm/llvm-project/commit/82287496072bef952bd400c335459f4fa4c750c7
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
A llvm/test/CodeGen/WinCFGuard/cfguard-alias.ll
Log Message:
-----------
[CFGuard] Consider function aliases as indirect call targets (#188223)
With vector deleting destructors, it's common to include function
aliases in vftables.
After #185653 it's become more likely that the alias gets overridden in
a different TU. It's therefore important that it's the alias itself that
goes in the control-flow guard table.
Commit: 68edb9f3c0dcb79a6222afc92d31bded7fba8449
https://github.com/llvm/llvm-project/commit/68edb9f3c0dcb79a6222afc92d31bded7fba8449
Author: Tom Hewitt <tom at tom-hewitt.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/source/Target/ProcessTrace.cpp
M lldb/unittests/Process/ProcessTraceTest.cpp
Log Message:
-----------
[lldb] Fix trace load hang (#187768)
#179799 removed the `SetPrivateState(eStateStopped)` call in
`ProcessTrace::DidAttach()`. This makes the call to
`WaitForProcessToStop` hang forever, causing the `trace load` command to
hang.
This fix reintroduces the `SetPrivateState` call so a postmortem trace
process will "stop" after being loaded, matching the logic used in
`Process::LoadCore()`.
Commit: 9fd8bc0f0eedd3d6ca2c71f90de768a7759ab44c
https://github.com/llvm/llvm-project/commit/9fd8bc0f0eedd3d6ca2c71f90de768a7759ab44c
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp
Log Message:
-----------
[libFuzzer] Fix -Wunused-variable when building with NDEBUG (#188301)
The variable `FuzzerInitIsRunning` is only used within `assert()`.
Follow up to #178342.
Commit: 1bad1d9c28a5619d61ec9f7ebbf34ef076e074f0
https://github.com/llvm/llvm-project/commit/1bad1d9c28a5619d61ec9f7ebbf34ef076e074f0
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/MC/Hexagon/checker-solo-cof-slots.s
A llvm/test/MC/Hexagon/elf-reloc-variants.s
A llvm/test/MC/Hexagon/packet-constraint-checks.s
A llvm/test/MC/Hexagon/reloc-data-sizes.s
A llvm/test/MC/Hexagon/reloc-tls-gd.s
Log Message:
-----------
[Hexagon] Add MC checker and relocation coverage tests (#183955)
Add tests targeting HexagonMCChecker, MC relocation encoding, and ELF
object writing:
- packet-constraint-checks.s: MCChecker packet constraint violation
detection including solo instructions, slot restrictions, and read-write
hazards. Improves HexagonMCChecker.cpp line coverage from 46.53% to
84.23%.
- checker-solo-cof-slots.s: MCChecker hardware loop restrictions and
slot overflow handling.
- reloc-tls-gd.s: MC relocation encoding for TLS GD/LD/IE/LE variants.
Improves HexagonMCCodeEmitter.cpp line coverage from 74.18% to 91.14%.
- reloc-data-sizes.s: MC relocation encoding for data-size relocations
(8/16/32-bit).
- elf-reloc-variants.s: HexagonELFObjectWriter exercising getRelocType()
paths for GOT, IE-GOT, TPREL, and PCREL relocation variants. Improves
line coverage from 10.29% to 62.87%.
Commit: 738cbb2fb472373fde9e9b7117ecd7eb54ebab5d
https://github.com/llvm/llvm-project/commit/738cbb2fb472373fde9e9b7117ecd7eb54ebab5d
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M .mailmap
Log Message:
-----------
[mailmap] Map quicinc.com addresses to qti.qualcomm.com/oss.qualcomm.com; fix sort order (#181426)
Co-authored-by: Sam Elliott <sam at lenary.co.uk>
Commit: b6151c4f32829e036e7756167b5bceb1857df867
https://github.com/llvm/llvm-project/commit/b6151c4f32829e036e7756167b5bceb1857df867
Author: Perdixky <105138864+Perdixky at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/rtti-member-pointer.cpp
A clang/test/CIR/CodeGen/rtti-qualfn.cpp
M clang/test/CIR/CodeGen/throws.cpp
Log Message:
-----------
[CIR] Implement pointer type RTTI (#184011)
#163601
#163850
---------
Signed-off-by: Nikita B <n2h9z4 at gmail.com>
Co-authored-by: Nikita B <n2h9z4 at gmail.com>
Co-authored-by: Copilot <175728472+Copilot at users.noreply.github.com>
Commit: 993b110502d07db08114864c31f651a3f0ba9c82
https://github.com/llvm/llvm-project/commit/993b110502d07db08114864c31f651a3f0ba9c82
Author: Lei Huang <lei at ca.ibm.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/Headers/altivec.h
M clang/lib/Sema/SemaPPC.cpp
M clang/test/CodeGen/PowerPC/altivec-ct.c
M clang/test/CodeGen/PowerPC/builtins-ppc-32bit-vec-ll.c
M clang/test/CodeGen/PowerPC/builtins-ppc-crypto.c
M clang/test/CodeGen/PowerPC/builtins-ppc-error.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p9vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-char.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-noi128.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xl-xst.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat.c
M clang/test/CodeGen/PowerPC/ppc-vector-compare.cpp
M clang/test/Parser/cxx-altivec-bool-128.cpp
M clang/test/Parser/cxx-altivec.cpp
A clang/test/Sema/PowerPC/ppc-dmf-mma-builtin-err.c
M clang/test/Sema/builtins-bcd-format-conversion.c
M clang/test/Sema/builtins-bcd-transform.c
M clang/test/Sema/builtins-ppc.c
Log Message:
-----------
[PowerPC] Add target feature validation for builtins in Sema (#187371)
Adds early target feature checking for PowerPC builtins during semantic
analysis, catching missing target features before code generation and
providing better error messages to users.
Assisted by AI.
Commit: 410558aa4d9d45c6131d5f826592710491bbd5e8
https://github.com/llvm/llvm-project/commit/410558aa4d9d45c6131d5f826592710491bbd5e8
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/test/CIR/CodeGen/new.cpp
Log Message:
-----------
[CIR] Use per-element zero-initialization with array new (#187760)
There was a discrepancy between the CIR and classic codegen handling of
zero-initialization of constructed objects with array new. Classic
codegen performs zero-initialization on a per-element basis, while CIR
had been inserting a single zero-initialization of the entire array
before individually constructing the elements.
This change aligns the CIR behavior with the classic codegen behavior.
Commit: dbb271961e0fea893c8595119a780d9cf33a351f
https://github.com/llvm/llvm-project/commit/dbb271961e0fea893c8595119a780d9cf33a351f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-simplify-boolean-expr in TosaReduceTransposes.cpp (NFC)
Commit: 9f6d9d6a12b1b4d08bdb5642a41fe936485bd6c5
https://github.com/llvm/llvm-project/commit/9f6d9d6a12b1b4d08bdb5642a41fe936485bd6c5
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-else-after-return in TosaOps.cpp (NFC)
Commit: 46620f84b32601e20552cf28cb626eb8d739b11e
https://github.com/llvm/llvm-project/commit/46620f84b32601e20552cf28cb626eb8d739b11e
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/include/clang/AST/ExternalASTSource.h
M llvm/include/llvm/ADT/PointerUnion.h
M llvm/unittests/ADT/PointerUnionTest.cpp
Log Message:
-----------
Reland "[llvm][ADT] Refactor PointerUnion to use PunnedPointer. NFC." (#188242)
This reverts commit 040b7e0a1deb and re-lands the PointerUnion
refactoring from #187950, with a fix for the 32-bit crash.
The bug was in doCast: it masked with
PointerLikeTypeTraits<To>::NumLowBitsAvailable to strip tag bits, but
the old PointerIntPair-based code masked with minLowBitsAvailable() (the
minimum across all union members). When a member type's PLTT over-claims
spare low bits, the new mask was too aggressive and cleared bits
belonging to a nested PointerUnion's tag.
Concretely, on 32-bit systems, Redeclarable::DeclLink nests
LazyGenerationalUpdatePtr (LGUP) whose PLTT claims 2 spare bits (Decl*
has alignas(8) = 3 bits, minus 1). But LGUP's inner PointerUnion<Decl*,
LazyData*> only has 1 spare bit on 32-bit (alignof(LazyData) = 4 gives
LazyData* only 2 low bits, tagShift = 1). Extracting LGUP from the outer
PointerUnion cleared bit 1 (the inner PU's type tag), corrupting the
discriminator and breaking redeclaration chains.
Added new unit tests that cover this scenario, but we will want to fix
the clang side too.
Issue: #188269
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 5928fc42d8e8d4992266602eaf44210a2c530253
https://github.com/llvm/llvm-project/commit/5928fc42d8e8d4992266602eaf44210a2c530253
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Preprocessor/riscv-target-features.c
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/MC/RISCV/attribute-arch.s
M llvm/test/MC/RISCV/rv32p-invalid.s
M llvm/test/MC/RISCV/rv32p-valid.s
M llvm/test/MC/RISCV/rv64p-invalid.s
M llvm/test/MC/RISCV/rv64p-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Use uimm3/4/5/6_plus1 for (P)SATI instructions. (#186541)
The encoded immediate is the number of trailing 1s in the maximum value.
Mailing list discussion has a preference to print and parse this value
plus one. https://lists.riscv.org/g/tech-p-ext/message/910
With this patch, saturating to a signed 8-bit integer would be "sati a0,
a0, 8". Previously it was "sati a0, a0, 7".
This is reflected in version 0.20 of the adoc spec here
https://github.com/riscv/riscv-p-spec/pull/226. I have updated our
RISCVUsage.rst to point to the adoc version of the spec.
Commit: 03e8fd6aa76da2b0071de57d730edf98ff50a1b8
https://github.com/llvm/llvm-project/commit/03e8fd6aa76da2b0071de57d730edf98ff50a1b8
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
M llvm/test/CodeGen/WebAssembly/load-ext.ll
Log Message:
-----------
Revert "[WebAssembly][FastISel] Fold i64 extension chains into widened loads" (#188306)
Reverts llvm/llvm-project#187934
Breaks bots.
Commit: 7712249363574068c3c5413b1ccd839f75c0e5df
https://github.com/llvm/llvm-project/commit/7712249363574068c3c5413b1ccd839f75c0e5df
Author: Matthias Springer <me at m-sp.org>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
Log Message:
-----------
[mlir][arith] Mark `arith.remsi` and `arith.remui` as conditionally speculatable (#188263)
Division by zero is undefined behavior, so these two ops cannot be pure.
This commit marks them as conditionally speculatable, similar to
`arith.divsi` and `arith.divui`.
Commit: e71da01f0f908417723a54cf8829a734a37fa173
https://github.com/llvm/llvm-project/commit/e71da01f0f908417723a54cf8829a734a37fa173
Author: Guo Chen <guochen2 at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.ll
Log Message:
-----------
[AMDGPU][True16] add true16 pattern for cvt_pk_fp32_f8 (#180096)
Commit: 5c06541fb811eaa5aa87fa317c359506d0d8c17f
https://github.com/llvm/llvm-project/commit/5c06541fb811eaa5aa87fa317c359506d0d8c17f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/include/mlir/Conversion/ControlFlowToSCF/ControlFlowToSCF.h
M mlir/include/mlir/Transforms/CFGToSCF.h
M mlir/lib/Conversion/ControlFlowToSCF/ControlFlowToSCF.cpp
M mlir/lib/Transforms/Utils/CFGToSCF.cpp
A mlir/test/Conversion/ControlFlowToSCF/invalid.mlir
M mlir/test/Conversion/ControlFlowToSCF/unknown-cf-op.mlir
Log Message:
-----------
[mlir][CFGToSCF] Fix crash when region contains unconvertible multi-successor op (#183935)
`transformCFGToSCF` would crash with a use-list assertion when it
encountered an op like `spirv.BranchConditional` that implements
`BranchOpInterface` (passing the existing precondition checks) but is
not handled by `createStructuredBranchRegionOp`. The algorithm mutated
the IR significantly before discovering the op was unsupported, leaving
it in a corrupt half-transformed state that triggered the assertion on
teardown.
Fix by adding `canConvertBranchOp` to `CFGToSCFInterface` (default:
accept all ops) and calling it inside `checkTransformationPreconditions`
for every block with more than one successor, before any IR
modifications are made. `ControlFlowToSCFTransformation` overrides the
method to accept only `cf.cond_br` and `cf.switch`.
Fixes #173566
Assisted-by: Claude Code
Commit: 52296eab79f628a6565e2d6746dc1aea078fc336
https://github.com/llvm/llvm-project/commit/52296eab79f628a6565e2d6746dc1aea078fc336
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/rem-by-const.ll
M llvm/test/CodeGen/LoongArch/lasx/issue170976.ll
Log Message:
-----------
[TargetLowering] In BuildSDIV, avoid creating build_vector with illegal scalar types after type legalization. (#188280)
Code is based on a similar code in BuildUDIV.
Commit: 35e958d7f0b7e381d83b055607c31f3f1e3124a9
https://github.com/llvm/llvm-project/commit/35e958d7f0b7e381d83b055607c31f3f1e3124a9
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
M flang/test/Lower/OpenACC/acc-declare.f90
Log Message:
-----------
[openacc][flang] Avoid attaching declare post-actions to acc.terminator (#188157)
Fix lowering so post declare-actions are not attached to acc.terminator
(step back from trailing fir.result/acc.terminator before attaching).
---------
Co-authored-by: Slava Zakharin <szakharin at nvidia.com>
Commit: 0692bd52cb3f7a3c4b27cd788746e8085484792f
https://github.com/llvm/llvm-project/commit/0692bd52cb3f7a3c4b27cd788746e8085484792f
Author: Oleksandr Tarasiuk <oleksandr.tarasiuk at outlook.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/test/Sema/code_align.c
Log Message:
-----------
[Clang] fix crash in duplicate attribute checking (#188274)
Fixes #188259
---
This PR fixes a crash in duplicate attribute checking when arguments
have different integer signedness. It changes the check to use
`isSameValue` (which uses `compareValues`) instead of `llvm::APSInt`
equality.
Commit: cd1a598d8677cd33a8c41c83f45c4381ebeb143e
https://github.com/llvm/llvm-project/commit/cd1a598d8677cd33a8c41c83f45c4381ebeb143e
Author: Richard Howell <rmaz at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A llvm/test/tools/llvm-lipo/remove.test
M llvm/tools/llvm-lipo/LipoOpts.td
M llvm/tools/llvm-lipo/llvm-lipo.cpp
Log Message:
-----------
[lipo] add -remove flag (#188275)
Add the -remove flag to llvm-lipo. This matches the existing Darwin lipo
tool:
```
% xcrun lipo 2>&1 | grep remove
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: one of -create, -thin <arch_type>, -extract <arch_type>, -remove <arch_type>, -replace <arch_type> <file_name>, -verify_arch <arch_type> ... , -archs, -info, or -detailed_info must be specified
-remove <arch_type> [-remove <arch_type> ...]
```
Assisted-by: claude-code
Commit: 55bbf7b16b9467e86081cd0eb54935f717f60081
https://github.com/llvm/llvm-project/commit/55bbf7b16b9467e86081cd0eb54935f717f60081
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
M llvm/test/CodeGen/WebAssembly/load-ext.ll
Log Message:
-----------
Reland "[WebAssembly][FastISel] Fold i64 extension chains into widened loads" (#188324)
Reverts llvm/llvm-project#188306
Relands llvm/llvm-project#187934
It was reverted by mistake.
Commit: 7bfd54ac2548a3161e6237621e57a8406bf94964
https://github.com/llvm/llvm-project/commit/7bfd54ac2548a3161e6237621e57a8406bf94964
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll
M llvm/test/Transforms/SandboxVectorizer/external_uses.ll
M llvm/test/Transforms/SandboxVectorizer/scheduler.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][BottomUpVec] Improve handling of external uses (#185468)
Up until now the bottom-up vectorizer pass would not delete the scalar
instructions that have external uses after being vectorized, because it
lacked the ability to generate extracts from the vectors.
With the term "external uses", we refer to uses outside the currently
vectorized graph.
This patch fixes this. We can now properly handle external uses by
extracting from the vectors.
This change relies on the recent changes to the DAG's callbacks because
the external user may not be within the current DAG's interval.
Commit: 2ae3d8ae57004e6cfb2673083289660d8cfc2dac
https://github.com/llvm/llvm-project/commit/2ae3d8ae57004e6cfb2673083289660d8cfc2dac
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
A llvm/test/CodeGen/X86/post-ra-pseudos.mir
Log Message:
-----------
[CodeGen][NewPM] Mark ExpandPostRAPseudos as required (#188304)
We need to lower these pseudoinstructions regardless of optimization
level or we end up with instructions that we cannot print.
Commit: daec3b9fb6e2192febfbd29046e02e476a5b159f
https://github.com/llvm/llvm-project/commit/daec3b9fb6e2192febfbd29046e02e476a5b159f
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A clang/include/clang/Basic/HLSLIntrinsics.td
M clang/lib/Headers/CMakeLists.txt
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
A clang/test/TableGen/hlsl-intrinsics.td
M clang/utils/TableGen/CMakeLists.txt
A clang/utils/TableGen/HLSLEmitter.cpp
M clang/utils/TableGen/TableGen.cpp
M clang/utils/TableGen/TableGenBackends.h
Log Message:
-----------
[HLSL] Implement TableGen for builtin HLSL intrinsics (#187610)
This PR introduces a TableGen-based code generation system for HLSL
intrinsic overloads as described in proposal
[[0043]](https://github.com/llvm/wg-hlsl/blob/main/proposals/0043-hlsl-intrinsic-tablegen.md)
for replacing hand-written boilerplate with declarative .td definitions.
Actual changes to `hlsl_intrinsics.h` and `hlsl_alias_intrinsics.h` to
replace handwritten HLSL intrinsic overloads with TableGen is left to
follow-up PRs.
Assisted-by: GitHub Copilot (powered by Claude Opus 4.6)
Commit: 6ef30612ee6d69d0a5658ec0d2f78b6a09a4aa0d
https://github.com/llvm/llvm-project/commit/6ef30612ee6d69d0a5658ec0d2f78b6a09a4aa0d
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/source/Target/ProcessTrace.cpp
Log Message:
-----------
[lldb][trace] Ensure ProcessTrace plugin can be re-registered (#188336)
Initialize makes sure that it calls RegisterPlugin only once, but
Terminate always calls UnregisterPlugin. This is a problem for tests
that call Initialize/Terminate before and after each test case: the
second case will fail because the trace plugin won't be loaded.
This fixes a test failure introduced by #187768, which adds a test case
that passes on its own but fails when run after the previous test case.
Commit: 4e290b34294cd6de562385bc8c5f8af457aeb46a
https://github.com/llvm/llvm-project/commit/4e290b34294cd6de562385bc8c5f8af457aeb46a
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/src/string/memory_utils/utils.h
Log Message:
-----------
[libc][strings] Refactor load_aligned for cleaner endianness handling (#186360)
Replace the explicit `if constexpr` branching for big and little
endianness with compile-time calculated shift constants `VAL_SHIFT` and
`NEXT_SHIFT`. This simplifies the logic and reduces code duplication,
relying on the compiler to constant-fold the zero shifts into no-ops.
Commit: 11bc6e8776d233a98b573d5c8b08cfb4e5c3ab61
https://github.com/llvm/llvm-project/commit/11bc6e8776d233a98b573d5c8b08cfb4e5c3ab61
Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/llvm.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
Log Message:
-----------
[SelectionDAG] Add known bit for `ISD::FABS` (#188335)
Absolute value always clears the sign bit, so make that knowh to
selectionDAG's `computeKnownBits`.
Commit: 13b2ee25aebc937c0f459ca38c2092b882bec9dc
https://github.com/llvm/llvm-project/commit/13b2ee25aebc937c0f459ca38c2092b882bec9dc
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/include/clang/AST/ExternalASTSource.h
Log Message:
-----------
[clang][AST] Fix LazyGenerationalUpdatePtr NumLowBitsAvailable on 32-bit (#188318)
The `PointerLikeTypeTraits` for `LazyGenerationalUpdatePtr` claimed
`PointerLikeTypeTraits<T>::NumLowBitsAvailable - 1` spare low bits. This
assumed that the inner `PointerUnion<T, LazyData*>` has `T_bits - 1`
spare bits, which is only true when `alignof(LazyData) >= alignof(*T)`.
On 32-bit systems, `LazyData` (containing pointers and `uint32_t`) has
`alignof = 4`, giving `LazyData*` only 2 low bits. With `T = Decl*` (3
bits due to `alignas(8)`), the inner `PointerUnion` has `min(3,2) - 1 =
1` spare bit, but the PLTT claimed `3 - 1 = 2`.
Historically, the formula was correct when introduced in 053f6c6c9e4d --
at that time `Decl` had no alignment annotation, so `T_bits ==
LazyData*_bits` on all platforms. It became outdated when 771721cb35f3
added `LLVM_ALIGNAS(8)` to `Decl`, raising `Decl*` to 3 bits on 32-bit
while `LazyData*` stayed at 2. The old `PointerIntPair`-based
`PointerUnion::doCast` happened to mask with `minLowBitsAvailable()`
(tolerant of overclaims), so this was never exposed until the
`PunnedPointer` refactoring changed `doCast` to mask with
`To::NumLowBitsAvailable`.
Fixes: https://github.com/llvm/llvm-project/issues/188269
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: e3c6244f6e7ce9c76274f9ebca7b6a1f1fcec781
https://github.com/llvm/llvm-project/commit/e3c6244f6e7ce9c76274f9ebca7b6a1f1fcec781
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
M llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp
M llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
Log Message:
-----------
[ORC] Add EPCGenericJITLinkMemoryManager::Create named constructor. (#188191)
Create takes a JITDylib and a SymbolNames struct, looks up the
implementation symbol addresses in the given JITDylib, and uses them to
construct an EPCGenericJITLinkMemoryManager instance. This makes it
easier for ORC clients to construct the memory manager from named
symbols (e.g. in a bootstrap JITDylib) rather than raw addresses.
Commit: fe286356ca34a530f8a6ccf0b630fc32fc69fc44
https://github.com/llvm/llvm-project/commit/fe286356ca34a530f8a6ccf0b630fc32fc69fc44
Author: Mircea Trofin <mtrofin at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
A llvm/test/Transforms/JumpThreading/update-bpi-bfi-unfold-select.ll
Log Message:
-----------
[JT] `tryToUnfoldSelectInCurrBB` should update BFI & BPI if present (#188097)
Issue #187545
Commit: 642bde76c32e38457a0b30644763f1447523cff5
https://github.com/llvm/llvm-project/commit/642bde76c32e38457a0b30644763f1447523cff5
Author: Jinsong Ji <jinsong.ji at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/order-reduction-infinite-loop.ll
Log Message:
-----------
[SLP] Fix infinite loop in ordered reduction worklist processing (#188342)
The ordered reduction support introduced in 94e366ef2060 can cause an
infinite loop when processing complex reduction chains. The worklist
algorithm re-adds instructions from PossibleOrderedReductionOps when
switching to ordered mode, but doesn't track which instructions have
already been processed. This allows instructions to be re-added and
processed multiple times, creating cycles.
Add a Visited set to track processed instructions and skip any that
have already been handled, preventing the infinite loop.
Commit: 674cb9e3f18a6e428d611f39e7f5a99537afb5b6
https://github.com/llvm/llvm-project/commit/674cb9e3f18a6e428d611f39e7f5a99537afb5b6
Author: satyanarayana reddy janga <satyajanga at fb.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
Log Message:
-----------
[lldb] Fix immediately-destroyed ScopedTimeout in KillProcess (#188333)
The ScopedTimeout was created as a temporary, causing it to be destroyed
immediately and the timeout to have no effect. Give it a name so it
lives until the end of the function scope.
Commit: 6b128091ba87ec711e11ed34b2810ff5deb8cef4
https://github.com/llvm/llvm-project/commit/6b128091ba87ec711e11ed34b2810ff5deb8cef4
Author: Sirraide <aeternalmail at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/test/InstallAPI/extra-exclude-headers.test
M clang/test/InstallAPI/hiddens.test
Log Message:
-----------
[InstallAPI] [Tests] Avoid checking compiler output for 'error' (#188307)
We have two tests that use FileCheck for diagnostics and which try to
check that the output contains no compiler errors by checking for the
string 'error'. The issue with this approach is that this also causes
those tests to fail if the *path* contains the word 'error', which can
happen e.g. if the branch name contains the word 'error'.
Instead, we now check for `error:` since that string is much less likely
to appear in a path.
Commit: 6a045c29a98ce371d05ed2cf66fb04c33dc0691f
https://github.com/llvm/llvm-project/commit/6a045c29a98ce371d05ed2cf66fb04c33dc0691f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
M llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/LowLevelTypeUtils.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGenTypes/LowLevelType.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-subvector.ll
M llvm/test/CodeGen/AArch64/GlobalISel/pr168872.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-gep.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument-multiple.ll
M llvm/test/CodeGen/AArch64/GlobalISel/translate-sve-formal-argument.ll
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid0.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid1.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid2.mir
M llvm/test/CodeGen/MIR/AArch64/parse-low-level-type-invalid3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err0.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err1.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err10.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err11.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err12.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err13.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err14.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err15.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err2.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err3.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err4.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err5.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err6.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err7.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err8.mir
M llvm/test/CodeGen/MIR/Generic/scalable-vector-type-err9.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid0.mir
M llvm/test/CodeGen/MIR/WebAssembly/typed-immediate-operand-invalid1.mir
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
M llvm/test/TableGen/GlobalISelEmitter/HwModes.td
M llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
R llvm/unittests/CodeGen/GlobalISel/IRTranslatorBF16Test.cpp
M llvm/utils/TableGen/Common/CMakeLists.txt
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.h
Log Message:
-----------
Revert "[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)" (#188344)
This reverts commit b1aa6a45060bb9f89efded9e694503d6b4626a4a and commit
ce44d63e0d14039f1e8f68e6b7c4672457cabd4e.
This fails the build with some older gcc:
llvm/include/llvm/CodeGenTypes/LowLevelType.h:501:35: error: call to
non-constexpr function ‘static llvm::LLT llvm::LLT::integer(unsigned
int)’
return integer(getSizeInBits());
^
Commit: de0c366e4b7224f33d2945194035d21501e3d636
https://github.com/llvm/llvm-project/commit/de0c366e4b7224f33d2945194035d21501e3d636
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/CMakeLists.txt
M llvm/lib/Target/SPIRV/SPIRV.h
A llvm/lib/Target/SPIRV/SPIRVCtorDtorLowering.cpp
A llvm/lib/Target/SPIRV/SPIRVCtorDtorLowering.h
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
A llvm/test/CodeGen/SPIRV/ctor-dtor-lowering-ir.ll
A llvm/test/CodeGen/SPIRV/ctor-dtor-lowering.ll
A llvm/test/CodeGen/SPIRV/ctor-dtor-no-openmp-ir.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
Log Message:
-----------
[llvm][SPIRV] Add pass to lower Ctors/Dtors for SPIRV (#187509)
This PR adds a new SPIRV pass that generates a kernel named
"spirv$device$init" that iterates the pointers in the table pointed by
__init_array_start and __init_array_end and executes them. It also
generates symbols for each constructor with the form
__init_array_object_NAME_PRIORITY.
These symbols will be used by the Level Zero plugin in the liboffload
runtime (with the support introduced by #187510) to generate the
aforementioned table as spirv-link cannot create the table itself.
It also does the same thing for destructors, with the kernel name being
"spirv$device$fini", the table pointers __fini_array_start and
__fini_array_end, and the generated symbols prefix __fini_array_object.
The code was mostly generated by Claude 4.5 and has been reviewed by me
to the best of my ability.
Commit: 31b17c4789abc2504cfe3b3f05feebafc0e88dc8
https://github.com/llvm/llvm-project/commit/31b17c4789abc2504cfe3b3f05feebafc0e88dc8
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M bolt/docs/index.rst
A bolt/docs/profiles.md
Log Message:
-----------
[BOLT] Add profile format documentation (#186685)
Create bolt/docs/profiles.md documenting all accepted profile formats:
perf.data, fdata, YAML, and pre-aggregated. Covers collection methods,
format syntax, examples, and known limitations.
Add reference from bolt/docs/index.rst.
Commit: fce6895804e596f18765c4db0f76931dac8df9f8
https://github.com/llvm/llvm-project/commit/fce6895804e596f18765c4db0f76931dac8df9f8
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/lib/Profile/DataAggregator.cpp
Log Message:
-----------
[BOLT] Support buildid in pre-aggregated profile
Sample addresses belonging to external DSOs (buildid doesn't match the
current file) are treated as external (0).
Buildid for the main binary is expected to be omitted.
Test Plan: added pre-aggregated-perf-buildid.test
Reviewers:
paschalis-mpeis, maksfb, yavtuk, ayermolo, yozhu, rafaelauler, yota9
Reviewed By: paschalis-mpeis
Pull Request: https://github.com/llvm/llvm-project/pull/186931
Commit: 2975451a70fbd4b35cc790294ee7ed46970a253b
https://github.com/llvm/llvm-project/commit/2975451a70fbd4b35cc790294ee7ed46970a253b
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
Log Message:
-----------
[lldb] Mark lldbtest.build() parameters as keyword-only (#188327)
This reinforces what is already true in the codebase: all uses of
`build()` use keyword arguments.
With this change, it will be an error to call `build` using positional
arguments:
```
TypeError: build() takes 1 positional argument but 2 were given
```
Commit: 2e247a1d54ff9a3ae73d16fd1d70fca6f7169c7e
https://github.com/llvm/llvm-project/commit/2e247a1d54ff9a3ae73d16fd1d70fca6f7169c7e
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/lib/Profile/DataAggregator.cpp
Log Message:
-----------
Revert "[BOLT] Support buildid in pre-aggregated profile"
Accidentally pushed unreviewed version.
This reverts commit fce6895804e596f18765c4db0f76931dac8df9f8.
Commit: 2fafeb0509f972c70c5e1dc6d4ac466c52d25591
https://github.com/llvm/llvm-project/commit/2fafeb0509f972c70c5e1dc6d4ac466c52d25591
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Profile/DataReader.h
M bolt/lib/Profile/DataAggregator.cpp
A bolt/test/X86/Inputs/pre-aggregated-buildid.txt
A bolt/test/X86/pre-aggregated-perf-buildid.test
Log Message:
-----------
[BOLT] Support buildid in pre-aggregated profile (#186931)
Sample addresses belonging to external DSOs (buildid doesn't match the
current file) are treated as external (0).
Buildid for the main binary is expected to be omitted.
Test Plan:
added pre-aggregated-perf-buildid.test
Commit: 303afa0899357b21a6a325115068108aa5e71a4f
https://github.com/llvm/llvm-project/commit/303afa0899357b21a6a325115068108aa5e71a4f
Author: Zyn <103019185+zyn-li at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
A lldb/test/API/lang/cpp/non-type-template-param-member-ptr/Makefile
A lldb/test/API/lang/cpp/non-type-template-param-member-ptr/TestCppNonTypeTemplateParamPtrToMember.py
A lldb/test/API/lang/cpp/non-type-template-param-member-ptr/main.cpp
Log Message:
-----------
[lldb][DWARFASTParserClang] Handle pointer-to-member-data non-type template (#187598)
## Description
### Problem
MakeAPValue in DWARFASTParserClang.cpp did not handle
pointer-to-member-data non-type template parameters (e.g., template <int
S::*P>), causing LLDB to produce incorrect results or crash.
DWARF encodes pointer-to-member-data NTTPs as
`DW_TAG_template_value_parameter` with a `DW_AT_const_value`
representing the byte offset of the member within the containing struct.
MakeAPValue is responsible for converting this value into a clang
APValue, but it only handled integer/enum and floating-point types. For
pointer-to-member types, it returned `std::nullopt`.
This caused the caller (ParseTemplateDIE) to fall back to creating a
type-only TemplateArgument (kind=Type) instead of a value-carrying one.
When two specializations differ only by which member they point to
(e.g., MemberData<&S::x> / MemberData<&S::y>), both produce identical
TemplateArguments. Clang's
[findSpecialization](https://github.com/llvm/llvm-project/blob/3bc216c29cb42c7d94b617943b1d44afce605588/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp#L1674-L1677)
then treats the second as a duplicate, so only one specialization exists
in the AST. The second variable becomes unresolvable.
(See Debugger Evidence section below)
In more complex cases, this triggers an assertion failure in
[clang::CXXRecordDecl::setBases():
cast()](https://github.com/llvm/llvm-project/blob/3bc216c29cb42c7d94b617943b1d44afce605588/clang/lib/AST/DeclCXX.cpp#L219)
argument of incompatible type.
## Fix
MakeAPValue: Added `IsMemberDataPointerType()` to the integral type
check so that pointer-to-member byte offsets produce distinct APValues.
Also replaced the silent return `std::nullopt` for unsupported types
with `lldbassert` so unknown type classes are caught during development.
`ResolveMemberDataPointerToFieldDecl`: New method that follows the DWARF
chain to resolve the byte offset to the actual FieldDecl, creating
TemplateArgument(Declaration) matching clang's own AST:
DW_TAG_template_value_parameter (DW_AT_type)
→ DW_TAG_ptr_to_member_type (DW_AT_containing_type)
→ DW_TAG_structure_type → match DW_TAG_member by byte offset
If resolution fails at any step, falls through to the integer APValue
path as a safe fallback.
Verified by comparing clang's AST (clang -Xclang -ast-dump) with LLDB's
reconstructed AST (image dump ast) — both now produce TemplateArgument
decl '&S::x' referencing the correct FieldDecl.
## Test Plan
Added `lldb/test/API/lang/cpp/non-type-template-param-member-ptr/` with
a test that creates two specializations (MemberData<&S::x> and
MemberData<&S::y>) and verifies both are resolvable with correct type
names.
```
| |-ClassTemplateSpecializationDecl 0x234e2314800 <line:18:1, line:21:1> line:19:8 struct MemberData definition instantiated_from 0x234e2314110 implicit_instantiation
| | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
| | | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
--
| | |-TemplateArgument decl '&S::x'
| | | `-Field 0x234e2313ed0 'x' 'int'
| | |-CXXRecordDecl 0x234e2314ac0 <col:1, col:8> col:8 implicit struct MemberData
--
| `-ClassTemplateSpecializationDecl 0x234e25b5968 <line:18:1, line:21:1> line:19:8 struct MemberData definition instantiated_from 0x234e2314110 implicit_instantiation
| |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
| | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
--
| |-TemplateArgument decl '&S::y'
| | `-Field 0x234e2313f38 'y' 'int'
| |-CXXRecordDecl 0x234e25b5bd8 <col:1, col:8> col:8 implicit struct MemberData
--
| |-ClassTemplateSpecializationDecl 0x234e25b7080 <line:27:1, line:30:1> line:28:8 struct MaybeNull definition instantiated_from 0x234e25b6b50 implicit_instantiation
| | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
| | | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
--
| `-ClassTemplateSpecializationDecl 0x234e25b80c0 <line:27:1, line:30:1> line:28:8 struct MaybeNull definition instantiated_from 0x234e25b6b50 implicit_instantiation
| |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
| | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
--
| |-TemplateArgument decl '&g1'
| | `-Var 0x234e25b69b8 'g1' 'int'
| |-CXXRecordDecl 0x234e25b8338 <col:1, col:8> col:8 implicit struct MaybeNull
```
```
lldb a.out -o "type lookup MemberData<&S::x>" -o "type lookup MemberData<&S::y>" -o quit
(lldb) target create "a.out"
Current executable set to 'a.out' (x86_64).
(lldb) type lookup MemberData<&S::x>
template<> struct MemberData<&S::x> {
int get(S &);
}
(lldb) type lookup MemberData<&S::y>
template<> struct MemberData<&S::y> {
int get(S &);
}
```
## **Debugger Evidence**
Collected at two `DW_TAG_template_value_parameter` DIEs during
ParseTemplateDIE, both with name="PtrToMember" and `type_class=256`
(eTypeClassMemberPointer): DIE `0xcb: uval64=8`; DIE `0x1e9 : uval64=24`
These correspond to two members of Fiber:
```
DW_TAG_member "listHook_" DW_AT_data_member_location(0x08) ← uval64=8
DW_TAG_member "globalListHook_" DW_AT_data_member_location(0x18) ← uval64=24
```
Clang's ground truth AST correctly produces TemplateArgument decl
(kind=Declaration) with distinct FieldDecl references for each
specialization.
```
22:| | |-ClassTemplateSpecializationDecl 0x36d785b7cc0 <line:43:1, line:56:1> line:44:8 struct mhtraits definition instantiated_from 0x36d785b4238 implicit_instantiation
23-| | | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
24-| | | | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
25-| | | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param
26-| | | | |-MoveConstructor exists simple trivial
27-| | | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
28-| | | | |-MoveAssignment exists simple trivial needs_implicit
29-| | | | `-Destructor simple irrelevant trivial
30-| | | |-TemplateArgument type 'intrusive::Fiber'
31-| | | | `-RecordType 0x36d785b3fb0 'intrusive::Fiber' canonical
32-| | | | `-CXXRecord 0x36d78344850 'Fiber'
33-| | | |-TemplateArgument type 'intrusive::list_member_hook<>'
34-| | | | `-RecordType 0x36d785b3c20 'intrusive::list_member_hook<>' canonical
35-| | | | `-ClassTemplateSpecialization 0x36d78344b48 'list_member_hook'
36-| | | |-TemplateArgument decl '&intrusive::Fiber::listHook_'
37-| | | | `-Field 0x36d785b3e70 'listHook_' 'list_member_hook<>':'intrusive::list_member_hook<>'
38-| | | |-CXXRecordDecl 0x36d785b93a0 <col:1, col:8> col:8 implicit struct mhtraits
39-| | | |-TypeAliasDecl 0x36d785b9470 <line:45:3, col:22> col:9 referenced value_type 'intrusive::Fiber'
40-| | | | `-SubstTemplateTypeParmType 0x36d785b9430 'intrusive::Fiber' sugar typename depth 0 index 0 T
41-| | | | |-ClassTemplateSpecialization 0x36d785b7cc0 'mhtraits'
42-| | | | `-RecordType 0x36d785b3fb0 'intrusive::Fiber' canonical
--
78:| | `-ClassTemplateSpecializationDecl 0x36d785b8210 <line:43:1, line:56:1> line:44:8 struct mhtraits definition instantiated_from 0x36d785b4238 implicit_instantiation
79-| | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
80-| | | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr
81-| | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param
82-| | | |-MoveConstructor exists simple trivial
83-| | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
84-| | | |-MoveAssignment exists simple trivial needs_implicit
85-| | | `-Destructor simple irrelevant trivial
86-| | |-TemplateArgument type 'intrusive::Fiber'
87-| | | `-RecordType 0x36d785b3fb0 'intrusive::Fiber' canonical
88-| | | `-CXXRecord 0x36d78344850 'Fiber'
89-| | |-TemplateArgument type 'intrusive::list_member_hook<>'
90-| | | `-RecordType 0x36d785b3c20 'intrusive::list_member_hook<>' canonical
91-| | | `-ClassTemplateSpecialization 0x36d78344b48 'list_member_hook'
92-| | |-TemplateArgument decl '&intrusive::Fiber::globalListHook_'
93-| | | `-Field 0x36d785b3f60 'globalListHook_' 'list_member_hook<>':'intrusive::list_member_hook<>'
94-| | |-CXXRecordDecl 0x36d785be080 <col:1, col:8> col:8 implicit struct mhtraits
95-| | |-TypeAliasDecl 0x36d785be150 <line:45:3, col:22> col:9 referenced value_type 'intrusive::Fiber'
96-| | | `-SubstTemplateTypeParmType 0x36d785be110 'intrusive::Fiber' sugar typename depth 0 index 0 T
97-| | | |-ClassTemplateSpecialization 0x36d785b8210 'mhtraits'
98-| | | `-RecordType 0x36d785b3fb0 'intrusive::Fiber' canonical
```
### **Full Paste**
```
$ llvm-dwarfdump --debug-info=0x000000cb repro.dwp -c -p
repro.dwp: file format elf64-x86-64
.debug_info.dwo contents:
0x00000014: DW_TAG_compile_unit
DW_AT_producer ("clang version 22.1.20 ...)
DW_AT_language (DW_LANG_C_plus_plus_14)
DW_AT_name ("repro.cpp")
DW_AT_dwo_name ("repro-repro.dwo")
0x0000001a: DW_TAG_namespace
DW_AT_name ("intrusive")
0x000000b9: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("mhtraits<intrusive::Fiber, intrusive::list_member_hook<(intrusive::link_mode_type)2>, &intrusive::Fiber::listHook_>")
DW_AT_byte_size (0x01)
DW_AT_decl_file (0x00)
DW_AT_decl_line (44)
0x000000cb: DW_TAG_template_value_parameter
DW_AT_type (0x0000022d "intrusive::list_member_hook<(intrusive::link_mode_type)2> intrusive::Fiber::*")
DW_AT_name ("PtrToMember")
DW_AT_const_value (8)
```
lldb prints:
```
p name
(const char *) 0x000055f44554c4ca "PtrToMember"
p uval64
(uint64_t) 8
p (unsigned)clang_type.GetTypeClass()
(unsigned int) 256
```
```
$ llvm-dwarfdump --debug-info=0x000001e9 repro.dwp -c -p
repro.dwp: file format elf64-x86-64
.debug_info.dwo contents:
0x00000014: DW_TAG_compile_unit
DW_AT_producer ("clang version 22.1.20")
DW_AT_language (DW_LANG_C_plus_plus_14)
DW_AT_name ("repro.cpp")
DW_AT_dwo_name ("repro-repro.dwo")
0x0000001a: DW_TAG_namespace
DW_AT_name ("intrusive")
0x000001d7: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("mhtraits<intrusive::Fiber, intrusive::list_member_hook<(intrusive::link_mode_type)2>, &intrusive::Fiber::globalListHook_>")
DW_AT_byte_size (0x01)
DW_AT_decl_file (0x00)
DW_AT_decl_line (44)
0x000001e9: DW_TAG_template_value_parameter
DW_AT_type (0x0000022d "intrusive::list_member_hook<(intrusive::link_mode_type)2> intrusive::Fiber::*")
DW_AT_name ("PtrToMember")
DW_AT_const_value (24)
```
lldb prints:
```
p name
(const char *) 0x000055f44554c4ca "PtrToMember"
p uval64
(uint64_t) 24
p (unsigned)clang_type.GetTypeClass()
(unsigned int) 256
```
Commit: c3d69eda36f10488512bf2ca4295fc07d096b489
https://github.com/llvm/llvm-project/commit/c3d69eda36f10488512bf2ca4295fc07d096b489
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Dialect/LLVMIR/mem2reg.mlir
Log Message:
-----------
[mlir][mem2reg] Process direct uses inside other regions. (#188359)
We need to add the regions with the direct uses into the list
for processing, otherwise the direct uses will not be removed
and will use the slot after the promotion.
The added LIT test was triggering "after promotion, the slot pointer
should not be used anymore" assertion.
Commit: 30084d74765c70e9cab4f11e9f2c29f141df299e
https://github.com/llvm/llvm-project/commit/30084d74765c70e9cab4f11e9f2c29f141df299e
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libcxx/include/ext/hash_map
A libcxx/test/extensions/gnu/hash_map/non_standard_layout.pass.cpp
A libcxx/test/extensions/gnu/hash_multimap/non_standard_layout.pass.cpp
Log Message:
-----------
[libc++] Fix type confusion in hash_{,multi}map
The type `__gnu_cxx::hash_{,multi}map` creates objects of type
`std::pair<Key, Value>` and returns pointers to them of type
`std::pair<const Key, Value>`. If either `Key` or `Value` are
non-standard-layout, this is UB, and is furthermore considered by
pointer field protection to be a type confusion, which leads to a
program crash. Fix it by using the correct type for the pair's storage
and using const_cast to form a pointer to the key in the one place where
that is needed.
Reviewers: ldionne
Reviewed By: ldionne
Pull Request: https://github.com/llvm/llvm-project/pull/183223
Commit: 2a7b0f06d2060dbab8fa38fae7689f2d9048fa9d
https://github.com/llvm/llvm-project/commit/2a7b0f06d2060dbab8fa38fae7689f2d9048fa9d
Author: Charlie Li <git at vishwin.info>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M lldb/bindings/python/python-wrapper.swig
Log Message:
-----------
[lldb] use the Py_REFCNT() macro instead of directly accessing member (#188161)
[PyObject members are not to be accessed
directly](https://docs.python.org/3/c-api/structures.html#c.PyObject),
but rather through macros, in this case `Py_REFCNT()`.
In most, ie Global Interpreter Lock-enabled, CPython cases,
`Py_REFCNT()` expands to accessing `ob_refcnt` anyway. However, in a
free-threaded CPython, combined with disabling the limited API (since it
requires the GIL for now), the direct member does not exist, causing the
build to fail. The macro expands to the correct access method in the
free-threaded configuration.
Commit: 710c2f0ca5a4e0b93eda0e014af24ed09946f5c5
https://github.com/llvm/llvm-project/commit/710c2f0ca5a4e0b93eda0e014af24ed09946f5c5
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
[SandboxIR][Tracker] Test UncondBrInst CondBrInst setters (#187549)
This checks the `setCondition()` and `setSuccessor()` setters introduced
in #187196.
Commit: d2dab9788a57186a2b3ce927ee8a0fcdb09907a2
https://github.com/llvm/llvm-project/commit/d2dab9788a57186a2b3ce927ee8a0fcdb09907a2
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/test/CodeGen/SPIRV/bool-vector-bitcast.ll
A llvm/test/CodeGen/SPIRV/llvm-intrinsics/masked-load-store.ll
Log Message:
-----------
[SPIR-V] Decompose bitcasts involving bool vectors (#187960)
OpTypeBool has no defined bitwidth in SPIR-V, so OpBitcast is invalid
for boolean vector types. Decompose `<N x i1> <-> iN` bitcasts into
element-wise extract/shift/OR and AND/icmp/insert sequences during IR
preprocessing.
Fixes:
https://github.com/kuhar/iree/blob/amdgcn-spirv/spirv-repros/bitcast_crash.ll
and https://github.com/llvm/llvm-project/issues/185815
Commit: dd9885c0f34fdf64e0de2b07b94ab141274a82e2
https://github.com/llvm/llvm-project/commit/dd9885c0f34fdf64e0de2b07b94ab141274a82e2
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-macro.cpp
Log Message:
-----------
[clang-tidy] Add missing #include insertion in macros for modernize-use-std-format (#188247)
Added missing ``#include`` insertion when the format function call
appears as an argument to a macro.
Part of #175183
---------
Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Commit: b60a39e3c223624577d475f278bbc26540adca9c
https://github.com/llvm/llvm-project/commit/b60a39e3c223624577d475f278bbc26540adca9c
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A lld/test/wasm/lto/thinlto-shared-memory-atomics.ll
M lld/wasm/LTO.cpp
Log Message:
-----------
[lld][WebAssembly] Propagate +atomics for ThinLTO when using --shared-memory (#188381)
When compiling WebAssembly with ThinLTO, functions are partitioned into
isolated `.bc` modules and dispatched to individual LTO backend threads.
During code generation, the `CoalesceFeaturesAndStripAtomics` pass
iterates over the module to gather the union of target features (like
`+atomics`) attached to defined functions. In particular when not using
threads, it lowers away atomics and TLS variables to their
single-threaded equivalents.
However, if a partitioned module only contains globally defined TLS
variables (e.g. there are no functions, or all functions were fully
inlined or stripped by dropDeadSymbols before ThinLTO optimization), the
module becomes completely devoid of function definitions. The coalescing
pass then falls back to fetching features from the `TargetMachine`.
Because in LTO the `TargetMachine` defaults to a generic target without
atomics enabled, the TLS is lowered away and the `wasm-feature-atomics`
flag is omitted from the resulting ThinLTO object partition, causing
`wasm-ld` to immediately reject it.
To fix this we take advantage of the fact that the linker always knows
whether threads are being used (via the --shared-memory flag). When
using shared memory, we enable +atomics and +bulk-memory in the
TargetMachine that is used for the backend, and the feature coalescing
pass will correctly detect the use of therads.
This only makes sense for atomics because of the global linker
configuration; for other features we wouldn't be able to do this, but we
don't rewrite away any other features anyway.
Commit: 9999f7fe085333215d95a022e15a12610289c4e3
https://github.com/llvm/llvm-project/commit/9999f7fe085333215d95a022e15a12610289c4e3
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/src/math/atanpif16.h
Log Message:
-----------
[libc] Wrong header guard comment for atanpif16 (#188310)
This PR intends to fix a small nit caused in
[1c1135b](https://github.com/llvm/llvm-project/pull/150400/commits/1c1135b3fccf59537243fc365e83a568f77273ae)
```
#endif // LLVM_LIBC_SRC_MATH_ASINIF16_H
```
to
```
#endif // LLVM_LIBC_SRC_MATH_ATANPIF16_H
```
Commit: 408bb4d4b22bbd255eb0b4ea65b9c9d18bf55979
https://github.com/llvm/llvm-project/commit/408bb4d4b22bbd255eb0b4ea65b9c9d18bf55979
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M libc/src/math/totalorderbf16.h
M libc/src/math/totalordermagbf16.h
Log Message:
-----------
[libc] Wrong guards for `totalorderbf16` and `totalordermagbf16` (#188241)
Currently the guards for `totalorderbf16` and `totalordermagbf16` are as
follows:
```
#ifndef LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
#define LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
-
#endif // LLVM_LIBC_SRC_MATH_TOTALORDERMAGF16_H
```
and
```
#ifndef LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
#define LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
-
#endif // LLVM_LIBC_SRC_MATH_TOTALORDERF16_H
```
As we can see these are for F16 and not BF16 .
This Pr intends to fix that with correct guards as `TOTALORDERBF16` and
`TOTALORDERMAGBF16`
Commit: aecfaf11953fe6117a15a26b81d86bb75813e09b
https://github.com/llvm/llvm-project/commit/aecfaf11953fe6117a15a26b81d86bb75813e09b
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M flang/lib/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.cpp
M flang/test/Fir/OpenACC/offload-livein-value-canonicalization.fir
Log Message:
-----------
[flang][acc] Handle fir.undefined with OutlineRematerializationOpInterface in OffloadLiveInValueCanonicalization (#188325)
Example:
```fortran
!$ACC KERNELS PRESENT(CG, W1)
CG(1:W1%WDES1%NPL, NN) = W1%CPTWFP(1:W1%WDES1%NPL)
CPROJ(:, NN) = W1%CPROJ(1:SIZE(CPROJ,1))
!$ACC END KERNELS
```
When compiling OpenACC kernels containing array section assignments of
rank-2 arrays with a scalar index in one dimension (e.g. `CG(1:NPL,
NN)`), the Fortran lowering creates a `fir.slice` where collapsed
(scalar) dimensions use `fir.undefined index` as the stop/step values.
`SliceOp::getOutputRank()` relies on `getDefiningOp()` returning
`fir::UndefOp` to identify these collapsed dimensions and compute the
correct output rank.
When `fir.undefined` values defined outside an offload region are used
inside it, `gpu-kernel-outlining` turns them into function arguments.
Since function arguments have no defining op (`getDefiningOp()` returns
`nullptr`), `getOutputRank()` no longer recognizes the collapsed
dimensions, computing rank 2 instead of rank 1. This causes the
`fir.rebox` verifier to fail with:
```
'fir.rebox' op result type rank and rank after applying slice operand must match
```
Fix: Register `OutlineRematerializationOpInterface` for `fir::UndefOp`
(and `fir::SliceOp`) in `RegisterOpenACCExtensions.cpp`. This causes
`OffloadLiveInValueCanonicalization` to clone these operations inside
the offload region before outlining, preserving the `fir::UndefOp`
identity so that `getOutputRank()` correctly identifies collapsed
dimensions.
Commit: cb125346509a10b48d32788a8242b3722e5113d9
https://github.com/llvm/llvm-project/commit/cb125346509a10b48d32788a8242b3722e5113d9
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/lib/builtins/emutls.c
Log Message:
-----------
[compiler-rt] Suppress unused variable report in emutls
Pull Request: https://github.com/llvm/llvm-project/pull/188329
Commit: 218f240472086d243ec6a30651e7ea9c2b9b4c8b
https://github.com/llvm/llvm-project/commit/218f240472086d243ec6a30651e7ea9c2b9b4c8b
Author: Jim Lin <jim at andestech.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
Log Message:
-----------
[RISCV] Fix ssub_sat cost model to use signed VSSUB instead of VSSUBU (#188195)
Intrinsic::ssub_sat was incorrectly mapped to RISCV::VSSUBU_VV (unsigned
saturating subtract) instead of RISCV::VSSUB_VV (signed saturating
subtract), causing wrong cost estimates.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: d49d24ca978d8130c2e440fb42fea8f237c5203e
https://github.com/llvm/llvm-project/commit/d49d24ca978d8130c2e440fb42fea8f237c5203e
Author: Philip Reames <preames at rivosinc.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.cpp
M llvm/test/Analysis/CostModel/RISCV/rvv-extractelement.ll
M llvm/test/Analysis/CostModel/RISCV/rvv-insertelement.ll
M llvm/test/CodeGen/RISCV/features-info.ll
M llvm/test/CodeGen/RISCV/pr148084.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll
M llvm/test/DebugInfo/RISCV/relax_dwo_ranges.ll
R llvm/test/MC/RISCV/xrivosvisni-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Remove the experimental XRivosVisni extension (#188370)
Commit: 6ae5803ffdebf1486d9a1987b818a231444cfd8d
https://github.com/llvm/llvm-project/commit/6ae5803ffdebf1486d9a1987b818a231444cfd8d
Author: wanglei <wanglei at loongson.cn>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/test/CodeGen/LoongArch/fsqrt-reciprocal-estimate.ll
M llvm/test/CodeGen/LoongArch/lasx/fsqrt-reciprocal-estimate.ll
M llvm/test/CodeGen/LoongArch/lsx/fsqrt-reciprocal-estimate.ll
Log Message:
-----------
[LoongArch] Fix incorrect reciprocal sqrt estimate semantics (#187621)
The current implementation of getSqrtEstimate() has incorrect semantics
when using `FRSQRTE`.
`FRSQRTE` computes an approximation to 1/sqrt(x), but the existing code
multiplies the estimate by the operand when Reciprocal is true. This
results in returning sqrt(x) instead of 1/sqrt(x), effectively reversing
the intended semantics of the 'Reciprocal' flag.
Additionally, the implementation does not properly account for LLVM's
Newton-Raphson refinement pipeline. When refinement steps are requested,
the initial estimate must be in reciprocal form so that the generic
DAGCombiner can apply NR iterations correctly.
This patch fixes the behavior by:
- Returning the raw FRSQRTE result when Reciprocal is true, or when
refinement steps are required.
- Only reconstructing sqrt(x) via x * rsqrt(x) when no refinement is
requested.
- Refactoring type checks into a helper function
(isSupportedReciprocalEstimateType)
for improved readability and maintainability.
The updated implementation aligns with the expectations of LLVM's
reciprocal estimate framework and matches the behavior of other targets
such as X86 and AArch64.
No functional change when reciprocal estimates are disabled, but fixes
incorrect results when fast-math enables reciprocal sqrt estimates.
Fixes #186328
Commit: cd9a0dc4545773e0c8b80f56881423751efa5994
https://github.com/llvm/llvm-project/commit/cd9a0dc4545773e0c8b80f56881423751efa5994
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
M llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp
M llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
Log Message:
-----------
[ORC] EPCGenericJITLinkMemoryManager from SimpleNativeMemoryMap syms. (#188391)
Adds a new EPCGenericJITLinkMemoryManager convenience constructor that
constructs an instance by looking up the given symbol names in the
bootstrap JITDylib of the given ExecutionSession.
The symbol names default to the SimpleNativeMemoryMap SPS-interface
symbol names provided by the new ORC runtime.
Commit: 80603c6672226cb48798bd60120c8f859dbeca19
https://github.com/llvm/llvm-project/commit/80603c6672226cb48798bd60120c8f859dbeca19
Author: Weibo He <NewSigma at 163.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/docs/Coroutines.rst
M llvm/docs/LangRef.rst
M llvm/lib/FuzzMutate/RandomIRBuilder.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
A llvm/test/Transforms/Coroutines/coro-alloca-10.ll
M llvm/unittests/FuzzMutate/StrategiesTest.cpp
Log Message:
-----------
[CoroSplit] Never collect allocas used by catchpad into frame (#186728)
Windows EH requires exception objects allocated on stack. But there is
no reliable way to identify them. CoroSplit employs a best-effort
algorithm to determine whether allocas persist on the stack or the
frame, which may result in miscompilation when Windows exceptions are
used.
This patch proposes that we treat allocas used by catchpad as exception
objects and never place them on the frame. A verifier check is added to
enforce that operands of catchpad are either constants or allocas.
Close #143235 Close #153949 Close #182584
Commit: eca7d833a6158194078635c1054ada81324e9b97
https://github.com/llvm/llvm-project/commit/eca7d833a6158194078635c1054ada81324e9b97
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp
M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
M mlir/test/Dialect/MemRef/expand-strided-metadata.mlir
Log Message:
-----------
[mlir][memref] Simplify expand_shape size/stride computation using output_shape (#187844)
This PR refactors `getExpandedSizes` and `getExpandedStrides` to compute
their results directly from the `output_shape` of `memref.expand_shape`.
Instead of reconstructing expanded sizes/strides through manual
inference, we now rely on the operation’s explicit shape information.
The previous implementation imposed the restriction that there must be
at most one dynamic size per reassociation group. This limitation is
removed by the new approach: any number of dynamic dimensions within a
group is now supported, as long as they are represented in the
`output_shape`.
As a result, the code becomes both simpler and more expressive, while
better matching the semantics of `memref.expand_shape`.
Commit: feae3bc202cedbc1e83201eb8ea147f1a7729cd3
https://github.com/llvm/llvm-project/commit/feae3bc202cedbc1e83201eb8ea147f1a7729cd3
Author: Nikhil Kotikalapudi <nak00001 at outlook.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/include/__iterator/wrap_iter.h
Log Message:
-----------
[libc++] Remove non-standard member type iterator_type from __wrap_iter (#186871)
Resolves #186801
Removed the non-standard member type `iterator_type` from `__wrap_iter`.
This member exposed the underlying iterator type, and its removal
prevents users from relying on the implementation detail.
Commit: b16e012603de706c6fa172af92767a22094fb8b1
https://github.com/llvm/llvm-project/commit/b16e012603de706c6fa172af92767a22094fb8b1
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang-rt/lib/runtime/trampoline.cpp
Log Message:
-----------
[flang-rt] Fix macOS build: define _DARWIN_C_SOURCE for mmap flags (#186142)
On Darwin, `sys/mman.h` hides `MAP_JIT` and `MAP_ANON(YMOUS)` when
`_POSIX_C_SOURCE` is defined unless `_DARWIN_C_SOURCE` is also defined.
`trampoline.cpp` uses those flags, so this change defines
`_DARWIN_C_SOURCE` before including `<sys/mman.h>` in this file.
Fixes build failure reported in #183108.
Co-authored-by: Sairudra More <moresair at pe31.hpc.amslabs.hpecorp.net>
Commit: 665c2e91e29ddfc2a60746d7d2e6bc60fe5d3e08
https://github.com/llvm/llvm-project/commit/665c2e91e29ddfc2a60746d7d2e6bc60fe5d3e08
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A flang/test/Integration/OpenMP/taskloop-bounds-cast.f90
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
A mlir/test/Target/LLVMIR/openmp-taskloop-bounds-cast.mlir
Log Message:
-----------
[Flang][OpenMP] Remove dead restoreIP in OpenMP taskloop lowering (#187222)
This fixes an intermittent crash in `OpenMP` taskloop lowering.
In `OMPIRBuilder::createTaskloop`, the `restoreIP` in `PostOutlineCB`
was immediately overwritten by the following
`Builder.SetInsertPoint(StaleCI)` with no instructions created in
between, so it was effectively dead. This patch removes that dead
restore, which is the smallest change and preserves the intended IR
placement.
Adds a regression test that compiles a taskloop to LLVM IR and verifies
the bounds casts and __kmpc_taskloop call are present.
Commit: f599bfcd273a502aebb392b901e39240a0074710
https://github.com/llvm/llvm-project/commit/f599bfcd273a502aebb392b901e39240a0074710
Author: Fangrui Song <i at maskray.me>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lld/ELF/LinkerScript.cpp
Log Message:
-----------
[ELF] Guard relocation section handling behind copyRelocs in addOrphanSections. NFC (#188409)
In addOrphanSections, getRelocatedSection() only returns non-null for -r
or --emit-relocs links. Guard code blocks with `copyRelocs` to skip
unnecessary dyn_cast + getRelocatedSection calls per section in the
common case. Hoist copyRelocs and relocatable to local variables so the
compiler does not reload them through ctx on every loop iteration.
"Assign sections" decreases by 1ms.
Commit: 3b04d26abd50bb50f8ffa889439a30f2b778d9a1
https://github.com/llvm/llvm-project/commit/3b04d26abd50bb50f8ffa889439a30f2b778d9a1
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
A compiler-rt/test/asan/TestCases/disable_container_overflow_checks.c
R compiler-rt/test/asan/TestCases/disable_container_overflow_checks.cpp
A compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.c
R compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.cpp
Log Message:
-----------
[asan] Convert __SANITIZER_DISABLE_CONTAINER_OVERFLOW__ tests to C (#188406)
As-is tests do not pass on android with older C++ headers.
There is nothing C++ specific in tests.
Followup to #181721.
Commit: 2eae3f3fcfe503370d7487d3bf1cfa7e488016d4
https://github.com/llvm/llvm-project/commit/2eae3f3fcfe503370d7487d3bf1cfa7e488016d4
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
A clang/test/ClangScanDeps/p1689-suppress-warnings.cppm
Log Message:
-----------
[Reland] [ClangScanDeps] Do not emit warning for P1689 format (#186966) (#188401)
Close https://github.com/llvm/llvm-project/issues/185394
This is only for P1689 format as ClangScanDeps/optimize-vfs-pch.m will
check for warning message. I'll leave this to people who want to change
that.
Commit: acbbe5c145a9702d14e163659a60573aaf66036c
https://github.com/llvm/llvm-project/commit/acbbe5c145a9702d14e163659a60573aaf66036c
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstddef
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stddef.h
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-cxx98.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove hack in readability-implicit-bool-conversion testcases (#188399)
Another attempt after #184850
Commit: a5a7f6266ef05aa0093a779d6f2fc8e513a352e6
https://github.com/llvm/llvm-project/commit/a5a7f6266ef05aa0093a779d6f2fc8e513a352e6
Author: Andrew Haberlandt <ahaberlandt at apple.com>
Date: 2026-03-24 (Tue, 24 Mar 2026)
Changed paths:
M compiler-rt/test/builtins/CMakeLists.txt
M compiler-rt/test/builtins/Unit/lit.cfg.py
M compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
Log Message:
-----------
[compiler-rt] CRT builtins tests should not run on mac/windows under LLVM_ENABLE_RUNTIMES (#187835)
#171941 got the builtins tests running under LLVM_ENABLE_RUNTIMES by
testing the builtins as part of the runtimes build.
As a consequence, CMake in `lib/builtins/` is no longer visible when
configuring the tests (but `test/builtins/` is). This means that the
`cmake_dependent_option` from `lib/builtins/` is not accounted for by
the tests, allowing COMPILER_RT_BUILD_CRT to be YES when
COMPILER_RT_HAS_CRT is NO. As a consequence, the CRT tests are running
on platforms where COMPILER_RT_HAS_CRT is false (#176892).
https://github.com/llvm/llvm-project/blob/367da15a11c52886c50e7f020cb4de59fe6d07ca/compiler-rt/lib/builtins/CMakeLists.txt#L1106-L1108
Although the long-term solution could be to split both the builtins (and
their tests) out of compiler-rt into a top-level directory with shared
options, this works around the issue for the moment by checking both
COMPILER_RT_HAS_CRT and COMPILER_RT_BUILD_CRT before enabling the "crt"
feature.
Fixes #176892
Commit: f0b58c16e10c401bb772db55f3ef8a9803afef65
https://github.com/llvm/llvm-project/commit/f0b58c16e10c401bb772db55f3ef8a9803afef65
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/docs/dev/cmake_build_rules.rst
M libc/docs/dev/entrypoints.rst
M libc/docs/dev/fuzzing.rst
M libc/docs/dev/implementation_standard.rst
M libc/docs/dev/source_tree_layout.rst
M libc/docs/dev/undefined_behavior.rst
M libc/docs/porting.rst
Log Message:
-----------
[libc][docs][NFC] Expand entrypoints technical reference (#4) (#188255)
Expanded entrypoints.rst with details about definitions, registration
rules, and the lifecycle of an entrypoint.
Updated multiple documents to remove redundant technical details and
link to the centralized entrypoints reference:
- libc/docs/dev/cmake_build_rules.rst
- libc/docs/dev/implementation_standard.rst
- libc/docs/porting.rst
- libc/docs/dev/source_tree_layout.rst
Commit: d69fc653c1cad4f1eb8acc7a31e4f5efe1fcdb49
https://github.com/llvm/llvm-project/commit/d69fc653c1cad4f1eb8acc7a31e4f5efe1fcdb49
Author: Ruiling, Song <ruiling.song at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-placeholder-replacement.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-use-after-erase.ll
Log Message:
-----------
AMDGPU: Simplify placeholder replacement in AMDGPUPromoteAlloca (#188202)
If `promoteAllocaUserToVector` returns the placeholder, it means the
instruction does not actually modify the alloca. we don't need to add
the placeholder as block available value for correctness. Instructions
appear afterwards in the the same block could still get the placeholder
as source value through GetCurVal() call. Instructions in other block
which access the alloca will be set up later when we really do
placeholder replacement.
This help simplify the placeholder replacement logic.
Commit: abd26bf251a6303a249523aa3dd683f7f5372280
https://github.com/llvm/llvm-project/commit/abd26bf251a6303a249523aa3dd683f7f5372280
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/SelfExecutorProcessControl.h
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
Log Message:
-----------
[ORC] Move DylibManager impl out of SelfExecutorProcessControl. (#188417)
SelfExecutorProcessControl no longer implements DylibManager. Instead a
private inner class, InProcessDylibManager, is used to implement this
interface. This change should not affect the behavior of
SelfExecutorProcessControl from the perspective of API clients.
This is a step towards decoupling ExecutorProcessControl implementations
from other interfaces.
Commit: e40062c0bdefc0272b918031d1f4d41443efe8bd
https://github.com/llvm/llvm-project/commit/e40062c0bdefc0272b918031d1f4d41443efe8bd
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
Log Message:
-----------
[OFFLOAD][L0] Add support to run ctor/dtor code (#187510)
This PR adds support in the Level Zero plugin to execute
constructors/destructors on the device code. As spirv-link has some
limitations, it mimics the CUDA plugin behavior where the RTL constructs
the device side tables before invoking the kernel that will execute
them.
The kernel and other necessary symbols to create the device tables are
created by the SPIRVCtorDtorLowering pass to be added in #187509
Commit: 4c4c1db7c69a6fda6cfa6bc6066bb09a433edc89
https://github.com/llvm/llvm-project/commit/4c4c1db7c69a6fda6cfa6bc6066bb09a433edc89
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
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/llvm-libc-macros/linux/sys-stat-macros.h
M libc/include/sys/stat.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/utimensat.h
M libc/src/sys/stat/CMakeLists.txt
M libc/src/sys/stat/linux/CMakeLists.txt
A libc/src/sys/stat/linux/utimensat.cpp
A libc/src/sys/stat/utimensat.h
M libc/src/sys/time/linux/CMakeLists.txt
M libc/src/sys/time/linux/utimes.cpp
M libc/test/src/sys/stat/CMakeLists.txt
A libc/test/src/sys/stat/utimensat_test.cpp
Log Message:
-----------
[libc] Add utimensat syscall wrapper and entrypoint (#188347)
Implemented the utimensat syscall for Linux and added the entrypoint to
sys/stat.h.
* Added utimensat syscall wrapper to OSUtil
* Updated utimes to use the utimensat wrapper
* Added utimensat unit tests to sys/stat
* Configured entrypoints for x86_64, riscv, and aarch64
Commit: 19048672ab1bc9acbcb517655116729426443112
https://github.com/llvm/llvm-project/commit/19048672ab1bc9acbcb517655116729426443112
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A llvm/test/Transforms/InstCombine/nanless-canonicalize-combine.ll
Log Message:
-----------
InstCombine: Add baseline test for nanless canonicalize combine (#172997)
Commit: 34ee487775ae3b93f241e1bf8c8e97046d998654
https://github.com/llvm/llvm-project/commit/34ee487775ae3b93f241e1bf8c8e97046d998654
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/test/CodeGen/AMDGPU/si-lower-sgpr-spills-vgpr-lanes-usage.mir
Log Message:
-----------
AMDGPU: Implememt memsize forms of isLoadFromStackSlot/isStoreToStackSlot (#188264)
Requested in #182673, though I'm not sure why this needs to be pushed
into targets. The size can be taken from the machine mem operand
generically.
Commit: 7cb57c680828ff1a8cb020296c9995cc01bf1c3d
https://github.com/llvm/llvm-project/commit/7cb57c680828ff1a8cb020296c9995cc01bf1c3d
Author: Tuomas Kärnä <tuomas.karna at intel.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/TransformOps/XeGPUTransformOps.td
M mlir/lib/Dialect/XeGPU/TransformOps/XeGPUTransformOps.cpp
M mlir/python/mlir/dialects/transform/xegpu.py
M mlir/test/Dialect/XeGPU/transform-ops-invalid.mlir
M mlir/test/Dialect/XeGPU/transform-ops.mlir
M mlir/test/python/dialects/transform_xegpu_ext.py
Log Message:
-----------
[MLIR][XeGPU][TransformOps] Remove obsolete transform ops (#187561)
Cleaning up XeGPU transform ops. Now that XeGPU layout propagation
works, it is sufficient to set the layouts for anchor ops (e.g.
load/store/dpas ops) only.
Changes:
* Remove `xegpu.get_desc_op` and `xegpu.set_desc_layout`. Users should
not change the layout of descriptor op's return value anymore.
* Add `xegpu.get_load_op(value)` that finds either `xegpu.load_nd` or
`xegpu.load` op in the value's producer chain. This is a useful utility
as load ops often need to be annotated with a layout.
* The generic `xegpu.set_op_layout_attr(op, ...)` is now replaced by
`xegpu.set_anchor_layout(op, ...)` that only sets layout attribute of
anchor ops. Raises an error if the given op does not support anchor
layouts.
* `xegpu.insert_prefetch` takes a load op handle instead of a value.
Commit: c1cd0d57c319c28cb0ded983eb7f1fb07163faea
https://github.com/llvm/llvm-project/commit/c1cd0d57c319c28cb0ded983eb7f1fb07163faea
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/gentype.inc
M libclc/clc/include/clc/math/math.h
M libclc/clc/lib/generic/math/clc_ep.cl
M libclc/clc/lib/generic/math/clc_ep.inc
M libclc/clc/lib/generic/math/clc_sincos_helpers.inc
Log Message:
-----------
libclc: Unify fast FMA controls (#188244)
This was defined in multiple places with different names. Consolidate
on one, with a gentype wrapper for it. Also set the value based on the
standard FP_FAST_FMA* macros.
Commit: 73df0d6b2cbcd485f99afc6714b6f0148a3993ef
https://github.com/llvm/llvm-project/commit/73df0d6b2cbcd485f99afc6714b6f0148a3993ef
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32.s
M llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32_err.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
Log Message:
-----------
[AMDGPU] Disable neg_lo[0:1] and neg_hi[0:1] on gfx1250 WMMA, MC part (#188349)
Commit: 5012b76ae273790340283084a3d0de96aeb54866
https://github.com/llvm/llvm-project/commit/5012b76ae273790340283084a3d0de96aeb54866
Author: David Green <david.green at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/test/CodeGen/ARM/vld2.ll
Log Message:
-----------
[ARM] Fix incorrect post increment from Or (#188036)
If a Or is detected by findPointerConstIncrement but not by
getPointerConstIncrement it could use an invalid increment for the
offset. Protect against cases where getPointerConstIncrement cannot
return a valid offset.
Fixes #185677
Commit: 4e7274dd4ae6ded0bdb8e79b58e33359d4cbfa79
https://github.com/llvm/llvm-project/commit/4e7274dd4ae6ded0bdb8e79b58e33359d4cbfa79
Author: Raphael Isemann <rise at apple.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Target/Thread.cpp
Log Message:
-----------
[lldb] Print correct thread plan in logging code of Thread::ShouldReportRun (#188198)
This code accesses the completed thread plan (even if it's private one).
However, the logging code does not pass `skip_private=false` and instead
accesses only the public completed thread plan. In case there is no
public thread plan, the logging code could also crash.
This is just some minor refactoring that ensures we use the same thread
plan in the logging code.
Commit: 8b1f7f00b43757ab941c8b835be5fee6495084c1
https://github.com/llvm/llvm-project/commit/8b1f7f00b43757ab941c8b835be5fee6495084c1
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-03-25 (Wed, 25 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-coeff-may-zero.ll
Log Message:
-----------
[DA] Fix the Weak Crossing SIV test when Coeff and Delta are zero (#188203)
The Weak Zero SIV test concluded that there is a dependency only in the
`=`-direction when `Delta` is zero. This is incorrect, because the
coefficients of the addrecs might be zero, in which case the dependency
should have all directions. This patch adds non-zero check for the
coefficient to address the issue.
Commit: c43f6a060ae40788f4b2ab17b4fef91215b26cac
https://github.com/llvm/llvm-project/commit/c43f6a060ae40788f4b2ab17b4fef91215b26cac
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vec-strict-cmp-128.ll
Log Message:
-----------
[X86] Fix widening for strict_fmin/fmax (#188286)
I believe that widening these with undef is not correct, because the
undef values might be picked as sNaN and then trap.
Commit: 0e49be0d985e30592b400961e77e2582082ed196
https://github.com/llvm/llvm-project/commit/0e49be0d985e30592b400961e77e2582082ed196
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/math.h
Log Message:
-----------
libclc: Force assuming fast float fma for AMDGPU (#188245)
Currently the build uses the default dummy target, which assumes
FMA is slow. Force this to assume fast fma, which is the case on
any remotely new hardware. In the future if we want better support
for older targets, there should be a separate build of the math
functions for the slow fma case.
Commit: 7c933f0979e03eb3acd132706e378185acae24b8
https://github.com/llvm/llvm-project/commit/7c933f0979e03eb3acd132706e378185acae24b8
Author: Matthias Springer <me at m-sp.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
M mlir/test/Conversion/ArithToLLVM/convert-nd-vector-to-llvmir.mlir
M mlir/test/Dialect/Arith/canonicalize.mlir
M mlir/test/Dialect/Arith/invalid.mlir
M mlir/test/Dialect/Arith/ops.mlir
Log Message:
-----------
[mlir][arith] Add `arith.convertf` op (#188041)
There are multiple FP types with the same bitwidth. Neither `extf` nor
`truncf` can be used in that case. Add a new `arith.convertf` op that
can be used in such cases. The op is modeled after `arith.truncf`. Also
add a lowering to LLVM.
Discussion:
https://discourse.llvm.org/t/arith-fptofp-vs-arith-extf-arith-truncf/90276
Assisted-by: claude-4.6-opus-high
Commit: ebe2454dc518d8edcd352fcb2038797eccc13d42
https://github.com/llvm/llvm-project/commit/ebe2454dc518d8edcd352fcb2038797eccc13d42
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/include/clc/math/clc_atan_helpers_decl.inc
M libclc/clc/lib/generic/math/clc_atan_helpers.inc
M libclc/clc/lib/generic/math/clc_atanpi.cl
M libclc/clc/lib/generic/math/clc_atanpi.inc
Log Message:
-----------
libclc: Update atanpi (#188424)
This was originally ported from rocm device libs in
03dc366e79cd01afe0bbfad2a7ede3087d6c9356. Merge in more
recent changes.
Commit: 1dbf7c7e1b9ef996f1db0fc2454d39cf5433dd92
https://github.com/llvm/llvm-project/commit/1dbf7c7e1b9ef996f1db0fc2454d39cf5433dd92
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0Kernel.h
M offload/plugins-nextgen/level_zero/include/L0Trace.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
Log Message:
-----------
[OFFLOAD] Improve resource management of the plugin (#187597)
This PR improves event management of the plugin by fixing potential
resource leaks and preventing a potential deadlock
Commit: 952dc121244765e6d2b5614b51d7293ab7a2f232
https://github.com/llvm/llvm-project/commit/952dc121244765e6d2b5614b51d7293ab7a2f232
Author: Jakob Koschel <jakobkoschel at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/src/__support/OSUtil/darwin/aarch64/syscall.h
M libc/src/__support/OSUtil/linux/aarch64/syscall.h
M libc/src/__support/OSUtil/linux/arm/syscall.h
M libc/src/__support/OSUtil/linux/i386/syscall.h
M libc/src/__support/OSUtil/linux/riscv/syscall.h
M libc/src/__support/OSUtil/linux/x86_64/syscall.h
Log Message:
-----------
Force to inline syscall_impl on all platforms (#186849)
With currently only LIBC_INLINE, we just hint the compiler to inline the
function which however in practice is not always the case.
Since we added `[[gnu::always_inline]]` on linux/x86_64 it makes sense
to do it on all platforms consistently and add a comment explaining why
we need it.
Commit: ea3eb0144748cd03f4e57570b41820688a88c8c0
https://github.com/llvm/llvm-project/commit/ea3eb0144748cd03f4e57570b41820688a88c8c0
Author: Midhunesh <midhunesh.p at ibm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Log Message:
-----------
[NFC][llvm-symbolizer]Replace makeStringError helper with createStringError (#188428)
The local `makeStringError` helper in `llvm-symbolizer.cpp` is
equivalent to `createStringError` from `llvm/Support/Error.h`. Remove it
and use `createStringError` directly at all call sites.
Commit: b549b3378f5613f9e136e8d3003603b826906e39
https://github.com/llvm/llvm-project/commit/b549b3378f5613f9e136e8d3003603b826906e39
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/lib/CIR/CodeGen/CIRGenBuiltinRISCV.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CMakeLists.txt
Log Message:
-----------
[CIR][RISCV][NFC] Add CIRGenBuiltinRISCV file to support RISCV builtins codegen (#186050)
This PR adds CIRGenBuiltinRISCV.cpp file for RISCV specific builtins
codegen support.
List all builtins except vector builtins which need tablegen, and mark
them as "NYI".
Commit: 3ac9b77df2fd1d988129fc920c949234736bcb9e
https://github.com/llvm/llvm-project/commit/3ac9b77df2fd1d988129fc920c949234736bcb9e
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/lib/Analysis/LazyValueInfo.cpp
Log Message:
-----------
[LVI] Remove unused DL member (NFC)
This is never used (the data layout is taken later from the
module instead) and not even initialized in the legacy PM code path.
Commit: 2ecd8e2d5243e7d09e040270ce3fa03011f893bc
https://github.com/llvm/llvm-project/commit/2ecd8e2d5243e7d09e040270ce3fa03011f893bc
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/lib/Analysis/LazyValueInfo.cpp
Log Message:
-----------
[LVI] Store function in LVI wrapper class
We know the function we're working on at construction, there is
no need to have code to fetch the module in every place that
fetches the Impl object.
I'm storing the function instead of the module to be able to get
the block number epoch in a future change.
Commit: 458d3a8f0541a9fe2e7af22a47f7aa4f71151113
https://github.com/llvm/llvm-project/commit/458d3a8f0541a9fe2e7af22a47f7aa4f71151113
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/src/sys/time/linux/utimes.cpp
Log Message:
-----------
[libc] Fix unused variable warning in utimes.cpp (#188347) (#188448)
Moved the declaration of 'ret' inside the SYS_utimes block to prevent an
unused variable warning on the libc-riscv32-qemu-yocto-fullbuild-dbg
builder, which doesn't define SYS_utimes.
Commit: 2e7dd442a562c12756d9a6a19479f628bc87d540
https://github.com/llvm/llvm-project/commit/2e7dd442a562c12756d9a6a19479f628bc87d540
Author: Endre Fülöp <endre.fulop at sigmatechnology.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/test/Analysis/bstring.cpp
M clang/test/Analysis/malloc.c
Log Message:
-----------
[analyzer] Untangle subcheckers of CStringChecker (#186802)
It turns out, that some checks for cstring functions happened as a side
effect of other checks. For example, whether the arguments to memcpy
were uninitialized happened during buffer overflow checking.
The way this was implemented is that if alpha.unix.cstring.OutOfBounds
was disabled, alpha.unix.cstring.UninitializedRead couldn't emit any
warnings. It turns out that major modeling steps are early-exited if a
certain checker is disabled!
This patch moved the early returns to the report emission parts --
modeling still happens, only the bug report construction is omitted.
This would mean that if we find a fatal error (like buffer overflow) we
_should_ stop analysis even if we don't emit a warning (thats a part of
doing modeling), but I decided against implementing that.
One hurdle is that CStringChecker is a dependency of MallocChecker, and
the current tests rely on the CStringChecker _not_ terminating execution
paths prematurely. Considering that the checkers that would do that are
in alpha anyways, this doesn't seem to be an urgent step immediately.
I added FIXMEs to all tests would have failed if the patch sank the
analysis at the fatal cstring function call, but didn't. I also added a
new test case for buffers overlapping, but not being quite equal.
Original Author: Kristóf Umann <dkszelethus at gmail.com>
Co-Author: Endre Fülöp <endre.fulop at sigmatechnology.com> (rebasing, cleaning up comments)
Reviewers added valuable suggestions to comments/test code organisation.
Commit: 86c1510418a0020af2f5650e77945b6386b6b24a
https://github.com/llvm/llvm-project/commit/86c1510418a0020af2f5650e77945b6386b6b24a
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/binop-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
Log Message:
-----------
[VPlan] Remove isVector guard in getCostForRecipeWithOpcode. (#188126)
The legacy cost model computes and passes RHSInfo both when widening and
replicating. Match behavior in VPlan-based cost model.
The added test shows that we now compute the same cost as the legacy
cost model.
Without this change, the test added in
llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll would
crash with https://github.com/llvm/llvm-project/pull/187056.
PR: https://github.com/llvm/llvm-project/pull/188126
Commit: d21e1a379878ae23d695ac033274fc8006415202
https://github.com/llvm/llvm-project/commit/d21e1a379878ae23d695ac033274fc8006415202
Author: Rohit Aggarwal <44664450+rohitaggarwal007 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/VecFuncs.def
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll
Log Message:
-----------
[LIBM][AMDLIBM] - New vector calls for cdfnorm and round scalar calls (#187232)
In amdlibm, new vector calls
cdfnorm
amd_vrd2_cdfnorm
amd_vrd4_cdfnorm
amd_vrd8_cdfnorm
round
amd_vrs16_roundf
amd_vrs8_roundf
amd_vrs4_roundf
amd_vrd8_round
amd_vrd4_round
amd_vrd2_round
Link to aocl repo -
[aocl-libm-ose](https://github.com/amd/aocl-libm-ose)
Commit: 065a39b9f7f06fca0926394096ee1c1fac41d446
https://github.com/llvm/llvm-project/commit/065a39b9f7f06fca0926394096ee1c1fac41d446
Author: Luke Lau <luke at igalia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Tighten SafeAVL matching in convertEVLExitCond. NFC (#179164)
Follow-up from
https://github.com/llvm/llvm-project/pull/178181#discussion_r2743630145
Commit: 89431a368e022d50c42d7eb38327cafe0ae880a0
https://github.com/llvm/llvm-project/commit/89431a368e022d50c42d7eb38327cafe0ae880a0
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
Log Message:
-----------
[LVI] Use block numbers (#188270)
Store the cache as a vector indexed by block numbers instead of a map,
which results in a small compile-time improvement.
Commit: 0effa7caf1263b4ca7fccb2b6b1953b363923375
https://github.com/llvm/llvm-project/commit/0effa7caf1263b4ca7fccb2b6b1953b363923375
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_asinpi.cl
M libclc/clc/lib/generic/math/clc_asinpi.inc
Log Message:
-----------
libclc: Update asinpi (#188454)
This was originally ported from rocm device libs in
eea0997566cad3be13df897a06dfda74cbd684b9. Update for more recent
changes.
Commit: 5f49ce5eafd892b723b46a733efc3b44e859f53a
https://github.com/llvm/llvm-project/commit/5f49ce5eafd892b723b46a733efc3b44e859f53a
Author: John Brawn <john.brawn at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
Log Message:
-----------
[ARM] Consider register pressure when vectorizing with MVE (#188053)
MVE only has 8 vector registers, so it's not too hard for the vectorizer
to end up using more than that resulting in enough spilling that it's
worse than not vectorizing. Enable
shouldConsiderVectorizationRegPressure for targets with MVE so the
vectorizer doesn't vectorize in those cases.
Commit: 1d2f14f625cf3fd2025e45ea584440a8e7e0cc26
https://github.com/llvm/llvm-project/commit/1d2f14f625cf3fd2025e45ea584440a8e7e0cc26
Author: Fabio D'Urso <fdurso at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/common_test.cpp
Log Message:
-----------
[scudo] Use portable TEST_SKIP macro (#188045)
Which expands to ZXTEST_SKIP on Fuchsia.
Commit: 2f38a8fc57b7b64ea26ff667524d4850f8853cae
https://github.com/llvm/llvm-project/commit/2f38a8fc57b7b64ea26ff667524d4850f8853cae
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.ll
Log Message:
-----------
AMDGPU: Codegen for v_dual_dot2acc_f32_f16/bf16 from VOP3 (#179226)
For V_DOT2_F32_F16 and V_DOT2_F32_BF16 add their VOPDName and mark
them with usesCustomInserter which will be used to add pre-RA register
allocation hints to preferably assign dst and src2 to the same physical
register. When the hint is satisfied, canMapVOP3PToVOPD recognises the
instruction as eligible for VOPD pairing by checking if it is VOP2 like:
dst==src2, no source modifiers, no clamp, and src1 is a register.
Mark both instructions as commutable to allow a literal in src1 to be
moved to src0, since VOPD only permits a literal in src0.
Commit: 5999c53e32e85a2991385f8e2a77199416147e8a
https://github.com/llvm/llvm-project/commit/5999c53e32e85a2991385f8e2a77199416147e8a
Author: Fabio D'Urso <fdurso at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/include/stdlib-malloc.yaml
Log Message:
-----------
[libc] Declare free_sized and free_aligned_sized in stdlib.h / malloc.h (#188364)
Commit: 64e75b1026e635b7d0d42d1551a8ad983b8a1997
https://github.com/llvm/llvm-project/commit/64e75b1026e635b7d0d42d1551a8ad983b8a1997
Author: David Spickett <david.spickett at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/docs/use/troubleshooting.rst
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
Log Message:
-----------
[lldb] Correct spelling of "language" (#188456)
Commit: 0cefe6358f38d99e9e70cb242af5b5f8e9fe4e32
https://github.com/llvm/llvm-project/commit/0cefe6358f38d99e9e70cb242af5b5f8e9fe4e32
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
Log Message:
-----------
[lldb][Process/FreeBSDKernelCore] Rework plugin destruction (#188426)
Destroy the plugin classes similar to `ProcessElfCore`, another process
plugin derived from `PostMortemProcess` class. After clearing thread
list, invoke `Finalize()` to cleanup resources properly. `Finalize()`
will call `DoDestroy()` which releases `m_kvm` via `kvm_close()`.
---------
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
Commit: 4b4fbf176dee88820dec55b6e39e2feabb49ac52
https://github.com/llvm/llvm-project/commit/4b4fbf176dee88820dec55b6e39e2feabb49ac52
Author: Hussam Alhassan <hsm.link at proton.me>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
Log Message:
-----------
[NFC][AArch64] ConditionOptimizer: add CmpCondPair and tryOptimizePair (#187160)
Add CmpCondPair to bundle a compare/conditional instruction pair with
its condition code.
Update applyCmpAdjustment() to take CmpCondPair, and extract core
optimization logic into tryOptimizePair() to be used in both intra- and
cross-block paths.
Commit: 6ac9ab87dac313f561432c1271c4083b5f09df94
https://github.com/llvm/llvm-project/commit/6ac9ab87dac313f561432c1271c4083b5f09df94
Author: Yi Zhang <cathyzhyi at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
Log Message:
-----------
[mlir][arith] Fix variable only used by assert (#188461)
Commit: ef8c94ea8f869628a4e1115379490f9144346bfc
https://github.com/llvm/llvm-project/commit/ef8c94ea8f869628a4e1115379490f9144346bfc
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/MachineSink.cpp
A llvm/test/CodeGen/AArch64/sink-and-fold-unique-operand.mir
Log Message:
-----------
[MachineSink] Prevent attempts to sink-and-fold into the same instruction more than once (#188048)
When sinking an instruction, we check if the destination instruction can
fold the source instruction into its address mode. If the destination
instruction contains more than one use of the register being sunk, we
won't be able to remove the original instruction, so we should not
attempt to sink.
This also prevents a compiler crash when the destination instruction is
deleted after the first sink-and-fold, and we attempt to sink-and-fold
into it again.
Fixes https://github.com/llvm/llvm-project/issues/187785
Commit: 5e89d60586159138622a6112bedc5801274a7ec3
https://github.com/llvm/llvm-project/commit/5e89d60586159138622a6112bedc5801274a7ec3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
Log Message:
-----------
[AArch64] Remove add_and_or_is_add pattern matcher and use generic add_like equivalent (#188284)
Commit: 27ba9e2a44c11f8123528c350227db2c9a707c8f
https://github.com/llvm/llvm-project/commit/27ba9e2a44c11f8123528c350227db2c9a707c8f
Author: Victor Campos <victor.campos at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/include/CMakeLists.txt
M libc/include/errno.h.def
M libc/include/stdio.yaml
M libc/include/stdlib.yaml
M libc/include/string.yaml
M libc/include/time.yaml
Log Message:
-----------
[libc] Define Annex K's errno_t in specified headers (#187700)
- Change `errno.h.def` to include a placeholder where hdrgen emits the
public API, which contains the `errno_t` definition.
- Make headers `stdio.h`, `stdlib.h`, `string.h` and `time.h` also
define `errno_t` as specified in the standard.
Commit: 201c5c14c87ca756d5160fc688eb9ffdc3c6e617
https://github.com/llvm/llvm-project/commit/201c5c14c87ca756d5160fc688eb9ffdc3c6e617
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/Basic/Targets/AMDGPU.h
M clang/test/Misc/amdgcn.languageOptsOpenCL.cl
Log Message:
-----------
clang: Report subgroup ext types for AMDGPU with llvm env (#188472)
Report cl_khr_subgroup_extended_types for AMDGPU when targeting
the llvm environment.
Commit: bec0aee0ba1591d46c8cd2d59feeb8240b63a80c
https://github.com/llvm/llvm-project/commit/bec0aee0ba1591d46c8cd2d59feeb8240b63a80c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrInfo.td
M llvm/test/CodeGen/PowerPC/aix-vec_insert_elt.ll
M llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.ll
M llvm/test/CodeGen/PowerPC/fp128-bitcast-after-operation.ll
M llvm/test/CodeGen/PowerPC/signbit-shift.ll
M llvm/test/CodeGen/PowerPC/vec_insert_elt.ll
M llvm/test/CodeGen/PowerPC/wide-scalar-shift-by-byte-multiple-legalization.ll
Log Message:
-----------
[PowerPC] Use add_like pattern for ADDI/ADDIS add-immediate matching (#187326)
Allow or_disjoint nodes with sext-immediates to make use of the ADD instructions instead of OR (which use zext-immediates) to potentially allow further folding
Commit: d642f598ba421d3d3de791f4854a1131154c3e16
https://github.com/llvm/llvm-project/commit/d642f598ba421d3d3de791f4854a1131154c3e16
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_acospi.cl
M libclc/clc/lib/generic/math/clc_acospi.inc
Log Message:
-----------
libclc: Update acospi (#188455)
This was originally ported from rocm device libs in
084124a8fab6fd71d49ac4928d17c3ef8b350ead. Merge in more
recent changes.
Commit: c84397a6b8064b18b378306d212175eb374fbd79
https://github.com/llvm/llvm-project/commit/c84397a6b8064b18b378306d212175eb374fbd79
Author: Ruoyu Qiu <cabbaken at outlook.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[DA] Optimize parity check in weakCrossingSIVtest (NFC) (#188437)
This patch simplifies the logic used to determine if the `Distance`
is divisible by 2. Previously, this was done by allocating an APInt
and performing a signed remainder (`srem`) operation.
Since `Distance` is an APInt, we can more efficiently check if it
is odd by directly inspecting the least significant bit (`Distance[0]`).
This avoids an expensive division operation and APInt allocation
while making the code more concise.
Signed-off-by: Ruoyu Qiu <cabbaken at outlook.com>
Commit: b8ababdadd2d4ca7d2586b4afdc1e69b66c2f0d1
https://github.com/llvm/llvm-project/commit/b8ababdadd2d4ca7d2586b4afdc1e69b66c2f0d1
Author: Varad Rahul Kamthe <133588066+varadk27 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
Log Message:
-----------
[MLIR][NVVM] NFC: Refactor NVVM op definitions in NVVMOps.td (#188436)
Refactor `DotAccumulate4WayOp`, `DotAccumulate2WayOp`,
`CpAsyncBulkPrefetchOp`, and `CpAsyncBulkTensorPrefetchOp` Ops to use
the new `NVVM_VoidIntrinsicOp` and `NVVM_SingleResultIntrinsicOp` base
classes, removing redundant `llvmBuilder` and `extraClassDeclaration`
boilerplate. No functional changes.
Commit: 2baa2cdce97eb3b548d193247e1692a95cb694b5
https://github.com/llvm/llvm-project/commit/2baa2cdce97eb3b548d193247e1692a95cb694b5
Author: Victor Campos <victor.campos at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/hdr/types/rsize_t.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/rsize_t.h
M libc/include/stdio.yaml
M libc/include/stdlib.yaml
M libc/include/string.yaml
M libc/include/time.yaml
M libc/include/wchar.yaml
Log Message:
-----------
[libc] Follow up on Annex K's rsize_t (#187707)
- Fix header guard name.
- Define `__STDC_WANT_LIB_EXT1__` in `hdr/types/rsize_t.h` so that the
type is available for internal use.
- In accordance to the standard, make `stdio.h`, `stdlib.h`, `string.h`,
`time.h` and `wchar.h` define the type. It should already be available
in `stddef.h` as it's provided by Clang, not LLVM libc.
Commit: 8430b0800140ef686660e36bc950cb29131b3681
https://github.com/llvm/llvm-project/commit/8430b0800140ef686660e36bc950cb29131b3681
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
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
Log Message:
-----------
[mlir][spirv] Add last 4 data layout ops in TOSA Ext Inst Set (#188199)
This patch introduces the following reduction operators:
spirv.Tosa.Reverse
spirv.Tosa.Slice
spirv.Tosa.Tile
spirv.Tosa.Transpose
Also dialect and serialization round-trip tests have been added.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 314a94c26f6ad71b5cfaac5ca74392ab2f8580eb
https://github.com/llvm/llvm-project/commit/314a94c26f6ad71b5cfaac5ca74392ab2f8580eb
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/test/Semantics/OpenMP/do-collapse.f90
M flang/test/Semantics/OpenMP/do-concurrent-collapse.f90
M flang/test/Semantics/OpenMP/do08.f90
M flang/test/Semantics/OpenMP/do13.f90
M flang/test/Semantics/OpenMP/do15.f90
M flang/test/Semantics/OpenMP/do16.f90
M flang/test/Semantics/OpenMP/do22.f90
M flang/test/Semantics/OpenMP/tile07.f90
A flang/test/Semantics/OpenMP/tile09.f90
Log Message:
-----------
[flang][OpenMP] Provide reasons for calculated depths (#187781)
If the depth (either semantic or perfect) was limited by some factor,
include the reason for what caused the reduction.
Issue: https://github.com/llvm/llvm-project/issues/185287
Commit: bbc1ce04b268f22b7920b8516ddc1be502d0f8df
https://github.com/llvm/llvm-project/commit/bbc1ce04b268f22b7920b8516ddc1be502d0f8df
Author: sujianIBM <98488060+sujianIBM at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
M llvm/lib/Target/SystemZ/SystemZFrameLowering.h
M llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
Log Message:
-----------
[SystemZ][z/OS] Make emitIncrement() a member function of SystemZFrameLowering. (#188254)
Function `emitIncrement()` uses 8 for stack alignment, but the stack
alignment for 64-bit XPLINK is 32 on z/OS.
This PR changes it to a member function of SystemZFrameLowering to get
the correct stack alignment by `getStackAlignment()`. It also adds a
test to verify it.
Commit: 857a40547cb05a3f43f5e2cb5dd4aa32b8d4d563
https://github.com/llvm/llvm-project/commit/857a40547cb05a3f43f5e2cb5dd4aa32b8d4d563
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/test/builtins/BUILD.gn
Log Message:
-----------
[gn] port a5a7f6266ef05
Commit: 6b6d1573a8a4cf07d233b535ea4de39d7fa6625f
https://github.com/llvm/llvm-project/commit/6b6d1573a8a4cf07d233b535ea4de39d7fa6625f
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/test/Semantics/OpenMP/fuse1.f90
M flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
M flang/test/Semantics/OpenMP/loop-transformation-construct04.f90
Log Message:
-----------
[flang][OpenMP] Provide reasons for calculated sequence length (#187866)
If the length was limited by some factor, include the reason for what
caused the reduction.
Issue: https://github.com/llvm/llvm-project/issues/185287
Commit: ca9ac0e24abb63281db6ec7c2d3a262984aa00f6
https://github.com/llvm/llvm-project/commit/ca9ac0e24abb63281db6ec7c2d3a262984aa00f6
Author: Owen Anderson <resistor at mac.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenTypeCache.h
M clang/test/CodeGen/ms-intrinsics.c
M clang/test/Headers/hip-header.hip
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
M llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
M llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
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/AMDGPU/amdgpu-sw-lower-lds-dynamic-indirect-access-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-dynamic-indirect-access.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-dynamic-lds-test-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-dynamic-lds-test.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-lower-all.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-multi-static-dynamic-indirect-access-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-multi-static-dynamic-indirect-access.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-multiple-blocks-return-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-multiple-blocks-return.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-non-kernel-declaration.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-dynamic-indirect-access-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-dynamic-indirect-access.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-dynamic-lds-test-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-dynamic-lds-test.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-function-param-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-function-param.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-lower-all.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-nested-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-nested.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access-no-kernel-lds-id.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-indirect-access.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-O0.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-no-heap-ptr.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-test-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-test-atomic-cmpxchg-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-test-atomicrmw-asan.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-test.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-lds-vector-ptrs.ll
M llvm/test/Instrumentation/ThreadSanitizer/atomic-non-integer.ll
M llvm/test/Instrumentation/ThreadSanitizer/eh.ll
M llvm/test/Instrumentation/ThreadSanitizer/no_sanitize_thread.ll
M llvm/test/Instrumentation/ThreadSanitizer/sanitize-thread-no-checking.ll
M llvm/test/Transforms/EntryExitInstrumenter/debug-info.ll
M llvm/test/Transforms/EntryExitInstrumenter/mcount-with-frompc.ll
M llvm/test/Transforms/EntryExitInstrumenter/mcount.ll
M llvm/test/Transforms/EntryExitInstrumenter/pre-inliner-instrumentation.ll
M llvm/test/Verifier/LoongArch/intrinsic-immarg.ll
M llvm/test/Verifier/intrinsic-immarg.ll
Log Message:
-----------
[CHERI] Allow @llvm.returnaddress to return a pointer in any address space. (#188464)
Clang now constructs calls to it using the default program address space from the DataLayout.
Co-authored-by: Alex Richardson <alexrichardson at google.com>
Commit: 9c6054d29d44133abd3c79db710f5c25f83ab831
https://github.com/llvm/llvm-project/commit/9c6054d29d44133abd3c79db710f5c25f83ab831
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.cpp
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.gdb
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb/pointer-union.cpp
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb/pointer-union.test
M llvm/utils/gdb-scripts/prettyprinters.py
M llvm/utils/lldbDataFormatters.py
Log Message:
-----------
[lldb][ADT] Fix LLDB/GDB formatters for PointerUnion after recactoring (#188483)
In #188242, we replaced `PointerUnion`'s `PointerIntPair` storage with
`PunnedPointer<void*>`. The old formatters relied on the PIP synthetic
provider (LLDB) / `get_pointer_int_pair helper` (GDB) which no longer
work.
Instead, read raw bytes from `PunnedPointer` and compute the active tag
from template argument type alignments -- the same fixed-width encoding
the C++ implementation uses. When template arg enumeration is truncated
(e.g., function-local types in GDB), the formatters fall back to showing
a tag-stripped `void*` instead of silently misdecoding.
Alternatives that didn't work out:
- Adding a C++ helper (`getActiveMemberIdx`) callable from Python: gets
optimized out even with `__attribute__((used, noinline))`, and
expression evaluation fails for synthetic children.
- Using `isa`/`dyn_cast` checks from Python: requires expression
evaluation, which does not work for local types or synthetic children
without a frame context.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: 396d63813ccb4e3e9ed9e015bc236a3941630d6e
https://github.com/llvm/llvm-project/commit/396d63813ccb4e3e9ed9e015bc236a3941630d6e
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Bindings/Python/IRAffine.cpp
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/Bindings/Python/IRTypes.cpp
M mlir/python/mlir/ir.py
M mlir/test/mlir-tblgen/op-python-bindings.td
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[MLIR] [Python] More improvements to type annotations (#188468)
* `mlir.ir` now exports `_OperationBase`. It is handy to use when both
`Operation` and `OpView` are accepted.
* Added type arguments where they were missing, e.g.
`list[ir.Attribute]` instead of just `list`.
* Changed `Opview.build_generic` and `OpView.parse` to return `Self`
instead of the supertype `Type`.
* Changed the bindings generator to emit a parameterized `OpResult` when
the exact type is available.
Commit: c4c9d99377d061756eb8cca3a7859eb29d28e6ed
https://github.com/llvm/llvm-project/commit/c4c9d99377d061756eb8cca3a7859eb29d28e6ed
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/CycleAnalysis.h
M llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
M llvm/lib/Analysis/CycleAnalysis.cpp
M llvm/lib/CodeGen/MachineCycleAnalysis.cpp
Log Message:
-----------
[CycleInfo] Preserve if CFG preserved (#188443)
Add a custom invalidator that makes sure CycleAnalysis is preserved if
the CFGAnalyses set is preserved. The implementation matches that of
LoopInfo.
Commit: 627f6aa1cd930e6a887a98c76b06ad0a1084352b
https://github.com/llvm/llvm-project/commit/627f6aa1cd930e6a887a98c76b06ad0a1084352b
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
M llvm/utils/gn/secondary/clang/utils/TableGen/BUILD.gn
Log Message:
-----------
[gn build] Port daec3b9fb6e2 (clang hlsl header tblgen)
Commit: a36b969294936335d9886839f09f267910f57bc6
https://github.com/llvm/llvm-project/commit/a36b969294936335d9886839f09f267910f57bc6
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
[AsmPrinter] Handle fragment splitting in instruction size verification
Also verify the size if the fragment ends up being split.
Commit: e6cfdd01ae1a52dd193499bb324ac7aa007fa22d
https://github.com/llvm/llvm-project/commit/e6cfdd01ae1a52dd193499bb324ac7aa007fa22d
Author: Arjun Bhamra <33864884+abhamra at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/test/Conversion/XeGPUToXeVM/dpas.mlir
A mlir/test/Conversion/XeGPUToXeVM/failed_conversion.mlir
Log Message:
-----------
[MLIR][XeGPU] Validate DPAS operand types against uArch in XeGPUToXeVM conversion (#185081)
The `DpasOp` would crash with `llvm_unreachable` with unsupported types
(like i16, or i32 in operand) when during lowering to the XeVM dialect.
This happens in both `encodePrecision` and `getNumOperandsPerDword`.
Per
https://github.com/llvm/llvm-project/issues/180107#issuecomment-4009160113,
we handle this in the `matchAndRewrite` by retrieving the uArch instance
and fetching the registered `SubgroupMatrixMultiplyAcc` instruction.
Then, we validate with `getSupportedTypes` and check `aTy`, `bTy`, and
`resultType` correctly with `notifyMatchError` for reporting and
graceful handling.
We add a failed conversion test for a simplified version of the
reproducible error in #180107
Commit: 902b89b9460a253a0e17ac82069f55ef54c9d4d0
https://github.com/llvm/llvm-project/commit/902b89b9460a253a0e17ac82069f55ef54c9d4d0
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Log Message:
-----------
[gn] fix typo in 627f6aa1cd930e6a
Commit: 1e3a31ef204691a67219a655c3de40e847ca14b8
https://github.com/llvm/llvm-project/commit/1e3a31ef204691a67219a655c3de40e847ca14b8
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes e6cfdd0 (#188498)
This fixes e6cfdd01ae1a52dd193499bb324ac7aa007fa22d.
Commit: 4dbcc3f029b3ba9a1214f2669868f042aaa2d92f
https://github.com/llvm/llvm-project/commit/4dbcc3f029b3ba9a1214f2669868f042aaa2d92f
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/src/__support/File/file.cpp
M libc/src/__support/File/file.h
M libc/src/__support/File/linux/file.cpp
M libc/src/stdio/generic/CMakeLists.txt
M libc/src/stdio/generic/fflush.cpp
M libc/test/src/stdio/fileop_test.cpp
Log Message:
-----------
[libc] implement fflush(NULL) support (#188217)
Implement support for flushing all open streams when fflush is called
with a NULL pointer.
* Added a global linked list to track all open File objects.
* Updated File class to include prev/next pointers and list management
methods.
* Implemented POSIX requirement for fflush to sync seekable input
streams back to the host environment.
* Updated Linux-specific file creation to register new files in the
global list.
* Fixed a memory safety bug in create_file_from_fd using delete instead
of free.
* Added unit test for fflush(NULL).
* Added explanatory comments to fflush.cpp and file.cpp.
Commit: 08c94c0ac3b503dd4971da8935001aba01918688
https://github.com/llvm/llvm-project/commit/08c94c0ac3b503dd4971da8935001aba01918688
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/include/lldb/Expression/ObjectFileJIT.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] Clear up GetModuleSpecifications return value confusion (#188276)
Some plugins were returning the number of specifications they have
added, while others were returning the total final number. Particularly
devious plugins (Minidump) were clearing the specification list
altogether. This resulted in nondeterministic failures (depending on
plugin ininitialization order) in TestSBModule.
This PR defines the problem away by having each plugin only return the
specifications it is responsible for. If the caller wants to merge them,
it is free to do so. This *might* be slighly less efficient, but this is
hardly hot code.
I'm not touching the ObjectFile::GetModuleSpecifications function (the
caller of all these functions) as the PR is big enough, although the
same approach might be warranted there as well.
Fixes https://github.com/llvm/llvm-project/issues/178625.
Commit: 1dc5b0c8f30e96d8c2a265575cc2271ea3430269
https://github.com/llvm/llvm-project/commit/1dc5b0c8f30e96d8c2a265575cc2271ea3430269
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-lto-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
Log Message:
-----------
[DSE] Use CycleInfo instead of LoopInfo (#188253)
DSE needs to reason about cycles in order to correctly handle
loop-carried dependencies. It currently does this by using LoopInfo and
performing a separate check for irreducible control flow.
Instead, we can use CycleInfo, which is like LoopInfo but also handles
irreducible cycles.
This requires computing CycleInfo (which, unlike LoopInfo won't be
reused by surrouding passes), but ends up being neutral in terms of
compile-time overall.
Commit: 51c3f971a0a00f6ca458eb5a5306a0f703c6a58d
https://github.com/llvm/llvm-project/commit/51c3f971a0a00f6ca458eb5a5306a0f703c6a58d
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lld/ELF/Arch/Hexagon.cpp
A lld/test/ELF/hexagon-undefined-weak.s
Log Message:
-----------
[lld][Hexagon] Test undefined weak branches (#186613)
Undefined weak branches do not needsThunk().
Add a test case to cover undef weak.
Commit: 7aaec28fde2a755ddf52673016b78750e37b2c86
https://github.com/llvm/llvm-project/commit/7aaec28fde2a755ddf52673016b78750e37b2c86
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/nanless-canonicalize-combine.ll
Log Message:
-----------
InstCombine: Fold out nanless canonicalize pattern (#172998)
Pattern match a wrapper around llvm.canonicalize which
weakens the semantics to not require quieting signaling
nans. Depending on the denormal mode and FP type, we can
either drop the pattern entirely or reduce it only to
a canonicalize call. I'm inventing this pattern to deal
with LLVM's lax canonicalization model in math library
code.
The math library code currently has explicit checks for
the denormal mode, and conditionally canonicalizes the
result if there is flushing. Semantically, this could be
directly replaced with a simple call to llvm.canonicalize,
but doing so would incur an additional cost when using
standard IEEE behavior. If we do not care about quieting
a signaling nan, this should be a no-op unless the denormal
mode may flush. This will allow replacement of the
conditional code with a zero cost abstraction utility
function.
Note we need a standard LLVM floating-point operation
in the nan case to assert we do not care about preserving
the nan payload and sign bit. This could be any no-op fp
instruction; a normal choice would be fmul by 1.0. Using
that presents an ordering problem - since LLVM fp operations
are not required to canonicalize, instcombine would fold
out the fmul before reaching this select combine. The galaxy
brain solution here is to use fdiv 1.0, %x as the no-op.
This is not a no-op - it could potentially return infinity
if %x were 0 (or very close to 0) so it will not be dropped.
For the purposes here, that's fine since it's only being used
as a nan sink.
https://alive2.llvm.org/ce/z/QYS4en
Commit: 33da12aae70ce26568aa06538329fab0481dcb4d
https://github.com/llvm/llvm-project/commit/33da12aae70ce26568aa06538329fab0481dcb4d
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCIfClauseLowering.cpp
M mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
Log Message:
-----------
[acc] Lower acc if with multi-block host fallback via scf.execute_region (#188350)
handle multi-block host fallback regions by wrapping them in
scf.execute_region, instead of rejecting with `not yet implemented:
region with multiple blocks`.
Commit: 80dc5aa537264f409d83097ce16b7e3abe6b84c1
https://github.com/llvm/llvm-project/commit/80dc5aa537264f409d83097ce16b7e3abe6b84c1
Author: Chi-Chun, Chen <chichun.chen at hpe.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/declare-simd.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
A flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/simd-linear.f90
M flang/test/Lower/OpenMP/wsloop-linear.f90
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
Log Message:
-----------
[flang][mlir][OpenMP] Add linear modifier (val, ref, uval) (#187142)
Add support for OpenMP linear modifiers `val`, `ref`, and `uval` as
defined in OpenMP 5.2 (5.4.6).
Commit: 3e72f02e20b99ba1fa0dce2982d89aaa0ef6ab26
https://github.com/llvm/llvm-project/commit/3e72f02e20b99ba1fa0dce2982d89aaa0ef6ab26
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M openmp/device/src/Kernel.cpp
Log Message:
-----------
[Offload][OpenMP][libdevice] Make check to enter state machine architecture dependent (#188144)
The genericStateMachine call uses synchronize::thread wich is expected
to be implemented using a workgroup level barrier.
Currently as in some other architectures where if threads in the same
warp as the main thread reach the barrier may cause a race condition
there's a condition that makes some threads not enter the state machine.
But in Intel GPUs all threads must reach the barrier for it to be
completed, otherwise the threads in the state machine never make
progress.
This PR moves the condition into an architecture-dependent config so it
can work correctly for both kinds of hardware.
Commit: 34889601a9d738cd4a3049ff27479dc9c01057c9
https://github.com/llvm/llvm-project/commit/34889601a9d738cd4a3049ff27479dc9c01057c9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
Log Message:
-----------
[SLP]Mark candidate instruction as reduced value, if it is the operand of another reduced value
If the next candidate is the operand of one of the reduced value
candidates, such instructions also should be marked as a reduced value,
not a reduction operation, even if all other requirements are met.
This will allow to reduce the compile time.
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/188103
Commit: ab17b5408ac83a03807b6f0ea22f51dfb84b0b8a
https://github.com/llvm/llvm-project/commit/ab17b5408ac83a03807b6f0ea22f51dfb84b0b8a
Author: hev <wangrui at loongson.cn>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/LoongArch/issue187832.ll
A llvm/test/CodeGen/RISCV/pr187832.ll
Log Message:
-----------
[LoongArch][RISCV] Fix incorrect indexing of incoming byval arguments in tail call eligibility check (#188006)
The loop that validates byval arguments in
`isEligibleForTailCallOptimization()` incorrectly used the loop index
`i` when accessing `getIncomingByValArgs()`, even though `j` is the
index tracking the number of encountered byval arguments.
This mismatch could lead to out-of-bounds access or incorrect type
comparisons when non-byval arguments are interleaved with byval
arguments, causing the tail call eligibility check to fail or behave
incorrectly.
Fix this by using `j` consistently as the index into the incoming byval
argument list and only incrementing it after the bounds check.
This issue affects both LoongArch and RISCV backends, which share the
same logic pattern.
Fixes #187832
Commit: 499afa6b45a2261a3b3bdff7284d3d3f35a74b53
https://github.com/llvm/llvm-project/commit/499afa6b45a2261a3b3bdff7284d3d3f35a74b53
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
R flang/test/Parser/OpenMP/interchange-fail.f90
R flang/test/Parser/OpenMP/tile-fail.f90
M flang/test/Semantics/OpenMP/do-collapse.f90
M flang/test/Semantics/OpenMP/do-concurrent-collapse.f90
M flang/test/Semantics/OpenMP/do09.f90
M flang/test/Semantics/OpenMP/do13.f90
M flang/test/Semantics/OpenMP/do21.f90
M flang/test/Semantics/OpenMP/fuse1.f90
A flang/test/Semantics/OpenMP/interchange-fail.f90
M flang/test/Semantics/OpenMP/interchange01.f90
M flang/test/Semantics/OpenMP/loop-association.f90
M flang/test/Semantics/OpenMP/loop-transformation-construct01.f90
M flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
M flang/test/Semantics/OpenMP/loop-transformation-construct04.f90
A flang/test/Semantics/OpenMP/tile-fail.f90
M flang/test/Semantics/OpenMP/tile02.f90
M flang/test/Semantics/OpenMP/tile03.f90
M flang/test/Semantics/OpenMP/tile08.f90
M flang/test/Semantics/OpenMP/tile09.f90
Log Message:
-----------
[flang][OpenMP] Check if loop nest/sequence is well-formed (#188025)
Check if the code associated with a nest or sequence construct is well
formed. Emit diagnostic messages if not.
Make a clearer separation for checks of loop-nest-associated and loop-
sequence-associated constructs.
Unify structure of some of the more common messages.
Issue: https://github.com/llvm/llvm-project/issues/185287
Commit: 3e011457055bd3868bd05cf80bc1a4482777809b
https://github.com/llvm/llvm-project/commit/3e011457055bd3868bd05cf80bc1a4482777809b
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/test/C/C2y/n3622.c
M clang/test/Misc/warning-wall.c
M clang/test/Sema/warn-unused-but-set-static-global.c
M clang/test/Sema/warn-unused-but-set-static-global.cpp
Log Message:
-----------
[clang] Add -Wunused-but-set-global (#188291)
Commit fd11cf430e5a extended `-Wunused-but-set-variable` to static
globals. To make it easier for downstream projects to integrate this new
functionality, this commit introduces `-Wunused-but-set-global` so it
can be easily disabled as projects investigate and fix new findings.
Commit: 731bcb5a1c77403b496f13674ff1994795ce3a44
https://github.com/llvm/llvm-project/commit/731bcb5a1c77403b496f13674ff1994795ce3a44
Author: moodytongytong <moodytongytong at proton.me>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinHeaders.def
R clang/include/clang/Basic/BuiltinsAArch64.def
A clang/include/clang/Basic/BuiltinsAArch64.td
A clang/include/clang/Basic/BuiltinsAArch64Base.td
M clang/include/clang/Basic/BuiltinsARM.def
M clang/include/clang/Basic/BuiltinsBase.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/module.modulemap
M clang/lib/Basic/Targets/AArch64.cpp
Log Message:
-----------
AArch64 Tablegen Update (#179692)
- Use updated `.td` file instead of the `.def` file for the AArch64
builtin functions.
- The change has been tested via `clang-check` and `check-clang` which
returns no error nor warnings
- The translation is mostly done using the translation script -
https://github.com/moodytongytong/random-python-script
Signed-off-by: moodytongytong
---------
Co-authored-by: Lang Hames <lhames at gmail.com>
Co-authored-by: Jackson Stogel <jtstogel at gmail.com>
Co-authored-by: Pranav Kant <prka at google.com>
Commit: 7398eb09e07095606bae5863921d8e0b2ebdf4a8
https://github.com/llvm/llvm-project/commit/7398eb09e07095606bae5863921d8e0b2ebdf4a8
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/canonicalize.mlir
Log Message:
-----------
[mlir][linalg] Fix UBSan division-by-zero in PackOp folding (#186271)
When tensor-cast folding propagates a zero constant into a dynamic tile
size, `FoldTensorCastPackOp` would proceed to fold the pack into an
`expand_shape` using that zero tile — causing undefined behaviour
(integer
division/modulo by zero, caught by UBSan as SIGFPE).
1. Guard `FoldTensorCastPackOp`: bail out early if any of the resolved
tile sizes is zero, preventing the invalid fold entirely.
2. Restrict the `hasZeros` check in `commonVerifierPackAndUnPackOp` to
only inspect `Attribute` operands (statically-known zeros), not dynamic
`Value` operands. The verifier can only meaningfully reject zero tiles
that are statically visible; dynamic zeros are an inherently runtime
condition.
3. Add `assert(*constantTile \!= 0)` guards in `requirePaddingValue` and
`requirePaddingValueStrict` to document and enforce the precondition
that static tile sizes passed to those helpers are non-zero.
Also rename existing negative test cases from `no_fold_*`/`nofold_*` to
`negative_*` for consistency with MLIR testing conventions, and add a
regression test that ensures a pack with a zero tile size is not folded
into `tensor.expand_shape`.
Fixes #185352
Assisted-by: Claude Code
Commit: 9c3105b1dd01750b86b1a038f720993eb6291290
https://github.com/llvm/llvm-project/commit/9c3105b1dd01750b86b1a038f720993eb6291290
Author: Sirraide <aeternalmail at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaExpr.cpp
M clang/test/OpenMP/target_update_messages.cpp
A clang/test/SemaCXX/cxx23-builtin-subscript.cpp
M clang/test/SemaCXX/cxx2b-overloaded-operator.cpp
Log Message:
-----------
[Clang] [Sema] Improve handling of multidimensional subscript operator for builtin types (#187828)
This patch improves the diagnostic we issue when a multidimensional
subscript operator is applied to a builtin type. Additionally, this also
updates several code paths that were asserting that a subscript operator
always has 1 argument to handle multiple arguments properly.
Fixes #187800.
Commit: 6420dd833ebeed460ecbb034634c79cff6f3ba92
https://github.com/llvm/llvm-project/commit/6420dd833ebeed460ecbb034634c79cff6f3ba92
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/binop-costs.ll
Log Message:
-----------
[LV] Add missing REQUIRES: asserts to new test from #188126.
Test checks debug output, and requires asserts.
Commit: 0000e52e2a5ad7d879d8d6fcb4f14a269a0c5c21
https://github.com/llvm/llvm-project/commit/0000e52e2a5ad7d879d8d6fcb4f14a269a0c5c21
Author: Nico Weber <thakis at chromium.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
[gn] port 731bcb5a1c774 (tblgen aarch64 builtins)
Commit: 27abb7f29b630965d2a31b8ed982a01e9ea7220e
https://github.com/llvm/llvm-project/commit/27abb7f29b630965d2a31b8ed982a01e9ea7220e
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/test/CodeGen/AArch64/vector-extract-last-active.ll
M llvm/test/CodeGen/X86/vector-extract-last-active.ll
Log Message:
-----------
[SDAG] Follow target boolean semantics in `PromoteIntOp_VECTOR_FIND_LAST_ACTIVE`
Before handling `VECTOR_FIND_LAST_ACTIVE` expansion, ensure the vector
mask elements get extended accordingly, after the vector mask type is
promoted to its legal type.
Fixes: https://github.com/llvm/llvm-project/issues/187875.
Commit: 9a1ebae0296b544a3b5a5f2bbaee8e8803427de9
https://github.com/llvm/llvm-project/commit/9a1ebae0296b544a3b5a5f2bbaee8e8803427de9
Author: Ard Biesheuvel <ardb at kernel.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/CodeGen/stack-protector-guard.c
M clang/test/Driver/stack-protector-guard.c
M llvm/test/CodeGen/AArch64/stack-guard-sysreg.ll
Log Message:
-----------
[AARCH64] Support TPIDR_EL0 and TPIDRRO_EL0 as stack protector sysregs (#188054)
Even though the command line option suggests that arbitrary system
registers may be chosen, the sysreg option for the stack protector guard
currently only permits SP_EL0, as this is what the Linux kernel uses.
While it makes no sense to permit arbitrary system registers here (which
usually have side effects), there is a desire to switch to TPIDR_EL0 or
TPIDRRO_EL0 from the Linux side, both of which are part of the base v8.0
AArch64 ISA, and can hold arbitrary 64-bit values without side effects.
So add TPIDR_EL0 and TPIDRRO_EL0 to the set of accepted arguments for
the -mstack-protected-guard-reg= command line option. For good measure,
add TPIDR_EL1, TPIDR_EL2, FAR_EL1 and FAR_EL2 as well, all of which
could potentially be useful to privileged software such as the Linux
kernel to stash a per-thread pointer to the stack protector guard value.
Signed-off-by: Ard Biesheuvel <ardb at kernel.org>
Commit: 8afb4620d6b6d32341647ed31fa2f4273cff9ca3
https://github.com/llvm/llvm-project/commit/8afb4620d6b6d32341647ed31fa2f4273cff9ca3
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/test/python/ir/operation.py
Log Message:
-----------
[MLIR] [Python] Fixed a long standing bug in the `PyRegionListIterator` (#188475)
`PyRegionIterator` did not account for start index/step, so this commit
removes it in favor of the sequence iterator provided by CPython.
The previous attempt in #137232 bitrotted, so I decided to open a new
PR.
Commit: 414f0c3362941cc5fff43a67b91cb82c51a2b778
https://github.com/llvm/llvm-project/commit/414f0c3362941cc5fff43a67b91cb82c51a2b778
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 731bcb5 (#188519)
This fixes 731bcb5a1c77403b496f13674ff1994795ce3a44.
Commit: 18250fd47bb65cc63f70b070e2a70c1668deb934
https://github.com/llvm/llvm-project/commit/18250fd47bb65cc63f70b070e2a70c1668deb934
Author: Nathan Gauër <brioche at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/include/clang/Basic/AddressSpaces.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Sema/SemaHLSL.h
M clang/lib/AST/Type.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/TCE.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/vk-output-builtin.hlsl
A clang/test/SemaHLSL/vk-ext-output-builtin.hlsl
M clang/test/SemaTemplate/address_space-dependent.cpp
Log Message:
-----------
[HLSL][SPIR-V] Add vk::ext_builtin_output attribute (#188268)
This attribute is similar to the already implemented ext_builtin_input
attribute.
One important bit is the `static` storage class: HLSL uses static
differently than C/C++. This is a known weirdness:
See https://github.com/microsoft/hlsl-specs/issues/350
In C/C++, when we declare a variable as 'extern', we often expect
another module to declare the symbole. In HLSL, the pipeline will
'declare' the symbol. Hence in this case, we need to emit the global
variable.
Related WG-HLSL:
https://github.com/llvm/wg-hlsl/blob/main/proposals/0031-semantics.md
---------
Co-authored-by: Steven Perron <stevenperron at google.com>
Commit: d362bd7b9de85f96d29811da7e9e6f598c8c3b56
https://github.com/llvm/llvm-project/commit/d362bd7b9de85f96d29811da7e9e6f598c8c3b56
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] use APInt::getLowBitsSet instead of APInt::getAllOnes+zext. (#188384)
Commit: 6e916d0598e02d46e0b807777bac5022430debdb
https://github.com/llvm/llvm-project/commit/6e916d0598e02d46e0b807777bac5022430debdb
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb/pointer-union.cpp
M cross-project-tests/debuginfo-tests/llvm-prettyprinters/lldb/pointer-union.test
M llvm/benchmarks/PointerUnionBM.cpp
M llvm/include/llvm/ADT/PointerUnion.h
M llvm/unittests/ADT/PointerUnionTest.cpp
Log Message:
-----------
[llvm][ADT] Add variable-width tag encoding to PointerUnion (#188167)
PointerUnion stores a fixed-width `ceil(log2(N))`-bit tag in the low
bits of the pointer. This works only when every member type provides at
least that many low bits — if the least-aligned type doesn't,
compilation fails, even though the higher-aligned types may have plenty
of spare bits going to waste.
Introduce a variable-length escape-encoded tag that exploits the extra
low bits of higher-aligned types, analogous to UTF-8: types are grouped
into tiers by NumLowBitsAvailable; each non-final tier reserves one code
as an escape prefix, and the next tier extends the tag into the newly
available bits. This allows PointerUnion to hold more type variants than
a fixed-width tag permits.
The fixed-width path is used when the minimum alignment already provides
enough bits (the common case); the variable-width path activates only
when it doesn't, and requires types to be listed in non-decreasing
NumLowBitsAvailable order.
I need this for https://github.com/llvm/llvm-project/pull/186923 which
requires a 6-member PointerUnion in MLIR TypeRange/ValueRange. On 32-bit
systems, some members only provide 2 low bits, insufficient for a 3-bit
fixed-width tag.
Commit: 69f9ff6c192bda234a9d6a7a9c92a484705fe210
https://github.com/llvm/llvm-project/commit/69f9ff6c192bda234a9d6a7a9c92a484705fe210
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.demote.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.wqm.demote.mir
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for wqm_demote (#188288)
Commit: 3dd98b74235e92921087203b85feb962b052c83f
https://github.com/llvm/llvm-project/commit/3dd98b74235e92921087203b85feb962b052c83f
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-reloc-const.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for reloc_constant (#188315)
Commit: 32720fba18b1116a5e4cb4a880b0d7168c1bcd02
https://github.com/llvm/llvm-project/commit/32720fba18b1116a5e4cb4a880b0d7168c1bcd02
Author: Gang Chen <gangc at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/Attr.td
M clang/lib/CodeGen/CGLoopInfo.cpp
M clang/lib/CodeGen/CGLoopInfo.h
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
A clang/test/CodeGenCXX/pragma-loop-licm.cpp
Log Message:
-----------
[clang] Pragma for llvm.loop.licm.disable (#188108)
llvm.loop.licm.disable is already availabe at LLVM-IR level to disable
LICM per loop. This PR simply exposes that capability to the developers
at clang level.
Commit: d893374b85b0469e36b6603849c021c98b64684c
https://github.com/llvm/llvm-project/commit/d893374b85b0469e36b6603849c021c98b64684c
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Rename GetAllDesignators to GetTopLevelDesignators, NFC (#188520)
The function collects all top-level designators. Emphasize the "top
level" part for clarity.
Commit: 8491df6c8c82e567e899353b2f5d18263616e53a
https://github.com/llvm/llvm-project/commit/8491df6c8c82e567e899353b2f5d18263616e53a
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.trig.preop.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for trig_preop (#188312)
Commit: ce6d3a49eeca35450fd3cd10c44cfd6141d021d3
https://github.com/llvm/llvm-project/commit/ce6d3a49eeca35450fd3cd10c44cfd6141d021d3
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/select-logical-or-and-i1-vector.ll
Log Message:
-----------
[SLP][NFC]Add a test with incorrect cost model for short-circuit or/and, modeled via select
Commit: 60c911a6f7c496b9ab4c3a8d0856a6d9a783888a
https://github.com/llvm/llvm-project/commit/60c911a6f7c496b9ab4c3a8d0856a6d9a783888a
Author: Anshul Nigham <nigham at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
Log Message:
-----------
[NewPM] Adds a port for AArch64PointerAuth (#188352)
Adds a standard NewPM port for AArch64PointerAuth.
No test updates since all `.mir` files referencing this pass run
combinations of passes, not all of which are ported.
Commit: 7e44db92c51cce1ddfe344473bed7aa6e83592d3
https://github.com/llvm/llvm-project/commit/7e44db92c51cce1ddfe344473bed7aa6e83592d3
Author: satyanarayana reddy janga <satyajanga at fb.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Commands/CommandObjectThread.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
Log Message:
-----------
[lldb][NFC] Remove unused variables (#188385)
Remove unused local variable `s` in
GDBRemoteCommunication::CheckForPacket and unused member
`m_step_thread_idx` in CommandObjectThreadUntil.
Commit: 6c8940ccad31457aadb48c6f2bce139b1c5dda01
https://github.com/llvm/llvm-project/commit/6c8940ccad31457aadb48c6f2bce139b1c5dda01
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/include/clang/AST/Availability.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaExprObjC.cpp
A clang/test/CodeGen/availability-check-anyappleos.c
A clang/test/FixIt/fixit-availability-anyappleos.m
A clang/test/Sema/attr-availability-anyappleos-ast.c
A clang/test/Sema/attr-availability-anyappleos-builtin.m
A clang/test/Sema/attr-availability-anyappleos.c
Log Message:
-----------
Add support for anyAppleOS availability (#181953)
The number of Apple platforms has grown over the years, resulting in
availability annotations becoming increasingly verbose. Now that OS
version names have been unified starting with version 26.0, this patch
introduces a shorthand syntax that applies availability across all Apple
platforms:
```
// Declaration.
void foo __attribute__((availability(anyAppleOS, introduced=26.0)));
// Guard.
if (__builtin_available(anyAppleOS 27.0, *))
```
Implementation:
The `anyAppleOS` platform name is expanded at parse time into implicit
platform-specific availability attributes for the target platform. For
example, when targeting `macOS`, `anyAppleOS` creates an implicit
`macOS` availability attribute with the same version.
A priority system ensures correct attribute merging. Attributes expanded
from `anyAppleOS` have lower priority than existing availability
attributes:
- Direct platform-specific attributes on declarations
- Platform-specific attributes from #pragma clang attribute push
- Attributes inferred from other platforms
Among `anyAppleOS` attributes themselves, direct `anyAppleOS`
annotations have higher priority than `anyAppleOS` applied through
`#pragma clang attribute push`.
The minimum supported version for `anyAppleOS` is 26.0. Versions older
than 26.0 are rejected with a diagnostic error.
`AvailabilityAttr` gains an `origAnyAppleOSVersion` field that stores
the original `anyAppleOS` version when a platform-specific availability
attribute is implicitly derived from an `anyAppleOS` annotation. This
field is used in `@available`/`__builtin_available` fix-it hints to emit
the `anyAppleOS` platform name and version rather than the expanded
platform-specific name.
For `__builtin_available` checks, `anyAppleOS` is lowered to
platform-specific version checks in CodeGen.
This reduces the burden of adding availability annotations to new APIs
in Apple's SDKs and simplifies guards in applications.
rdar://159386357
Commit: e5adddc5be63b8bb8c36572f68ac64c8042cb282
https://github.com/llvm/llvm-project/commit/e5adddc5be63b8bb8c36572f68ac64c8042cb282
Author: Théo Degioanni <tdegioanni at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Dialect/MemRef/mem2reg.mlir
Log Message:
-----------
[MLIR] [Mem2Reg] Fix unused block argument removal logic (#188484)
There was a problem with the way Mem2Reg was removing unused block
arguments, as it was incorrectly assuming the reaching definition was
still available when connecting the successor operands but it may have
been removed as part of the mem2reg process. This approach instead
places successor operands eagerly, and removes them along with the block
argument if unused (similarly to how it was done before the region
support).
This also fixes what I think was a long-standing issue where a block
argument only used by operations that will be deleted would not be
considered unused.
Fixes #188252
Commit: 741eb8015253866323a3c38eb4e7ae686323002d
https://github.com/llvm/llvm-project/commit/741eb8015253866323a3c38eb4e7ae686323002d
Author: ambergorzynski <120007557+ambergorzynski at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRV.h
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.h
M llvm/lib/Target/SPIRV/SPIRVPassRegistry.def
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
M llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-TargetExtType-arg-no-spv_assign_type.ll
M llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-no-divergent-spv_assign_ptr_type.ll
M llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-no-duplicate-spv_assign_type.ll
A llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics.ll
M llvm/test/CodeGen/SPIRV/passes/translate-aggregate-uaddo.ll
Log Message:
-----------
[SPIRV] Add pass SPIRVEmitIntrinsics to new pass manager (#188285)
Registered SPIRVEmitIntrinsics with the new pass manager as
`spirv-emit-intrinsics`. The motivation for this is to allow it to be run from
`opt` as a standalone pass for testing purposes. A simple pipeline test
is also included to check that the registration works.
Commit: 8f470abf0374d1d29a8b6062cfcbd08889f84f1c
https://github.com/llvm/llvm-project/commit/8f470abf0374d1d29a8b6062cfcbd08889f84f1c
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A llvm/test/MC/Hexagon/asm-parser-transforms.s
A llvm/test/MC/Hexagon/asm-parser-vrcmpys.s
A llvm/test/MC/Hexagon/branch-relax-far.s
A llvm/test/MC/Hexagon/directives-falign-subsection.s
Log Message:
-----------
[Hexagon] Add MC parser and AsmBackend coverage tests (#183954)
Add tests targeting HexagonAsmParser and HexagonAsmBackend with low
coverage:
- asm-parser-transforms.s: AsmParser instruction transformation paths
including tableidx, mpysmi immediate adjustment, asr with rounding, and
register pair transfers. Improves HexagonAsmParser.cpp line coverage
from 37.27% to 76.13%.
- asm-parser-vrcmpys.s: AsmParser vrcmpys register mapping for
single-register variants.
- branch-relax-far.s: AsmBackend branch relaxation exercising far-branch
expansion. Improves HexagonAsmBackend.cpp line coverage from 43.17% to
76.77%.
- directives-falign-subsection.s: MC ELF streamer .falign and
.subsection directive handling. Improves HexagonMCELFStreamer.cpp line
coverage from 63.85% to 90.77%.
Commit: 4fe46edf8d9e301c5669250c943377aa1f55fb45
https://github.com/llvm/llvm-project/commit/4fe46edf8d9e301c5669250c943377aa1f55fb45
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/include/clang/AST/Mangle.h
M clang/lib/AST/Mangle.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
A lldb/test/API/commands/expression/ptrauth-vtable/Makefile
A lldb/test/API/commands/expression/ptrauth-vtable/TestPtrAuthVTableExpressions.py
A lldb/test/API/commands/expression/ptrauth-vtable/main.cpp
Log Message:
-----------
[lldb] Support arm64e C++ vtable pointer signing (#187611)
When targeting arm64e, vtable pointers are signed with a discriminator
that incorporates the object's address
(PointerAuthVTPtrAddressDiscrimination) and class type
(PointerAuthVTPtrTypeDiscrimination).
I had to make a small change to clang, specifically in
getPointerAuthDeclDiscriminator(). Previously, that was computing the
discriminator based on getMangledName(). The latter returns the
AsmLabelAttr, which for functions imported by lldb, is prefixed with
`$__lldb_func`, causing a different discriminator to be generated.
Commit: 3b62b61dc0b361d6778e41038da963251eebf359
https://github.com/llvm/llvm-project/commit/3b62b61dc0b361d6778e41038da963251eebf359
Author: Cedric BAIL <cedric at fynelabs.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/test/CodeGen/WebAssembly/simd-select.ll
Log Message:
-----------
[WebAssembly] Fold vselect(cond, vnot(x), zero) to v128.andnot (#184949)
DAGCombiner canonicalizes `and(vnot(x), sext(cmp))` into `vselect(cmp,
vnot(x), zero)`. Without a dedicated ISel pattern, this falls through to
the generic vselect-to-bitselect lowering, producing `v128.not` +
`v128.bitselect`. This patch adds a higher-priority pattern that emits a
single `v128.andnot` instead, saving two instructions.
The direct `and(vnot(x), y)` pattern is already handled by the existing
`andnot` PatFrag. This patch covers the indirect path through
DAGCombiner's `and(x, sext(cmp))` → `vselect(cmp, x, zero)`
canonicalization, which obscures the `andnot` opportunity when `x` is
`vnot(y)`.
Assisted-by: Claude (Anthropic)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
Commit: a3260f658242ff8613f9a852ef95c6f1e644c95a
https://github.com/llvm/llvm-project/commit/a3260f658242ff8613f9a852ef95c6f1e644c95a
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
Log Message:
-----------
[scudo] Remove some android wrapper checking. (#188339)
Tests for Android specific behavior don't really belong here since it is
affected by the config which is not necessarily the same on Android.
There are already tests that the config options and flag options work
properly. Android wrapper tests belong to Android.
Commit: 0eb8f018a1c8ba1bb22fcc1d070a7a93cda6df1a
https://github.com/llvm/llvm-project/commit/0eb8f018a1c8ba1bb22fcc1d070a7a93cda6df1a
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/include/__config
M libcxx/include/__config_site.in
Log Message:
-----------
[libc++] Add CMake plumbing for _LIBCPP_HAS_THREAD_API_C11 mode. (#188414)
Introduce CMake option `LIBCXX_HAS_C11_THREAD_API` that explicitly
instructs libc++ to use C11 threads. Make sure
`_LIBCPP_HAS_THREAD_API_C11` is defined properly in the
`<__config_site>` and interacts correctly with platform-based
auto-selection of thread API when it's not explicitly set.
Commit: f3b82a10ac205cd0d0219b4c47c5c666423a55fd
https://github.com/llvm/llvm-project/commit/f3b82a10ac205cd0d0219b4c47c5c666423a55fd
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/test/CodeGen/AArch64/aarch64-smull.ll
M llvm/test/CodeGen/AArch64/imm-splat-ops.ll
Log Message:
-----------
[AArch64] Promote more NEON splats to SVE immediates (#186776)
This updates the NEON splat matching to handle NVCASTs across bitwidths,
which allows matching MOVIedit immediates.
Commit: 89484e71bea6fc886bbed10c30d42ea62486c7de
https://github.com/llvm/llvm-project/commit/89484e71bea6fc886bbed10c30d42ea62486c7de
Author: AidinT <at.aidin at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Conversion/ConvertToLLVM/CMakeLists.txt
M mlir/include/mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h
M mlir/include/mlir/Conversion/ConvertToLLVM/ToLLVMInterface.td
M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
M mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
M mlir/lib/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.cpp
M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
M mlir/lib/Conversion/IndexToLLVM/IndexToLLVM.cpp
M mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp
M mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp
M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
M mlir/lib/Conversion/NVVMToLLVM/NVVMToLLVM.cpp
M mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
M mlir/lib/Conversion/PtrToLLVM/PtrToLLVM.cpp
M mlir/lib/Conversion/UBToLLVM/UBToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Dialect/X86/Transforms/LegalizeForLLVMExport.cpp
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[MLIR] convert ConvertToLLVMPatternInterface to ods (#188354)
This PR converts `ConvertToLLVMPatternInterface` to tablegen generated
interface using ODS
---------
Co-authored-by: Jacques Pienaar <jacques+gh at japienaar.info>
Commit: 8dd60c03c9d3c05b141d0e72c3894212a89ea25b
https://github.com/llvm/llvm-project/commit/8dd60c03c9d3c05b141d0e72c3894212a89ea25b
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/invalid.mlir
Log Message:
-----------
[mlir][linalg] Improve inner tile size mismatch diagnostics in pack/unpack verifier (#188525)
Refactor the tile-size consistency check in
`commonVerifierPackAndUnPackOp` from a bulk `all_of` into an indexed
loop so that error messages include the offending dimension index and
the conflicting values, making failures easier to diagnose.
Before:
error: mismatch in inner tile sizes specified and shaped of tiled
dimension in the packed type
After (static/static mismatch):
error: mismatch in inner tile sizes specified and shaped of tiled
dimension in the packed type at index 1: got 8 \!= 4
After (dynamic tile, static packed dim):
error: mismatch in inner tile sizes specified at index 1: got static
shape 8 but dynamic tile size
Update the six affected expected-error lines in invalid.mlir
accordingly.
Assisted-by: Claude Code
Commit: 85049fc357ac3917350b97f4812209d9d00fe808
https://github.com/llvm/llvm-project/commit/85049fc357ac3917350b97f4812209d9d00fe808
Author: Diego Novillo <dnovillo at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
A clang/test/CodeGenHLSL/debug/source-language.hlsl
M llvm/docs/SPIRVUsage.rst
M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
M llvm/test/CodeGen/SPIRV/debug-info/debug-compilation-unit.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-type-basic.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll
A llvm/test/CodeGen/SPIRV/debug-info/hlsl-debug-info-auto-activation.ll
M llvm/test/CodeGen/SPIRV/hlsl-resources/SampleErrorsDebug.ll
M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
Log Message:
-----------
[HLSL][SPIRV] Add support for -g to generate NonSemantic Debug Info (#187051)
This adds two related changes to HLSL debug info support in the SPIR-V
backend. It's a first small step towards the plan I described in
https://discourse.llvm.org/t/hlsl-spirv-nsdi-debug-info-support-for-clang-dxc/90149.
## Tag HLSL shaders with `DW_LANG_HLSL` in the front-end
`GetSourceLanguage()` in `clang/lib/CodeGen/CGDebugInfo.cpp` checked
`LO.CPlusPlus` before `LO.HLSL`. Since HLSL is compiled as C++, the HLSL
check was never reached. Shaders compiled with `-g` were tagged with
`DW_LANG_C_plus_plus_14` instead of `DW_LANG_HLSL`. The NSDI pass
already had the correct mapping for `DW_LANG_HLSL` but it was never
triggered.
This fixes #136929 and #136995.
## Make `SPIRVEmitNonSemanticDI` activate automatically when `-g` is
used
`SPIRVPassConfig::addPreEmitPass()` only scheduled
`SPIRVEmitNonSemanticDI` when `--spv-emit-nonsemantic-debug-info` was
set or the target vendor was AMD. Passing `-g` to clang had no effect on
the SPIR-V backend pass.
The pass is now added unconditionally and self-activates by checking for
`llvm.dbg.cu` in the module. When no debug metadata is present it exits
early with no effect. This avoids the need to inspect module metadata at
pass-configuration time, which is not reliably available.
`--spv-emit-nonsemantic-debug-info` is now a deprecated synonym for
`-g`.
The alternative to the unconditional pass approach is to check at
pass-configuration time whether the module was compiled with debug info
(e.g. via `TargetOptions::DebugInfoForProfiling` or a similar flag
forwarded from the driver). I went with the unconditional approach
because it is simpler and the pass is cheap to enter and exit when no
`llvm.dbg.cu` is present.
I'm not sure whether adding a pass unconditionally is acceptable. Does
this sound reasonable, or would it be better to implement the
flag-forwarding approach?
Changes to tests:
- `clang/test/CodeGenHLSL/` (new): verifies that `-g` on an HLSL SPIR-V
target produces `DebugCompilationUnit` with language code 5
(`DW_LANG_HLSL`).
-
`llvm/test/CodeGen/SPIRV/debug-info/hlsl-debug-info-auto-activation.ll`
(new): verifies that a module with `llvm.dbg.cu` and `DW_LANG_HLSL`
produces `DebugCompilationUnit` without
`--spv-emit-nonsemantic-debug-info`.
- Existing `debug-compilation-unit.ll`, `debug-type-basic.ll`,
`debug-type-pointer.ll`: updated to verify NSDI is emitted whenever
debug metadata is present.
- `llc-pipeline.ll`: updated to reflect that `SPIRVEmitNonSemanticDI` is
now always in the pipeline.
---------
Co-authored-by: Eric Christopher <echristo at gmail.com>
Commit: 507f6978605b646860c4efe197589940a8d7df7e
https://github.com/llvm/llvm-project/commit/507f6978605b646860c4efe197589940a8d7df7e
Author: Wei Wang <apollo.mobility at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-unused-probe-desc.prof
A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-unused-probe-desc.ll
Log Message:
-----------
[SampleFDO] Check pseudo probe descriptors for unused profile in stale profile matching (#179997)
If a function is fully optimized away in pre-link, it won't show up in
`SymbolMap` in post-link and the check of unused profile would treat it
as unused and allow it to be matched with unrelated functions. Extend
the check to cover such case in post link.
Also make `FuncToProfileNameMap` a MapVector so that we always get the
same iterator sequence out of it in `UpdateWithSalvagedProfiles`.
Commit: b492b55b8cad286629b78a8274a98bd8dfcd6486
https://github.com/llvm/llvm-project/commit/b492b55b8cad286629b78a8274a98bd8dfcd6486
Author: Romaric Jodin <rjodin at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/lib/generic/math/clc_flush_if_daz.inc
Log Message:
-----------
libclc: clspv does not need workaround for flush_if_daz (#188555)
Commit: 69974d522f5ebccf449b8337c200d58268c2996a
https://github.com/llvm/llvm-project/commit/69974d522f5ebccf449b8337c200d58268c2996a
Author: Théo Degioanni <tdegioanni at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Mem2Reg.cpp
Log Message:
-----------
[MLIR] [Mem2Reg] Quick fix for dominance info invalidation (#188518)
We have identified a problem with DominanceInfo caching in Mem2Reg. It
appears to also be subject to incorrect cache hits when regions are
deleted, causing sporadic bugs that are difficult to test for.
This quick fix invalidates region that could be invalidated. This
attempts to not be too eager by only invalidating regions that are
exposed to a `finalizePromotion` call.
Ultimately it would be nice to have the ability to move the cached
information from one region to the next, but this is currently not
supported by DominanceInfo.
I was not able to produce a test for this as it is very sporadic. We
would need to be testing for a case where a region is re-allocated at
the same address as a previously erased region. If you know how to make
this sort of behavior consistent, I would be interested. Otherwise this
might require no testing.
Commit: 212cbef99b8d781bcb039c4c2ed291e9cbaae91d
https://github.com/llvm/llvm-project/commit/212cbef99b8d781bcb039c4c2ed291e9cbaae91d
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
Log Message:
-----------
[flang] Fix unused variable error (NFC) (#188358)
Commit: 7006fa002f40f153f5f4401f1ec7bd9635c3b56d
https://github.com/llvm/llvm-project/commit/7006fa002f40f153f5f4401f1ec7bd9635c3b56d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir
M mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp
Log Message:
-----------
[mlir][linalg] Fix crash in greedy fusion when producer is fused into multiple consumers (#188561)
When the same producer is fused into multiple consumers in
fuseLinalgOpsGreedily, the second fusion can't find the original op in
the linalgOps vector (already replaced by the first fusion). llvm::find
returns end(), and writing to *end() caused an out-of-bounds stack write
that corrupted the adjacent OpBuilder's context pointer, leading to a
crash.
Fix by checking that find() returned a valid iterator before updating.
Fixes #122247
Assisted-by: Claude Code
Commit: fe10ca41c86205baf233e3268084d57cc222830b
https://github.com/llvm/llvm-project/commit/fe10ca41c86205baf233e3268084d57cc222830b
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
M flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
Log Message:
-----------
Revert "Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#183794)" (#187766)" (#188560)
This reverts commit 7af471a8eda3e1882657115d36eb000df3ffa5fd.
Fixes #188536
Commit: a546c77478ecb2c52a538e9e203adda1ae39f524
https://github.com/llvm/llvm-project/commit/a546c77478ecb2c52a538e9e203adda1ae39f524
Author: Kai <47328809+kcloudy0717 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossY.hlsl
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossY-errors.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/DirectX/QuadReadAcrossY.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/wave-ops.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossY.ll
Log Message:
-----------
[HLSL][DXIL][SPIRV] QuadReadAcrossY intrinsic support (#187440)
This PR adds QuadReadAcrossY intrinsic support in HLSL with codegen for
both DirectX and SPIRV backends. Resolves
https://github.com/llvm/llvm-project/issues/99176.
- [x] Implement `QuadReadAcrossY` clang builtin,
- [x] Link `QuadReadAcrossY` clang builtin with `hlsl_intrinsics.h`
- [x] Add sema checks for `QuadReadAcrossY` to
`CheckHLSLBuiltinFunctionCall` in `SemaChecking.cpp`
- [x] Add codegen for `QuadReadAcrossY` to `EmitHLSLBuiltinExpr` in
`CGBuiltin.cpp`
- [x] Add codegen tests to
`clang/test/CodeGenHLSL/builtins/QuadReadAcrossY.hlsl`
- [x] Add sema tests to
`clang/test/SemaHLSL/BuiltIns/QuadReadAcrossY-errors.hlsl`
- [x] Create the `int_dx_QuadReadAcrossY` intrinsic in
`IntrinsicsDirectX.td`
- [x] Create the `DXILOpMapping` of `int_dx_QuadReadAcrossY` to `123` in
`DXIL.td`
- [x] Create the `QuadReadAcrossY.ll` and `QuadReadAcrossY_errors.ll`
tests in `llvm/test/CodeGen/DirectX/`
- [x] Create the `int_spv_QuadReadAcrossY` intrinsic in
`IntrinsicsSPIRV.td`
- [x] In SPIRVInstructionSelector.cpp create the `QuadReadAcrossY`
lowering and map it to `int_spv_QuadReadAcrossY` in
`SPIRVInstructionSelector::selectIntrinsic`.
- [x] Create SPIR-V backend test case in
`llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossY.ll`
Commit: 4a352bb60d2f59f107e1d757bf2f382bbde13f26
https://github.com/llvm/llvm-project/commit/4a352bb60d2f59f107e1d757bf2f382bbde13f26
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Use APInt::abs in prepareSREMEqFold. NFC (#188551)
Commit: 339315dd178fe54978fb6c28b52ce7819a00009b
https://github.com/llvm/llvm-project/commit/339315dd178fe54978fb6c28b52ce7819a00009b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
Log Message:
-----------
[AggressiveInstCombine] Use APInt::getOneBitSet. NFC (#188545)
Commit: 61533e7e75abb12492bc98459d97dda4ee7ccae0
https://github.com/llvm/llvm-project/commit/61533e7e75abb12492bc98459d97dda4ee7ccae0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Update comments for prepareUREMEqFold to show non-zero comparison constants are allowed. NFC (#188550)
Commit: 4380ae6dbb045e93c618d390d2af6fc3c318d1e8
https://github.com/llvm/llvm-project/commit/4380ae6dbb045e93c618d390d2af6fc3c318d1e8
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang-rt/CMakeLists.txt
M flang-rt/lib/CMakeLists.txt
M flang-rt/lib/runtime/CMakeLists.txt
Log Message:
-----------
[Flang-RT] Support building no library (#187868)
Allow setting both FLANG_RT_ENABLE_SHARED and FLANG_RT_ENABLE_STATIC to
OFF at the same time.
This is extracted out of #171515 to make that PR a little smaller. By
itself it makes little sense since if not building either the `.a` or
the `.so`, you are not building anything. But with #171515, the module
files are still built, allowing building the modules files without the
library. This is mostly intended for GPGPU targets where building the
library is not always needed, but the module files are.
Commit: f0604af7ceb610e09a7915d07da9b36f7bca2b7e
https://github.com/llvm/llvm-project/commit/f0604af7ceb610e09a7915d07da9b36f7bca2b7e
Author: AidinT <at.aidin at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Target/LLVMIR/CMakeLists.txt
A mlir/include/mlir/Target/LLVMIR/LLVMImportDialectInterface.td
M mlir/include/mlir/Target/LLVMIR/LLVMImportInterface.h
M mlir/lib/Target/LLVMIR/CMakeLists.txt
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[MLIR] Convert LLVMImportDialectInterface using ODS (#181923)
This PR generates LLVMImportDialectInterface using ODS.
Commit: c1251ad58b735b5d8045157cd620d40bf518eaa1
https://github.com/llvm/llvm-project/commit/c1251ad58b735b5d8045157cd620d40bf518eaa1
Author: Guo Chen <guochen2 at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/test/CodeGen/AMDGPU/wmma-gfx12-w32-f16-f32-matrix-modifiers.ll
Log Message:
-----------
[AMDGPU][True16] Generate correct reg size for reg_sequence16 in wmma src mod select (#187629)
When a f16 from a true16 insts is passed to a wmma, the src mod try to
pack it to a v4f16 using v_perm_b32. In true16 mode this is causing an
issue since v_perm_b32 takes vgpr32. Create a vgpr_32 for 16-bit src
before passing to v_perm_b32 in true16 mode so that the reg size
matched.
Ideailly we should use reg_sequence to replace v_perm_b32 in true16
mode. However, it currently hit a problem with bad code quality. With
current optimization it only shows better code quality when .hi16 is
selected in vector shuffle. Will fix it when reg allocator and coalescer
can reduce the extra mov
Commit: 267b0ea6e87a25044da047486d3877ebc1b5029b
https://github.com/llvm/llvm-project/commit/267b0ea6e87a25044da047486d3877ebc1b5029b
Author: Ilya Tokar <tokarip at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M utils/bazel/llvm-project-overlay/libc/libc_configure_options.bzl
Log Message:
-----------
[libc][x86] add MEMCPY_X86_USE_NTA_STORES to config (#188321)
Add LIBC_CONF_COPT_MEMCPY_X86_USE_NTA_STORES to cmake/bazel/json config.
Commit: 2c0e63c9b699259a8382cb7642f8e988fdc41e8c
https://github.com/llvm/llvm-project/commit/2c0e63c9b699259a8382cb7642f8e988fdc41e8c
Author: Sergei Lebedev <185856+superbobry at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRAttributes.h
M mlir/include/mlir/Bindings/Python/IRCore.h
M mlir/include/mlir/Bindings/Python/IRTypes.h
M mlir/lib/Bindings/Python/DialectTransform.cpp
M mlir/lib/Bindings/Python/IRAffine.cpp
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/Bindings/Python/IRInterfaces.cpp
M mlir/lib/Bindings/Python/IRTypes.cpp
Log Message:
-----------
[MLIR] [Python] Relaxed `list` to `Sequence` in most parameter types (#188543)
Using `Sequence` frees users from the need to cast to `list` in cases
where the underlying API does not really care about the type of the
container.
Note that accepting an `nb::sequence` is marginally slower than
accepting `nb::list` directly, because `__getitem__`, `__len__` etc need
to go through an extra layer of indirection. However, I expect the
performance difference to be negligible.
Commit: 55111e8d171dad5cefab756cfd443707fbc69aad
https://github.com/llvm/llvm-project/commit/55111e8d171dad5cefab756cfd443707fbc69aad
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/logical.mlir
Log Message:
-----------
[flang] use fir.bitcast for FIRToMemRef scalar reinterpretation (#188328)
Use fir.bitcast in FIR-to-MemRef casts so bit patterns are preserved
(e.g. TRANSFER), while keeping fir.convert for memref/reference
marshaling and non-bitcast-compatible cases.
Commit: 0e2f4d6acf7adab494c46c266cbba154e1ab751b
https://github.com/llvm/llvm-project/commit/0e2f4d6acf7adab494c46c266cbba154e1ab751b
Author: joaosaffran <joaosaffranllvm at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbithigh.ll
M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbitlow.ll
Log Message:
-----------
[HLSL][SPIRV] Fix firstbitset in spirv (#186939)
This patch fixes the logic when lowering firsbithigh and low when
targeting spirv. It adds an aditional check to make sure the second half
is also -1, if it is it returns -1 otherwise returns the resulting sum.
Fix: #143003 and #143171
---------
Co-authored-by: Finn Plummer <mail at inbelic.dev>
Commit: 820eaa427a14566856a3d5f8104605a4a352a822
https://github.com/llvm/llvm-project/commit/820eaa427a14566856a3d5f8104605a4a352a822
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Analysis/DataFlow/DeadCodeAnalysis.cpp
M mlir/test/Transforms/sccp.mlir
Log Message:
-----------
[MLIR][DataFlow] Fix two crashes in DeadCodeAnalysis on empty/no-terminator regions (#188548)
Two related assertion failures in DeadCodeAnalysis when processing
OpenACC operations:
1. visitRegionBranchEdges (issue #187972): When a RegionSuccessor refers
to an empty region (no blocks), calling getSuccessor()->front()
dereferences a sentinel ilist iterator, crashing with
"\!NodePtr->isKnownSentinel()". Fix: skip successors whose region is
empty.
2. isRegionOrCallableReturn (issue #188408): When iterating over ops in
a nested acc region whose blocks do not have a required terminator,
Block::getTerminator() is called without first checking
mightHaveTerminator(), triggering "Assertion `mightHaveTerminator()'
failed". Fix: guard the getTerminator() call with mightHaveTerminator().
Fixes #187972, #188408
Assisted-by: Claude Code
Commit: 588451c160c34b888ced1c3d9263d361df22f757
https://github.com/llvm/llvm-project/commit/588451c160c34b888ced1c3d9263d361df22f757
Author: Brad Smith <brad at comstyle.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libunwind/CMakeLists.txt
M libunwind/src/Registers.hpp
Log Message:
-----------
[libunwind] Fix building on OpenBSD / FreeBSD aarch64 (#188397)
Just checking for the header presence of sys/auxv.h breaks the
build on OpenBSD / FreeBSD. Make use of elf_aux_info().
Commit: d9402d087ab90610d3ff8a78a50eb66d3be4cffd
https://github.com/llvm/llvm-project/commit/d9402d087ab90610d3ff8a78a50eb66d3be4cffd
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Dialect/MemRef/mem2reg.mlir
Log Message:
-----------
Revert "[MLIR] [Mem2Reg] Fix unused block argument removal logic (#188484)" (#188571)
This reverts commit e5adddc5be63b8bb8c36572f68ac64c8042cb282.
This commit broke a lot of Fortran compilations in our tests and builds.
I am working on an additional fix, but I would like to revert this
in the meantime. I will reupload it with the fix.
Commit: ebd62d652c4a6537ad0dbdb37f449e8cdf821ffb
https://github.com/llvm/llvm-project/commit/ebd62d652c4a6537ad0dbdb37f449e8cdf821ffb
Author: Elia Geretto <egeretto at qti.qualcomm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/Driver/fsanitize-memtag.c
A clang/test/Driver/memtag-android.c
R clang/test/Driver/memtag-ld.c
A clang/test/Driver/memtag.c
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Options.td
M lld/ELF/SyntheticSections.cpp
A lld/test/ELF/aarch64-memtag-abi.s
M lld/test/ELF/aarch64-memtag-android-abi.s
M lld/test/ELF/aarch64-memtag-globals.s
M lld/test/ELF/aarch64-memtag-pauth-globals-out-of-range.s
M lld/test/ELF/aarch64-memtag-pauth-globals.s
Log Message:
-----------
[lld][ELF][clang][MTE] Add -z memtag-{mode,heap,stack} (#188205)
This change eliminates the Android-specific --android-memtag-* flags
from lld, replacing them with -z memtag-* generic equivalents. With
these generic flags, the linker will emit only the dynamic array tags
specified in the "Memtag ABI Extension to ELF", but no Android-specific
memtag note.
In addition, this change adds an --android-memtag-note flag which should
be used when the Android-specific memtag note should be emitted.
This change also modifies the clang driver to make use of the new flags.
Commit: b491bd9826763c994d455f090f48eae68a33f797
https://github.com/llvm/llvm-project/commit/b491bd9826763c994d455f090f48eae68a33f797
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Log Message:
-----------
[DSE] Fix missed dependency update in #188253 (#188573)
DSE no longer requires LoopInfo, so this dependency is no longer
correct. Update it to CycleInfo to fix a crash when using the legacy PM.
Note: This crash is kind of hard to hit with default LLVM tools since
`opt` can no longer use the legacy PM, but it happens on any invocation
of clang when targeting the DirectX backend.
Commit: d7e60d525026f24a3514be34d8e6e56622436823
https://github.com/llvm/llvm-project/commit/d7e60d525026f24a3514be34d8e6e56622436823
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M flang/include/flang/Tools/CrossToolHelpers.h
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Lower/OpenMP/Decomposer.cpp
M flang/tools/bbc/bbc.cpp
M mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h
A mlir/include/mlir/Dialect/OpenMP/OpenMPOffloadUtils.h
Log Message:
-----------
[NFC][OpenMP][mlir][flang] Move OMP offloading module attribute handling from flang to mlir (#186409)
This patch moves the OpenMP offloding module attributes handling from
flang to mlir so that it can be reused in ClangIR was well.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Co-authored-by: Michael Kruse <github at meinersbur.de>
Commit: 67d1d984b23f40d6b9e7f97c7e9db40dada0633e
https://github.com/llvm/llvm-project/commit/67d1d984b23f40d6b9e7f97c7e9db40dada0633e
Author: Ian Tayler Lessa <ian.taylerlessa at arm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/canonicalize.mlir
Log Message:
-----------
[mlir][tosa] Optimize block scaled cast sequences (#188018)
Add a canonicalization pattern that will delete cast_from_block_scaled
-> cast_to_block_scaled sequences when the input and output types and
block sizes match.
---------
Signed-off-by: Ian Tayler Lessa <ian.taylerlessa at arm.com>
Commit: 28318d5db86f56c32852f07d0d8140b7fa0cdb41
https://github.com/llvm/llvm-project/commit/28318d5db86f56c32852f07d0d8140b7fa0cdb41
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/NVPTX/CMakeLists.txt
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
A llvm/lib/Target/NVPTX/NVPTXSetByValParamAlign.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
M llvm/test/CodeGen/NVPTX/bug21465.ll
M llvm/test/CodeGen/NVPTX/lower-args-alignment.ll
M llvm/test/CodeGen/NVPTX/lower-args-gridconstant.ll
M llvm/test/CodeGen/NVPTX/lower-args.ll
M llvm/test/CodeGen/NVPTX/lower-byval-args.ll
A llvm/test/CodeGen/NVPTX/set-byval-param-align.ll
Log Message:
-----------
[NVPTX] Split out NVPTXSetByValParamAlign of NVPTXLowerArgs (NFC) (#187965)
This logic was previously embedded in NVPTXLowerArgs, but is split into
a separate pass as it is an optional optimization orthogonal to kernel
parameter lowering. This pass can be run earlier making alignment
available to generic IR passes (like infer-alignment) and a separate
pass makes the alignment logic independently testable. It also
simplifies NVPTXLowerArgs by removing the duplicate handling of
alignment for kernel vs. device functions.
Commit: b8b4804d1785784933f8945334d9c8bcd2443417
https://github.com/llvm/llvm-project/commit/b8b4804d1785784933f8945334d9c8bcd2443417
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Commands/CommandObjectType.cpp
M lldb/source/Commands/Options.td
A lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/Makefile
A lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/TestTypeSynthRequiresDeref.py
A lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/main.cpp
A lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/provider.py
Log Message:
-----------
[lldb][CommandObjectType] Add --wants-dereference option to `type synthetic add` (#188512)
This patch exposes the `TypeSynthetic::SetFrontEndWantsDereference` via
the `type synthetic add` command.
The motivation for this is moving the various STL data-formatters to
Python. Those currently set this flag programmatically so that pointers
and references get formatted using the pointee synthetic provider.
Patch that makes use of this new option is:
https://github.com/llvm/llvm-project/pull/187677
Claude helped with writing the test code. Reviewed and cleaned it up
myself
Commit: db1811283d73da6cc57baed4053fafc900c691f2
https://github.com/llvm/llvm-project/commit/db1811283d73da6cc57baed4053fafc900c691f2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Use APInt::setAllBits() instead of assigning -1. (#188566)
The -1 has 'int' type. The APInt assignment operator takes uint64_t.
Fortunately, due to C rules, the -1 will be converted to an all ones
uint64_t. Unfortunately, if the APInt has more than 64 bits, the upper
words will be zeroed. I don't think we have any testing of that today.
Use setAllBits to avoid the subtle cast and fix the bits > 64 issue.
K still has its own issue that needs to be fixed.
Commit: e347e93b26922ecba9894d7bee36bb5690413bda
https://github.com/llvm/llvm-project/commit/e347e93b26922ecba9894d7bee36bb5690413bda
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/test/CIR/CodeGen/ms-intrinsics.c
M clang/test/CIR/CodeGenBuiltins/builtins.cpp
Log Message:
-----------
[CIR][NFC] Fix llvm.returnaddress call in tests (#188563)
Fix llvm.returnaddress call in tests after changes from #188464
Commit: caed45964660a4eb074ff633947173e14ba2bd4e
https://github.com/llvm/llvm-project/commit/caed45964660a4eb074ff633947173e14ba2bd4e
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes d7e60d5 (#188592)
This fixes d7e60d525026f24a3514be34d8e6e56622436823.
Commit: 40949770b71ba58cad517d11e96d601d4f826c16
https://github.com/llvm/llvm-project/commit/40949770b71ba58cad517d11e96d601d4f826c16
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/builders/builder.py
Log Message:
-----------
[lldb] Remove references to llvm-gcc (#188582)
A couple of leftovers that weren't removed in e0a79eeca2 (#120225)
Commit: 68994554ea12b117a88a63d446f472e0cf145cf0
https://github.com/llvm/llvm-project/commit/68994554ea12b117a88a63d446f472e0cf145cf0
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
Log Message:
-----------
[AMDGPU] Mark amdgcn_permlane64 as divergent (#188562)
Commit: a6a66a4e6915167fad34075af7399ae1f58fbed3
https://github.com/llvm/llvm-project/commit/a6a66a4e6915167fad34075af7399ae1f58fbed3
Author: Neil Phan <hello at neil.place>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/vscale-constant-range.ll
Log Message:
-----------
[DAG] Define computeConstantRange for VSCALE folding (#176027)
Resolves #175150
Defines computeConstantRange and computeConstantRangeIncludingKnownBits
in the SelectionDAG. Currently only handles `ISD::VSCALE` operation
related to #174708.
Test cases were constructed to test varying VSCALE ranges on AArch64.
Further testing can be implemented as needed by review.
Commit: 2c24f0292496332cd8ff0fa736b128890e039411
https://github.com/llvm/llvm-project/commit/2c24f0292496332cd8ff0fa736b128890e039411
Author: lntue <lntue at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/acosh_float_constants.h
M libc/src/__support/math/acoshf.h
M libc/src/__support/math/acoshf_utils.h
M libc/src/__support/math/asinhf.h
M libc/src/__support/math/atanhf.h
M libc/src/__support/math/log1pf.h
M libc/test/src/math/acoshf_test.cpp
M libc/test/src/math/asinhf_test.cpp
M libc/test/src/math/log1pf_test.cpp
Log Message:
-----------
[libc][math] Switch log1pf to use the same log_eval from inverse hyperbolic functions. (#188388)
- Switch log1pf to use the same log_eval from inverse hyperbolic
functions.
- Optimize log_eval to use the same range reduction scheme as double
precision log
- Reduce the table size needed for log range reduction.
- This lower the overall latency of log1pf and inverse hyperbolic
functions.
Commit: 4bfc9bd4cfc68291d9586f4570352bccaaa111b6
https://github.com/llvm/llvm-project/commit/4bfc9bd4cfc68291d9586f4570352bccaaa111b6
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A libc/docs/dev/implementing_a_function.rst
M libc/docs/dev/index.rst
Log Message:
-----------
[libc][docs] Add guide for implementing a function (#188499)
Added implementing_a_function.rst providing a checklist for adding a new
function to LLVM-libc.
Updated dev/index.rst to include the new guide in the toctree.
Commit: b3455c1b8465ca5ccfcb3d70cf0d1f068fe1238d
https://github.com/llvm/llvm-project/commit/b3455c1b8465ca5ccfcb3d70cf0d1f068fe1238d
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC] Remove duplicated cast (#188532)
Introduced in #188103.
Commit: f83697d69f6dd489717a4798a06821ff6c9dd158
https://github.com/llvm/llvm-project/commit/f83697d69f6dd489717a4798a06821ff6c9dd158
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
A llvm/test/CodeGen/DirectX/Bitcode/byte.ll
A llvm/test/tools/dxil-dis/byte.ll
Log Message:
-----------
[DirectX] Handle byte type in DXILBitcodeWriter (#187157)
The byte type was introduced to LLVM IR in #186888. DXILBitcodeWriter
needs to handle this type by generating valid LLVM 3.7 era bitcode,
which is as simple as treating byte equivalently to an integer.
Commit: 0129ecf0222895aa4f3a25f7374411d75e7b3ae4
https://github.com/llvm/llvm-project/commit/0129ecf0222895aa4f3a25f7374411d75e7b3ae4
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libunwind/test/signal_frame.pass.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
A llvm/test/MC/AArch64/arm64-compact-unwind-signal-frame.s
A llvm/test/MC/ARM/compact-unwind-signal-frame.s
A llvm/test/MC/X86/compact-unwind-signal-frame.s
Log Message:
-----------
[llvm][CompactUnwind] Compact Unwind does not support .cfi_signal_frame (#186458)
Fixes libunwind's signal_frame.pass.cpp test on Mach-O platforms.
Commit: 47f032e6955e5beb3f1fce8dbe1a509f86b26033
https://github.com/llvm/llvm-project/commit/47f032e6955e5beb3f1fce8dbe1a509f86b26033
Author: google-llvm-bazel-bot <google-bazel-bot at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 2c24f02 (#188603)
This fixes 2c24f0292496332cd8ff0fa736b128890e039411.
Commit: dd57b4552202f3ef816c6d49781d6f1550e98484
https://github.com/llvm/llvm-project/commit/dd57b4552202f3ef816c6d49781d6f1550e98484
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libclc/clc/lib/amdgpu/subgroup/clc_sub_group_reduce.cl
Log Message:
-----------
libclc: Fix amdgpu subgroup reduce for max u64 (#188598)
Commit: 443e4cb2dfadd448cb5676a8c4839794ae079550
https://github.com/llvm/llvm-project/commit/443e4cb2dfadd448cb5676a8c4839794ae079550
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Dialect/MemRef/mem2reg.mlir
M mlir/test/Transforms/mem2reg.mlir
Log Message:
-----------
Reapply "[MLIR] [Mem2Reg] Fix unused block argument removal logic (#188484)" (#188571) (#188599)
This reverts commit d9402d087ab90610d3ff8a78a50eb66d3be4cffd.
This re-applies commit e5adddc5be63b8bb8c36572f68ac64c8042cb282
along with
https://github.com/cathyzhyi/llvm-project/commit/62eafb5cd1f2d3df9a3d37bfe03bb21f85615f3c
Co-authored-by: Yi Zhang <cathyzhyi at google.com>
Co-authored-by: Yi Zhang <cathyzhyi at google.com>
Commit: 5509dda003eb50ea11a9239b8f4e8f52e3e95258
https://github.com/llvm/llvm-project/commit/5509dda003eb50ea11a9239b8f4e8f52e3e95258
Author: Guo Chen <guochen2 at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fcmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-int-conversions.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/icmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fract.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sub.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/flat-scratch-i8-i16.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.ll
M llvm/test/CodeGen/AMDGPU/fminnum.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
M llvm/test/CodeGen/AMDGPU/pseudo-scalar-transcendental.ll
M llvm/test/CodeGen/AMDGPU/scalar-float-sop1.ll
M llvm/test/CodeGen/AMDGPU/select-nsz-known-values-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/strict_fadd.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_fmul.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_fsub.f16.ll
M llvm/test/MC/AMDGPU/literals.s
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
Log Message:
-----------
[AMDGPU][True16] turn on true16 for gfx12 (#187514)
Turn on gfx12 true16 mode as default
Commit: 3692afe4ce7547de141a8a79c388f9fc5276076e
https://github.com/llvm/llvm-project/commit/3692afe4ce7547de141a8a79c388f9fc5276076e
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec] Fix -Wunused-variable
Mark it [[maybe_unused]] given it is only used if assertions are enabled
(i.e., NDEBUG is not defined). We don't inline it given the variable
being named provides tangibly more information to the reader.
Commit: 93311617bf7eccc389643cf93ed00a8ad2e30ed2
https://github.com/llvm/llvm-project/commit/93311617bf7eccc389643cf93ed00a8ad2e30ed2
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.memrealtime.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for s_memrealtime (#188311)
Commit: 5677bddef10e203b97c54221a07eabb2d51b530a
https://github.com/llvm/llvm-project/commit/5677bddef10e203b97c54221a07eabb2d51b530a
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Host/windows/PythonPathSetup/PythonPathSetup.cpp
Log Message:
-----------
[lldb] [windows] Fix warning about unused static functions (#188531)
This fixes warnings about unused static functions, if building without
LLDB_PYTHON_DLL_RELATIVE_PATH defined.
These two static functions are only used by the non-static function
AddPythonDLLToSearchPath below; include them in the ifdef enclosing it.
Commit: f72a150db0de6cfaefed3237f86b215570a68ffd
https://github.com/llvm/llvm-project/commit/f72a150db0de6cfaefed3237f86b215570a68ffd
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/test/API/api/check_public_api_headers/TestPublicAPIHeaders.py
M lldb/test/API/api/command-return-object/TestSBCommandReturnObject.py
M lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
M lldb/test/API/api/multiple-targets/TestMultipleTargets.py
M lldb/test/API/api/multithreaded/TestMultithreaded.py
M lldb/test/API/arm/thumb-function-addr/TestThumbFunctionAddr.py
M lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py
M lldb/test/API/commands/expression/char/TestExprsChar.py
M lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py
M lldb/test/API/commands/process/attach/TestProcessAttach.py
M lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
M lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/TestSVERegisters.py
M lldb/test/API/commands/register/register/aarch64_sve_simd_registers/TestSVESIMDRegisters.py
M lldb/test/API/commands/target/basic/TestTargetCommand.py
M lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py
M lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
M lldb/test/API/commands/watchpoints/hello_watchpoint/TestMyFirstWatchpoint.py
M lldb/test/API/commands/watchpoints/multi_watchpoint_slots/TestWatchpointMultipleSlots.py
M lldb/test/API/commands/watchpoints/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
M lldb/test/API/commands/watchpoints/watchpoint_commands/TestWatchpointCommands.py
M lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandLLDB.py
M lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py
M lldb/test/API/commands/watchpoints/watchpoint_commands/condition/TestWatchpointConditionCmd.py
M lldb/test/API/commands/watchpoints/watchpoint_on_vectors/TestValueOfVectorVariable.py
M lldb/test/API/commands/watchpoints/watchpoint_size/TestWatchpointSizes.py
M lldb/test/API/functionalities/archives/TestBSDArchives.py
M lldb/test/API/functionalities/asan/TestMemoryHistory.py
M lldb/test/API/functionalities/asan/TestReportData.py
M lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
M lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/bitset/TestDataFormatterGenericBitset.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/chrono/TestDataFormatterStdChrono.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/coroutine_handle/TestCoroutineHandle.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/deque/TestDataFormatterGenericDeque.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/forward_list/TestDataFormatterGenericForwardList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/initializer_list/TestDataFormatterStdInitializerList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/iterator/TestDataFormatterStdIterator.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/TestDataFormatterGenericList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/loop/TestDataFormatterGenericListLoop.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/multimap/TestDataFormatterGenericMultiMap.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/multiset/TestDataFormatterGenericMultiSet.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/ordering/TestDataFormatterStdOrdering.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/queue/TestDataFormatterStdQueue.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/ranges/ref_view/TestDataFormatterStdRangesRefView.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/set/TestDataFormatterGenericSet.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/tuple/TestDataFormatterStdTuple.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered_map-iterator/TestDataFormatterStdUnorderedMap.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/valarray/TestDataFormatterStdValarray.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vbool/TestDataFormatterStdVBool.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/optional/TestDataFormatterLibcxxOptionalSimulator.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/string/TestDataFormatterLibcxxStringSimulator.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/TestDataFormatterLibcxxUniquePtrSimulator.py
M lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
M lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
M lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py
M lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
M lldb/test/API/functionalities/plugins/command_plugin/TestPluginCommands.py
M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/TestOSIndSYM.py
M lldb/test/API/functionalities/thread/step_until/TestStepUntil.py
M lldb/test/API/iohandler/sigint/TestProcessIOHandlerInterrupt.py
M lldb/test/API/lang/BoundsSafety/soft_trap/TestBoundsSafetyInstrumentationPlugin.py
M lldb/test/API/lang/c/forward/TestForwardDeclaration.py
M lldb/test/API/lang/cpp/dynamic-value/TestCppValueCast.py
M lldb/test/API/lang/cpp/forward/TestCPPForwardDeclaration.py
M lldb/test/API/lang/cpp/limit-debug-info/TestWithLimitDebugInfo.py
M lldb/test/API/lang/cpp/nested-template/TestNestedTemplate.py
M lldb/test/API/lang/cpp/unique-types2/TestUniqueTypes2.py
M lldb/test/API/lang/cpp/unique-types4/TestUniqueTypes4.py
M lldb/test/API/lang/objc/direct-dispatch-step/TestObjCDirectDispatchStepping.py
M lldb/test/API/lang/objc/forward-decl/TestForwardDecl.py
M lldb/test/API/lang/objc/foundation/TestConstStrings.py
M lldb/test/API/lang/objc/foundation/TestObjectDescriptionAPI.py
M lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
M lldb/test/API/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
M lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
M lldb/test/API/lang/objc/print-obj/TestPrintObj.py
M lldb/test/API/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
M lldb/test/API/lang/objc/rdar-10967107/TestRdar10967107.py
M lldb/test/API/lang/objc/rdar-12408181/TestRdar12408181.py
M lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
M lldb/test/API/linux/linker-symbols/TestLinkerSymbols.py
M lldb/test/API/linux/loongarch64/simd_registers/TestLoongArch64LinuxSIMDRegisters.py
M lldb/test/API/macosx/ctf/TestCTF.py
M lldb/test/API/macosx/dsym_modules/TestdSYMModuleInit.py
M lldb/test/API/macosx/function-starts/TestFunctionStarts.py
M lldb/test/API/macosx/mte/TestDarwinMTE.py
M lldb/test/API/macosx/nslog/TestDarwinNSLogOutput.py
M lldb/test/API/macosx/universal64/TestUniversal64.py
M lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py
M lldb/test/API/python_api/formatters/TestFormattersSBAPI.py
M lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
M lldb/test/API/python_api/hello_world/TestHelloWorld.py
M lldb/test/API/python_api/module_section/TestModuleAndSection.py
M lldb/test/API/python_api/target/TestTargetAPI.py
M lldb/test/API/python_api/thread/TestThreadAPI.py
M lldb/test/API/python_api/value/TestValueAPI.py
M lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
M lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py
M lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py
M lldb/test/API/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
M lldb/test/API/riscv/break-undecoded/TestBreakpointIllegal.py
M lldb/test/API/riscv/step/TestSoftwareStep.py
M lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
M lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
M lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
M lldb/test/API/tools/lldb-server/attach-wait/TestGdbRemoteAttachWait.py
M lldb/test/API/types/HideTestFailures.py
M lldb/test/API/types/TestRecursiveTypes.py
Log Message:
-----------
[lldb] Disallow SHARED_BUILD_TESTCASE for non-default self.build() (#188523)
Change `self.build(...)` to assert if called with arguments of any kind,
for tests which have `SHARED_BUILD_TESTCASE` enabled (the default).
This also changes all tests that began asserting with this change, tests
which call `self.build(...)` with arguments.
---------
Co-authored-by: Adrian Prantl <adrian.prantl at gmail.com>
Commit: 22779ff652ce6eb41ef7ae67f40613be89e50be1
https://github.com/llvm/llvm-project/commit/22779ff652ce6eb41ef7ae67f40613be89e50be1
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Host/windows/ConnectionConPTYWindows.cpp
Log Message:
-----------
[lldb] [windows] Fix warnings in ConnectionConPTYWindows (#188528)
This fixes the following warnings, when building in mingw mode:
llvm-project/lldb/source/Host/windows/ConnectionConPTYWindows.cpp:47:7: warning: field 'm_pty' will be initialized after base 'ConnectionGenericFile' [-Wreorder-ctor]
47 | : m_pty(pty), ConnectionGenericFile(pty->GetSTDOUTHandle(), false) {};
| ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ConnectionGenericFile(pty->GetSTDOUTHandle(), false) m_pty(pty)
llvm-project/lldb/source/Host/windows/ConnectionConPTYWindows.cpp:47:74: warning: extra ';' outside of a function is incompatible with C++98 [-Wc++98-compat-extra-semi]
47 | : m_pty(pty), ConnectionGenericFile(pty->GetSTDOUTHandle(), false) {};
| ^
Commit: 9a8b8153be52a91814743901a7dedaa5043da5af
https://github.com/llvm/llvm-project/commit/9a8b8153be52a91814743901a7dedaa5043da5af
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/shared/math/cospif16.h
M libc/src/__support/math/acosf.h
M libc/src/__support/math/acosf16.h
M libc/src/__support/math/cos_integer_eval.h
M libc/src/__support/math/cospif.h
M libc/src/__support/math/cospif16.h
Log Message:
-----------
[libc] Fix all guard comments for cos and Acos functions (#188612)
This PR intends to fix all the wrong guard comments for cos and Acos
function
Commit: acef4cc2d7aebee45c4cf87663ee2ae567df7ebf
https://github.com/llvm/llvm-project/commit/acef4cc2d7aebee45c4cf87663ee2ae567df7ebf
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Support/Windows/Path.inc
Log Message:
-----------
[Support] [Windows] Silence warnings about anonymous unions (#188534)
When building in mingw mode with Clang, we currently get the
following warnings:
llvm-project/llvm/lib/Support/Windows/Path.inc:1720:5: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types]
1720 | struct {
| ^
llvm-project/llvm/lib/Support/Windows/Path.inc:1728:5: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types]
1728 | struct {
| ^
Since these declarations mirror parts of the Microsoft SDKs, we
don't want to deviate from it needlessly; instead add a pragma
to silence this diagnostic for this specific area.
Commit: 672f051ed015811cf1db1b56d93e452f1b161074
https://github.com/llvm/llvm-project/commit/672f051ed015811cf1db1b56d93e452f1b161074
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
Log Message:
-----------
[SampleFDO] Fix -Wunused-variable
Mark [[maybe_unused]] given inlining into the assertion does not make
sense given the call has side effects.
Commit: 61fbcc474551764c2c02486b729349d280755a18
https://github.com/llvm/llvm-project/commit/61fbcc474551764c2c02486b729349d280755a18
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M mlir/test/CAPI/smt.c
Log Message:
-----------
[MLIR] Fix -Wunused-but-set-variable
Use a void cast given [[maybe_unused]] is a C23 extension and this is a
C file. The calls also have side effects so it does not make sense to
inline into the assertions.
Commit: ff769811eeac3093cc2e3a8f01e31be66ceabde9
https://github.com/llvm/llvm-project/commit/ff769811eeac3093cc2e3a8f01e31be66ceabde9
Author: Martin Storsjö <martin at martin.st>
Date: 2026-03-26 (Thu, 26 Mar 2026)
Changed paths:
M lldb/source/Host/windows/PythonPathSetup/PythonPathSetup.cpp
Log Message:
-----------
Revert "[lldb] [windows] Fix warning about unused static functions" (#188626)
Reverts llvm/llvm-project#188531.
That change broke some buildbots, e.g.
https://lab.llvm.org/buildbot/#/builders/141/builds/16639.
Even though one of the static functions, `GetPathToExecutable`, only was
used by the function `AddPythonDLLToSearchPath` below, it turns out that
`GetModulePath` is used in another place as well, guarded by a different
ifdef.
Commit: 154d2267b897c786fdb01c44ef28f04ac9e29bc3
https://github.com/llvm/llvm-project/commit/154d2267b897c786fdb01c44ef28f04ac9e29bc3
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/Features.def
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/ObjCRuntime.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Options/Options.td
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ExprObjC.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGObjC.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/lib/CodeGen/CGObjCMac.cpp
A clang/lib/CodeGen/CGObjCMacConstantLiteralUtil.h
M clang/lib/CodeGen/CGObjCRuntime.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
A clang/test/CodeGenObjC/Inputs/constant-literal-support.h
A clang/test/CodeGenObjC/arc-constant-literals.m
A clang/test/CodeGenObjC/no-nsconstant-literals.m
A clang/test/CodeGenObjC/objc2-constant-collection-literals.m
A clang/test/CodeGenObjC/objc2-constant-literal-custom-class.m
A clang/test/CodeGenObjC/objc2-constant-number-literal.m
A clang/test/PCH/objc2_constant_literals.m
A clang/test/SemaObjC/objc-constant-literal-collections.m
A clang/test/SemaObjCXX/crash-dict-literal-template.mm
Log Message:
-----------
[ObjC] Emit number, array, and dictionary literals as constants (#185130)
When targeting runtimes that support constant literal classes, emit ObjC
literal expressions @(number), @[], and @{} as compile-time constant
data structures rather than runtime msgSend calls. This reduces code
size and runtime overhead at the cost of increased data segment size,
and avoids repeated heap allocation of equivalent literal objects.
The feature is not supported with the fragile ABI or GNU runtimes, where
it is automatically disabled.
The feature can be disabled altogether with -fno-objc-constant-literals,
or individually per literal kind:
-fno-constant-nsnumber-literals
-fno-constant-nsarray-literals
-fno-constant-nsdictionary-literals
Custom backing class names can be specified via:
-fconstant-array-class=<name>
-fconstant-dictionary-class=<name>
-fconstant-integer-number-class=<name>
-fconstant-float-number-class=<name>
-fconstant-double-number-class=<name>
rdar://45380392
rdar://168106035
---------
Co-authored-by: Ben D. Jones <bendjones at apple.com>
Commit: 8de3a47ef13c2ad2f67d3e1a47637f2b16e2875b
https://github.com/llvm/llvm-project/commit/8de3a47ef13c2ad2f67d3e1a47637f2b16e2875b
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/docs/CIBestPractices.rst
Log Message:
-----------
[Github][Docs] Document disabling credential persistence (#188622)
Now that bd46a7d172661d4477737a65b107bf40782c7e40 has landed and
a90f583e7a11703aab50bdc5ece8717e089c69da will automatically enforce
this, so we might as well have some documentation.
Commit: f99cc277e47abd26c811da3a1a2836a2ac1ff833
https://github.com/llvm/llvm-project/commit/f99cc277e47abd26c811da3a1a2836a2ac1ff833
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/Headers/CMakeLists.txt
Log Message:
-----------
Create `hlsl` directory before generating headers into it (#188618)
This PR should fix an issue reported by
https://github.com/llvm/llvm-project/pull/187440#issuecomment-4129823619
and
https://github.com/llvm/llvm-project/pull/187610#issuecomment-4129976404
where using `clang_generate_header` to generate a header into a
directory that did not exist caused an error.
Commit: 26f344e1703229aea20df616b1dbc949fbc332e1
https://github.com/llvm/llvm-project/commit/26f344e1703229aea20df616b1dbc949fbc332e1
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC] Refactor to prepare for constant stride stores (#185997)
Refactor to proceed addition of strided store chain vectorization.
Instead of iterating over one chain at a time, attempting all VFs for that given chain, we now iterate over VFs, trying each chain for the current VF. This will allow us to handle chains that share elements.
Commit: 6364dd9440321c8d052c6e7cf55757a0f59912a2
https://github.com/llvm/llvm-project/commit/6364dd9440321c8d052c6e7cf55757a0f59912a2
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M clang/lib/Sema/SemaExprObjC.cpp
Log Message:
-----------
[ObjC] Fix -Wunused-variable
Inline the variable into the assertion given it is not used anywhere
else, has no side effects, and the variable name did not make anything
more clear.
Commit: 6b90f70a8c51ea8aa6ef9bc7949b704f30e5e474
https://github.com/llvm/llvm-project/commit/6b90f70a8c51ea8aa6ef9bc7949b704f30e5e474
Author: satyanarayana reddy janga <satyajanga at fb.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
Log Message:
-----------
[lldb] Fix wrong arguments in MergeSections address mismatch warning (#188610)
The warning message intended to print the mismatched file addresses, but
was passing GetByteSize() instead of GetFileAddress() for both the
expected and actual values.
Commit: 67113d9d2fbc47de36e0cbeb0555d1cdb3bfe5e1
https://github.com/llvm/llvm-project/commit/67113d9d2fbc47de36e0cbeb0555d1cdb3bfe5e1
Author: lntue <lntue at google.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M libc/src/__support/common.h
M libc/src/mathvec/generic/CMakeLists.txt
M libc/src/mathvec/generic/expf.cpp
Log Message:
-----------
[libc] Allow LLVM_LIBC_FUNCTION macro to take another parameter for function alias. (#187154)
Commit: 2181f74905663474ee3ba5ceccad6e25cb84a9e8
https://github.com/llvm/llvm-project/commit/2181f74905663474ee3ba5ceccad6e25cb84a9e8
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/copyable-operands-reordering.ll
Log Message:
-----------
[SLP][NFC] Add a test with the worse vectorization because of missing opreands matching
Commit: 7c5fe9b61505186393e5077e3ddb0c2a520d6194
https://github.com/llvm/llvm-project/commit/7c5fe9b61505186393e5077e3ddb0c2a520d6194
Author: Lang Hames <lhames at gmail.com>
Date: 2026-03-26 (Thu, 26 Mar 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h
M llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
M llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp
M llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
Log Message:
-----------
[ORC] Move DylibManager impl out of SimpleRemoteEPC. (#188439)
This updates EPCGenericDylibManager to implement the DylibManager
interface, and drops the DylibManager implementation from
SimpleRemoteEPC. Since SimpleRemoteEPC already owned an
EPCGenericDylibManager it can simply provide that as its DylibManager
implementation. This change should not affect the behavior of
SimpleRemoteEPC from the perspective of API clients.
Commit: d6957d2140c96dd5d821c3dd69712be0edd38cee
https://github.com/llvm/llvm-project/commit/d6957d2140c96dd5d821c3dd69712be0edd38cee
Author: Takashi Idobe <idobetakashi at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/apx/long-instruction-fixup.ll
M llvm/test/CodeGen/X86/apx/sbb.ll
A llvm/test/CodeGen/X86/sbb-add-constant.ll
M llvm/test/CodeGen/X86/select_const.ll
Log Message:
-----------
[X86] fuse constant addition after sbb (#184541)
Resolves: https://github.com/llvm/llvm-project/issues/171676
Related: https://github.com/llvm/llvm-project/pull/185117 (AArch64 side)
The issue points out that `Fold ADD(ADC(Y,0,W),X) -> ADC(X,Y,W)` is
optimized and that SBB can be optimized similarly:
`Fold ADD(SBB(Y,0,W),C) -> SBB(Y,-C,W)`.
With the changes from this branch, a new clang will compile the example
code:
```c
#include <stdint.h>
uint64_t f(uint64_t a, uint64_t b) {
uint64_t x;
x += __builtin_add_overflow(a, b, &x);
return x + 10;
}
uint64_t g(uint64_t a, uint64_t b) {
uint64_t x;
x -= __builtin_sub_overflow(a, b, &x);
return x + 10;
}
```
And it's optimized for the sub case as well, instead of emitting a leaq
on x86, it folds it in:
```asm
f:
movq %rdi, %rax
addq %rsi, %rax
adcq $10, %rax
retq
g:
movq %rdi, %rax
subq %rsi, %rax
sbbq $-10, %rax
retq
```
Commit: 252a35c1e3bcc1fff39c8355e11f2797ba031333
https://github.com/llvm/llvm-project/commit/252a35c1e3bcc1fff39c8355e11f2797ba031333
Author: Takashi Idobe <idobetakashi at gmail.com>
Date: 2026-03-25 (Wed, 25 Mar 2026)
Changed paths:
M .ci/all_requirements.txt
M .ci/compute_projects.py
M .ci/compute_projects_test.py
M .ci/green-dragon/clang-stage1-RA.groovy
A .ci/green-dragon/lldb-ubuntu.groovy
A .ci/green-dragon/lldb-windows.groovy
M .ci/monolithic-linux.sh
M .ci/monolithic-windows.sh
M .github/CODEOWNERS
M .github/actions/build-container/action.yml
M .github/actions/push-container/action.yml
M .github/new-prs-labeler.yml
M .github/workflows/bazel-checks.yml
M .github/workflows/build-ci-container-tooling.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
M .github/workflows/build-libc-container.yml
M .github/workflows/build-metrics-container.yml
M .github/workflows/check-ci.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.yml
M .github/workflows/containers/github-action-ci-tooling/Dockerfile
M .github/workflows/containers/github-action-ci-windows/Dockerfile
M .github/workflows/containers/github-action-ci/Dockerfile
M .github/workflows/containers/libc/Dockerfile
M .github/workflows/docs.yml
M .github/workflows/email-check.yaml
M .github/workflows/gha-codeql.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/ids-check.yml
M .github/workflows/issue-subscriber.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-build-containers.yml
M .github/workflows/libcxx-check-generated-files.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/lldb-pylint-action.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/merged-prs.yml
M .github/workflows/mlir-spirv-tests.yml
M .github/workflows/new-prs.yml
M .github/workflows/pr-code-format.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/pr-subscriber.yml
M .github/workflows/premerge.yaml
M .github/workflows/prune-branches.yml
M .github/workflows/release-asset-audit.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/scorecard.yml
M .github/workflows/spirv-tests.yml
A .github/workflows/sycl-tests.yml
M .github/workflows/test-unprivileged-download-artifact.yml
M .github/workflows/upload-release-artifact/action.yml
M .github/workflows/version-check.yml
A .github/workflows/zizmor.yml
M .mailmap
M bolt/docs/index.rst
A bolt/docs/profiles.md
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Passes/DataflowAnalysis.h
M bolt/include/bolt/Passes/LongJmp.h
M bolt/include/bolt/Passes/PAuthGadgetScanner.h
M bolt/include/bolt/Passes/ReorderFunctions.h
R bolt/include/bolt/Passes/ReorderUtils.h
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Profile/DataReader.h
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/AsmDump.cpp
M bolt/lib/Passes/PAuthGadgetScanner.cpp
M bolt/lib/Passes/ReorderData.cpp
M bolt/lib/Passes/ReorderFunctions.cpp
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/DataReader.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/RuntimeLibs/InstrumentationRuntimeLibrary.cpp
M bolt/runtime/common.h
M bolt/runtime/instr.cpp
A bolt/test/AArch64/Inputs/compressed-debug-sections.yaml
A bolt/test/AArch64/check-symbol-area.s
M bolt/test/AArch64/compare-and-branch-inversion.S
M bolt/test/AArch64/compare-and-branch-reorder-blocks.S
A bolt/test/AArch64/compressed-debug-sections.test
A bolt/test/AArch64/function-order-hybrid.s
A bolt/test/AArch64/retain-local-symbols.s
M bolt/test/AArch64/skip-non-vfuncptr-reloc-in-relative-vtable.s
A bolt/test/X86/Inputs/pre-aggregated-buildid.txt
M bolt/test/X86/avx512-trap.test
M bolt/test/X86/dynamic-relocs-on-entry.s
A bolt/test/X86/pre-aggregated-perf-buildid.test
M bolt/test/binary-analysis/AArch64/cmdline-args.test
M bolt/test/binary-analysis/AArch64/gs-pacret-autiasp.s
M bolt/test/binary-analysis/AArch64/gs-pacret-multi-bb.s
M bolt/test/binary-analysis/AArch64/gs-pauth-address-checks.s
M bolt/test/binary-analysis/AArch64/gs-pauth-address-materialization.s
M bolt/test/binary-analysis/AArch64/gs-pauth-authentication-oracles.s
M bolt/test/binary-analysis/AArch64/gs-pauth-calls.s
M bolt/test/binary-analysis/AArch64/gs-pauth-debug-output.s
A bolt/test/binary-analysis/AArch64/gs-pauth-scanners.s
M bolt/test/binary-analysis/AArch64/gs-pauth-signing-oracles.s
M bolt/test/binary-analysis/AArch64/gs-pauth-tail-calls.s
M bolt/test/binary-analysis/AArch64/trap-instructions.s
M bolt/test/max-funcs.test
M bolt/test/merge-fdata-bat-no-lbr.test
M bolt/test/merge-fdata-mixed-bat-no-lbr.test
M bolt/test/merge-fdata-mixed-mode.test
M bolt/test/merge-fdata-no-lbr-mode.test
A bolt/test/merge-fdata-skip-truncated.test
M bolt/tools/merge-fdata/merge-fdata.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
M clang-tools-extra/Maintainers.rst
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeReader.h
M clang-tools-extra/clang-doc/CMakeLists.txt
M clang-tools-extra/clang-doc/ClangDoc.cpp
M clang-tools-extra/clang-doc/ClangDoc.h
M clang-tools-extra/clang-doc/Generators.cpp
M clang-tools-extra/clang-doc/Generators.h
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/MDGenerator.cpp
A clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/Serialize.h
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/clang-doc-mustache.css
M clang-tools-extra/clang-doc/assets/comment-template.mustache
M clang-tools-extra/clang-doc/assets/enum-template.mustache
M clang-tools-extra/clang-doc/assets/function-template.mustache
M clang-tools-extra/clang-doc/assets/head-template.mustache
A clang-tools-extra/clang-doc/assets/md/all-files-template.mustache
A clang-tools-extra/clang-doc/assets/md/class-template.mustache
A clang-tools-extra/clang-doc/assets/md/comments-partial.mustache
A clang-tools-extra/clang-doc/assets/md/index-template.mustache
A clang-tools-extra/clang-doc/assets/md/namespace-template.mustache
M clang-tools-extra/clang-doc/assets/navbar-template.mustache
A clang-tools-extra/clang-doc/benchmarks/CMakeLists.txt
A clang-tools-extra/clang-doc/benchmarks/ClangDocBenchmark.cpp
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/support/Utils.h
M clang-tools-extra/clang-doc/tool/CMakeLists.txt
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/ClangTidy.h
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/ClangTidyModule.h
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.h
M clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
M clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp
M clang-tools-extra/clang-tidy/GlobList.cpp
M clang-tools-extra/clang-tidy/GlobList.h
M clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
M clang-tools-extra/clang-tidy/abseil/DurationAdditionCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationConversionCastCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationFactoryFloatCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
M clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp
M clang-tools-extra/clang-tidy/abseil/DurationRewriter.h
M clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp
M clang-tools-extra/clang-tidy/abseil/RedundantStrcatCallsCheck.cpp
M clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp
M clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.h
M clang-tools-extra/clang-tidy/abseil/UncheckedStatusOrAccessCheck.cpp
M clang-tools-extra/clang-tidy/abseil/UpgradeDurationConversionsCheck.cpp
M clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.cpp
M clang-tools-extra/clang-tidy/altera/StructPackAlignCheck.cpp
M clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
M clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
M clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DerivedMethodShadowingBaseMethodCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DynamicStaticInitializersCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/EmptyCatchCheck.h
M clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/FoldInitTypeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/IncorrectEnableSharedFromThisCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/PointerArithmeticOnPolymorphicObjectCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.h
M clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.h
M clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.h
M clang-tools-extra/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/StandaloneEmptyCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/StdExceptionBaseclassCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/StdExceptionBaseclassCheck.h
M clang-tools-extra/clang-tidy/bugprone/StdNamespaceModificationCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.h
M clang-tools-extra/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.h
M clang-tools-extra/clang-tidy/bugprone/TaggedUnionMemberCountCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ThrowingStaticInitializationCheck.h
M clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnintendedCharOstreamOutputCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeToAllowExceptionsCheck.h
M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
M clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MacroUsageCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MisleadingCaptureDefaultByValueCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.h
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
M clang-tools-extra/clang-tidy/custom/CustomTidyModule.cpp
M clang-tools-extra/clang-tidy/custom/QueryCheck.cpp
M clang-tools-extra/clang-tidy/custom/QueryCheck.h
M clang-tools-extra/clang-tidy/google/ExplicitConstructorCheck.cpp
M clang-tools-extra/clang-tidy/google/FunctionNamingCheck.cpp
M clang-tools-extra/clang-tidy/google/GlobalVariableDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp
M clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp
M clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt
R clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.h
M clang-tools-extra/clang-tidy/hicpp/HICPPTidyModule.cpp
R clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.h
R clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
R clang-tools-extra/clang-tidy/hicpp/NoAssemblerCheck.h
M clang-tools-extra/clang-tidy/llvm/IncludeOrderCheck.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.h
M clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp
M clang-tools-extra/clang-tidy/llvmlibc/InlineFunctionDeclCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.h
M clang-tools-extra/clang-tidy/misc/ConfusableTable/BuildConfusableTable.cpp
M clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp
M clang-tools-extra/clang-tidy/misc/CoroutineHostileRAIICheck.h
M clang-tools-extra/clang-tidy/misc/HeaderIncludeCycleCheck.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.h
M clang-tools-extra/clang-tidy/misc/MultipleInheritanceCheck.cpp
M clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.h
M clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
M clang-tools-extra/clang-tidy/misc/OverrideWithDifferentVisibilityCheck.h
M clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
M clang-tools-extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp
M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
M clang-tools-extra/clang-tidy/misc/UseAnonymousNamespaceCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
M clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.h
M clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
M clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h
M clang-tools-extra/clang-tidy/modernize/MakeUniqueCheck.cpp
M clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
M clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
M clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ShrinkToFitCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseConstraintsCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseScopedLockCheck.h
M clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseStdBitCheck.h
M clang-tools-extra/clang-tidy/modernize/UseStdFormatCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStringViewCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStructuredBindingCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
M clang-tools-extra/clang-tidy/mpi/BufferDerefCheck.cpp
M clang-tools-extra/clang-tidy/objc/AssertEqualsCheck.cpp
M clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
M clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp
M clang-tools-extra/clang-tidy/performance/AvoidEndlCheck.cpp
M clang-tools-extra/clang-tidy/performance/CMakeLists.txt
M clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp
M clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.h
M clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp
M clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp
M clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
M clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.h
M clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
A clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
A clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.h
M clang-tools-extra/clang-tidy/portability/AvoidPragmaOnceCheck.cpp
M clang-tools-extra/clang-tidy/portability/CMakeLists.txt
A clang-tools-extra/clang-tidy/portability/NoAssemblerCheck.cpp
A clang-tools-extra/clang-tidy/portability/NoAssemblerCheck.h
M clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
M clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
M clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.h
M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
M clang-tools-extra/clang-tidy/readability/CMakeLists.txt
M clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
M clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h
M clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
M clang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
M clang-tools-extra/clang-tidy/readability/EnumInitialValueCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h
M clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp
M clang-tools-extra/clang-tidy/readability/InconsistentIfElseBracesCheck.cpp
M clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
M clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.h
M clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
M clang-tools-extra/clang-tidy/readability/MathMissingParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
M clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
M clang-tools-extra/clang-tidy/readability/OperatorsRepresentationCheck.cpp
M clang-tools-extra/clang-tidy/readability/OperatorsRepresentationCheck.h
M clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp
M clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantPreprocessorCheck.cpp
A clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.cpp
A clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.h
M clang-tools-extra/clang-tidy/readability/RedundantTypenameCheck.cpp
M clang-tools-extra/clang-tidy/readability/ReferenceToConstructedTemporaryCheck.cpp
M clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
M clang-tools-extra/clang-tidy/readability/SimplifySubscriptExprCheck.cpp
M clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
M clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
M clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.cpp
M clang-tools-extra/clang-tidy/utils/DesignatedInitializers.cpp
M clang-tools-extra/clang-tidy/utils/DesignatedInitializers.h
M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
M clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
M clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
M clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
M clang-tools-extra/clang-tidy/utils/FormatStringConverter.h
M clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp
M clang-tools-extra/clang-tidy/utils/IncludeInserter.h
M clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.h
M clang-tools-extra/clang-tidy/utils/Matchers.cpp
M clang-tools-extra/clang-tidy/utils/Matchers.h
M clang-tools-extra/clang-tidy/utils/NamespaceAliaser.h
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UsingInserter.h
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/CMakeLists.txt
M clang-tools-extra/clangd/CodeComplete.cpp
M clang-tools-extra/clangd/Diagnostics.cpp
M clang-tools-extra/clangd/Diagnostics.h
M clang-tools-extra/clangd/ExpectedTypes.cpp
M clang-tools-extra/clangd/FindTarget.cpp
M clang-tools-extra/clangd/Hover.cpp
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/ScanningProjectModules.cpp
M clang-tools-extra/clangd/Selection.cpp
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/index/Ref.cpp
M clang-tools-extra/clangd/index/Ref.h
M clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
M clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
A clang-tools-extra/clangd/remap/CMakeLists.txt
A clang-tools-extra/clangd/remap/RemapMain.cpp
M clang-tools-extra/clangd/test/CMakeLists.txt
A clang-tools-extra/clangd/test/remap.test
M clang-tools-extra/clangd/tool/CMakeLists.txt
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang-tools-extra/clangd/unittests/CompilerTests.cpp
M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
M clang-tools-extra/clangd/unittests/HoverTests.cpp
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
M clang-tools-extra/clangd/unittests/XRefsTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/Contributing.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/fold-init-type.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/std-exception-baseclass.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/exception-baseclass.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.rst
M clang-tools-extra/docs/clang-tidy/checks/hicpp/no-assembler.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/const-correctness.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/multiple-inheritance.rst
A clang-tools-extra/docs/clang-tidy/checks/modernize/use-std-bit.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/faster-string-find.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.rst
A clang-tools-extra/docs/clang-tidy/checks/performance/use-std-move.rst
A clang-tools-extra/docs/clang-tidy/checks/portability/no-assembler.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/redundant-qualified-alias.rst
M clang-tools-extra/include-cleaner/lib/CMakeLists.txt
M clang-tools-extra/modularize/ModularizeUtilities.cpp
M clang-tools-extra/test/CMakeLists.txt
A clang-tools-extra/test/Unit/CMakeLists.txt
M clang-tools-extra/test/clang-doc/CMakeLists.txt
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/basic-project.test
M clang-tools-extra/test/clang-doc/builtin_types.cpp
M clang-tools-extra/test/clang-doc/comments-in-macros.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/index.cpp
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/compound-constraints.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
A clang-tools-extra/test/clang-doc/json/enum.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
M clang-tools-extra/test/clang-doc/typedef-alias.cpp
M clang-tools-extra/test/clang-tidy/check_clang_tidy.py
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstddef
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstdint
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/cstdio
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/integral_constant.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/inttypes.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/mutex
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/signal.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstddef
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstdint
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/cstdio
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/deque
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/forward_list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/functional
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/initializer_list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/integral_constant.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/inttypes.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/list
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/memory
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/mutex
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/queue
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/set
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/signal.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stack
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stddef.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdfloat
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdio.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/stdlib.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/string
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/string.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/tuple
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/type_traits
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unistd.h
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_map
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/unordered_set
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/utility
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/vector
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stddef.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdfloat
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdio.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/stdlib.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string.h
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/system-header-simulation.h
R clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/unistd.h
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/cstddef.h
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/initializer_list
R clang-tools-extra/test/clang-tidy/checkers/abseil/Inputs/type_traits
M clang-tools-extra/test/clang-tidy/checkers/abseil/cleanup-ctad.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/redundant-strcat-calls.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/string-find-startswith.cpp
M clang-tools-extra/test/clang-tidy/checkers/abseil/string-find-str-contains.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/Inputs/use-ranges/fake_std.h
M clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/boost/use-to-string.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/argument-comment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/assignment-in-if-condition-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/bitwise-pointer-cast-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-fallthrough.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-if-constexpr-template.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/dangling-handle.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/default-operator-new-on-overaligned-type-cpp17.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/default-operator-new-on-overaligned-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/derived-method-shadowing-base-method.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/easily-swappable-parameters-prefixsuffixname.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/fold-init-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/forwarding-reference-overload.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/implicit-widening-of-multiplication-result-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/incorrect-enable-if.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/infinite-loop.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/move-forwarding-reference.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/multiple-new-in-one-expression.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-bitfields.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/nondeterministic-pointer-iteration-order.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-memcpy-safe-cxx.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-memcpy-safe-other.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-no-safe-functions.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-value-dependent-crash.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/not-null-terminated-result-wmemcpy-safe-cxx.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/pointer-arithmetic-on-polymorphic-object-all.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/shared-ptr-array-mismatch.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler-minimal.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler-posix.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler.c
M clang-tools-extra/test/clang-tidy/checkers/bugprone/signal-handler.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/signed-char-misuse-no-comparison.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/sizeof-container.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/sizeof-expression-disable-options.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/std-exception-baseclass.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/std-namespace-modification-implicit.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/std-namespace-modification.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/string-constructor-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/string-integer-assignment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/stringview-nullptr.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-include.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-memory-comparison.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-missing-comma-options.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-string-compare-custom-functions.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-string-compare.c
A clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-stringview-data-usage-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/suspicious-stringview-data-usage.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unchecked-optional-access.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-exception-at-new.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-self-assignment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unique-ptr-array-mismatch.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-checked-return-types.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
M clang-tools-extra/test/clang-tidy/checkers/cert/uppercase-literal-suffix-integer.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-reference-coroutine-parameters.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-mathheader.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-custom-function.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/no-suspend-with-lock.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-bounds-constant-array-index-includestyle.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-bounds-pointer-arithmetic.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved-custom-function.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/trailing-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/google/build-explicit-make-pair.cpp
M clang-tools-extra/test/clang-tidy/checkers/google/objc-function-naming.m
M clang-tools-extra/test/clang-tidy/checkers/google/readability-namespace-comments-missing-nested-namespaces.cpp
R clang-tools-extra/test/clang-tidy/checkers/hicpp/exception-baseclass.cpp
R clang-tools-extra/test/clang-tidy/checkers/hicpp/no-assembler.cpp
M clang-tools-extra/test/clang-tidy/checkers/hicpp/signed-bitwise-integer-literals.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvm/include-order.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvm/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/llvmlibc/restrict-system-libc-headers.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-pointers.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/coroutine-hostile-raii.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/misplaced-const-cxx17.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/multiple-inheritance.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/static-assert.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/throw-by-value-catch-by-reference-options.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/throw-by-value-catch-by-reference.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unconventional-assign-operator-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unconventional-assign-operator.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/uniqueptr-reset-release.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/unused-using-decls-module.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module.cpp
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/replace-auto-ptr/memory.h
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/initializer_list.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/shared_ptr.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/smart-ptr/unique_ptr.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
R clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-structured-binding/fake_std_pair_tuple.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays-c++20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-reverse.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/loop-convert-rewritten-binop.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-shared-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-cxx11.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-default-init.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-inaccessible-ctors.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique-macros.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/make-unique.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value-macro-header.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/replace-auto-ptr.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/replace-random-shuffle.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/return-braced-init-list.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/shrink-to-fit.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/type-traits-GH153649.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-constraints-first-greatergreater.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-constraints.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-designated-initializers.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-emplace-ignore-implicit-constructors.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-emplace.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-delete.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nodiscard.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-nullptr-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges-pipe.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scope-lock-warn-on-using-and-typedef-false.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock-no-crash.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock-warn-on-single-locks-false.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-scoped-lock.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-starts-ends-with.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-bit.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-custom.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-macro.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-member.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-numbers.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-absl.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-fmt.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-member.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-custom-view.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view-ignored.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-string-view.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-structured-binding.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas-cxx14.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type-transform-lambdas.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-trailing-return-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-transparent-functors.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/faster-string-find.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/for-range-copy.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-string-concatenation-strict.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-string-concatenation.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-vector-operation.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg-const-ref.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg-trivially-copyable.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/move-constructor-init.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/no-automatic-move-allowed-types.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/noexcept-move-constructor.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/string-view-conversions-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/string-view-conversions.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/type-promotion-in-math-fn-includestyle.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param-includestyle.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
A clang-tools-extra/test/clang-tidy/checkers/performance/use-std-move.cpp
A clang-tools-extra/test/clang-tidy/checkers/portability/no-assembler.cpp
M clang-tools-extra/test/clang-tidy/checkers/portability/std-allocator-const.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/ambiguous-smartptr-reset-call-custom-pointers.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/ambiguous-smartptr-reset-call.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/braces-around-statements-consteval-if.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/braces-around-statements-constexpr-if-templates.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/const-return-type.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-contains.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/convert-member-functions-to-static-deducing-this.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-if-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return-if-constexpr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/else-after-return.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/function-cognitive-complexity.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/function-size-variables-c++17.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-exception-variable-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-loop-counter-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-ignored-parameter-names.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-exception-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-loop-counter-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-parameter-name-length.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-minimum-variable-name-length.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-anon-record-fields.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-case-match.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-outofline.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-allow-in-conditions.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion-cxx98.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/inconsistent-ifelse-braces-attributes.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/isolate-declaration-cxx17.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/magic-numbers-ignore-all-float.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto-add-const-to-qualified.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/qualified-auto.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-casting.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-inline-specifier.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses-allowed-decls.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-preprocessor.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/redundant-qualified-alias.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-smartptr-get-macros.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-smartptr-get.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr-format.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr-function.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-init.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-typename.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/simplify-boolean-expr-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/simplify-subscript-expr.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/string-compare-custom-string-classes.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/string-compare.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/suspicious-call-argument-option.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uniqueptr-delete-release.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-cxx23.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-floating-point.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-hexadecimal-floating-point.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer-custom-list.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer-ms.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/uppercase-literal-suffix-integer.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max-include-style.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-store-check-profile-one-tu.cpp
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.h
M clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-tidy/LexerUtilsTest.cpp
M clang/CMakeLists.txt
M clang/Maintainers.md
M clang/bindings/python/clang/cindex.py
M clang/bindings/python/tests/cindex/test_file.py
A clang/bindings/python/tests/cindex/test_version.py
A clang/cmake/caches/BaremetalRISCV.cmake
M clang/cmake/modules/AddClang.cmake
M clang/cmake/modules/AddGRPC.cmake
M clang/docs/AddressSanitizer.rst
M clang/docs/ClangFormatStyleOptions.rst
A clang/docs/ClangIRABILowering.md
M clang/docs/ClangIRCleanupAndEHDesign.md
M clang/docs/HIPSupport.rst
M clang/docs/InternalsManual.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/LibTooling.rst
A clang/docs/LifetimeSafety.rst
M clang/docs/Modules.rst
M clang/docs/OpenMPSupport.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerCoverage.rst
R clang/docs/ScalableStaticAnalysisFramework/Framework.rst
R clang/docs/ScalableStaticAnalysisFramework/SummaryExtraction.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/SummaryExtractionInternals.rst
A clang/docs/ScalableStaticAnalysisFramework/developer-docs/index.rst
A clang/docs/ScalableStaticAnalysisFramework/index.rst
A clang/docs/ScalableStaticAnalysisFramework/user-docs/SummaryExtraction.rst
M clang/docs/ThreadSafetyAnalysis.rst
M clang/docs/TypeSanitizer.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/checkers.rst
M clang/docs/index.rst
M clang/include/clang-c/Index.h
M clang/include/clang/APINotes/APINotesReader.h
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTDumperUtils.h
M clang/include/clang/AST/ASTMutationListener.h
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/ASTStructuralEquivalence.h
M clang/include/clang/AST/Availability.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/AST/ExternalASTSource.h
M clang/include/clang/AST/HLSLResource.h
M clang/include/clang/AST/Mangle.h
M clang/include/clang/AST/NestedNameSpecifierBase.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/PropertiesBase.td
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/AST/StmtSYCL.h
M clang/include/clang/AST/TemplateBase.h
M clang/include/clang/AST/TextNodeDumper.h
M clang/include/clang/AST/TypeBase.h
M clang/include/clang/AST/TypeProperties.td
A clang/include/clang/AST/pch.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/include/clang/Analysis/Analyses/ThreadSafety.h
M clang/include/clang/Analysis/MacroExpansionContext.h
R clang/include/clang/Analysis/Scalable/ASTEntityMapping.h
R clang/include/clang/Analysis/Scalable/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
R clang/include/clang/Analysis/Scalable/Analyses/UnsafeBufferUsage/UnsafeBufferUsageBuilder.h
R clang/include/clang/Analysis/Scalable/EntityLinker/EntityLinker.h
R clang/include/clang/Analysis/Scalable/EntityLinker/EntitySummaryEncoding.h
R clang/include/clang/Analysis/Scalable/EntityLinker/LUSummary.h
R clang/include/clang/Analysis/Scalable/EntityLinker/LUSummaryEncoding.h
R clang/include/clang/Analysis/Scalable/EntityLinker/TUSummaryEncoding.h
R clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h
R clang/include/clang/Analysis/Scalable/Model/EntityId.h
R clang/include/clang/Analysis/Scalable/Model/EntityIdTable.h
R clang/include/clang/Analysis/Scalable/Model/EntityLinkage.h
R clang/include/clang/Analysis/Scalable/Model/EntityName.h
R clang/include/clang/Analysis/Scalable/Model/PrivateFieldNames.def
R clang/include/clang/Analysis/Scalable/Model/SummaryName.h
R clang/include/clang/Analysis/Scalable/Serialization/JSONFormat.h
R clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h
R clang/include/clang/Analysis/Scalable/Serialization/SerializationFormatRegistry.h
R clang/include/clang/Analysis/Scalable/Support/ErrorBuilder.h
R clang/include/clang/Analysis/Scalable/Support/FormatProviders.h
R clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h
R clang/include/clang/Analysis/Scalable/TUSummary/ExtractorRegistry.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummary.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummaryBuilder.h
R clang/include/clang/Analysis/Scalable/TUSummary/TUSummaryExtractor.h
A clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/include/clang/Basic/AddressSpaces.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/BuiltinHeaders.def
M clang/include/clang/Basic/Builtins.td
R clang/include/clang/Basic/BuiltinsAArch64.def
A clang/include/clang/Basic/BuiltinsAArch64.td
A clang/include/clang/Basic/BuiltinsAArch64Base.td
M clang/include/clang/Basic/BuiltinsAMDGPU.td
M clang/include/clang/Basic/BuiltinsAMDGPUDocs.td
M clang/include/clang/Basic/BuiltinsARM.def
M clang/include/clang/Basic/BuiltinsBase.td
M clang/include/clang/Basic/BuiltinsPPC.def
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/CodeGenOptions.h
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Basic/Diagnostic.td
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/DiagnosticOptions.def
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/DiagnosticSerializationKinds.td
M clang/include/clang/Basic/Features.def
A clang/include/clang/Basic/HLSLIntrinsics.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/LangStandard.h
M clang/include/clang/Basic/Module.h
M clang/include/clang/Basic/ObjCRuntime.h
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/include/clang/Basic/Sarif.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/TargetCXXABI.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/Basic/riscv_vector.td
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/Dialect/Passes.h
M clang/include/clang/CIR/Dialect/Passes.td
M clang/include/clang/CIR/Interfaces/ASTAttrInterfaces.h
M clang/include/clang/CIR/Interfaces/CIROpInterfaces.td
M clang/include/clang/CIR/LowerToLLVM.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/Config/config.h.cmake
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/include/clang/DependencyScanning/DependencyScanningUtils.h
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/DependencyScanning/InProcessModuleCache.h
M clang/include/clang/DependencyScanning/ModuleDepCollector.h
M clang/include/clang/Driver/Job.h
A clang/include/clang/Driver/ModulesDriver.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
M clang/include/clang/Format/Format.h
M clang/include/clang/Frontend/ChainedDiagnosticConsumer.h
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Frontend/TextDiagnosticBuffer.h
M clang/include/clang/Frontend/VerifyDiagnosticConsumer.h
R clang/include/clang/Index/USRGeneration.h
M clang/include/clang/Lex/HeaderSearch.h
M clang/include/clang/Lex/HeaderSearchOptions.h
M clang/include/clang/Lex/ModuleMap.h
M clang/include/clang/Lex/ModuleMapFile.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/ASTEntityMapping.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntitySummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityId.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityIdTable.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/SummaryName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryData.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilderRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataStore.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataTraits.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/Support/FormatProviders.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/EntitySummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisBase.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisResult.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisTraits.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/SummaryAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
A clang/include/clang/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.h
A clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/SSAFForceLinker.h
A clang/include/clang/ScalableStaticAnalysisFramework/Tool/Utils.h
M clang/include/clang/Sema/Initialization.h
M clang/include/clang/Sema/ScopeInfo.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Sema/SemaCodeCompletion.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/include/clang/Sema/SemaPPC.h
M clang/include/clang/Sema/SemaSYCL.h
M clang/include/clang/Sema/Template.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/Serialization/ModuleFile.h
M clang/include/clang/Serialization/ModuleManager.h
M clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
M clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
M clang/include/clang/Tooling/DependencyScanningTool.h
A clang/include/clang/UnifiedSymbolResolution/USRGeneration.h
M clang/include/module.modulemap
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/AST/APValue.cpp
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTDumper.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
R clang/lib/AST/ByteCode/FunctionPointer.cpp
R clang/lib/AST/ByteCode/FunctionPointer.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBlock.cpp
M clang/lib/AST/ByteCode/InterpBlock.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/MemberPointer.cpp
M clang/lib/AST/ByteCode/MemberPointer.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/PrimType.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ExprObjC.cpp
A clang/lib/AST/HLSLResource.cpp
M clang/lib/AST/InferAlloc.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/Mangle.cpp
M clang/lib/AST/MicrosoftCXXABI.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/NestedNameSpecifier.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/QualTypeNames.cpp
M clang/lib/AST/Randstruct.cpp
M clang/lib/AST/RawCommentList.cpp
M clang/lib/AST/RecordLayoutBuilder.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TemplateBase.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/AST/TypeLoc.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/CMakeLists.txt
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Analysis/FixitUtil.cpp
M clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp
M clang/lib/Analysis/FlowSensitive/Transfer.cpp
M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Facts.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
M clang/lib/Analysis/LifetimeSafety/MovedLoans.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/lib/Analysis/MacroExpansionContext.cpp
R clang/lib/Analysis/Scalable/ASTEntityMapping.cpp
R clang/lib/Analysis/Scalable/CMakeLists.txt
R clang/lib/Analysis/Scalable/EntityLinker/EntityLinker.cpp
R clang/lib/Analysis/Scalable/Model/BuildNamespace.cpp
R clang/lib/Analysis/Scalable/Model/EntityId.cpp
R clang/lib/Analysis/Scalable/Model/EntityIdTable.cpp
R clang/lib/Analysis/Scalable/Model/EntityLinkage.cpp
R clang/lib/Analysis/Scalable/Model/EntityName.cpp
R clang/lib/Analysis/Scalable/Model/SummaryName.cpp
R clang/lib/Analysis/Scalable/Serialization/JSONFormat.cpp
R clang/lib/Analysis/Scalable/Serialization/SerializationFormatRegistry.cpp
R clang/lib/Analysis/Scalable/Support/ErrorBuilder.cpp
R clang/lib/Analysis/Scalable/TUSummary/ExtractorRegistry.cpp
R clang/lib/Analysis/Scalable/TUSummary/TUSummaryBuilder.cpp
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Analysis/UnsafeBufferUsage.cpp
M clang/lib/Basic/ASTSourceDescriptor.cpp
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/DiagnosticIDs.cpp
M clang/lib/Basic/FileManager.cpp
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/Module.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Sarif.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/OSTargets.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.cpp
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/TCE.h
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Basic/Targets/X86.h
M clang/lib/CIR/CodeGen/Address.h
A clang/lib/CIR/CodeGen/CIRGenAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenAsm.cpp
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
A clang/lib/CIR/CodeGen/CIRGenBuiltinRISCV.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDARuntime.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDARuntime.h
M clang/lib/CIR/CodeGen/CIRGenCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenCall.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenOpenACCRecipe.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenTypeCache.h
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
M clang/lib/CIR/CodeGen/CIRGenVTables.h
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/CodeGen/EHScopeStack.h
M clang/lib/CIR/CodeGen/TargetInfo.cpp
M clang/lib/CIR/CodeGen/TargetInfo.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Dialect/Transforms/CIRSimplify.cpp
M clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
A clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/Lowering/CIRPasses.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMIR.cpp
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGBuilder.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGBuiltin.h
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGExprComplex.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGLoopInfo.cpp
M clang/lib/CodeGen/CGLoopInfo.h
M clang/lib/CodeGen/CGObjC.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/lib/CodeGen/CGObjCMac.cpp
A clang/lib/CodeGen/CGObjCMacConstantLiteralUtil.h
M clang/lib/CodeGen/CGObjCRuntime.h
M clang/lib/CodeGen/CGOpenCLRuntime.cpp
M clang/lib/CodeGen/CGOpenCLRuntime.h
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGPointerAuth.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenSYCL.cpp
M clang/lib/CodeGen/CodeGenTypeCache.h
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/EHScopeStack.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/ModuleBuilder.cpp
A clang/lib/CodeGen/QualTypeMapper.cpp
A clang/lib/CodeGen/QualTypeMapper.h
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/lib/CodeGen/TargetBuiltins/PPC.cpp
M clang/lib/CodeGen/Targets/AMDGPU.cpp
M clang/lib/CodeGen/Targets/NVPTX.cpp
M clang/lib/CodeGen/Targets/PPC.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/CrossTU/CMakeLists.txt
M clang/lib/CrossTU/CrossTranslationUnit.cpp
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/DependencyScanning/InProcessModuleCache.cpp
M clang/lib/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/CreateASTUnitFromArgs.cpp
M clang/lib/Driver/Distro.cpp
M clang/lib/Driver/Driver.cpp
A clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Driver/OffloadBundler.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AIX.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/SPIRV.cpp
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/ExtractAPI/CMakeLists.txt
M clang/lib/ExtractAPI/DeclarationFragments.cpp
M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
M clang/lib/Format/BreakableToken.cpp
M clang/lib/Format/ContinuationIndenter.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/FormatTokenLexer.cpp
M clang/lib/Format/FormatTokenLexer.h
M clang/lib/Format/IntegerLiteralSeparatorFixer.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/TokenAnnotator.h
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Format/WhitespaceManager.cpp
M clang/lib/Format/WhitespaceManager.h
M clang/lib/Frontend/ASTUnit.cpp
M clang/lib/Frontend/ChainedIncludesSource.cpp
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Frontend/MultiplexConsumer.cpp
M clang/lib/Frontend/SARIFDiagnostic.cpp
M clang/lib/Frontend/SARIFDiagnosticPrinter.cpp
M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
M clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
A clang/lib/Headers/.clang-format-ignore
M clang/lib/Headers/CMakeLists.txt
M clang/lib/Headers/__clang_cuda_math_forward_declares.h
M clang/lib/Headers/__clang_cuda_runtime_wrapper.h
M clang/lib/Headers/altivec.h
A clang/lib/Headers/amdhsa_abi.h
M clang/lib/Headers/arm_acle.h
M clang/lib/Headers/avx512fintrin.h
M clang/lib/Headers/avx512vbmi2intrin.h
M clang/lib/Headers/avx512vlintrin.h
M clang/lib/Headers/avx512vlvbmi2intrin.h
A clang/lib/Headers/endian.h
M clang/lib/Headers/gpuintrin.h
M clang/lib/Headers/hexagon_types.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Headers/hlsl/hlsl_intrinsic_helpers.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/hvx_hexagon_protos.h
M clang/lib/Headers/llvm_libc_wrappers/ctype.h
M clang/lib/Headers/llvm_libc_wrappers/string.h
M clang/lib/Headers/ptrauth.h
M clang/lib/Index/CMakeLists.txt
M clang/lib/Index/CommentToXML.cpp
M clang/lib/Index/IndexingAction.cpp
R clang/lib/Index/USRGeneration.cpp
M clang/lib/Interpreter/IncrementalParser.cpp
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/lib/Lex/InitHeaderSearch.cpp
M clang/lib/Lex/Lexer.cpp
M clang/lib/Lex/LiteralSupport.cpp
M clang/lib/Lex/ModuleMap.cpp
M clang/lib/Lex/ModuleMapFile.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/PPExpressions.cpp
M clang/lib/Lex/Pragma.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Options/DriverOptions.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Parse/Parser.cpp
A clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
A clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/ASTEntityMapping.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityId.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityIdTable.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/EntityName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Model/SummaryName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/ModelStringConversions.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONEntitySummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONEntitySummaryEncoding.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilderRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/Support/ErrorBuilder.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.cpp
A clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
A clang/lib/ScalableStaticAnalysisFramework/Frontend/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
A clang/lib/ScalableStaticAnalysisFramework/Tool/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Tool/Utils.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCodeComplete.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaCoroutine.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLambda.cpp
A clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Sema/SemaObjC.cpp
M clang/lib/Sema/SemaOpenACCClauseAppertainment.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaPPC.cpp
M clang/lib/Sema/SemaRISCV.cpp
M clang/lib/Sema/SemaSYCL.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/SemaWasm.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTCommon.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderInternals.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/Serialization/GlobalModuleIndex.cpp
M clang/lib/Serialization/ModuleManager.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/NoDeleteChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/lib/StaticAnalyzer/Core/CMakeLists.txt
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/EntryPointStats.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
M clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
M clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
M clang/lib/Tooling/Refactoring/CMakeLists.txt
M clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp
M clang/lib/Tooling/Tooling.cpp
A clang/lib/UnifiedSymbolResolution/CMakeLists.txt
A clang/lib/UnifiedSymbolResolution/USRGeneration.cpp
M clang/test/APINotes/Inputs/Frameworks/SomeKit.framework/APINotes/SomeKit.apinotes
M clang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKit.h
A clang/test/APINotes/objc_designated_init_protocol.m
M clang/test/AST/ByteCode/arrays.cpp
R clang/test/AST/ByteCode/builtin-align-cxx.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/AST/ByteCode/builtins.c
M clang/test/AST/ByteCode/c.c
M clang/test/AST/ByteCode/codegen-constexpr-unknown.cpp
M clang/test/AST/ByteCode/constexpr-steps.cpp
R clang/test/AST/ByteCode/constexpr.c
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/lambda.cpp
M clang/test/AST/ByteCode/libcxx/end-primitive-array-root-lifetime.cpp
M clang/test/AST/ByteCode/loops.cpp
M clang/test/AST/ByteCode/memberpointers.cpp
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/AST/ByteCode/records.cpp
M clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
R clang/test/AST/HLSL/Texture2D-AST.hlsl
A clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl
A clang/test/AST/HLSL/Texture2D-shorthand-AST.hlsl
A clang/test/AST/HLSL/Texture2D-vector-AST.hlsl
M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
M clang/test/AST/HLSL/WaveSize.hlsl
A clang/test/AST/HLSL/ast-dump-APValue-matrix.hlsl
M clang/test/AST/HLSL/ast-dump-SpirvType.hlsl
M clang/test/AST/HLSL/matrix-constructors.hlsl
M clang/test/AST/HLSL/matrix-general-initializer.hlsl
A clang/test/AST/HLSL/matrix-init-list-row-major.hlsl
M clang/test/AST/HLSL/pch_spirv_type.hlsl
M clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl
M clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl
M clang/test/AST/HLSL/resource_binding_attr.hlsl
A clang/test/AST/HLSL/resources-in-structs-errors.hlsl
A clang/test/AST/HLSL/resources-in-structs.hlsl
M clang/test/AST/ast-crash-doc-function-template.cpp
M clang/test/AST/ast-dump-concepts.cpp
A clang/test/AST/ast-dump-implicit-align-val.cpp
M clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-target-parallel-for.c
M clang/test/AST/ast-dump-openmp-target-parallel.c
M clang/test/AST/ast-dump-openmp-target-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
M clang/test/AST/ast-dump-openmp-target-teams-distribute.c
M clang/test/AST/ast-dump-openmp-target-teams.c
M clang/test/AST/ast-dump-openmp-target.c
M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
M clang/test/AST/ast-dump-openmp-teams-distribute-simd.c
M clang/test/AST/ast-dump-openmp-teams-distribute.c
M clang/test/AST/ast-dump-openmp-teams.c
M clang/test/AST/dump.cpp
M clang/test/ASTSYCL/ast-dump-sycl-kernel-call-stmt.cpp
M clang/test/ASTSYCL/ast-dump-sycl-kernel-entry-point.cpp
A clang/test/ASTSYCL/ast-print-sycl-kernel-call.cpp
M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
A clang/test/Analysis/Inputs/virtualcall-system-header.h
R clang/test/Analysis/PR37855.c
A clang/test/Analysis/Scalable/command-line-interface.cpp
A clang/test/Analysis/Scalable/downgradable-errors.cpp
A clang/test/Analysis/Scalable/help.cpp
A clang/test/Analysis/Scalable/ssaf-format/list.test
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-badext.txt
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-malformed.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
A clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-noext
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
A clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
A clang/test/Analysis/Scalable/ssaf-linker/cli.test
A clang/test/Analysis/Scalable/ssaf-linker/help.test
A clang/test/Analysis/Scalable/ssaf-linker/io.test
A clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
A clang/test/Analysis/Scalable/ssaf-linker/linking.test
A clang/test/Analysis/Scalable/ssaf-linker/time.test
A clang/test/Analysis/Scalable/ssaf-linker/validation-errors-permissions.test
A clang/test/Analysis/Scalable/ssaf-linker/validation-errors.test
A clang/test/Analysis/Scalable/ssaf-linker/verbose.test
A clang/test/Analysis/Scalable/ssaf-linker/version.test
A clang/test/Analysis/allow-equality-of-stack-and-symbolic-ptr.c
M clang/test/Analysis/auto-obj-dtors-cfg-output.cpp
R clang/test/Analysis/bitint-z3.c
M clang/test/Analysis/bstring.cpp
A clang/test/Analysis/clang-suppress/class-template-specializations.cpp
A clang/test/Analysis/clang-suppress/classes.cpp
A clang/test/Analysis/clang-suppress/diagnostic-identifiers.cpp
A clang/test/Analysis/clang-suppress/friends.cpp
A clang/test/Analysis/clang-suppress/function-templates.cpp
A clang/test/Analysis/clang-suppress/lambdas.cpp
A clang/test/Analysis/clang-suppress/macros.cpp
A clang/test/Analysis/clang-suppress/namespaces.cpp
A clang/test/Analysis/clang-suppress/nested-templates.cpp
A clang/test/Analysis/clang-suppress/statements.cpp
A clang/test/Analysis/clang-suppress/template-methods.cpp
R clang/test/Analysis/cstring-addrspace.c
M clang/test/Analysis/indirect-goto-basics.c
M clang/test/Analysis/lit.local.cfg
M clang/test/Analysis/malloc-annotations.c
M clang/test/Analysis/malloc.c
M clang/test/Analysis/misc-ps-region-store.cpp
M clang/test/Analysis/missing-z3-nocrash.c
M clang/test/Analysis/plist-macros-with-expansion-ctu.c
M clang/test/Analysis/plist-macros-with-expansion.c
M clang/test/Analysis/plist-macros-with-expansion.cpp
M clang/test/Analysis/ptr-arith.c
R clang/test/Analysis/suppression-attr.cpp
M clang/test/Analysis/taint-generic.c
A clang/test/Analysis/taint-main-parameters/argc.c
A clang/test/Analysis/taint-main-parameters/envp.c
A clang/test/Analysis/taint-main-parameters/envp2.c
A clang/test/Analysis/taint-main-parameters/invalid.c
A clang/test/Analysis/taint-main-parameters/main_void.c
A clang/test/Analysis/taint-main-parameters/simple.c
A clang/test/Analysis/taint-main-parameters/simple.cpp
A clang/test/Analysis/taint-main-parameters/trusted.c
R clang/test/Analysis/unary-sym-expr-z3-refutation.c
M clang/test/Analysis/virtualcall.cpp
R clang/test/Analysis/z3-crosscheck-max-attempts.cpp
R clang/test/Analysis/z3-crosscheck.c
R clang/test/Analysis/z3-refute-enum-crash.cpp
R clang/test/Analysis/z3-unarysymexpr.c
A clang/test/Analysis/z3/PR37855.c
A clang/test/Analysis/z3/bitint-z3.c
A clang/test/Analysis/z3/cstring-addrspace.c
A clang/test/Analysis/z3/unary-sym-expr-z3-refutation.c
A clang/test/Analysis/z3/z3-crosscheck-max-attempts.cpp
A clang/test/Analysis/z3/z3-crosscheck.c
A clang/test/Analysis/z3/z3-refute-enum-crash.cpp
A clang/test/Analysis/z3/z3-unarysymexpr.c
M clang/test/C/C11/n1311.c
A clang/test/C/C2y/n3517.c
M clang/test/C/C2y/n3622.c
A clang/test/C/C2y/n3652.c
A clang/test/C/C2y/n3715.c
A clang/test/CIR/CodeGen/Inputs/std-compare.h
A clang/test/CIR/CodeGen/abi-lower-after-unreachable.cpp
A clang/test/CIR/CodeGen/abstract-cond.c
R clang/test/CIR/CodeGen/address-of.cpp
M clang/test/CIR/CodeGen/address-space.c
M clang/test/CIR/CodeGen/arg-attrs.cpp
M clang/test/CIR/CodeGen/array-ctor.cpp
M clang/test/CIR/CodeGen/array-dtor.cpp
M clang/test/CIR/CodeGen/array.cpp
M clang/test/CIR/CodeGen/assign-operator.cpp
M clang/test/CIR/CodeGen/assume-attr.cpp
M clang/test/CIR/CodeGen/atomic-thread-fence.c
M clang/test/CIR/CodeGen/atomic.c
M clang/test/CIR/CodeGen/basic.c
M clang/test/CIR/CodeGen/basic.cpp
M clang/test/CIR/CodeGen/binop.cpp
A clang/test/CIR/CodeGen/bitfield-assignment-loc.c
M clang/test/CIR/CodeGen/bitfields.c
R clang/test/CIR/CodeGen/builtin-bit-cast.cpp
R clang/test/CIR/CodeGen/builtin-floating-point.c
R clang/test/CIR/CodeGen/builtin-memchr.c
R clang/test/CIR/CodeGen/builtins-elementwise.c
M clang/test/CIR/CodeGen/builtins-x86.c
A clang/test/CIR/CodeGen/c89-implicit-int.c
A clang/test/CIR/CodeGen/cleanup-scope-return-in-loop.cpp
M clang/test/CIR/CodeGen/cleanup.cpp
M clang/test/CIR/CodeGen/clear-cache.c
M clang/test/CIR/CodeGen/cmp.cpp
M clang/test/CIR/CodeGen/complex-builtins.cpp
M clang/test/CIR/CodeGen/complex-cast.cpp
M clang/test/CIR/CodeGen/complex-compound-assignment.cpp
M clang/test/CIR/CodeGen/complex-mul-div.cpp
M clang/test/CIR/CodeGen/complex-unary.cpp
M clang/test/CIR/CodeGen/complex.cpp
M clang/test/CIR/CodeGen/compound_assign.cpp
A clang/test/CIR/CodeGen/convert-incomplete-type.cpp
M clang/test/CIR/CodeGen/coro-task.cpp
M clang/test/CIR/CodeGen/cxx-default-init.cpp
M clang/test/CIR/CodeGen/cxx-rewritten-binary-operator.cpp
M clang/test/CIR/CodeGen/defaultarg.cpp
A clang/test/CIR/CodeGen/delete-array.cpp
M clang/test/CIR/CodeGen/delete.cpp
M clang/test/CIR/CodeGen/destructors.cpp
M clang/test/CIR/CodeGen/dtors.cpp
M clang/test/CIR/CodeGen/dynamic-cast-exact.cpp
M clang/test/CIR/CodeGen/dynamic-cast.cpp
A clang/test/CIR/CodeGen/expressions.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
M clang/test/CIR/CodeGen/fold-during-cg.c
M clang/test/CIR/CodeGen/forrange.cpp
M clang/test/CIR/CodeGen/global-array-dtor.cpp
M clang/test/CIR/CodeGen/global-init.cpp
M clang/test/CIR/CodeGen/globals.cpp
A clang/test/CIR/CodeGen/gnu-ptr-math.c
M clang/test/CIR/CodeGen/goto.cpp
M clang/test/CIR/CodeGen/if.cpp
M clang/test/CIR/CodeGen/implicit-value-init-expr.cpp
A clang/test/CIR/CodeGen/initializer-list-two-pointers.cpp
A clang/test/CIR/CodeGen/instantiate-init.cpp
M clang/test/CIR/CodeGen/integer-overflow.c
A clang/test/CIR/CodeGen/invoke-attrs.cpp
M clang/test/CIR/CodeGen/label-values.c
M clang/test/CIR/CodeGen/label.c
M clang/test/CIR/CodeGen/lambda-static-invoker.cpp
M clang/test/CIR/CodeGen/lambda.cpp
M clang/test/CIR/CodeGen/local-vars.cpp
A clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
M clang/test/CIR/CodeGen/loop.cpp
M clang/test/CIR/CodeGen/misc-attrs.cpp
M clang/test/CIR/CodeGen/ms-intrinsics.c
M clang/test/CIR/CodeGen/namespace.cpp
A clang/test/CIR/CodeGen/new-array-size-conv.cpp
A clang/test/CIR/CodeGen/new-delete.cpp
M clang/test/CIR/CodeGen/new.cpp
M clang/test/CIR/CodeGen/no-odr-use.cpp
A clang/test/CIR/CodeGen/non-odr-use-non-ref.cpp
M clang/test/CIR/CodeGen/non-type-template-param.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/noreturn.cpp
M clang/test/CIR/CodeGen/nrvo.cpp
R clang/test/CIR/CodeGen/object-size.c
R clang/test/CIR/CodeGen/object-size.cpp
R clang/test/CIR/CodeGen/offset-of.cpp
M clang/test/CIR/CodeGen/opaque.cpp
A clang/test/CIR/CodeGen/openmp_default_simd_align.c
M clang/test/CIR/CodeGen/optsize-func-attr.cpp
M clang/test/CIR/CodeGen/pack-indexing.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member-cast.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member-cmp.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func-cast.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func-cmp.cpp
M clang/test/CIR/CodeGen/pointer-to-member-func.cpp
M clang/test/CIR/CodeGen/pointers.cpp
R clang/test/CIR/CodeGen/pred-info-builtins.c
M clang/test/CIR/CodeGen/predefined-expr.c
A clang/test/CIR/CodeGen/replace-global.cpp
M clang/test/CIR/CodeGen/requires-expr.cpp
M clang/test/CIR/CodeGen/ret-attrs.cpp
A clang/test/CIR/CodeGen/rtti-member-pointer.cpp
A clang/test/CIR/CodeGen/rtti-qualfn.cpp
A clang/test/CIR/CodeGen/save-temps.c
M clang/test/CIR/CodeGen/side-effect.cpp
M clang/test/CIR/CodeGen/size-of-vla.cpp
M clang/test/CIR/CodeGen/static-local.cpp
M clang/test/CIR/CodeGen/static-vars.c
M clang/test/CIR/CodeGen/static-vars.cpp
M clang/test/CIR/CodeGen/stmt-expr.cpp
M clang/test/CIR/CodeGen/string-literals.c
M clang/test/CIR/CodeGen/string-literals.cpp
M clang/test/CIR/CodeGen/struct-init.cpp
M clang/test/CIR/CodeGen/struct.c
M clang/test/CIR/CodeGen/struct.cpp
M clang/test/CIR/CodeGen/switch_flat_op.cpp
M clang/test/CIR/CodeGen/ternary-throw.cpp
M clang/test/CIR/CodeGen/ternary.cpp
A clang/test/CIR/CodeGen/three-way-cmp.cpp
M clang/test/CIR/CodeGen/throws.cpp
A clang/test/CIR/CodeGen/thunks.cpp
R clang/test/CIR/CodeGen/try-catch-tmp.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
M clang/test/CIR/CodeGen/unary.cpp
M clang/test/CIR/CodeGen/var-arg-aggregate.c
M clang/test/CIR/CodeGen/var_arg.c
M clang/test/CIR/CodeGen/variable-decomposition.cpp
M clang/test/CIR/CodeGen/vbase.cpp
M clang/test/CIR/CodeGen/vector-ext-element.cpp
M clang/test/CIR/CodeGen/vector-ext.cpp
M clang/test/CIR/CodeGen/vector.cpp
M clang/test/CIR/CodeGen/virtual-destructor-calls.cpp
A clang/test/CIR/CodeGen/virtual-fn-calls-eh.cpp
M clang/test/CIR/CodeGen/virtual-function-calls.cpp
M clang/test/CIR/CodeGen/vla.c
M clang/test/CIR/CodeGen/vtt.cpp
M clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_dup.c
M clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_len.c
M clang/test/CIR/CodeGenBuiltins/X86/avx10_2_512bf16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx10_2bf16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx2-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512fp16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512vldq-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/cmp-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/sse2-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/sse41-builtins.c
A clang/test/CIR/CodeGenBuiltins/builtin-address-of.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bcopy.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bit-cast.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-bit.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-call.cpp
M clang/test/CIR/CodeGenBuiltins/builtin-constant-p.c
M clang/test/CIR/CodeGenBuiltins/builtin-fcmp-sse.c
A clang/test/CIR/CodeGenBuiltins/builtin-inline.c
A clang/test/CIR/CodeGenBuiltins/builtin-isinf-sign.c
A clang/test/CIR/CodeGenBuiltins/builtin-memchr.c
A clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-object-size.c
A clang/test/CIR/CodeGenBuiltins/builtin-object-size.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-offset-of.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-prefetch.c
A clang/test/CIR/CodeGenBuiltins/builtin-printf.cpp
M clang/test/CIR/CodeGenBuiltins/builtin-types-compatible.c
R clang/test/CIR/CodeGenBuiltins/builtin_bit.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_call.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_inline.c
R clang/test/CIR/CodeGenBuiltins/builtin_new_delete.cpp
R clang/test/CIR/CodeGenBuiltins/builtin_prefetch.c
R clang/test/CIR/CodeGenBuiltins/builtin_printf.cpp
M clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c
M clang/test/CIR/CodeGenBuiltins/builtins-floating-point.c
M clang/test/CIR/CodeGenBuiltins/builtins-overflow.cpp
A clang/test/CIR/CodeGenBuiltins/builtins-pred-info.c
M clang/test/CIR/CodeGenBuiltins/builtins.cpp
A clang/test/CIR/CodeGenCUDA/address-spaces.cu
A clang/test/CIR/CodeGenCUDA/kernel-args.cu
M clang/test/CIR/CodeGenCUDA/kernel-call.cu
M clang/test/CIR/CodeGenCUDA/kernel-stub-name.cu
A clang/test/CIR/CodeGenCXX/Inputs/typeinfo
M clang/test/CIR/CodeGenCXX/global-refs.cpp
M clang/test/CIR/CodeGenCXX/simple-reinterpret-const-cast.cpp
A clang/test/CIR/CodeGenCXX/typeid-cxx11.cpp
A clang/test/CIR/CodeGenCXX/typeid-should-throw.cpp
A clang/test/CIR/CodeGenCXX/typeid.cpp
A clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
A clang/test/CIR/CodeGenCXX/vtable-pure-deleted-funcs.cpp
A clang/test/CIR/CodeGenCXX/vtable-virt-thunk-adj.cpp
A clang/test/CIR/CodeGenCXX/zero_init_bases.cpp
A clang/test/CIR/CodeGenHIP/amdgpu-module-flags.hip
A clang/test/CIR/CodeGenHIP/simple.cpp
M clang/test/CIR/CodeGenHLSL/matrix-element-expr-load.hlsl
M clang/test/CIR/CodeGenOpenACC/atomic-capture.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-read.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-update.cpp
M clang/test/CIR/CodeGenOpenACC/atomic-write.cpp
M clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/combined-firstprivate-clause.cpp
M clang/test/CIR/CodeGenOpenACC/combined-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/combined.cpp
M clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause-templates.cpp
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause.c
M clang/test/CIR/CodeGenOpenACC/compute-firstprivate-clause.cpp
M clang/test/CIR/CodeGenOpenACC/compute-private-clause-templates.cpp
M clang/test/CIR/CodeGenOpenACC/compute-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-default-ops.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-float.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-int.c
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-unsigned-int.c
M clang/test/CIR/CodeGenOpenACC/data-copy-copyin-copyout-create.c
M clang/test/CIR/CodeGenOpenACC/data.c
M clang/test/CIR/CodeGenOpenACC/declare-link.cpp
M clang/test/CIR/CodeGenOpenACC/enter-data.c
M clang/test/CIR/CodeGenOpenACC/exit-data.c
M clang/test/CIR/CodeGenOpenACC/firstprivate-clause-recipes.cpp
M clang/test/CIR/CodeGenOpenACC/host_data.c
M clang/test/CIR/CodeGenOpenACC/init.c
M clang/test/CIR/CodeGenOpenACC/kernels.c
M clang/test/CIR/CodeGenOpenACC/loop-private-clause.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-default-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-float.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-inline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-int.cpp
M clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-outline-ops.cpp
M clang/test/CIR/CodeGenOpenACC/loop.cpp
M clang/test/CIR/CodeGenOpenACC/parallel.c
M clang/test/CIR/CodeGenOpenACC/private-clause-array-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-array-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-int.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-CtorDtor.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-NoOps.cpp
M clang/test/CIR/CodeGenOpenACC/private-clause-pointer-recipes-int.cpp
M clang/test/CIR/CodeGenOpenACC/reduction-clause-recipes.cpp
M clang/test/CIR/CodeGenOpenACC/routine-anon-ns.cpp
M clang/test/CIR/CodeGenOpenACC/routine-bind.c
M clang/test/CIR/CodeGenOpenACC/routine-bind.cpp
M clang/test/CIR/CodeGenOpenACC/routine-clauses.cpp
M clang/test/CIR/CodeGenOpenACC/routine-device_type.cpp
M clang/test/CIR/CodeGenOpenACC/routine-globals.cpp
M clang/test/CIR/CodeGenOpenACC/routine-globals2.cpp
M clang/test/CIR/CodeGenOpenACC/routine-locals.cpp
M clang/test/CIR/CodeGenOpenACC/routine-members.cpp
M clang/test/CIR/CodeGenOpenACC/routine-ns.cpp
M clang/test/CIR/CodeGenOpenACC/routine-templ.cpp
M clang/test/CIR/CodeGenOpenACC/serial.c
M clang/test/CIR/CodeGenOpenACC/set.c
M clang/test/CIR/CodeGenOpenACC/shutdown.c
M clang/test/CIR/CodeGenOpenACC/update.c
M clang/test/CIR/CodeGenOpenACC/wait.c
M clang/test/CIR/CodeGenOpenMP/omp-llvmir.c
M clang/test/CIR/CodeGenOpenMP/parallel.c
A clang/test/CIR/IR/address-space.cir
M clang/test/CIR/IR/cmp.cir
A clang/test/CIR/IR/func-attrs.cir
M clang/test/CIR/IR/invalid-addrspace.cir
A clang/test/CIR/IR/invalid-cmp3way.cir
A clang/test/CIR/IR/invalid-const-array.cir
M clang/test/CIR/IR/invalid-eh-flat.cir
M clang/test/CIR/IR/invalid-func.cir
M clang/test/CIR/IR/invalid-linkage.cir
M clang/test/CIR/IR/invalid-try-catch.cir
M clang/test/CIR/IR/throw.cir
M clang/test/CIR/IR/try-catch.cir
M clang/test/CIR/IR/unary.cir
M clang/test/CIR/IR/vector.cir
M clang/test/CIR/Lowering/binop-bool.cir
M clang/test/CIR/Lowering/binop-fp.cir
A clang/test/CIR/Lowering/binop-int-vector.cir
M clang/test/CIR/Lowering/binop-signed-int.cir
M clang/test/CIR/Lowering/binop-unsigned-int.cir
A clang/test/CIR/Lowering/global-address-space.cir
M clang/test/CIR/Lowering/goto.cir
M clang/test/CIR/Lowering/switch.cir
A clang/test/CIR/Transforms/binop-traits.cir
M clang/test/CIR/Transforms/bit.cir
M clang/test/CIR/Transforms/canonicalize.cir
A clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-eh.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-multi-exit.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-nyi.cir
A clang/test/CIR/Transforms/flatten-preserve-attrs.cir
A clang/test/CIR/Transforms/flatten-try-op.cir
A clang/test/CIR/Transforms/max-min-idempotent.cir
A clang/test/CIR/Transforms/pure-ptr-arithmetic.cir
M clang/test/CIR/Transforms/select.cir
M clang/test/CIR/Transforms/switch.cir
M clang/test/CIR/Transforms/ternary.cir
M clang/test/CMakeLists.txt
M clang/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg10xx.cpp
M clang/test/CXX/drs/cwg118.cpp
M clang/test/CXX/drs/cwg11xx.cpp
M clang/test/CXX/drs/cwg12xx.cpp
M clang/test/CXX/drs/cwg13xx.cpp
M clang/test/CXX/drs/cwg14xx.cpp
M clang/test/CXX/drs/cwg158.cpp
M clang/test/CXX/drs/cwg15xx.cpp
M clang/test/CXX/drs/cwg16xx.cpp
M clang/test/CXX/drs/cwg1736.cpp
M clang/test/CXX/drs/cwg17xx.cpp
M clang/test/CXX/drs/cwg1884.cpp
M clang/test/CXX/drs/cwg18xx.cpp
M clang/test/CXX/drs/cwg19xx.cpp
M clang/test/CXX/drs/cwg1xx.cpp
M clang/test/CXX/drs/cwg20xx.cpp
M clang/test/CXX/drs/cwg2149.cpp
M clang/test/CXX/drs/cwg21xx.cpp
M clang/test/CXX/drs/cwg22xx.cpp
M clang/test/CXX/drs/cwg2335.cpp
M clang/test/CXX/drs/cwg23xx.cpp
M clang/test/CXX/drs/cwg24xx.cpp
M clang/test/CXX/drs/cwg25xx.cpp
M clang/test/CXX/drs/cwg2630.cpp
M clang/test/CXX/drs/cwg26xx.cpp
M clang/test/CXX/drs/cwg273.cpp
M clang/test/CXX/drs/cwg2771.cpp
M clang/test/CXX/drs/cwg279.cpp
M clang/test/CXX/drs/cwg27xx.cpp
M clang/test/CXX/drs/cwg28xx.cpp
M clang/test/CXX/drs/cwg2947.cpp
M clang/test/CXX/drs/cwg29xx.cpp
M clang/test/CXX/drs/cwg2xx.cpp
M clang/test/CXX/drs/cwg30xx.cpp
M clang/test/CXX/drs/cwg3xx.cpp
M clang/test/CXX/drs/cwg4xx.cpp
M clang/test/CXX/drs/cwg5xx.cpp
M clang/test/CXX/drs/cwg6xx.cpp
M clang/test/CXX/drs/cwg722.cpp
M clang/test/CXX/drs/cwg787.cpp
M clang/test/CXX/drs/cwg7xx.cpp
M clang/test/CXX/drs/cwg8xx.cpp
M clang/test/CXX/drs/cwg9xx.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
M clang/test/CXX/module/dcl.dcl/dcl.module/p1.cpp
A clang/test/ClangScanDeps/build-session-validation-relocated-modules.c
A clang/test/ClangScanDeps/modules-cycle-deadlock.c
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
M clang/test/ClangScanDeps/modules-relocated-mm-macro.c
A clang/test/ClangScanDeps/modules-symlink-dir-from-module-incremental.c
M clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
A clang/test/ClangScanDeps/p1689-suppress-warnings.cppm
M clang/test/CodeCompletion/cpp23-explicit-object.cpp
M clang/test/CodeCompletion/member-access.cpp
M clang/test/CodeGen/2005-01-02-ConstantInits.c
M clang/test/CodeGen/AArch64/bf16-getset-intrinsics.c
M clang/test/CodeGen/AArch64/cpu-supports-target.c
M clang/test/CodeGen/AArch64/cpu-supports.c
M clang/test/CodeGen/AArch64/fmv-detection.c
M clang/test/CodeGen/AArch64/fmv-explicit-priority.c
M clang/test/CodeGen/AArch64/fmv-mix-explicit-implicit-default.c
M clang/test/CodeGen/AArch64/fmv-resolver-emission.c
M clang/test/CodeGen/AArch64/fmv-unreachable-version.c
A clang/test/CodeGen/AArch64/inline-asm-p-constraint.c
M clang/test/CodeGen/AArch64/ls64.c
M clang/test/CodeGen/AArch64/mixed-target-attributes.c
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon-misc.c
A clang/test/CodeGen/AArch64/neon/bf16-getset.c
M clang/test/CodeGen/AArch64/neon/fullfp16.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
A clang/test/CodeGen/AArch64/pcdphint-atomic-store.c
M clang/test/CodeGen/AArch64/targetattr.c
M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics.c
M clang/test/CodeGen/AArch64/varargs.c
M clang/test/CodeGen/LoongArch/targetattr-la32.c
M clang/test/CodeGen/LoongArch/targetattr-la64.c
M clang/test/CodeGen/PowerPC/altivec-ct.c
A clang/test/CodeGen/PowerPC/attr-target-clones.c
M clang/test/CodeGen/PowerPC/builtins-amo-err.c
M clang/test/CodeGen/PowerPC/builtins-ppc-32bit-vec-ll.c
M clang/test/CodeGen/PowerPC/builtins-ppc-amo.c
M clang/test/CodeGen/PowerPC/builtins-ppc-crypto.c
M clang/test/CodeGen/PowerPC/builtins-ppc-dmf.c
M clang/test/CodeGen/PowerPC/builtins-ppc-error.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-p9vector.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-char.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword-noi128.c
M clang/test/CodeGen/PowerPC/builtins-ppc-quadword.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xl-xst.c
M clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat.c
M clang/test/CodeGen/PowerPC/ppc-dmf-mma-builtin-err.c
M clang/test/CodeGen/PowerPC/ppc-emmintrin.c
M clang/test/CodeGen/PowerPC/ppc-vector-compare.cpp
M clang/test/CodeGen/PowerPC/ppc-xmmintrin.c
M clang/test/CodeGen/PowerPC/ppc32-dwarf.c
M clang/test/CodeGen/PowerPC/ppc64-dwarf.c
M clang/test/CodeGen/RISCV/abi-empty-structs.c
M clang/test/CodeGen/RISCV/bfloat-abi.c
M clang/test/CodeGen/RISCV/builtin-cpu-is.c
M clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c
M clang/test/CodeGen/RISCV/riscv-inline-asm.c
M clang/test/CodeGen/RISCV/riscv32-abi.c
M clang/test/CodeGen/RISCV/riscv64-abi.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/non-overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/non-policy/overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/non-overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4su_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4su_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4u_vv.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4u_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvdot4a8i/policy/overloaded/vdota4us_vx.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/vlenb.c
M clang/test/CodeGen/Sparc/sparcv9-dwarf.c
M clang/test/CodeGen/SystemZ/align-systemz-02.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-00.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-01.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-03b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-04.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-05.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-06.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-07.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-08.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-08b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-09.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-09b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-11.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-12.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-13.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-14.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-15.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-16.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-17.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-17b.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-18.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-19.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-20.cpp
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-21.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-22.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-23.c
M clang/test/CodeGen/WebAssembly/builtins-table-externref.c
M clang/test/CodeGen/X86/avx10_2bf16-builtins.c
M clang/test/CodeGen/X86/avx512f-builtins.c
M clang/test/CodeGen/X86/avx512vbmi2-builtins.c
M clang/test/CodeGen/X86/avx512vl-builtins.c
M clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c
M clang/test/CodeGen/X86/inline-asm-constraints.c
M clang/test/CodeGen/X86/va-arg-sse.c
M clang/test/CodeGen/aix-builtin-cpu-is.c
M clang/test/CodeGen/aix-builtin-cpu-supports.c
M clang/test/CodeGen/allow-ubsan-check.c
M clang/test/CodeGen/amdgpu-abi-version.c
M clang/test/CodeGen/amdgpu-address-spaces.cpp
M clang/test/CodeGen/amdgpu-image-rsrc-type-debug-info.c
R clang/test/CodeGen/arm-bf16-getset-intrinsics.c
M clang/test/CodeGen/arm-metadata.c
M clang/test/CodeGen/arm64-microsoft-sys.c
M clang/test/CodeGen/arm_acle.c
M clang/test/CodeGen/asm-goto2.c
A clang/test/CodeGen/asm_incbin.c
M clang/test/CodeGen/atomic-arm64.c
M clang/test/CodeGen/atomic-ops.c
M clang/test/CodeGen/attr-counted-by-for-pointers.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/CodeGen/attr-cpuspecific.c
A clang/test/CodeGen/attr-personality-failures.c
A clang/test/CodeGen/attr-personality.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-clones-riscv.c
M clang/test/CodeGen/attr-target-clones.c
M clang/test/CodeGen/attr-target-version-riscv.c
A clang/test/CodeGen/availability-check-anyappleos.c
M clang/test/CodeGen/big-atomic-ops.c
A clang/test/CodeGen/bitcast-based-lvalue.c
M clang/test/CodeGen/builtin-cpu-is.c
M clang/test/CodeGen/builtin-cpu-supports.c
M clang/test/CodeGen/builtin_vectorelements.c
M clang/test/CodeGen/builtins-arm64.c
M clang/test/CodeGen/builtins-extended-image.c
M clang/test/CodeGen/builtins-image-load.c
M clang/test/CodeGen/builtins-image-store.c
M clang/test/CodeGen/builtins-nvptx-ptx50.cu
M clang/test/CodeGen/builtins-nvptx.c
M clang/test/CodeGen/builtins-reduction-math.c
A clang/test/CodeGen/c23-constexpr-member-access.c
A clang/test/CodeGen/call-graph-section-internal.cpp
M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset-in-offsetof-idiom.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset.c
A clang/test/CodeGen/cfi-icall-with-abi-tag.cpp
M clang/test/CodeGen/clear_cache.c
M clang/test/CodeGen/complex-strictfp.c
M clang/test/CodeGen/complex.c
M clang/test/CodeGen/distributed-thin-lto/cfi-devirt.ll
M clang/test/CodeGen/distributed-thin-lto/cfi.ll
A clang/test/CodeGen/distributed-thin-lto/pass-plugin.ll
M clang/test/CodeGen/fp-function-attrs.cpp
R clang/test/CodeGen/inline-asm-p-constraint.c
M clang/test/CodeGen/linux-kernel-struct-union-initializer.c
M clang/test/CodeGen/linux-kernel-struct-union-initializer2.c
M clang/test/CodeGen/memcpy-inline-builtin.c
M clang/test/CodeGen/mips-inline-asm-modifiers.c
M clang/test/CodeGen/ms-intrinsics.c
M clang/test/CodeGen/ms_struct-bitfield.c
A clang/test/CodeGen/ms_struct-packed.c
M clang/test/CodeGen/multi-aix-builtin-cpu-supports.c
M clang/test/CodeGen/nvptx_attributes.c
M clang/test/CodeGen/object-size.c
M clang/test/CodeGen/overflow-behavior-types.c
M clang/test/CodeGen/packed-nest-unpacked.c
M clang/test/CodeGen/ptrauth-function-init.c
M clang/test/CodeGen/ptrauth-module-flags.c
M clang/test/CodeGen/ptrauth-restricted-intptr-qualifier.c
M clang/test/CodeGen/sanitize-metadata-ignorelist.c
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/sanitize-type-globals.cpp
M clang/test/CodeGen/scoped-atomic-ops.c
M clang/test/CodeGen/stack-protector-guard.c
M clang/test/CodeGen/thinlto-funcattr-prop.ll
M clang/test/CodeGen/ubsan-function-sugared.cpp
M clang/test/CodeGen/ubsan-function.cpp
M clang/test/CodeGen/ubsan-type-ignorelist-category.test
M clang/test/CodeGen/unaligned-expr.c
M clang/test/CodeGen/union-tbaa1.c
M clang/test/CodeGen/volatile-1.c
M clang/test/CodeGen/volatile-2.c
M clang/test/CodeGen/volatile-complex.c
M clang/test/CodeGen/wasm-fp16.c
M clang/test/CodeGen/wchar-size.c
A clang/test/CodeGen/windows-seh-arg-capture-crash.cpp
M clang/test/CodeGenCUDA/address-spaces.cu
M clang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
M clang/test/CodeGenCUDA/amdgpu-workgroup-size.cu
A clang/test/CodeGenCUDA/builtin-count-zeros-nvptx.cu
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/convergent.cu
M clang/test/CodeGenCUDA/incomplete-func-ptr-type.cu
M clang/test/CodeGenCUDA/managed-var.cu
A clang/test/CodeGenCUDA/mangling.cu
M clang/test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
M clang/test/CodeGenCXX/alloc-token-pointer.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
A clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllexport.cpp
A clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllimport.cpp
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/CodeGenCXX/attr-target-clones-riscv.cpp
M clang/test/CodeGenCXX/attr-target-version-riscv.cpp
M clang/test/CodeGenCXX/attr-target-version.cpp
M clang/test/CodeGenCXX/blocks-cxx11.cpp
M clang/test/CodeGenCXX/builtin-invoke.cpp
M clang/test/CodeGenCXX/builtin_FUNCTION.cpp
M clang/test/CodeGenCXX/catch-nullptr-and-nonzero-offset-in-offsetof-idiom.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-pr12086.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
M clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx1y-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx1z-decomposition.cpp
M clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
M clang/test/CodeGenCXX/cxx2a-consteval.cpp
A clang/test/CodeGenCXX/dllexport-inherited-ctor.cpp
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/CodeGenCXX/finegrain-bitfield-access.cpp
M clang/test/CodeGenCXX/fmv-namespace.cpp
M clang/test/CodeGenCXX/for-range.cpp
M clang/test/CodeGenCXX/forward-declare-as-array-elem.cpp
M clang/test/CodeGenCXX/global-array-destruction.cpp
M clang/test/CodeGenCXX/inheriting-constructor.cpp
M clang/test/CodeGenCXX/labeled-break-continue.cpp
M clang/test/CodeGenCXX/mangle-lambdas.cpp
A clang/test/CodeGenCXX/microsoft-abi-diamond-template-multiple-vbptrs-32bit.cpp
A clang/test/CodeGenCXX/microsoft-abi-diamond-template-multiple-vbptrs.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors-new-array.cpp
M clang/test/CodeGenCXX/ms-inline-asm-fields.cpp
A clang/test/CodeGenCXX/ms-vdtors-devirtualization.cpp
M clang/test/CodeGenCXX/no-odr-use.cpp
M clang/test/CodeGenCXX/pfp-member-pointer-offsetof.cpp
M clang/test/CodeGenCXX/pfp-memcpy.cpp
A clang/test/CodeGenCXX/pragma-loop-licm.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/temporaries.cpp
M clang/test/CodeGenCXX/ubsan-nullability-arg.cpp
M clang/test/CodeGenCXX/volatile-1.cpp
M clang/test/CodeGenCXX/vtable-assume-load-address-space.cpp
M clang/test/CodeGenCXX/vtable-assume-load.cpp
M clang/test/CodeGenCXX/vtt-address-space.cpp
A clang/test/CodeGenCoroutines/coro-gro3.cpp
M clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
M clang/test/CodeGenDirectX/Builtins/dot2add.c
M clang/test/CodeGenHIP/amdgpu-barrier-type.hip
A clang/test/CodeGenHIP/builtins-amdgcn-buffer-format.hip
A clang/test/CodeGenHIP/builtins-amdgcn-gfx1250-wmma-f16.hip
A clang/test/CodeGenHIP/debug-info-language-hip.hip
M clang/test/CodeGenHIP/default-attributes.hip
M clang/test/CodeGenHIP/hip_weak_alias.cpp
A clang/test/CodeGenHIP/placement-new-addrspace.hip
M clang/test/CodeGenHIP/sanitize-undefined-null.hip
A clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
M clang/test/CodeGenHLSL/ArrayAssignable.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/AggregateSplatCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/ArrayElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixConstructor.hlsl
A clang/test/CodeGenHLSL/BasicFeatures/MatrixElementRowColFlags.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixElementTypeCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixExplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixImplicitTruncation.hlsl
A clang/test/CodeGenHLSL/BasicFeatures/MatrixInitializerListOrder.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptConstSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptDynamicSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptSetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/OutputArguments.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/VectorElementwiseCast.hlsl
M clang/test/CodeGenHLSL/BoolMatrix.hlsl
M clang/test/CodeGenHLSL/BoolVector.hlsl
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/CodeGenHLSL/basic_types.hlsl
M clang/test/CodeGenHLSL/builtins/AddUint64.hlsl
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossX.hlsl
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossY.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/VectorSwizzles.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd-errors.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitAnd.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitXor-errors.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveProduct.hlsl
M clang/test/CodeGenHLSL/builtins/clip.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16.hlsl
M clang/test/CodeGenHLSL/builtins/hlsl_resource_t.hlsl
M clang/test/CodeGenHLSL/builtins/mad.hlsl
A clang/test/CodeGenHLSL/builtins/mul.hlsl
M clang/test/CodeGenHLSL/builtins/select.hlsl
A clang/test/CodeGenHLSL/builtins/transpose.hlsl
A clang/test/CodeGenHLSL/debug/source-language.hlsl
M clang/test/CodeGenHLSL/float3.hlsl
M clang/test/CodeGenHLSL/group_shared.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/ArrTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/MatrixTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/Overloads.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/Scalartest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/TemplateTest.hlsl
A clang/test/CodeGenHLSL/groupsharedArgs/VectorTest.hlsl
M clang/test/CodeGenHLSL/inline-functions.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
A clang/test/CodeGenHLSL/resources/CBufferMatrixSingleSubscriptSwizzle.hlsl
A clang/test/CodeGenHLSL/resources/MatrixElement_cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/RasterizerOrderedStructuredBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-subscripts.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Gather.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Load.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-Subscript.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-default-explicit-binding.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-default.hlsl
A clang/test/CodeGenHLSL/resources/Texture2D-shorthand-contexts.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-subscript.hlsl
A clang/test/CodeGenHLSL/resources/cbuffer-empty-struct-array.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_geps.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_with_packoffset.hlsl
M clang/test/CodeGenHLSL/resources/default_cbuffer_with_layout.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-dyn-index.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-unbounded.hlsl
A clang/test/CodeGenHLSL/semantics/SV_VertexID.vs.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.array.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.array.output.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.explicit-location-output-struct.hlsl
M clang/test/CodeGenHLSL/semantics/semantic.struct.hlsl
A clang/test/CodeGenHLSL/vk-output-builtin.hlsl
A clang/test/CodeGenObjC/Inputs/constant-literal-support.h
M clang/test/CodeGenObjC/aarch64-sve-types.m
A clang/test/CodeGenObjC/arc-constant-literals.m
A clang/test/CodeGenObjC/method-selector-stub.m
A clang/test/CodeGenObjC/no-nsconstant-literals.m
A clang/test/CodeGenObjC/objc2-constant-collection-literals.m
A clang/test/CodeGenObjC/objc2-constant-literal-custom-class.m
A clang/test/CodeGenObjC/objc2-constant-number-literal.m
M clang/test/CodeGenObjC/super-message-fragileabi.m
R clang/test/CodeGenOpenCL/.gdb_history
M clang/test/CodeGenOpenCL/amdgpu-cluster-dims.cl
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/amdgpu-ieee.cl
M clang/test/CodeGenOpenCL/atomic-ops.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-tensor-load-store.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gws-insts.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-load-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-struct-buffer-store-format.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-gfx1250-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w32-gfx10-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-w64-gfx10-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-workgroup-size.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
M clang/test/CodeGenOpenCL/cl-uniform-wg-size.cl
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M clang/test/CodeGenOpenCL/convergent.cl
M clang/test/CodeGenOpenCL/relaxed-fpmath.cl
A clang/test/CodeGenSPIRV/function-pointer-cast.cpp
A clang/test/CodeGenSPIRV/global-dtor.cpp
A clang/test/CodeGenSPIRV/kernel-ptr-arg.c
M clang/test/CodeGenSYCL/function-attrs.cpp
M clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
A clang/test/CodeGenSYCL/sycl-kernel-entry-point-exceptions.cpp
M clang/test/CodeGenSYCL/unique_stable_name_windows_diff.cpp
A clang/test/DebugInfo/CXX/callsite-base.cpp
A clang/test/DebugInfo/CXX/callsite-derived.cpp
A clang/test/DebugInfo/CXX/callsite-edges.cpp
A clang/test/DebugInfo/CXX/debug-info-constexpr-array.cpp
M clang/test/DebugInfo/CXX/ms-novtable.cpp
A clang/test/DebugInfo/CXX/ptrauth-member-function-pointer-debuglocs.cpp
M clang/test/DebugInfo/CXX/vtable-external.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-diamond.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-multiple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple-main.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-virtual.cpp
M clang/test/DebugInfo/CXX/vtable-template-instantiation.cpp
M clang/test/DebugInfo/KeyInstructions/complex.c
A clang/test/Driver/HLSL/fre-errors.hlsl
M clang/test/Driver/HLSL/metal-converter.hlsl
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libclang_rt.profile.a
A clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/nvptx64-nvidia-cuda/libclang_rt.profile.a
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Driver/amdgpu-openmp-sanitize-options.c
M clang/test/Driver/amdgpu-toolchain.c
M clang/test/Driver/autocomplete.c
M clang/test/Driver/baremetal.cpp
M clang/test/Driver/cl-link.c
M clang/test/Driver/cl-options.c
M clang/test/Driver/cl-x86-flags.c
A clang/test/Driver/crash-report-no-integrated-cc1.c
M clang/test/Driver/cuda-cross-compiling.c
M clang/test/Driver/darwin-builtin-modules.c
M clang/test/Driver/darwin-ld-platform-version-macos.c
A clang/test/Driver/darwin-objc-selector-stubs.m
A clang/test/Driver/empty_arg.c
M clang/test/Driver/fsanitize-ignorelist.c
M clang/test/Driver/fsanitize-memtag.c
M clang/test/Driver/fsanitize-minimal-runtime.c
A clang/test/Driver/ftime-trace-offload.cpp
M clang/test/Driver/hip-options.hip
M clang/test/Driver/hip-save-temps.hip
M clang/test/Driver/hip-spirv-backend-bindings.c
M clang/test/Driver/hip-spirv-backend-phases.c
M clang/test/Driver/hip-toolchain-no-rdc.hip
A clang/test/Driver/linker-wrapper-canonical-prefixes.c
M clang/test/Driver/linker-wrapper-hip-no-rdc.c
A clang/test/Driver/memtag-android.c
R clang/test/Driver/memtag-ld.c
A clang/test/Driver/memtag.c
A clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
A clang/test/Driver/modules-driver-dep-graph.cpp
A clang/test/Driver/modules-driver-dep-scan-diagnostics.cpp
A clang/test/Driver/modules-driver-duplicate-named-module.cpp
A clang/test/Driver/modules-driver-malformed-manifest.cpp
A clang/test/Driver/modules-driver-manifest-input-args.cpp
A clang/test/Driver/modules-driver-manifest-not-found.cpp
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/Driver/print-enabled-extensions/riscv-sifive-p870.c
A clang/test/Driver/print-enabled-extensions/riscv-sifive-x160.c
A clang/test/Driver/print-enabled-extensions/riscv-sifive-x180.c
M clang/test/Driver/print-enabled-extensions/riscv-spacemit-x100.c
A clang/test/Driver/print-enabled-extensions/riscv-spacemit-x60.c
A clang/test/Driver/print-enabled-extensions/riscv-xt-c910v2.c
A clang/test/Driver/print-enabled-extensions/riscv-xt-c920v2.c
M clang/test/Driver/print-supported-extensions-riscv.c
A clang/test/Driver/reloc-section-sym.c
M clang/test/Driver/riscv-cpus.c
M clang/test/Driver/spirv-amd-toolchain.c
M clang/test/Driver/spirv-llvm-link.c
M clang/test/Driver/spirv-tools-err.c
M clang/test/Driver/stack-protector-guard.c
A clang/test/Driver/sycl-offload-jit-xarch.cpp
M clang/test/Driver/wasm-features.c
M clang/test/Driver/wasm-toolchain.cpp
A clang/test/Driver/x86-fixed-di-register.c
M clang/test/Driver/x86-target-features.c
A clang/test/Driver/x86_64-fixed-r-register.c
A clang/test/Driver/xcselect.c
A clang/test/FixIt/fixit-availability-anyappleos.m
M clang/test/FixIt/fixit-pragma-attribute.cpp
A clang/test/Frontend/Inputs/expected-sarif/sarif-diagnostics.cpp.sarif
A clang/test/Frontend/Inputs/expected-sarif/sarif-legacy-stable-ids.c.sarif
M clang/test/Frontend/sarif-diagnostics.cpp
A clang/test/Frontend/sarif-legacy-stable-ids.c
A clang/test/Frontend/verify-directives-full-match.cpp
A clang/test/Frontend/verify-directives-one-diag.cpp
A clang/test/Frontend/verify-directives-order.cpp
A clang/test/Frontend/verify-directives-wildcard.cpp
M clang/test/Headers/Inputs/include/stdint.h
A clang/test/Headers/amdhsa_abi.cl
A clang/test/Headers/endian.c
M clang/test/Headers/gpuintrin.c
A clang/test/Headers/hexagon-hvx-ieee-headers.c
A clang/test/Headers/hexagon-types-b0-conflict.c
M clang/test/Headers/hip-header.hip
M clang/test/Index/annotate-module.m
M clang/test/Index/complete-qualified.cpp
M clang/test/InstallAPI/extra-exclude-headers.test
M clang/test/InstallAPI/hiddens.test
A clang/test/Interpreter/incremental-c-implicit-error.c
A clang/test/Interpreter/incremental-c-implicit-undo.c
M clang/test/Interpreter/pretty-print.cpp
A clang/test/Interpreter/verify-diagnostics.cpp
M clang/test/Layout/ms-x86-bitfields-overflow.c
M clang/test/Lexer/cxx20-module-directive.cpp
M clang/test/Misc/amdgcn.languageOptsOpenCL.cl
A clang/test/Misc/cc1as-reloc-section-sym.s
M clang/test/Misc/diag-mapping.c
A clang/test/Misc/noexecstack.c
M clang/test/Misc/nvptx.languageOptsOpenCL.cl
R clang/test/Misc/nvptx.unsupported_core.cl
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M clang/test/Misc/target-invalid-cpu-note/riscv.c
M clang/test/Misc/warning-wall.c
M clang/test/Modules/DebugInfoNamespace.cpp
M clang/test/Modules/DebugInfoSubmoduleImport.c
M clang/test/Modules/DebugInfoTransitiveImport.m
M clang/test/Modules/ExtDebugInfo.cpp
M clang/test/Modules/ExtDebugInfo.m
A clang/test/Modules/Inputs/pch-config-macros/include/Mod1.h
A clang/test/Modules/Inputs/pch-config-macros/include/module.modulemap
M clang/test/Modules/ModuleDebugInfo.cpp
M clang/test/Modules/ModuleDebugInfo.m
M clang/test/Modules/ModuleModuleDebugInfo.cpp
A clang/test/Modules/align-val-t-merge.cpp
M clang/test/Modules/auto-module-import.m
A clang/test/Modules/build-session-validation-relocated-modules.c
A clang/test/Modules/class-instantiate-no-change-02.cppm
M clang/test/Modules/debug-info-moduleimport.m
A clang/test/Modules/demote-var-def.cpp
A clang/test/Modules/deprecated-upwards-relative-path.m
A clang/test/Modules/diag-pragma-nonaffecting.cpp
M clang/test/Modules/extern_c.cpp
M clang/test/Modules/global_index.m
A clang/test/Modules/implicit-cycle-deadlock.c
A clang/test/Modules/lazy-by-header-extern.c
A clang/test/Modules/lazy-by-header-lookup.c
A clang/test/Modules/lazy-by-header-nested.c
A clang/test/Modules/lazy-by-header-private.c
A clang/test/Modules/lazy-by-header-umbrella-dir.c
A clang/test/Modules/lazy-by-header-umbrella-header.c
M clang/test/Modules/lazy-by-name-lookup.c
M clang/test/Modules/load-after-failure.m
M clang/test/Modules/module-debuginfo-compdir.m
M clang/test/Modules/module-debuginfo-prefix.m
A clang/test/Modules/module-init-forcelly-loaded-module.cpp
M clang/test/Modules/no-transitive-decl-change-4.cppm
A clang/test/Modules/pch-config-macros.c
A clang/test/Modules/pr149404-02.cppm
A clang/test/Modules/pr170099.cppm
A clang/test/Modules/pr172241.cppm
A clang/test/Modules/pr178893.cppm
A clang/test/Modules/pr179178.cpp
A clang/test/Modules/pr184957.cppm
A clang/test/Modules/pr186603.cppm
A clang/test/Modules/relative-module-cache.c
A clang/test/Modules/special-member-definitions.cppm
M clang/test/Modules/templates.mm
A clang/test/Modules/var-inst-def.cppm
M clang/test/OpenMP/amdgcn-attributes.cpp
M clang/test/OpenMP/amdgcn_sret_ctor.cpp
M clang/test/OpenMP/amdgcn_target_codegen.cpp
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgcn_target_global_constructor.cpp
M clang/test/OpenMP/amdgcn_weak_alias.c
M clang/test/OpenMP/amdgcn_weak_alias.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/atomic_capture_codegen.cpp
M clang/test/OpenMP/atomic_read_codegen.c
M clang/test/OpenMP/atomic_update_codegen.cpp
M clang/test/OpenMP/atomic_write_codegen.c
M clang/test/OpenMP/bug59160.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/cancel_codegen.cpp
M clang/test/OpenMP/constexpr_capture.cpp
M clang/test/OpenMP/copy-gaps-1.cpp
M clang/test/OpenMP/copy-gaps-2.cpp
M clang/test/OpenMP/copy-gaps-3.cpp
M clang/test/OpenMP/copy-gaps-4.cpp
M clang/test/OpenMP/copy-gaps-5.cpp
M clang/test/OpenMP/copy-gaps-6.cpp
M clang/test/OpenMP/declare_mapper_codegen.cpp
M clang/test/OpenMP/declare_target_ast_print.cpp
M clang/test/OpenMP/declare_target_codegen.cpp
M clang/test/OpenMP/declare_target_codegen_globalization.cpp
M clang/test/OpenMP/declare_target_link_codegen.cpp
M clang/test/OpenMP/declare_target_messages.cpp
M clang/test/OpenMP/declare_variant_mixed_codegen.c
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_reduction_task_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/for_firstprivate_codegen.cpp
M clang/test/OpenMP/for_linear_codegen.cpp
M clang/test/OpenMP/for_non_rectangular_codegen.c
M clang/test/OpenMP/for_private_codegen.cpp
M clang/test/OpenMP/for_private_reduction_codegen.cpp
A clang/test/OpenMP/for_range_loop_codegen.cpp
M clang/test/OpenMP/for_reduction_codegen.cpp
M clang/test/OpenMP/force-usm.c
M clang/test/OpenMP/irbuilder_nested_openmp_parallel_empty.c
M clang/test/OpenMP/irbuilder_nested_parallel_for.c
M clang/test/OpenMP/irbuilder_safelen.cpp
M clang/test/OpenMP/irbuilder_safelen_order_concurrent.cpp
M clang/test/OpenMP/irbuilder_simd_aligned.cpp
M clang/test/OpenMP/irbuilder_simdlen.cpp
M clang/test/OpenMP/irbuilder_simdlen_safelen.cpp
A clang/test/OpenMP/loop_collapse_codegen.cpp
A clang/test/OpenMP/map_const_aggregate.cpp
M clang/test/OpenMP/map_struct_ordering.cpp
M clang/test/OpenMP/nested_loop_codegen.cpp
A clang/test/OpenMP/num_teams_clause_ast.cpp
M clang/test/OpenMP/nvptx_SPMD_codegen.cpp
M clang/test/OpenMP/nvptx_declare_target_var_ctor_dtor_codegen.cpp
M clang/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
M clang/test/OpenMP/nvptx_lambda_pointer_capturing.cpp
M clang/test/OpenMP/nvptx_nested_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_codegen.cpp
M clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp
M clang/test/OpenMP/nvptx_target_requires_unified_shared_memory.cpp
M clang/test/OpenMP/nvptx_target_simd_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_generic_loop_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_ompx_bare_codegen.cpp
M clang/test/OpenMP/nvptx_teams_codegen.cpp
M clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/nvptx_unsupported_type_messages.cpp
M clang/test/OpenMP/nvptx_weak_alias.c
M clang/test/OpenMP/openmp_offload_codegen.cpp
M clang/test/OpenMP/openmp_offload_registration.cpp
M clang/test/OpenMP/parallel_codegen.cpp
M clang/test/OpenMP/parallel_copyin_codegen.cpp
M clang/test/OpenMP/parallel_for_codegen.cpp
M clang/test/OpenMP/parallel_for_linear_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/parallel_private_codegen.cpp
M clang/test/OpenMP/parallel_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/scope_codegen.cpp
M clang/test/OpenMP/sections_firstprivate_codegen.cpp
M clang/test/OpenMP/sections_private_codegen.cpp
M clang/test/OpenMP/sections_reduction_codegen.cpp
M clang/test/OpenMP/single_codegen.cpp
M clang/test/OpenMP/single_firstprivate_codegen.cpp
M clang/test/OpenMP/single_private_codegen.cpp
M clang/test/OpenMP/spirv_kernel_addrspace.cpp
M clang/test/OpenMP/target_codegen.cpp
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_codegen_registration.cpp
M clang/test/OpenMP/target_data_codegen.cpp
M clang/test/OpenMP/target_data_member_codegen.cpp
M clang/test/OpenMP/target_data_use_device_ptr_if_codegen.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_01.cpp
M clang/test/OpenMP/target_defaultmap_codegen_02.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_depend_codegen.cpp
M clang/test/OpenMP/target_device_codegen.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_enter_data_codegen.cpp
M clang/test/OpenMP/target_enter_data_depend_codegen.cpp
M clang/test/OpenMP/target_exit_data_codegen.cpp
M clang/test/OpenMP/target_exit_data_depend_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen_01.cpp
M clang/test/OpenMP/target_in_reduction_codegen.cpp
M clang/test/OpenMP/target_indirect_codegen.cpp
M clang/test/OpenMP/target_is_device_ptr_codegen.cpp
M clang/test/OpenMP/target_map_array_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_array_section_no_length_codegen.cpp
M clang/test/OpenMP/target_map_array_section_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_both_pointer_pointee_codegen.cpp
M clang/test/OpenMP/target_map_both_pointer_pointee_codegen_global.cpp
M clang/test/OpenMP/target_map_codegen_00.cpp
M clang/test/OpenMP/target_map_codegen_01.cpp
M clang/test/OpenMP/target_map_codegen_02.cpp
M clang/test/OpenMP/target_map_codegen_03.cpp
M clang/test/OpenMP/target_map_codegen_04.cpp
M clang/test/OpenMP/target_map_codegen_05.cpp
M clang/test/OpenMP/target_map_codegen_06.cpp
M clang/test/OpenMP/target_map_codegen_07.cpp
M clang/test/OpenMP/target_map_codegen_08.cpp
M clang/test/OpenMP/target_map_codegen_09.cpp
M clang/test/OpenMP/target_map_codegen_10.cpp
M clang/test/OpenMP/target_map_codegen_11.cpp
M clang/test/OpenMP/target_map_codegen_12.cpp
M clang/test/OpenMP/target_map_codegen_13.cpp
M clang/test/OpenMP/target_map_codegen_14.cpp
M clang/test/OpenMP/target_map_codegen_15.cpp
M clang/test/OpenMP/target_map_codegen_16.cpp
M clang/test/OpenMP/target_map_codegen_17.cpp
M clang/test/OpenMP/target_map_codegen_18.inc
M clang/test/OpenMP/target_map_codegen_19.cpp
M clang/test/OpenMP/target_map_codegen_20.cpp
M clang/test/OpenMP/target_map_codegen_21.cpp
M clang/test/OpenMP/target_map_codegen_22.cpp
M clang/test/OpenMP/target_map_codegen_23.cpp
M clang/test/OpenMP/target_map_codegen_24.cpp
M clang/test/OpenMP/target_map_codegen_25.cpp
M clang/test/OpenMP/target_map_codegen_26.cpp
M clang/test/OpenMP/target_map_codegen_27.cpp
M clang/test/OpenMP/target_map_codegen_28.cpp
M clang/test/OpenMP/target_map_codegen_29.cpp
M clang/test/OpenMP/target_map_codegen_30.cpp
M clang/test/OpenMP/target_map_codegen_31.cpp
M clang/test/OpenMP/target_map_codegen_32.cpp
M clang/test/OpenMP/target_map_codegen_33.cpp
M clang/test/OpenMP/target_map_codegen_34.cpp
M clang/test/OpenMP/target_map_codegen_35.cpp
M clang/test/OpenMP/target_map_codegen_hold.cpp
M clang/test/OpenMP/target_map_deref_array_codegen.cpp
M clang/test/OpenMP/target_map_member_expr_codegen.cpp
M clang/test/OpenMP/target_map_names.cpp
M clang/test/OpenMP/target_map_names_attr.cpp
M clang/test/OpenMP/target_map_pointer_defalut_mapper_codegen.cpp
M clang/test/OpenMP/target_map_ptr_and_star_global.cpp
M clang/test/OpenMP/target_map_ptr_and_star_local.cpp
M clang/test/OpenMP/target_map_structptr_and_member_global.cpp
M clang/test/OpenMP/target_map_structptr_and_member_local.cpp
M clang/test/OpenMP/target_offload_mandatory_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_reduction_task_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_tl_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_for_tl_codegen.cpp
M clang/test/OpenMP/target_parallel_for_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_tl_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_parallel_reduction_task_codegen.cpp
M clang/test/OpenMP/target_parallel_tl_codegen.cpp
M clang/test/OpenMP/target_parallel_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_private_codegen.cpp
M clang/test/OpenMP/target_simd_codegen.cpp
M clang/test/OpenMP/target_simd_codegen_registration.cpp
M clang/test/OpenMP/target_simd_depend_codegen.cpp
M clang/test/OpenMP/target_simd_tl_codegen.cpp
M clang/test/OpenMP/target_simd_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_ast_print.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_codegen_registration.cpp
M clang/test/OpenMP/target_teams_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_task_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_depend_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/target_teams_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_unknown_file.cpp
M clang/test/OpenMP/target_update_codegen.cpp
A clang/test/OpenMP/target_update_count_expression_codegen.c
M clang/test/OpenMP/target_update_depend_codegen.cpp
M clang/test/OpenMP/target_update_messages.cpp
A clang/test/OpenMP/target_update_strided_ptr_variable_count_and_stride_messages.c
A clang/test/OpenMP/target_update_strided_ptr_variable_count_messages.c
A clang/test/OpenMP/target_update_strided_ptr_variable_stride_messages.c
A clang/test/OpenMP/target_update_strided_struct_ptr_messages_from.c
A clang/test/OpenMP/target_update_strided_struct_ptr_messages_to.c
A clang/test/OpenMP/target_update_strided_struct_ptr_multiple_messages_from.c
A clang/test/OpenMP/target_update_strided_struct_ptr_multiple_messages_to.c
A clang/test/OpenMP/target_update_strided_struct_ptr_partial_messages_from.c
A clang/test/OpenMP/target_update_strided_struct_ptr_partial_messages_to.c
A clang/test/OpenMP/target_update_strided_struct_variable_count_and_stride_messages.c
A clang/test/OpenMP/target_update_variable_count_and_stride_messages.c
A clang/test/OpenMP/target_update_variable_stride_codegen.c
M clang/test/OpenMP/target_uses_allocators.c
M clang/test/OpenMP/target_uses_allocators_codegen.cpp
A clang/test/OpenMP/target_vtable_omp_indirect_call_lookup.cpp
M clang/test/OpenMP/task_codegen.cpp
M clang/test/OpenMP/task_target_device_codegen.c
M clang/test/OpenMP/task_transparent_messages.cpp
M clang/test/OpenMP/task_transparent_serialization.cpp
M clang/test/OpenMP/taskgroup_codegen.cpp
M clang/test/OpenMP/taskloop_codegen.cpp
M clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M clang/test/OpenMP/teams_distribute_codegen.cpp
M clang/test/OpenMP/teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_task_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/teams_num_teams_messages.cpp
M clang/test/OpenMP/teams_private_codegen.cpp
M clang/test/OpenMP/threadprivate_codegen.cpp
M clang/test/OpenMP/tile_codegen_tile_for.cpp
A clang/test/PCH/objc2_constant_literals.m
A clang/test/Parser/cxx-alias-decl-split-angle-fixit.cpp
M clang/test/Parser/cxx-altivec-bool-128.cpp
M clang/test/Parser/cxx-altivec.cpp
M clang/test/Parser/cxx0x-decl.cpp
M clang/test/Parser/pragma-attribute.cpp
M clang/test/ParserHLSL/group_shared.hlsl
M clang/test/ParserHLSL/group_shared_202x.hlsl
A clang/test/ParserHLSL/hlsl_resource_dimension_attr.hlsl
A clang/test/ParserHLSL/hlsl_resource_dimension_attr_error.hlsl
M clang/test/ParserOpenACC/parse-constructs.cpp
M clang/test/Preprocessor/arm64e.c
M clang/test/Preprocessor/hexagon-predefines.c
A clang/test/Preprocessor/miopt-peek-restore-header-guard.cpp
M clang/test/Preprocessor/predefined-arch-macros.c
M clang/test/Preprocessor/predefined-win-macros.c
M clang/test/Preprocessor/riscv-target-features.c
M clang/test/Preprocessor/wasm-target-features.c
M clang/test/Preprocessor/x86_target_features.c
A clang/test/Sema/AArch64/pcdphint-atomic-store.c
M clang/test/Sema/Inputs/lifetime-analysis.h
A clang/test/Sema/Inputs/warn-unused-but-set-static-global-header.h
A clang/test/Sema/PowerPC/attr-target-clones.c
A clang/test/Sema/PowerPC/ppc-dmf-mma-builtin-err.c
M clang/test/Sema/atomic-ops.c
M clang/test/Sema/attr-arm-sve-vector-bits.c
A clang/test/Sema/attr-availability-anyappleos-ast.c
A clang/test/Sema/attr-availability-anyappleos-builtin.m
A clang/test/Sema/attr-availability-anyappleos.c
M clang/test/Sema/attr-overflow-behavior-constexpr.cpp
M clang/test/Sema/attr-overflow-behavior-templates.cpp
M clang/test/Sema/attr-overflow-behavior.c
M clang/test/Sema/attr-overflow-behavior.cpp
M clang/test/Sema/attr-target.c
M clang/test/Sema/builtin-allow-sanitize-check.c
M clang/test/Sema/builtins-bcd-format-conversion.c
M clang/test/Sema/builtins-bcd-transform.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/builtins-microsoft-arm64.c
M clang/test/Sema/builtins-ppc.c
M clang/test/Sema/builtins-reduction-math.c
M clang/test/Sema/code_align.c
M clang/test/Sema/constant-builtins-2.c
A clang/test/Sema/constexpr-member-access.c
M clang/test/Sema/constexpr.c
A clang/test/Sema/gh182737.c
A clang/test/Sema/gh183974.c
A clang/test/Sema/multi-dim-array.c
M clang/test/Sema/scoped-atomic-ops.c
M clang/test/Sema/sugar-common-types.c
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
A clang/test/Sema/warn-lifetime-safety-dangling-global.cpp
M clang/test/Sema/warn-lifetime-safety-dataflow.cpp
M clang/test/Sema/warn-lifetime-safety-invalidations.cpp
M clang/test/Sema/warn-lifetime-safety-noescape.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
M clang/test/Sema/warn-thread-safety-analysis.c
A clang/test/Sema/warn-unused-but-set-static-global.c
A clang/test/Sema/warn-unused-but-set-static-global.cpp
A clang/test/Sema/x86-fixed-global-register.c
M clang/test/Sema/zvk-invalid-features.c
A clang/test/SemaCUDA/deferred-diags-dedup.cu
M clang/test/SemaCUDA/deferred-diags-limit.cu
M clang/test/SemaCUDA/deferred-diags.cu
A clang/test/SemaCUDA/dtor-constexpr-virtual-base.cu
A clang/test/SemaCXX/GH175783.cpp
A clang/test/SemaCXX/attr-exclude_from_explicit_instantiation.ignore-dllattr.cpp
M clang/test/SemaCXX/builtin-align-cxx.cpp
M clang/test/SemaCXX/builtin-bswapg.cpp
M clang/test/SemaCXX/builtin-classify-type.cpp
M clang/test/SemaCXX/builtin-is-bitwise-cloneable.cpp
A clang/test/SemaCXX/builtin_templates_invalid_parameters.cpp
M clang/test/SemaCXX/builtins-elementwise-math.cpp
M clang/test/SemaCXX/constexpr-x86-avx-builtins.cpp
M clang/test/SemaCXX/constexpr-x86-avx512f-builtins.cpp
M clang/test/SemaCXX/constexpr-x86-sse2-builtins.cpp
M clang/test/SemaCXX/copy-initialization.cpp
A clang/test/SemaCXX/cxx23-builtin-subscript.cpp
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
M clang/test/SemaCXX/cxx2b-overloaded-operator.cpp
M clang/test/SemaCXX/cxx2c-template-template-param.cpp
A clang/test/SemaCXX/deleted-template-spec-diag.cpp
A clang/test/SemaCXX/dllexport-constrained-inherited-ctor.cpp
M clang/test/SemaCXX/dllexport.cpp
M clang/test/SemaCXX/gh134265.cpp
A clang/test/SemaCXX/gh183505.cpp
A clang/test/SemaCXX/gh183887.cpp
A clang/test/SemaCXX/gh185270.cpp
M clang/test/SemaCXX/new-delete.cpp
M clang/test/SemaCXX/return-noreturn.cpp
M clang/test/SemaCXX/thread-safety-annotations.h
M clang/test/SemaCXX/type_pack_element.cpp
A clang/test/SemaCXX/typeid-incomplete-local-crash.cpp
M clang/test/SemaCXX/vector.cpp
A clang/test/SemaCXX/warn-maybe-unused-private-field.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
M clang/test/SemaCXX/warn-thread-safety-parsing.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-fixits-parm-unsupported.cpp
M clang/test/SemaCXX/warn-variable-not-needed.cpp
A clang/test/SemaHIP/builtins-amdgcn-buffer-format.hip
M clang/test/SemaHLSL/BuiltIns/Buffers.hlsl
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossX-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossY-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl
A clang/test/SemaHLSL/BuiltIns/RWStructuredBuffers.hlsl
M clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveAllEqual-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveBitOr-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveProduct-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/matrix-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/mul-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/resource_getpointer-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/transpose-errors.hlsl
M clang/test/SemaHLSL/Language/ImpCastAddrSpace.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/ExplicitCast.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/ExportNoInlineTest.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/InOut.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/NotGroupSharedTest.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/Pre202xWarning.hlsl
A clang/test/SemaHLSL/Language/groupsharedArgs/ScalarTest.hlsl
M clang/test/SemaHLSL/MatrixElementOverloadResolution.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-SampleBias.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-SampleCmp.hlsl
A clang/test/SemaHLSL/Resources/Texture2D-SampleCmpLevelZero.hlsl
R clang/test/SemaHLSL/Texture2D-SampleBias.hlsl
R clang/test/SemaHLSL/Texture2D-SampleCmp.hlsl
R clang/test/SemaHLSL/Texture2D-SampleCmpLevelZero.hlsl
R llvm/tools/bugpoint-passes/bugpoint.exports
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.6-beta.1
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/0de8ae14889b...252a35c1e3bc
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