[all-commits] [llvm/llvm-project] 4661c0: [AMDGPU] Waterfall loop codegen improvement in SII...
Krzysztof Parzyszek via All-commits
all-commits at lists.llvm.org
Wed Jun 24 03:48:29 PDT 2026
Branch: refs/heads/users/kparzysz/m02-locator-frontend
Home: https://github.com/llvm/llvm-project
Commit: 4661c0248ca5621b05808e25605b7adeb6c078a8
https://github.com/llvm/llvm-project/commit/4661c0248ca5621b05808e25605b7adeb6c078a8
Author: gretay-amd <Greta.Yorsh at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULaneMaskUtils.h
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_nortn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmax.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmin.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-vimage-vsample.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands-non-ptr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.mir
M llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll
Log Message:
-----------
[AMDGPU] Waterfall loop codegen improvement in SIInstrInfo (#192415)
When generating waterfall loops, use the instructions `v_cmpx_eq_*` and
`s_andn2_wrexec_*` as recommended for recent architectures, instead of
`v_cmp_eq_*` and `s_and saveexec`.
This PR only updates waterfall loop code generation in
`SIInstrInfo.cpp`. Other places that generated waterfall loops can be
handled separately.
- Add new lane mask constant for `s_andn2_wrexec`
- Set `isTerminator` for `v_cmpx_eq_{u32,u64}_e32`
- Fix test `mubuf-legalize-operands.mir` to track liveness needed for
verifying phi nodes
- Update .ll and .mir tests to accept the new instruction sequences
Assisted-by: Claude
Commit: bcae37f4a8e8d163e34080186b789a6cb0ae91d1
https://github.com/llvm/llvm-project/commit/bcae37f4a8e8d163e34080186b789a6cb0ae91d1
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/reset_return_value_slot.ll
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Reset retval when return type is void (#205107)
In `returnFromCallee`, the return value is moved out from
`CurrentFrame->RetVal`. So `visitReturnInst` is always responsible for
setting a valid value.
Closes https://github.com/llvm/llvm-project/issues/204992
Commit: fe5ad843d83aef5846862064551fb8e5fc8e9048
https://github.com/llvm/llvm-project/commit/fe5ad843d83aef5846862064551fb8e5fc8e9048
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
A llvm/test/Transforms/Attributor/callbr.ll
Log Message:
-----------
[Attributor] Do not delete side-effect-free terminator (#205052)
Fixes: https://github.com/llvm/llvm-project/issues/192012
Commit: 4e6976b70b52f2f84b2b4f28c7badbfb401d302e
https://github.com/llvm/llvm-project/commit/4e6976b70b52f2f84b2b4f28c7badbfb401d302e
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/test/AST/ByteCode/command-line-options.cpp
Log Message:
-----------
Fix test on read-only file systems (#205108)
Fixes 25e4057d49055a645dc6a51ae1f40ac647aaed5b.
Use the -fsyntax-only flag instead of -c. This performs the necessary
parsing and diagnostics verification (the actual intent of this test)
without attempting to emit an object file.
Commit: 6b59e09d1443b5c3905daa457d241487eb9bfc3f
https://github.com/llvm/llvm-project/commit/6b59e09d1443b5c3905daa457d241487eb9bfc3f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-device-compile.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
Log Message:
-----------
[HIP] Fix `--no-offload-new-driver` behavior after #201457 (#205094)
Summary:
https://github.com/llvm/llvm-project/pull/201457 changed the default for
all targets. Even though the old offload driver is getting removed soon
we shouldn't break it for the LLVM23 release. This simply reverts to the
original behavior, the old driver builds its jobs manually so we can
just turn off this one specific case unless the user forced it.
Commit: 5b687a501bd26cc46d6b52582aa926acc0d3564e
https://github.com/llvm/llvm-project/commit/5b687a501bd26cc46d6b52582aa926acc0d3564e
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/test/did-change-configuration-params.test
Log Message:
-----------
Be more permissive on spaces in command line argument parsing (#205111)
Fixes c888371ff0a3e10f8472676dc992f4347fca58d9.
This change properly accommodates both presence and absence of extra
trailing arguments like -resource-dir.
Commit: c79333e16d4c567c4ebeccb878ac2fc40fed687d
https://github.com/llvm/llvm-project/commit/c79333e16d4c567c4ebeccb878ac2fc40fed687d
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-variant.cpp
Log Message:
-----------
[flang][OpenMP] Centralize pushing/popping directive context (#204924)
Put calls to PushContextAndClauseSets to the Enter function for
OpenMPConstruct and OpenMPDeclarativeConstruct, and popping the context
to the corresponding Leave functions. This moves most of the context
handling to the top-level AST entries. This will allow more centralized
verification of common clause properties in the future.
Commit: 6e4e181c83d076bb8e4c208ae28817f3900b23fa
https://github.com/llvm/llvm-project/commit/6e4e181c83d076bb8e4c208ae28817f3900b23fa
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/cmake/modules/ClangConfig.cmake.in
A cmake/Modules/GetTripleCMakeSystemName.cmake
A cmake/Modules/NormalizeTriple.cmake
M llvm/cmake/modules/LLVMConfig.cmake.in
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/runtimes/CMakeLists.txt
M runtimes/CMakeLists.txt
Log Message:
-----------
runtimes: Pass CMAKE_SYSTEM_NAME based on target triple (#203504)
Compute the cmake system name from the target triple, rather
than passing through the host's. This is primarily to stop
forwarding OSX specific cmake variables.
This fixes build failures when trying to build gpu libc on mac
hosts. Previously it would fail on several issues, starting with
an unused argument -mmacos-version-min error, followed by other
errors caused by passing -isysroot.
Secondarily, restrict the cmake imported targets when cross compiling.
Without this, the amdgpu build prints many cmake warnings about the
target not supporting shared libraries.
Claude did most of the actual work, though it required quite a few
rounds of prodding to get it into the right place. In particular it
took care of handling all of the cmake platform recognized names from
the triple.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 1ba7c9677649ed5072205c63532c1c2d5da38e13
https://github.com/llvm/llvm-project/commit/1ba7c9677649ed5072205c63532c1c2d5da38e13
Author: Koakuma <koachan at protonmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/lib/Target/Sparc/SparcInstr64Bit.td
M llvm/lib/Target/Sparc/SparcInstrInfo.td
M llvm/test/CodeGen/SPARC/bswap.ll
Log Message:
-----------
[SPARC] Use hardware byteswapper when we have V9 (#191720)
On V9 processors we have endianness-adjusted memory operations, that can
be used to implement BSWAPs.
Use those instructions whenever possible to reduce code size.
Commit: e07c1e710ccf0be64140bd5774ba8dccce505bfd
https://github.com/llvm/llvm-project/commit/e07c1e710ccf0be64140bd5774ba8dccce505bfd
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Move unique clauses to allowedOnceClauses in OMP.td (#204995)
Many unique clauses were listed in "allowedClauses", which turned off
the single-occurrence check in flang. Move these clauses to the right
category to enable this check.
One exception to this is the IF clause: the IF clause is unique for all
non-compound directives, but is repeatable on compound ones with the
restriction that at most one IF clause can apply to any of the
constituents. This restriction is currently not enforced correctly in
flang, and so the IF clause was left unchanged.
Although this change is applied to a file shared between flang and
clang, clang does not use these categories for its checks, and hence is
not affected by this patch.
Commit: 237fbfd7cfbd2a2a4f0b171e493aa85b8506065a
https://github.com/llvm/llvm-project/commit/237fbfd7cfbd2a2a4f0b171e493aa85b8506065a
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/LiveInterval.h
M llvm/lib/CodeGen/LiveInterval.cpp
M llvm/lib/CodeGen/LiveIntervals.cpp
A llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-dead-def-join.mir
Log Message:
-----------
[CodeGen] Join live range segments after dead def move (#204648)
Moving a dead def upward can retag a following live-range segment to the
same value as the previous segment. That leaves adjacent same-value
segments, which live range verification rejects.
Add a shared LiveRange helper for merging adjacent same-value segments.
Use it in the existing value-number merge code and after retagging later
segments for a moved dead def. Add an AMDGPU scheduler regression test.
Commit: 448b725bb78bc288c5f6e3ad27856c92902f6537
https://github.com/llvm/llvm-project/commit/448b725bb78bc288c5f6e3ad27856c92902f6537
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Compilation.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Job.h
M clang/include/clang/Driver/SanitizerArgs.h
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/Driver.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/AIX.h
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.h
M clang/lib/Driver/ToolChains/AVR.cpp
M clang/lib/Driver/ToolChains/AVR.h
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
M clang/lib/Driver/ToolChains/CSKYToolChain.cpp
M clang/lib/Driver/ToolChains/CSKYToolChain.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/CrossWindows.cpp
M clang/lib/Driver/ToolChains/CrossWindows.h
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cuda.h
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/FreeBSD.h
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Fuchsia.h
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPAMD.h
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/HLSL.h
M clang/lib/Driver/ToolChains/Haiku.cpp
M clang/lib/Driver/ToolChains/Haiku.h
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/Linux.h
M clang/lib/Driver/ToolChains/MSP430.cpp
M clang/lib/Driver/ToolChains/MSP430.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/MSVC.h
M clang/lib/Driver/ToolChains/Managarm.cpp
M clang/lib/Driver/ToolChains/Managarm.h
M clang/lib/Driver/ToolChains/MinGW.cpp
M clang/lib/Driver/ToolChains/MinGW.h
M clang/lib/Driver/ToolChains/NetBSD.cpp
M clang/lib/Driver/ToolChains/NetBSD.h
M clang/lib/Driver/ToolChains/OHOS.cpp
M clang/lib/Driver/ToolChains/OHOS.h
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/lib/Driver/ToolChains/OpenBSD.h
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/lib/Driver/ToolChains/PS4CPU.h
M clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp
M clang/lib/Driver/ToolChains/SPIRVOpenMP.h
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/Serenity.cpp
M clang/lib/Driver/ToolChains/Serenity.h
M clang/lib/Driver/ToolChains/Solaris.cpp
M clang/lib/Driver/ToolChains/Solaris.h
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/lib/Driver/ToolChains/VEToolchain.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/ToolChains/WebAssembly.h
M clang/lib/Driver/ToolChains/XCore.cpp
M clang/lib/Driver/ToolChains/XCore.h
M clang/lib/Driver/ToolChains/ZOS.cpp
M clang/lib/Driver/ToolChains/ZOS.h
M clang/test/Driver/hip-link-bundle-archive.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/unittests/Driver/DXCModeTest.cpp
Log Message:
-----------
clang/Driver: Use struct type for BoundArch instead of StringRef (#204748)
Change BoundArch arguments in the clang driver from StringRef (or
sometimes const char*) to a dedicated struct type that contains both
the architecture string and a parsed OffloadArch enum field. In the
future it may be useful to contain other feature bits here.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Commit: e57068a5bd9fd9be5a265b83552689ff49f8fcb4
https://github.com/llvm/llvm-project/commit/e57068a5bd9fd9be5a265b83552689ff49f8fcb4
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/BundleAttributes.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/IR/BundleAttributes.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Try folding align assumes with unkown offset (#204962)
There are a few folds which don't depend on the offset of the alignment,
but are nevertheless guarded on whether the offset is known. Run these
folds unconditionally instead.
Commit: d9d2f3221b9e499f183acb1d3bece3c1d8f1462a
https://github.com/llvm/llvm-project/commit/d9d2f3221b9e499f183acb1d3bece3c1d8f1462a
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/single03.f90
M flang/test/Semantics/OpenMP/single04.f90
Log Message:
-----------
[flang][OpenMP] Refactor semantic check of SINGLE construct (#204339)
Extract it into a separate function and simplify the code. Avoid making
the distinction between a clause appearing on the "begin" and the "end"
directives for the purposes of emitting diagnostic messages.
One change in behavior is that using the same list item multiple times
in COPYPRIVATE clause(s) is an error regardless of the placement of the
clauses. Previously in some cases it was treated as a warning.
Part of the motivation is the goal of eliminating explicit definitions
of end-directives for directives that are not delimited, e.g. "end
single", but not "end declare_variant".
Commit: 421ae3759e92132f066c77764d6da31e8a74e47c
https://github.com/llvm/llvm-project/commit/421ae3759e92132f066c77764d6da31e8a74e47c
Author: earnol <earnol at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/misplaced-widening-cast-bitfield.cpp
Log Message:
-----------
[clang-tidy] Fix bugprone-misplaced-widening-cast false positive on bitfield assignments (#197554)
When CheckImplicitCasts=true, the checker used the declared type of a
bitfield insread of the actual bitfield width to determine if widening
occurs. This caused false positives when assigning to a bitfield whose
declared type is wider than the source, but whose bitfield width
actually matches the source type. This behavior is fixed.
This PR fixes https://github.com/llvm/llvm-project/issues/197261 issue.
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
Commit: 132e019c1f8f485c764b22670b5ea7ff2d8556a8
https://github.com/llvm/llvm-project/commit/132e019c1f8f485c764b22670b5ea7ff2d8556a8
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
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_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/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
R clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_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_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_codegen_03.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_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_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_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_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_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_collapse_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_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_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_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_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_collapse_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_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_collapse_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_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_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
A clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_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_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_private_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/add_attributes.ll
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/allocatable_gpu_reduction_teams.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
M offload/include/Shared/Environment.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M openmp/device/include/Interface.h
M openmp/device/src/Reduction.cpp
Log Message:
-----------
Reapply "[OpenMP][offload] Cross-team reductions with variable number of teams" (#204914) (#205071)
Together with the fix for
https://github.com/llvm/llvm-project/pull/195102#issuecomment-4756584289
Commit: b9940aa6cf3c30ae8eb3c2059c0869ed95bb42aa
https://github.com/llvm/llvm-project/commit/b9940aa6cf3c30ae8eb3c2059c0869ed95bb42aa
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
[InstCombine] Merge consecutive assumes (#204983)
This should make assumes a bit more efficient, since it removes a few
instructions. This should also help with optimizations that are limited
in how many instructions they step through.
Commit: 1a4e2d2f0a7b60083f19e68abff80dc14702a579
https://github.com/llvm/llvm-project/commit/1a4e2d2f0a7b60083f19e68abff80dc14702a579
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for pk_u64 add and sub (#205079)
Commit: 97fe69eaec8920e84308f80ade9e641aa424267b
https://github.com/llvm/llvm-project/commit/97fe69eaec8920e84308f80ade9e641aa424267b
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/sign_extend.ll
Log Message:
-----------
[AMDGPU] Add a test for sext i1 feeding into icmp (#205121)
This is a precommit of a test case that causes problems for #204238.
Commit: 63862a2d80759a88e0b7408e555bb8f2292c5d40
https://github.com/llvm/llvm-project/commit/63862a2d80759a88e0b7408e555bb8f2292c5d40
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
Log Message:
-----------
[libc][math] Add missing freebsd entrypoint for cbrtf16 (#205011)
Adds missing freebsd entrypoint in
[5429667](https://github.com/llvm/llvm-project/pull/205011/commits/5429667e053398d39e180f084e0dd5c4c416aa27)
and fixes the wrong entry point for `crbtf1` in
[cdc394f](https://github.com/llvm/llvm-project/pull/205011/commits/cdc394f8ba7dffb9f49563d601def7cf31561d6f),
which was `cbrtf` in `baremetal/riscv`
Commit: a92039c3e44e102f90751c8e8b2ab70a077016b7
https://github.com/llvm/llvm-project/commit/a92039c3e44e102f90751c8e8b2ab70a077016b7
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang-rt/lib/runtime/CMakeLists.txt
M openmp/module/CMakeLists.txt
Log Message:
-----------
[flang-rt][openmp] Add file-level dependencies for builtin mod files (#204260)
CMake currently intentionally ignores intrinsic dependencies. flang-rt
already had a workaround using target-level dependencies, but it does
not know about dependencies between .mod files created within the same
add_library that CMake ignores. As a result, as reported in #203549,
updating a .mod did not trigger rebuilding the .mod files that depend on
it. Specifically, .mod files store the checksum of used .mod files which
need to be updated and therefore require transitive rebuidling.
As mentioned, CMake already adds this file-level dependency itself for
non-intrinsic modules dependencies. In this PR we are injecting the
additional dependencies that CMake does not add via OBJECT_DEPENDS.
Three caveats:
1. Using OBJECT_DEPENDS for dependencies between modules of the same
OBJECT library makes Ninja complain about circular dependencies. To
avoid, split __fortran_builtins.f90 and __cuda_builtins.f90 into their
own OBJECT libraries each.
2. The dependency cannot be on the .mod files. Because of how CMake's
dependency mechanism works, the dependency scanning runs only after
ensuring that the OBJECT_DEPENDS files exist. So if they don't exist
yet, we get a missing dependency error. To avoid, we depend on the .o
file instead.
3. Generator expressions do not work in OBJECT_DEPENDS. That is, we
cannot use `$<TARGET_FILES:flang_rt.mod.fortran.builtins>`, but
fortunately we can use OBJECT_OUTPUTS to make the location predictable.
At some point in the future,
https://gitlab.kitware.com/cmake/cmake/-/issues/26803 should be resolved
and become the minimum required version to build LLVM, in which case
these workarounds can be removed.
Commit: f63cb33699f4ab593328c15ee99650514bc0ab2c
https://github.com/llvm/llvm-project/commit/f63cb33699f4ab593328c15ee99650514bc0ab2c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M .gitignore
Log Message:
-----------
gitignore: Add emacs lock files (#205055)
Commit: bd89ac741dff1a6edec15821b719a34ab5646f3f
https://github.com/llvm/llvm-project/commit/bd89ac741dff1a6edec15821b719a34ab5646f3f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
[lldb][Windows] Remember server's primary stop thread on gdb-remote stops (#203525)
The client kept the previously-selected thread across stops, ignoring
the primary tid from the server in `T<sig>thread:<tid>`.
On Windows, lldb-server halts the inferior by injecting a thread called
`DbgUiRemoteBreakin` whose only job is to execute an int 3. After an
interrupt, the process has `N+1` threads and the new one is what caused
the stop. The server reports that thread as primary, but the client
ignored it and stayed on whichever thread was selected before. In
`TestExpressionInSyscall` that thread is main, paused just past
`NtDelayExecution`'s syscall with a garbage value in the RSI register.
Evaluating an expression there crashes the JIT trampoline.
This patch makes `ProcessGDBRemote::RefreshStateAfterStop` record the
primary tid from the most recent T-packet's `thread:<tid>` and select it
after applying per thread stop infos.
Fixes `TestBreakpointSetRestart` and `TestExpressionInSyscall` with
LLDB_USE_LLDB_SERVER=1.
rdar://180307914
Commit: d4ae086789debfaa1065b97dfd2cf78b44544eba
https://github.com/llvm/llvm-project/commit/d4ae086789debfaa1065b97dfd2cf78b44544eba
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
A llvm/test/CodeGen/AMDGPU/fold-imm-pk64.mir
Log Message:
-----------
[AMDGPU] Prevent folding of immediates larger than 64 bit (#204434)
Commit: f4927c95fa74247304af703d4dae4396dcbc5a2f
https://github.com/llvm/llvm-project/commit/f4927c95fa74247304af703d4dae4396dcbc5a2f
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
M llvm/test/CodeGen/AMDGPU/pk-lshl-add-u64.ll
M llvm/test/CodeGen/AMDGPU/shl.v2i64.ll
Log Message:
-----------
[AMDGPU] Make v2x64 BUILD_VECTOR legal on gfx1251 (#204470)
Commit: 08c728e8528c9584bc1fe0f46bbdd657e368be91
https://github.com/llvm/llvm-project/commit/08c728e8528c9584bc1fe0f46bbdd657e368be91
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/cmake/modules/ClangConfig.cmake.in
R cmake/Modules/GetTripleCMakeSystemName.cmake
R cmake/Modules/NormalizeTriple.cmake
M llvm/cmake/modules/LLVMConfig.cmake.in
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/runtimes/CMakeLists.txt
M runtimes/CMakeLists.txt
Log Message:
-----------
Revert "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133)
Reverts llvm/llvm-project#203504
Breaks build pending #205130
Commit: 91e344bd26bf18badeaf5bd8e5cf41f1f7e1cca4
https://github.com/llvm/llvm-project/commit/91e344bd26bf18badeaf5bd8e5cf41f1f7e1cca4
Author: youngd007 <davidayoung at meta.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[lldb][bazel] Add the Windows process plugin to the bazel build (#203146)
Add a cc_library for the native Windows process plugin
(ProcessWindowsCommon),
gated to @platforms//os:windows, and register it via the dedicated
@LLDB_PROCESS_WINDOWS_PLUGIN@ slot in the generated Plugins.def. This
mirrors the
CMake build, which special-cases ProcessWindowsCommon into that slot so
it is
initialized after all other process plugins but before ProcessGDBRemote.
With the help of claude.
Tested internally at Meta by converting Bazel -> BUCK and confirming
matches working BUCK contents for windows lldb build.
Commit: 6e562169fd026e26124fe4e2e435d3a4c522ffe2
https://github.com/llvm/llvm-project/commit/6e562169fd026e26124fe4e2e435d3a4c522ffe2
Author: Sungbin Jo <goranmoomin at daum.net>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/ObjectYAML/MachOEmitter.cpp
A llvm/test/ObjectYAML/MachO/endianness.yaml
Log Message:
-----------
[yaml2obj][MachO] Fix byte order of the indirect symbol table (#205044)
This is a follow-up of PR #203680 that added the test case
`linkedit-alignment.test`, which currently fails on big-endian buildbots
(see: https://lab.llvm.org/buildbot/#/builders/98/builds/3084 and
https://lab.llvm.org/buildbot/#/builders/114/builds/906).
The failure seems to be on `yaml2obj`, where `writeDynamicSymbolTable`
emits an indirect symbol table in host byte order rather than the
specified object's byte order (i.e. the `IsLittleEndian` field value).
This PR adds the missing swap and a regression test that round-trips all
endian-sensitive fields with both endianness values.
Commit: 1a63fca933a0e8a3cb807d462ef50901a90f83d2
https://github.com/llvm/llvm-project/commit/1a63fca933a0e8a3cb807d462ef50901a90f83d2
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Disable buildkite for PluginProcessWindowsCommon (#205141)
Commit: 08d766ba6d1ffdeb894c0c935465f7134aef6dfc
https://github.com/llvm/llvm-project/commit/08d766ba6d1ffdeb894c0c935465f7134aef6dfc
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libcxx/utils/ci/lnt/README.md
M libcxx/utils/ci/lnt/run-benchbot
M libcxx/utils/ci/lnt/run-benchmarks
Log Message:
-----------
[libc++][lnt] Allow retaining build artifacts in run-benchbot (#205146)
Also, as a drive-by, introduce `--results-dir` to specify where to put
the JSON results instead of using `--build-dir` for that.
Assisted by Claude
Commit: a88b88bdd346282a71b2f01b1513936280c20a93
https://github.com/llvm/llvm-project/commit/a88b88bdd346282a71b2f01b1513936280c20a93
Author: Yihan Wang <yronglin777 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/__utility/constant_wrapper.h
M libcxx/include/utility
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
A libcxx/test/std/utilities/const.wrap.class/template.verify.cpp
M libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] Implement P4206R0 Revert string support in std::constant_wrapper (#203338)
Fixes https://github.com/llvm/llvm-project/issues/203336
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>
Commit: 20cf19f0c34579273382e20947ea8e6373949796
https://github.com/llvm/llvm-project/commit/20cf19f0c34579273382e20947ea8e6373949796
Author: Xavier Roche <roche at httrack.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/include/__math/abs.h
M libcxx/test/std/numerics/c.math/abs.pass.cpp
Log Message:
-----------
[libc++] std::abs support for _BitInt(N) and __int128 (#196532)
`std::abs` does not accept `__int128` or signed `_BitInt(N)`: the call
is ambiguous and fails to compile (#204212).
This adds an explicit `abs(__int128_t)` overload and an
`abs(_BitInt(N))` overload that deduces the width, so every signed
`_BitInt` gets a same-type result. `_BitInt` does not integer-promote,
so without this overload a narrow signed `_BitInt` would be an ambiguous
call against `abs(int/long/long long)` instead of promoting the way
`signed char` and `short` do. Standard narrow types are unchanged: they
still go through `abs(int)`.
Part of the [_BitInt(N) libc++
effort](https://discourse.llvm.org/t/bitint-n-support-in-libc-investigations-possible-improvements-looking-for-guidance/90063).
Fixes #204212
Assisted-by: Claude (Anthropic)
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 86f2e71cb8d165b59ad31a442b2391e23826133e
https://github.com/llvm/llvm-project/commit/86f2e71cb8d165b59ad31a442b2391e23826133e
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaChecking.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/Analysis/bstring.c
M clang/test/Analysis/malloc.c
M clang/test/Analysis/pr22954.c
M clang/test/Sema/builtin-memcpy.c
M clang/test/Sema/builtin-object-size.c
M clang/test/Sema/warn-fortify-source.c
A clang/test/Sema/warn-stringop-overread.c
M compiler-rt/test/asan/TestCases/Windows/issue64990.cpp
Log Message:
-----------
[Clang][Sema] Add -Wstringop-overread warning for source buffer overreads (#183004)
This PR adds a new `-Wstringop-overread` warning that diagnoses calls to
memory functions where the specified size exceeds the size of the source
buffer, increasing parity with GCC's `-Wstringop-overread`.
The warning is emitted when the read size is a compile-time constant
that is greater than the size of the source buffer (when known
statically).
This check applies to the following functions:
- `memcpy`, `memmove`, `mempcpy` (and `__builtin_` / `__builtin___*_chk`
variants)
- `memchr`
- `memcmp`, `bcmp`
Some of the existing code for `-Wfortify-source` was refactored into a
helper class to make its lambdas accessible to other functions.
Fixes #83728
Assisted-by: claude-opus-4.6
---------
Co-authored-by: Erich Keane <ekeane at nvidia.com>
Commit: 1f20833fa42ddec64e170b2738e5cdbc007bb5de
https://github.com/llvm/llvm-project/commit/1f20833fa42ddec64e170b2738e5cdbc007bb5de
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstSimplify/ConstProp/active-lane-mask.ll
Log Message:
-----------
[ValueTracking] Mark frexp, ALM propagates poison (#205139)
Commit: 582a20269e2cc190ce73151f51e99c9e14ffc202
https://github.com/llvm/llvm-project/commit/582a20269e2cc190ce73151f51e99c9e14ffc202
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/CMakeLists.txt
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
A llvm/lib/Target/RISCV/RISCVQCRelaxMarking.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/test/CodeGen/RISCV/O3-pipeline.ll
A llvm/test/CodeGen/RISCV/qc-access-marking.ll
Log Message:
-----------
[RISCV] Add a Pass for adding %qc.access specifiers (#201938)
Qualcomm's ABI has Access Relocation Markers, which are used to enable
more linker relaxations. This change implements a pass which will
annotate loads and stores (accesses) which are the single user of a
`qc.e.li`-materialized address with these markers so they can be relaxed
in the linker.
This is a follow-up to #188671.
Commit: 93b1f81e03ef4c717a9d222b46f78c38bcff0a3f
https://github.com/llvm/llvm-project/commit/93b1f81e03ef4c717a9d222b46f78c38bcff0a3f
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libcxx/include/__random/bernoulli_distribution.h
M libcxx/include/__random/binomial_distribution.h
M libcxx/include/__random/cauchy_distribution.h
M libcxx/include/__random/chi_squared_distribution.h
M libcxx/include/__random/discard_block_engine.h
M libcxx/include/__random/discrete_distribution.h
M libcxx/include/__random/exponential_distribution.h
M libcxx/include/__random/extreme_value_distribution.h
M libcxx/include/__random/fisher_f_distribution.h
M libcxx/include/__random/gamma_distribution.h
M libcxx/include/__random/generate_canonical.h
M libcxx/include/__random/geometric_distribution.h
M libcxx/include/__random/independent_bits_engine.h
M libcxx/include/__random/linear_congruential_engine.h
M libcxx/include/__random/lognormal_distribution.h
M libcxx/include/__random/mersenne_twister_engine.h
M libcxx/include/__random/negative_binomial_distribution.h
M libcxx/include/__random/normal_distribution.h
M libcxx/include/__random/piecewise_constant_distribution.h
M libcxx/include/__random/piecewise_linear_distribution.h
M libcxx/include/__random/poisson_distribution.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/seed_seq.h
M libcxx/include/__random/shuffle_order_engine.h
M libcxx/include/__random/student_t_distribution.h
M libcxx/include/__random/subtract_with_carry_engine.h
M libcxx/include/__random/uniform_int_distribution.h
M libcxx/include/__random/uniform_real_distribution.h
M libcxx/include/__random/weibull_distribution.h
A libcxx/test/libcxx/numerics/rand/nodiscard.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bernoulli/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.cauchy/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.chisq/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.f/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.normal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.t/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.exp/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.extreme/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.gamma/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.pconst/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.real/bad_engine.verify.cpp
Log Message:
-----------
[libc++][random] Applied `[[nodiscard]]` to `<random>` (#204970)
Towards: #172124
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
- https://wg21.link/rand
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: ef22d07c2c4fc3209cc14de2734fbb336ddf42b4
https://github.com/llvm/llvm-project/commit/ef22d07c2c4fc3209cc14de2734fbb336ddf42b4
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
Log Message:
-----------
[flang][OpenMP] Use early exit to unindent some code, NFC (#205150)
Commit: 2bb8a56e7dfc6e0a90c0464d9b65640f0252883d
https://github.com/llvm/llvm-project/commit/2bb8a56e7dfc6e0a90c0464d9b65640f0252883d
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/lib/Core/BinaryEmitter.cpp
M llvm/include/llvm/MC/MCObjectStreamer.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCObjectStreamer.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/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMMCInstLower.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
M llvm/lib/Target/Mips/MipsAsmPrinter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/lib/Target/X86/X86MCInstLower.cpp
Log Message:
-----------
[MC] emitCodeAlignment: take MCSubtargetInfo by reference. NFC (#205140)
The fragment member cannot be null, and the sibling streamer hooks
(emitInstruction, initSections, emitPrefAlign) already take it by
reference.
Commit: 1d8a54f7cf233be64ffce08a3c5697ea8f1cccb5
https://github.com/llvm/llvm-project/commit/1d8a54f7cf233be64ffce08a3c5697ea8f1cccb5
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/CIR/LoweringHelpers.h
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/LoweringHelpers.cpp
M clang/test/CIR/Lowering/const-array-bulk-lowering-fallbacks.cir
M clang/test/CIR/Lowering/const-array-of-pointers.cir
Log Message:
-----------
[CIR] Lower const arrays as a single llvm.mlir.constant (#203590)
When compiling the blender benchmark for SPEC CPU2017, we hit a case
where a very large array (more than 400k elements) is initialized with
constant values. However, because it contains trailing zeros, CIR
generates a constant record initializer (an array of elements, plus a
zero-initialized trailing array). We were lowering this to the LLVM
dialect using a global initializer function with a huge number of calls
to insertelement. The subsequent lowering to LLVM IR constant folded
back to a constant initializer, but it took about 40 minutes to compile.
The recent fix to avoid calling insertelement for the array
initialization didn't fix this case because it handled only arrays, not
records.
This change updates the lowering to the LLVM dialect to lower constant
array attributes to a single llvm.mlir.const value rather than
attempting to build a chain of insertvalue ops whenever possible.
Commit: 8140495ed285468512e8b0c0fc576234750bd15f
https://github.com/llvm/llvm-project/commit/8140495ed285468512e8b0c0fc576234750bd15f
Author: Bidhan <bidhan619 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFFrameLowering.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.h
A llvm/test/DebugInfo/BPF/dbg-location-fbreg.ll
Log Message:
-----------
[BPF] override getFrameIndexReference for frame object offsets (#204722)
### Summary
The BPF backend currently does not override `getFrameIndexReference()`.
Since BPF uses a fixed frame pointer (R10), frame object offsets are
already expressed relative to the frame pointer. The generic
`TargetFrameLowering::getFrameIndexReference()` implementation adjusts
offsets using the stack size, which is not appropriate for BPF.
This PR overrides `getFrameIndexReference()` to return the correct frame
object offsets for the BPF frame model, resulting in accurate debug
locations for stack variables. For example, the stack variable `local`
in the reproducer below previously received:
```
DW_AT_location (DW_OP_fbreg +0)
```
and now correctly receives:
```
DW_AT_location (DW_OP_fbreg -32)
```
which matches the actual location of the stack object relative to the
frame pointer.
-----
**Rust code snippet**
```
#[repr(C)]
#[derive(Copy, Clone)]
pub struct S {
pub a: u64,
pub b: u64,
pub c: u64,
}
#[unsafe(no_mangle)]
pub extern "C" fn entry(x: u64) -> u64 {
let mut local = S { a: x, b: x + 1, c: x + 2 };
let ptr_to_b = &mut local.a as *mut u64;
let ptr_to_b = core::hint::black_box(ptr_to_b);
unsafe {
core::ptr::write_volatile(ptr_to_b, x + 42);
}
unsafe { core::ptr::read_volatile(ptr_to_b) }
}
```
**Build commands**
```
> rustc +nightly repro.rs --emit=llvm-ir -g -O --crate-type=lib -o repro.l
> ./build/bin/lc repro.l -march=bpfel -O2 -filetype=obj -o repro.o
> ./build/bin/lvm-dwarfdump --debug-info --debug-loc --debug-loclists repro.o > repro.debug
```
**DW_TAG_variable info for variable "local"**
Before patch:
```
0x00000114: DW_TAG_variable
DW_AT_location (DW_OP_fbreg +0)
DW_AT_name ("local")
DW_AT_alignment (8)
DW_AT_decl_file ("/home/LLVM/llvm-project/repro.rs")
DW_AT_decl_line (11)
DW_AT_type (0x000001b8 "repro::S")
```
After patch:
```
0x00000114: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -32)
DW_AT_name ("local")
DW_AT_alignment (8)
DW_AT_decl_file ("/home/LLVM/llvm-project/repro.rs")
DW_AT_decl_line (11)
DW_AT_type (0x000001bc "repro::S")
```
Commit: 46995fb32b999c6332fbd1bdfb84d79cad47195f
https://github.com/llvm/llvm-project/commit/46995fb32b999c6332fbd1bdfb84d79cad47195f
Author: Akhil Goel <akhil.goel at intel.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
M mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
A mlir/test/Conversion/MathToXeVM/math-to-ocl.mlir
Log Message:
-----------
[mlir][Math][XeVM] Add Math to OCL conversion patterns (#198370)
This PR adds conversion patterns to convert supported math ops to SPIR-V
OpenCL builtin calls. These lowerings correspond to `OpExtInst` calls
into the OpenCL SPIR-V extended instruction set via mangled
`__spirv_ocl_` entry points for f32/f64 variants.
Commit: 49a0e107e9f0d244d41eb766c67d02900eff8ee3
https://github.com/llvm/llvm-project/commit/49a0e107e9f0d244d41eb766c67d02900eff8ee3
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/IR/CMakeLists.txt
M llvm/lib/IR/Verifier.cpp
A llvm/lib/IR/VerifierAMDGPU.cpp
A llvm/lib/IR/VerifierInternal.h
M llvm/test/Verifier/callbr-intrinsic.ll
M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
Log Message:
-----------
[RFC][NFCI][IR] Extract AMDGPU-specific verification logic into `VerifierAMDGPU.cpp` (#204284)
`Verifier.cpp` is large and already mixes generic IR verification with
target-specific checks. We also have a growing amount of AMDGPU verifier
logic downstream, which would all end up in the same file if we don't
address this, and that is not ideal.
This patch extracts AMDGPU-specific verification logic into a separate
`VerifierAMDGPU.cpp` file, with shared infrastructure
(`VerifierSupport`) moved into `VerifierInternal.h`.
This is purely a code organization change, not a target-dependent IR
verifier. All checks remain compiled and linked into `LLVMCore`
regardless of the target triple. The extracted functions are called
unconditionally at well-defined extension points in `Verifier.cpp`, and
each function internally gates on target-specific conditions (for
example, triple checks or intrinsic IDs) as needed. The file is strictly
limited to AMDGPU-specific IR constructs (amdgcn intrinsics, AMDGPU
module flags, etc.), and does not contain generic IR rules that vary by
target.
This PR deliberately avoided introducing polymorphism, since this is not
a target-dependent verification framework. Instead, this follows a
pattern similar to TargetParser (for example `AMDGPUTargetParser.cpp`):
flat file layout, free functions, no registration, and unconditional
compilation.
Other targets that want similar separation can follow the same pattern.
Open to suggestions on whether there is a better long-term way to
structure this.
Commit: 39f5357397ef97aa2143360f3613decef981d02b
https://github.com/llvm/llvm-project/commit/39f5357397ef97aa2143360f3613decef981d02b
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Lower/CUDA/cuda-gpu-managed.cuf
Log Message:
-----------
[flang][cuda] Apply implicit managed attribute to pointer variables under -gpu=mem:managed (#204634)
When -gpu=mem:managed is active with CUDA Fortran enabled, only
allocatable variables were implicitly given the managed CUDA data
attribute. Pointer variables were left without it, causing their
allocations to use host memory instead of cudaMallocManaged.
This patch extends the implicit managed attribute in
FinishSpecificationPart to also cover pointer symbols. A
LanguageFeature::CUDA guard is added so the attribute is only applied
when CUDA Fortran semantics are active. The implicit pinned attribute
(-gpu=mem:pinned) remains allocatable-only.
Commit: 04baf7ed88bc833a599d20bafb07fbceccade4a7
https://github.com/llvm/llvm-project/commit/04baf7ed88bc833a599d20bafb07fbceccade4a7
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
Log Message:
-----------
[SDAG][LegalizeType] Implement result vector widening for VECTOR_DEINTERLEAVE (#203105)
I accidentally found that we haven't implemented result vector widening
for `ISD::VECTOR_DEINTERLEAVE`. This patch implements such type
legalization.
---------
Co-authored-by: Simon Pilgrim <git at redking.me.uk>
Co-authored-by: Craig Topper <craig.topper at sifive.com>
Commit: 738fecbc68e2e3ca04efd26db648eff57f2456ff
https://github.com/llvm/llvm-project/commit/738fecbc68e2e3ca04efd26db648eff57f2456ff
Author: Kunal Pathak <kunalspathak.github at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-profgen/aarch64-disassemble-all-features.test
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[llvm-profgen] Enable all AArch64 instructions for disassembly (#204619)
llvm-profgen builds its MCSubtargetInfo from
`ObjectFile::getFeatures()`. For AArch64 ELF objects this often produces
an empty feature set, so the disassembler falls back to the baseline
Armv8.0-A ISA and rejects valid feature-gated instructions such as LSE
atomics and RCPC loads.
`llvm-objdump` already handles this by [adding +all for AArch64
disassembly](https://github.com/llvm/llvm-project/blob/1e2d1bbc12f6a5f5931c77d39894ee1b8679f5f8/llvm/tools/llvm-objdump/llvm-objdump.cpp#L2823-L2824)
when neither -mattr nor -mcpu is specified. Match that behavior in
`llvm-profgen` so valid AArch64 instructions are not reported as invalid
and their addresses are preserved in profgen's code and branch maps.
Add a regression test covering an AArch64 binary containing `ldaddal`
and `ldapr` without object-level feature metadata.
---------
Co-authored-by: Kunal Pathak <kupathak at fb.com>
Commit: 56434aaf66507e567317655a05dd7da918f90d81
https://github.com/llvm/llvm-project/commit/56434aaf66507e567317655a05dd7da918f90d81
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/CMakeLists.txt
Log Message:
-----------
Bump minimum required sphinx Python to 3.8 (#203963)
There seems to be de-facto use of at least 3.6 in docs, namely:
* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py
I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.
Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
Commit: bf3652b1e7eb0633c13afcc23bbc238f5e7f9ec8
https://github.com/llvm/llvm-project/commit/bf3652b1e7eb0633c13afcc23bbc238f5e7f9ec8
Author: Iñaki Amatria Barral <140811900+inaki-amatria at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-cov/show-colors-uninit.test
M llvm/tools/llvm-cov/CodeCoverage.cpp
Log Message:
-----------
[llvm-cov] Init `ViewOpts.Colors` before `error()` (#205001)
The `commandLineParser` lambda calls `error()` at several points before
`ViewOpts.Colors` is set. `error()` uses `ViewOpts.colored_ostream()`
which reads `Colors`, triggering undefined behavior (load of
uninitialized `bool`).
Fix by moving the `Colors` initialization block to just after
`ParseCommandLineOptions`, before any `error()` call in the lambda. This
ensures error messages are always rendered with properly initialized
color settings.
Commit: a60ad3e35514a733f19e6f2ac6bb7fe558c04441
https://github.com/llvm/llvm-project/commit/a60ad3e35514a733f19e6f2ac6bb7fe558c04441
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 46995fb (#205155)
This fixes 46995fb32b999c6332fbd1bdfb84d79cad47195f.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 55d7f777d958a64ed5ef31be269c3005ddd6c7a6
https://github.com/llvm/llvm-project/commit/55d7f777d958a64ed5ef31be269c3005ddd6c7a6
Author: Larry Meadows <Lawrence.Meadows at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSADefs.h
A compiler-rt/lib/profile/InstrProfilingPlatformROCmInternal.h
A compiler-rt/test/profile/AMDGPU/device-basic.hip
A compiler-rt/test/profile/AMDGPU/device-early-collect.hip
A compiler-rt/test/profile/AMDGPU/device-no-kernel.hip
A compiler-rt/test/profile/AMDGPU/device-symbols.hip
A compiler-rt/test/profile/AMDGPU/lit.local.cfg.py
A compiler-rt/test/profile/GPU/instrprof-hip-basic.hip
A compiler-rt/test/profile/GPU/instrprof-hip-collect-after.hip
A compiler-rt/test/profile/GPU/instrprof-hip-counter-correctness.hip
A compiler-rt/test/profile/GPU/instrprof-hip-coverage.hip
A compiler-rt/test/profile/GPU/instrprof-hip-device-branching.hip
A compiler-rt/test/profile/GPU/instrprof-hip-fork-safety.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-gpu.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-process-merge.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multiple-kernels.hip
A compiler-rt/test/profile/GPU/instrprof-hip-nondefault-device.hip
A compiler-rt/test/profile/GPU/instrprof-hip-pgo-use.hip
A compiler-rt/test/profile/GPU/lit.local.cfg.py
A compiler-rt/test/profile/instrprof-rocm-bounds-dedup.cpp
A compiler-rt/test/profile/instrprof-rocm-grow-array.cpp
M compiler-rt/test/profile/lit.cfg.py
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
Log Message:
-----------
[PGO][HIP] HSA-introspection device profile drain + GPU PGO tests (#203056)
## Summary
Follow-up to #202095 (now landed). #202095's host-shadow device-profile
drain can
only collect device counters for kernels that registered a host-side
shadow via
`__hipRegisterVar`. Device-linked programs (e.g. RCCL), whose
instrumented code
objects are linked directly into the device image with no host shadow,
are never
drained.
This adds a **supplemental, Linux-only HSA-introspection drain** that
runs after
the host-shadow drain: it walks each GPU agent, enumerates only the code
objects
actually resident there, reads each one's `__llvm_profile_sections`
table on the
device, and routes them through the existing `processDeviceOffloadPrf()`
path so
the emitted `.profraw` layout is identical. A content-dedup set keyed on
the
`(data, counters, names)` device-pointer triple ensures a section
already drained
by the host-shadow pass is not drained twice, so the two passes compose
without
double-counting.
It is purely additive — it does not modify #202095's host-shadow drain
or its
launch-tracking. Highlights:
- `compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp`: HSA
agent/segment/
symbol walk + dedup; record drained bounds after each host-shadow drain;
lazy
HSA init (no library constructor, for fork-safety).
- Because the HSA walk only touches resident code objects, it lets us
avoid the
host-shadow drain's collect-all fallback on Linux. When **no** kernel
launch was
tracked (program never launches, collects before its first launch, or
launches
only via an untracked API), the host-shadow pass is skipped and the HSA
drain
covers it safely — instead of faulting/hanging reading a non-resident
device on
a multi-GPU host. This also closes the silent-data-loss gap for
untracked launch
APIs (`hipExtLaunchKernel`, cooperative/graph launches).
- `clang/lib/Driver/ToolChains/Clang.cpp` / `HIPAMD.cpp`: link the
device profile
runtime on both the new-offload-driver (`LinkerWrapper::ConstructJob`)
and
traditional (`lld`) link paths, guarded by `needsProfileRT` + VFS
existence.
- New GPU/AMDGPU HIP device-PGO lit tests, gated by `hip`/`amdgpu`
features
(auto-detected from the toolchain + a visible GPU) so they report
UNSUPPORTED
rather than fail when no GPU is present. Plus GPU-free host unit tests
for the
device-profile host helpers that run everywhere, including upstream CI.
## Test plan
- 4x gfx90a (`gfx90a:sramecc+:xnack-`), ROCm 7.1.
- GPU device tests run through standard lit:
`llvm-lit -sv <build>/.../compiler-rt/test/profile/Profile-x86_64` over
the
`GPU/` and `AMDGPU/` subdirectories. The profile `lit.cfg.py`
auto-detects a
visible GPU (`amdgpu-arch`) and the HIP runtime (`libamdhip64`) and
exposes the
`hip`/`amdgpu`/`multi-device` features and the `%amdgpu_arch` /
`%hip_lib_path`
substitutions; both are overridable via `--param amdgpu_arch=… /
hip_lib_path=…`.
- **15 device tests passed, 0 failed.** Covers: basic/coverage/pgo-use,
multiple-kernels, device-branching, multi-gpu and non-default-device
drain,
early-collect / no-kernel edges, RDC vs non-RDC
`__llvm_profile_sections`,
dedup (host-shadow drains the used device, HSA finds it and dedups), and
fork-safety (the RCCL parent-no-HIP / kernel-in-forked-child pattern).
- On a host without a GPU + ROCm/HIP (e.g. upstream CI) those device
tests report
UNSUPPORTED instead of failing, and the GPU subdirectories serialize via
a
size-1 `gpu` lit parallelism group when they do run.
- GPU-free host unit tests run anywhere the profile suite runs
(including upstream
CI): `instrprof-rocm-grow-array.cpp` (the dynamic-array helper) and
`instrprof-rocm-bounds-dedup.cpp` (the `(data, counters, names)` dedup
table
that backs the "drain each counter set once" guarantee).
- Build is warning-clean and `clang-format` clean.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 42d6d5b44d6170cceeacd2ae1b83335f72f0fcba
https://github.com/llvm/llvm-project/commit/42d6d5b44d6170cceeacd2ae1b83335f72f0fcba
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.ll
M llvm/test/CodeGen/AMDGPU/gfx902-without-xnack.ll
M llvm/test/CodeGen/AMDGPU/hsa-default-device.ll
M llvm/test/CodeGen/AMDGPU/hsa-func.ll
M llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
M llvm/test/CodeGen/AMDGPU/hsa.ll
M llvm/test/CodeGen/AMDGPU/target-id-xnack-always-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-any.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-off.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-2.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-2.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-any.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-off.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-on.ll
A llvm/test/MC/AMDGPU/amd-amdgpu-isa-malformed-target-id.s
A llvm/test/MC/AMDGPU/amdgcn-target-directive-triple-env.s
A llvm/test/MC/AMDGPU/amdgcn-target-malformed-target-id.s
M llvm/test/MC/AMDGPU/buffer-op-swz-operand.s
M llvm/test/MC/AMDGPU/hsa-diag-v4.s
M llvm/test/MC/AMDGPU/hsa-exp.s
M llvm/test/MC/AMDGPU/hsa-gfx12-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1250-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1251-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx13-v4.s
M llvm/test/MC/AMDGPU/hsa-tg-split.s
M llvm/test/MC/AMDGPU/hsa-v4.s
M llvm/test/MC/AMDGPU/hsa-v5-uses-dynamic-stack.s
M llvm/test/MC/AMDGPU/isa-version-hsa.s
M llvm/test/MC/AMDGPU/isa-version-pal.s
M llvm/test/MC/AMDGPU/isa-version-unk.s
M llvm/test/MC/AMDGPU/user-sgpr-count.s
Log Message:
-----------
AMDGPU: Refactor AMDGPUTargetID to not store MCSubtargetInfo (#204315)
Store the triple string and GPUKind instead. The dependence
on checking AMDHSA seems like an anti-feature, but maintain the
behavior of not printing the modifiers for other OSes. Start
parsing the target ID instead of performing a direct string
comparison. Also improve test coverage for the treatment of the
environment component of the triple. The main behavioral change
is this will now produce normalized triples in the output and
diagnostics. Practially, this means all of the places that
currently emit "--" will be expanded into "-unknown-".
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 9b1b03ef26a936efc51b11c1955ff270e80d87e9
https://github.com/llvm/llvm-project/commit/9b1b03ef26a936efc51b11c1955ff270e80d87e9
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
M llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
Log Message:
-----------
[AMDGPU] Update packed FP32 intrinsic cost model (#205145)
Intrinsics will not have packed vector benefit if they don't have
the corresponding packed instructions.
Commit: 81638b092dd0c0a0c299081a6accd2f59e3f6a7c
https://github.com/llvm/llvm-project/commit/81638b092dd0c0a0c299081a6accd2f59e3f6a7c
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_err.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3_from_vop1.txt
Log Message:
-----------
[AMDGPU] Add MC omod support for bf16 trans instructions (#205144)
Based on recent gfx1250 sp3 update. Refer to DEGFXSP3-664
Commit: cd89a8675cfef4e1efca258a89fae9ae903e3e3c
https://github.com/llvm/llvm-project/commit/cd89a8675cfef4e1efca258a89fae9ae903e3e3c
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
A llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-pseudoprobe.ll
A llvm/test/Transforms/SimplifyCFG/hoist-common-skip-pseudoprobe.ll
Log Message:
-----------
[SimplifyCFG] Allow hoisting in the presence of pseudoprobes (#199753)
Fix regressions in the presence of pseudoprobes that prevents
SimplifyCFG from hoisting instructions into the predecessor. Teach
`hoistCommonCodeFromSuccessors` and `foldBranchToCommonDest` to ignore
pseudo probes and drop them when the BB is eliminated.
The minor loss of profile quality for these cases are justified, as not
performing these hoists degrades performance more and blocks downstream
passes like loop-vectorize (can be upto 30% in 526.blender_r and
525.x264_r).
Commit: dc520fcd90527d196a676795d20539440de9442b
https://github.com/llvm/llvm-project/commit/dc520fcd90527d196a676795d20539440de9442b
Author: Ingo Müller <ingomueller at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py
Log Message:
-----------
[lldb][tests] Fix FS timing issue in `TestRerunAndExprDylib`. (#205116)
This PR fixes a timing issue that made `TestRerunAndExprDylib` fail with
a small probability. The test rebuilds a library; however, the build and
the re-build may fall into the same timestamp if the underlying
filesystem only has second granularity such that LLDB doesn't reload the
rebuilt library for the second execution.
The fix consists in artifically aging the library file from the first
build, i.e., setting its timestamp 10 seconds into the past. This not
only guarantees that LLDB reloads the file but also also that it is
rebuilt, so the explicit removing is now unnecessary and removed.
This issue exists for at least six months, possible since the tests
exists; I was not able to test older versions. However, we have recently
seen frequent failures, probably due to some change in our underlying
testing infrastructure.
Signed-off-by: Ingo Müller <ingomueller at google.com>
Commit: e6199d8f36263f018b47ba8fd1fd2f77e477b0ac
https://github.com/llvm/llvm-project/commit/e6199d8f36263f018b47ba8fd1fd2f77e477b0ac
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
Log Message:
-----------
AMDGPU: Temporarily restore disassembler's dependency on TargetParser (#205175)
Reverts part of #204315
Commit: c046d4b47cd5c8c75efa8b93d0c1fbfff54c2559
https://github.com/llvm/llvm-project/commit/c046d4b47cd5c8c75efa8b93d0c1fbfff54c2559
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[GitHub] Add googlewalt to Bazel codeowners (#205174)
Commit: 63692a910c10abb0a6ae67f99da7ffc8a1f3f964
https://github.com/llvm/llvm-project/commit/63692a910c10abb0a6ae67f99da7ffc8a1f3f964
Author: newgre <jannewger at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/lib/ProfileData/MemProfReader.cpp
Log Message:
-----------
[ProfileData] Avoid unnecessary copies. (#204875)
Make `Frame` moveable and avoid some unnecessary copies in `RawMemProfReader`. Unnecessary copies fixed in this PR were found by the CSan prototype described in the RFC [1] CopySanitizer (CSan): Detecting unneccessary object copies at runtime.
[1] https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038
Co-authored-by: Jan Newger <jannewger at google.com>
Commit: 223bdef73f761f22353744eeea46663ed0941926
https://github.com/llvm/llvm-project/commit/223bdef73f761f22353744eeea46663ed0941926
Author: Mohammed Ashraf <125150223+Holo-xy at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
Log Message:
-----------
[BoundsSafety] unify ParseLexedAttribute (#186033)
Resolves #93263
Commit: a1cfa786c96fee1ce63d034674d7aeb4cc9cc5d9
https://github.com/llvm/llvm-project/commit/a1cfa786c96fee1ce63d034674d7aeb4cc9cc5d9
Author: Greg Clayton <gclayton at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Core/Section.h
M lldb/source/Core/Section.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
A lldb/test/Shell/ObjectFile/ELF/build-id-case-debug-only.yaml
Log Message:
-----------
Fix SectionList::ReplaceSection to not replace incorrect section. (#204677)
We use SectionList::ReplaceSection to check for some sections in the
main object file and in separate debug info files. It was relying on
section IDs being consistent between different individual section lists
in different object files which does not work. I fixed this by not using
a section ID when replacing a section, but using the section shared
pointer so there can be no errors.
Commit: 982646f33d1ac7872832c2f3969dc83a762eab5d
https://github.com/llvm/llvm-project/commit/982646f33d1ac7872832c2f3969dc83a762eab5d
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
Log Message:
-----------
[LSR] Preserve LCSSA in SCEVRewriter
This is necessery to fix some regressions when switching to the NewPM
and seems to improve optimization quality in some cases due to LSR
currently not understanding loop nests (usage of getSCEV vs
getSCEVScoped). This patch just enables LCSSA
preservation for SCEVRewriter and updates all the relevant tests. There
are some further fixes that are needed to get this fully working that
will be included in follow up patches. This patch also only changes
behavior in the NewPM path to get that unblocked while more work is done
on ensuring LCSSA preservation/requirements do not regress LSR.
Similar to #185373 (although without follow up fixes and a regression
test).
Regression test added for the specific NewPM case noticed is in
Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
(does not reproduce without the target triple).
Reviewers: arsenm, Meinersbur, fhahn, nikic, vikramRH
Pull Request: https://github.com/llvm/llvm-project/pull/191665
Commit: 5b0cb22661a9a256fee7af77a79960d435ce8582
https://github.com/llvm/llvm-project/commit/5b0cb22661a9a256fee7af77a79960d435ce8582
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
M llvm/test/Transforms/LoopStrengthReduce/preserve-lcssa.ll
Log Message:
-----------
[LSR] Preserve LCSSA in critical edge splitting
This was another case where LSR failed to preserve LCSSA, which will
trigger an assertion under the NewPM. This is currently only enabled
under the NewPM to avoid pessimizing any optimizations while unblocking
work on the NewPM.
Reviewers: fhahn, vikramRH, nikic, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/192371
Commit: 871990a01ea72cb2090e73e52b0e66605a770f34
https://github.com/llvm/llvm-project/commit/871990a01ea72cb2090e73e52b0e66605a770f34
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll
Log Message:
-----------
[LAA] Collect no-wrap predicates separately in getPtrStride/isNoWrap. (#203787)
Add an overload of getPtrStride and update isNoWrap to collect no-wrap
SCEV predicates in a vector, and have the caller add them to PSE if
needed.
This also requires to explicitly build the wrap predicate via
ScalarEvolution::getWrapPredicate (clearing statically implied flags)
rather than going through PredicatedScalarEvolution::setNoOverflow,
which can now be removed together with the flags map.
This also requires generalizing SCEVUnionPredicate::implies so a wrap
predicate can be recognized as implied by an existing wrap predicate
after applying equal predicates, avoiding redundant predicates when the
collected predicates are committed.
The only functional changes is re-ordering of runtime check groups in a
single test case; no functional IR changes across a large IR corpus (32k
modules)
To be used to avoid adding unnecessary wrap predicates during interleave
group analysis: https://github.com/llvm/llvm-project/pull/200807
PR: https://github.com/llvm/llvm-project/pull/203787
Commit: 3f0ef1efb26206c3f5d5621d86d740c7f466c67b
https://github.com/llvm/llvm-project/commit/3f0ef1efb26206c3f5d5621d86d740c7f466c67b
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
Revert "[InstCombine] Merge consecutive assumes" (#205177)
Reverts llvm/llvm-project#204983 due to buildbot breakage (see
discussion in
https://github.com/llvm/llvm-project/pull/204983#issuecomment-4771424564)
Commit: fe4ea7b81cad9c76d304370b3b4395df43cba9ec
https://github.com/llvm/llvm-project/commit/fe4ea7b81cad9c76d304370b3b4395df43cba9ec
Author: adams381 <adams at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
Log Message:
-----------
[CIR] Compute union base subobject for tail-padding reuse (#201428)
A [[no_unique_address]] field whose type is a union with reusable tail
padding made CIRGen trip the insertPadding "offset >= size" assertion in
CIRGenRecordLayoutBuilder. CIR sized the union member at its full size, so a
following field that the ABI places in the union's tail padding overlapped the
union and insertPadding asserted.
CIR already computed a distinct, smaller base subobject type for structs and
classes whose tail padding can be reused, but not for unions. A union has
reusable tail padding when one of its members is itself a [[no_unique_address]]
field with tail padding, which makes the union's data size smaller than its
size.
computeRecordLayout now builds that base type for unions too, sized from
getDataSize(), and lowerUnion emits the storage type plus trailing padding as
ordinary struct fields so the reusable padding is exposed, mirroring classic
CodeGen. The base-type gate also no longer skips records marked final, which
classic CodeGen never skipped and which otherwise hit the same assertion for a
final union with reusable tail padding.
This unblocks libcxx's std::expected tests, which lean on [[no_unique_address]]
over unions.
Commit: 7ce49b34caa760403784fe2d541bf9feca4743a2
https://github.com/llvm/llvm-project/commit/7ce49b34caa760403784fe2d541bf9feca4743a2
Author: David Zbarsky <dzbarsky at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/bolt/BUILD.bazel
Log Message:
-----------
[BOLT][Bazel] Configure Rewrite target backends (#205179)
`RewriteInstance.cpp` only creates target-specific `MCPlusBuilder`
instances when `X86_AVAILABLE` or `AARCH64_AVAILABLE` is defined. The
Bazel `Rewrite` target defines neither macro and hard-codes `TargetX86`,
so `createMCPlusBuilder()` returns null for both target backends defined
by the Bazel overlay. Derive the definitions and dependencies from the
generated `bolt_targets` list, restricted to the `TargetAArch64` and
`TargetX86` rules defined in this BUILD file, and use the same target
dependencies for `llvm-bolt`.
Validation: `buildifier -mode=check -lint=warn
utils/bazel/llvm-project-overlay/bolt/BUILD.bazel`; an equivalent
overlay change built and executed BOLT for Linux x86_64 and Linux
AArch64 in [hermetic-llvm's remote `//prebuilt/llvm:all`
build](https://app.buildbuddy.io/invocation/7943a005-c159-4cb9-af0e-00ffbaa40bb5).
AI tool disclosure: Co-authored with OpenAI Codex.
Commit: faaec33ab9eadf3433ffe720d19028464f2c265d
https://github.com/llvm/llvm-project/commit/faaec33ab9eadf3433ffe720d19028464f2c265d
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/AST/RecursiveASTVisitor.h
A clang/test/AST/pr198903.cpp
A clang/test/Analysis/pr169302.cpp
Log Message:
-----------
[Clang][RAV] Simplify TraverseTemplateArgumentLocsHelper (#199131)
We were checking the result of getTemplateArgsAsWritten() to skip over
implicit instantiations, with an assert to ensure that it has the
desired effect, before checking getTemplateSpecializationKind() ==
TSK_ExplicitSpecialization which would skip over implicit instantiations
anyway. As the included tests show, the invariant that we were relying
on did not hold, but we no longer have any need to rely on that, we can
now just check the result of getTemplateSpecializationKind() directly.
Fixes: #198903
Fixes: #169302
Commit: 162d84f0955b8e10fd6d84ba7443c2eb596582ef
https://github.com/llvm/llvm-project/commit/162d84f0955b8e10fd6d84ba7443c2eb596582ef
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
A llvm/test/Transforms/LoopVectorize/X86/predicated-replicate-feeding-cast.ll
Log Message:
-----------
[VPlan] Handle single-scalar casts in replicateByVF. (#205181)
Fixes a crash after https://github.com/llvm/llvm-project/pull/203057.
Commit: e67b31a00e72ebb1b3a782c6bfcad9b51f173521
https://github.com/llvm/llvm-project/commit/e67b31a00e72ebb1b3a782c6bfcad9b51f173521
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libunwind/src/UnwindRegistersSave.S
Log Message:
-----------
[libunwind] Fix an uninitialized read of __ra_sign_state (#205152)
The Arm DWARF spec defines UNW_AARCH64_RA_SIGN_STATE as being zeroed
until the first .cfi_negate_ra_state / .cfi_set_ra_state [1]. The GPRs
struct containing __ra_sign_state is memcpy'd directly from the
unw_context_t, which in turn is initialized by __unw_getcontext. Since
it is a pseudo register, there is no corresponding state to restore in
__unw_resume.
https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#44call-frame-instructions
Commit: 8f249a7bd3bca35a5114aab85b5ce58ba4ca6461
https://github.com/llvm/llvm-project/commit/8f249a7bd3bca35a5114aab85b5ce58ba4ca6461
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Utility/FileSpec.h
M lldb/source/Core/ModuleList.cpp
M lldb/source/Core/PluginManager.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Utility/FileSpec.cpp
Log Message:
-----------
[lldb][NFC] FileSpec::GetFileNameStrippingExtension should return a StringRef (#205178)
No need to create a ConstString of a filename without its file
extension.
Commit: 60b48545638f63669fde6c832e0689f78310f6ec
https://github.com/llvm/llvm-project/commit/60b48545638f63669fde6c832e0689f78310f6ec
Author: Ziqing Luo <ziqing_luo at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/FindDecl.h
Log Message:
-----------
[SSAF] Let UnsafeBufferUsageExtractor & PointerFlowExtractor ignore templates (#198927)
Templates are ignored for two reasons:
- Template instantiations are still handled. Template facts can be
inferred from their instantiations.
- Templates are inherently difficult to reason about. Their ASTs can
contain dependent expression types (such as ParenListExpr) that
complicate analysis.
Commit: 1f3d8cba700c2340bb223770932ebc054ce0b767
https://github.com/llvm/llvm-project/commit/1f3d8cba700c2340bb223770932ebc054ce0b767
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/Aligner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/MachORewriteInstance.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
Log Message:
-----------
[BOLT] Route alignment options through BinaryContext (NFC) (#204902)
Consolidate all alignment-related `cl::opt` definitions into
`CommandLineOpts.cpp`, expose matching public members on `BinaryContext`,
and populate them from `RewriteInstance::adjustCommandLineOptions` (and
mirrored in `MachORewriteInstance`). Switch all readers in Aligner,
BinaryEmitter, LongJmp, BinaryFunction and the use-old-text logs to
`BC.*` instead of `opts::*`.
Commit: bb8f468d260f3c063b9cf23f387ec4b27bc1b146
https://github.com/llvm/llvm-project/commit/bb8f468d260f3c063b9cf23f387ec4b27bc1b146
Author: David Green <david.green at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
Log Message:
-----------
[AArch64][GlobalISel] Update some scalar types to integer in tests. NFC (#205190)
Commit: 33e8502336c76591172fbae37209d31c1e90c7c6
https://github.com/llvm/llvm-project/commit/33e8502336c76591172fbae37209d31c1e90c7c6
Author: Bhavesh M <85327930+beamandala at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/Transforms/Passes.td
M mlir/include/mlir/Dialect/EmitC/Transforms/Transforms.h
M mlir/lib/Dialect/EmitC/Transforms/WrapFuncInClass.cpp
M mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
Log Message:
-----------
[mlir][EmitC] Make `GlobalOps` `FieldOps` in wrap-emitc-func-in-class pass (#203641)
Update the `WrapFuncInClassPass` pass so that `GlobalOp`s are moved into
the `ClassOp` as `FieldOps`. This respects MLIR's behavior of resolving
references to the closest parent operation that defines a symbol table
which is the `ClassOp` that we are creating in this pass.
Without this change, references to a `GlobalOp` in `GetGlobalOp` are
failing to resolve.
Details:
- Identify `GlobalOp`s
- Create a `FieldOp` within the `ClassOp` for each `GlobalOp`
- Delete the `GlobalOp`s after all functions have been wrapped in a
class. Doing this after every function can cause an error when multiple
functions refer to the same `GlobalOp`(s) which would be deleted after
the first function is wrapped in a class.
Also renamed `fName` parameter in `populateWrapFuncInClass` to
`funcName` to match naming in `WrapFuncInClass`.
Based on PR #153452. Key differences:
- No size is set for the `globalsToMove` `SmallVector` type because I'm
not sure if the number of global variables is consistent across
different models.
- `GlobalOp`s are deleted after all functions have been processed.
- Instead of directly cloning the `GlobalOp`, an equivalent `FieldOp` is
created
- `GetGlobalOp`s are translated to `GetFieldOp`s
Co-authored-by: [Jaddyen](https://github.com/Jaddyen)
Commit: ef752a0780be31ac94be5f459ff60629136f4087
https://github.com/llvm/llvm-project/commit/ef752a0780be31ac94be5f459ff60629136f4087
Author: Daniel Hill <daniel.hill at mongodb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/eh-frame-hdr.test
Log Message:
-----------
[BOLT] Emit .eh_frame_hdr before .eh_frame to prevent table scans from libdw (#201917)
resolves https://github.com/llvm/llvm-project/issues/201701 by moving
the `.eh_frame_hdr` section-header entry before `.eh_frame` before
assigning final section indices.
This lets BOLT binaries work with existing [libdw library logic
expecting the index before the
table](https://github.com/sourceware-org/elfutils/blob/67199e1c974db37f2bd200dcca7d7103f42ed06e/libdw/dwarf_getcfi_elf.c#L301),
preventing linear `.eh_frame` scanning.
Commit: 7781a0c196acda252a1db67936b76e96e9971f4c
https://github.com/llvm/llvm-project/commit/7781a0c196acda252a1db67936b76e96e9971f4c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/lib/Evaluate/tools.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Do not emit data transfer for constant read on the rhs (#205185)
Commit: c97eb542a7c3202957da66758568230289b70697
https://github.com/llvm/llvm-project/commit/c97eb542a7c3202957da66758568230289b70697
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/check-call.h
M flang/lib/Semantics/expression.cpp
M flang/test/Semantics/call47.f90
Log Message:
-----------
[flang][Semantics] Do not require explicit interface checks for statement functions (#205023)
https://github.com/llvm/llvm-project/pull/198610 caused a regression,
where the
code path for explicit interface checks was also used for the statement
functions arg check. Refactor the code to avoid explicit interface
checks.
Fixes #203500
Assisted-by: AI
Commit: 211ca98dd0a58600461f4d33ca5bf2a626558487
https://github.com/llvm/llvm-project/commit/211ca98dd0a58600461f4d33ca5bf2a626558487
Author: adams381 <adams at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
M clang/test/CIR/IR/invalid-data-member.cir
Log Message:
-----------
[CIR] DataMemberAttr: replace flat index with GEP-style path (#200854)
`DataMemberAttr` stored a single field index relative to the immediately containing class, which broke when the member is inherited: `int Derived::*p = &Derived::x` with `x` in Base produced a spurious `errorNYI` because Derived's CIR record doesn't directly hold `x`.
The attribute now stores a GEP-style `member_path` — a sequence of CIR field indices stepping from the pointer's class type down to the member, one level per inheritance hop. `lowerDataMemberConstant` walks the path accumulating element offsets to produce the Itanium ABI byte value.
`buildMemberPath` searches the `destClass` record tree for the target field (`findFieldMemberPath`). `CK_BaseToDerivedMemberPointer` and `CK_DerivedToBaseMemberPointer` return `{}` in ConstExprEmitter, delegating to the APValue path which builds the correct path via `buildMemberPath`. Virtual bases are not yet handled.
`CK_ReinterpretMemberPointer` remains `errorNYI` on this branch; a follow-up PR will add that separately.
Commit: 201cf31b84acbc80bf4a6d09197bc7e9df9bb4a5
https://github.com/llvm/llvm-project/commit/201cf31b84acbc80bf4a6d09197bc7e9df9bb4a5
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
M flang/test/Analysis/AliasAnalysis/alias-analysis-scoped-origins.fir
Log Message:
-----------
[flang] Reduce FIR AA overhead for functions with one scope. (#204009)
Avoid overheads of collectScopedOrigins and
getDeclarationScope/DominanceInfo
when the values passed to FIR AA belong to a function with a single
dummy scope.
Commit: fa016f67531e2274f7a7e38d11461ef5efcc5827
https://github.com/llvm/llvm-project/commit/fa016f67531e2274f7a7e38d11461ef5efcc5827
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/tools/llvm-cas/validation.test
Log Message:
-----------
[llvm-cas] Fix validation test on Ubuntu / uutils v0.2.2, NFC (#205199)
Work around uutils/coreutils#9128 by implementing the 40 byte truncation
in Python. Otherwise, this test fails out of the box on Ubuntu 25.10.
GNU coreutils supports -s=arg, but Mac truncate does not. Resorting to
Python seemed like the cleanest solution. The next best idea was to use
subshells or other techniques to calculate the file size and subtract
40, but that seemed excessive.
Commit: 5ad66bdcaff8bbcce63bb9aef317600ae253cfbf
https://github.com/llvm/llvm-project/commit/5ad66bdcaff8bbcce63bb9aef317600ae253cfbf
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/ProjectGovernance.rst
Log Message:
-----------
[docs] Minor edits to project governace docs (#203149)
s/non-private/public/
Pencil in the 2027 calendar year election dates, so they are posted well
in advance and we have a link anchor we can share.
Commit: cd3bfc1f992612aff5df2c5d6c73d1c08a185880
https://github.com/llvm/llvm-project/commit/cd3bfc1f992612aff5df2c5d6c73d1c08a185880
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
Log Message:
-----------
[SCEV] Preserve LCSSA when reusing dominating variable
This seems to just be a missing case in SCEV. This came up when looking
at making LSR preserve LCSSA for the NewPM. Regression test of that
nature has been added.
Reviewers: fhahn, nikic, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/192831
Commit: 64d386e642e5ee3f31a4d0ef45454bef10b4ea90
https://github.com/llvm/llvm-project/commit/64d386e642e5ee3f31a4d0ef45454bef10b4ea90
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/README.txt
A llvm/docs/CMake.md
R llvm/docs/CMake.rst
A llvm/docs/CodeGenerator.md
R llvm/docs/CodeGenerator.rst
A llvm/docs/CodingStandards.md
R llvm/docs/CodingStandards.rst
A llvm/docs/CommandGuide/index.md
R llvm/docs/CommandGuide/index.rst
A llvm/docs/Contributing.md
R llvm/docs/Contributing.rst
A llvm/docs/DeveloperPolicy.md
R llvm/docs/DeveloperPolicy.rst
A llvm/docs/GettingInvolved.md
R llvm/docs/GettingInvolved.rst
A llvm/docs/GettingStarted.md
R llvm/docs/GettingStarted.rst
A llvm/docs/GettingStartedTutorials.md
R llvm/docs/GettingStartedTutorials.rst
A llvm/docs/GitHub.md
R llvm/docs/GitHub.rst
M llvm/docs/GitRepositoryPolicy.md
M llvm/docs/InstrRefDebugInfo.md
A llvm/docs/Passes.md
R llvm/docs/Passes.rst
A llvm/docs/ProgrammersManual.md
R llvm/docs/ProgrammersManual.rst
A llvm/docs/RFCProcess.md
R llvm/docs/RFCProcess.rst
A llvm/docs/Reference.md
R llvm/docs/Reference.rst
M llvm/docs/RemoveDIsDebugInfo.md
A llvm/docs/SourceLevelDebugging.md
R llvm/docs/SourceLevelDebugging.rst
M llvm/docs/SphinxQuickstartTemplate.md
A llvm/docs/TableGen/index.md
R llvm/docs/TableGen/index.rst
A llvm/docs/TestingGuide.md
R llvm/docs/TestingGuide.rst
A llvm/docs/UserGuides.md
R llvm/docs/UserGuides.rst
A llvm/docs/WritingAnLLVMBackend.md
R llvm/docs/WritingAnLLVMBackend.rst
A llvm/docs/WritingAnLLVMNewPMPass.md
R llvm/docs/WritingAnLLVMNewPMPass.rst
A llvm/docs/WritingAnLLVMPass.md
R llvm/docs/WritingAnLLVMPass.rst
M llvm/docs/conf.py
A llvm/docs/index.md
R llvm/docs/index.rst
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/IR/DebugInfo.cpp
M llvm/tools/reduce-chunk-list/reduce-chunk-list.cpp
M llvm/utils/lit/tests/Inputs/shtest-define/examples/param-subst.txt
Log Message:
-----------
[docs] Rename 22 popular LLVM docs .rst -> .md (#201243)
Tracking issue: #201242
RFC: https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840
Migration guide: https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
Update filename references, but leave the docs with reST syntax to
ensure rename detection works.
This intentionally breaks the documentation build, but I will immediately follow up by merging the PR that fixes it.
Commit: 3e414a36cd82651e9d904e21ab444d3ca265d254
https://github.com/llvm/llvm-project/commit/3e414a36cd82651e9d904e21ab444d3ca265d254
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/CMake.md
M llvm/docs/CodeGenerator.md
M llvm/docs/CodingStandards.md
M llvm/docs/CommandGuide/index.md
M llvm/docs/Contributing.md
M llvm/docs/DeveloperPolicy.md
M llvm/docs/GettingInvolved.md
M llvm/docs/GettingStarted.md
M llvm/docs/GettingStartedTutorials.md
M llvm/docs/GitHub.md
M llvm/docs/Passes.md
M llvm/docs/ProgrammersManual.md
M llvm/docs/RFCProcess.md
M llvm/docs/Reference.md
M llvm/docs/SourceLevelDebugging.md
M llvm/docs/TableGen/index.md
M llvm/docs/TestingGuide.md
M llvm/docs/UserGuides.md
M llvm/docs/WritingAnLLVMBackend.md
M llvm/docs/WritingAnLLVMNewPMPass.md
M llvm/docs/WritingAnLLVMPass.md
M llvm/docs/conf.py
M llvm/docs/index.md
Log Message:
-----------
[docs] Migrate 22 popular LLVM docs to MyST (#201244)
This was done with LLM assistance.
I rebuilt the LLVM docs, opened all 22 docs in a browser and scrolled
through them, and caught and fixed a few errors.
Tracking issue: #201242
Migration guide docs:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
RFC:
https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840
Commit: d9a1ed0c32ac6729c45ea6998281a1cd53c44fb6
https://github.com/llvm/llvm-project/commit/d9a1ed0c32ac6729c45ea6998281a1cd53c44fb6
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload] Add kernel replay tool to tests' dependencies (#205209)
Commit: 9e80b89e9481a88333c83d1f48a4492cdb8a84aa
https://github.com/llvm/llvm-project/commit/9e80b89e9481a88333c83d1f48a4492cdb8a84aa
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/tools/debugserver/source/RNBRemote.cpp
Log Message:
-----------
[lldb] Use heuristics to extend rather than replace error message (#205196)
When an attach fails, HandlePacket_A tries to explain why. The last two
checks are heuristics that discard any error debugserver already
produced for this specific failure.
The guess can be wrong, for example the PT_DENY_ATTACH test case from
#204688 is incorrectly reported as failing due to it running in a
non-interactive debug session on the bots.
Include debugserver's real error into the heuristic message, instead of
replacing it, so the real reason is never lost.
Commit: e522c116b1e5180ac7a98f992895a296d3b75ef9
https://github.com/llvm/llvm-project/commit/e522c116b1e5180ac7a98f992895a296d3b75ef9
Author: Akshay K <iit.akshay at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/unary-expr-or-type-trait-32bit.cpp
Log Message:
-----------
[CIR] Use the AST result type for sizeof/alignof constants (#203942)
On targets where `size_t` is narrower than 64 bits (e.g. `i686`), CIR
codegen for `sizeof`/`alignof`/`__builtin_vectorelements` crashes with a
type/value bitwidth mismatch.
The result of these expressions is `size_t`, but the emitted integer
constant was built with a hardcoded 64-bit type. `EvaluateKnownConstInt`
returns an `APSInt` with the width of the AST result type (32 bits on
this target), so it no longer matches the `IntAttr`'s type and trips the
`IntAttr` verifier.
### How to Reproduce
```c++
using size_t = decltype(sizeof(int));
size_t size_of_int() { return sizeof(int); }
clang -cc1 -std=c++20 -triple i686-unknown-linux-gnu -fclangir \
-emit-cir test.cpp -o test.cir
error: type and value bitwidth mismatch: 64 != 32
clang: mlir/include/mlir/IR/StorageUniquerSupport.h:180:
... Assertion `succeeded(ConcreteT::verifyInvariants(...))' failed.
#11 cir::IntAttr::get(mlir::Type, llvm::APInt const&)
#12 ScalarExprEmitter::VisitUnaryExprOrTypeTraitExpr(...)
#13 CIRGenFunction::emitScalarExpr(...)
```
### Fix
Form the IntAttr using the converted AST result type (convertType(e->getType())) instead of a hardcoded 64-bit type, matching classic codegen. The same path covers the fixed-vector __builtin_vectorelements case.
Commit: a7263bea29efd710a1207afe5641fad54692284d
https://github.com/llvm/llvm-project/commit/a7263bea29efd710a1207afe5641fad54692284d
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Breakpoint/Breakpoint.h
M lldb/source/Breakpoint/Breakpoint.cpp
M lldb/source/Commands/CommandObjectBreakpoint.cpp
Log Message:
-----------
[lldb] Remove ConstString from Breakpoint::GetMatchingFileLine (#205210)
Commit: 2d0b2fb0e0d8fa198be51096923675de9a564f83
https://github.com/llvm/llvm-project/commit/2d0b2fb0e0d8fa198be51096923675de9a564f83
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
Revert "[lldb][Windows] Remember server's primary stop thread on gdb-remote stops" (#205220)
Reverts llvm/llvm-project#203525 because it breaks TestRealDefinition.py
Commit: a6986f0b929d575728d564cd41bb0f9a6b6fdea4
https://github.com/llvm/llvm-project/commit/a6986f0b929d575728d564cd41bb0f9a6b6fdea4
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
A flang/test/Semantics/modfile84.f90
Log Message:
-----------
[flang][cuda][openacc] Emit an error when CUDA symbols are imported with CUDA disabled (#205207)
Commit: bc4aadb7bfc2d00487c5965bc4f12a510db181a9
https://github.com/llvm/llvm-project/commit/bc4aadb7bfc2d00487c5965bc4f12a510db181a9
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Lua/LuaState.cpp
Log Message:
-----------
[lldb] Fix LuaState after #205210 (#205219)
Commit: ff4bc6e5d96f1dabe2f82c289fa97889830fd08e
https://github.com/llvm/llvm-project/commit/ff4bc6e5d96f1dabe2f82c289fa97889830fd08e
Author: superdusty <superdusty at foxmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaExpr.cpp
M clang/test/SemaCXX/ext-int.cpp
Log Message:
-----------
[Clang] Fix crash when comparing fixed point type with BitInt (#199912)
Fixes #196948
Added checks in `handleFixedPointConversion`: reject fixed point/BitInt
comparisons
Now clang properly emits an error instead of crashing.
---------
Co-authored-by: cry <2091136672 at foxmail.com>
Commit: 38df8cbd328efd43326ef18fc26a9a881f76cec1
https://github.com/llvm/llvm-project/commit/38df8cbd328efd43326ef18fc26a9a881f76cec1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A lldb/test/API/macosx/deny-attach/Makefile
A lldb/test/API/macosx/deny-attach/TestDenyAttach.py
A lldb/test/API/macosx/deny-attach/main.c
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
Log Message:
-----------
[lldb] Survive ptrace(PT_DENY_ATTACH) when attaching (#204688) (#205198)
A process can opt out of being debugged with ptrace(PT_DENY_ATTACH). The
XNU kernel enforces this by delivering SIGSEGV to the *attaching*
process while it is still inside the ptrace(PT_ATTACHEXC) syscall. This
means debugserver gets killed before it can inspect the result. LLDB
only sees the dropped connection ("error: attach failed: lost
connection").
The condition can't be detected up front: the target's P_LNOATTACH flag
is not exposed to userspace. To work around this, install a temporary
SIGSEGV handler around the ptrace(PT_ATTACHEXC) call in AttachForDebug
and siglongjmp back out if it fires, turning the fatal signal into an
EPERM that propagates to lldb as a clear message:
```
error: attach failed: cannot attach to process N because it has
disabled debugging via ptrace(PT_DENY_ATTACH)
```
The handler only acts on a SIGSEGV that arrives on the attaching thread
while the guard is armed. Any other SIGSEGV restores the default handler
and re-raises. Genuine, unrelated, crashes still report normally.
rdar://44542907
Assisted-by: Claude
Commit: c7e815b189ea5c0f8261ba13eb677465c992c625
https://github.com/llvm/llvm-project/commit/c7e815b189ea5c0f8261ba13eb677465c992c625
Author: Alexandre Isoard <isoard at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
A clang/test/CodeGenHLSL/BasicFeatures/OutArgLifetime.hlsl
Log Message:
-----------
[HLSL] Emit lifetime.start before copy-in for inout parameters (#191917)
For inout parameters, Clang was emitting lifetime.start after the
copy-in store that initializes the temporary. Per LLVM's lifetime
semantics, any access to memory outside its lifetime is undefined
behavior, so the copy-in store was technically UB and the value was
undefined after lifetime.start.
Move EmitLifetimeStart into EmitHLSLOutArgLValues so that it is emitted
before EmitInitializationToLValue, putting the copy-in store within the
lifetime of the temporary.
---------
Co-authored-by: Alexandre Isoard <alexandre.isoard at amd.com>
Co-authored-by: Deric C. <cheung.deric at gmail.com>
Commit: 52e00058960e90b1ccadd07b95ca05d13e1f1318
https://github.com/llvm/llvm-project/commit/52e00058960e90b1ccadd07b95ca05d13e1f1318
Author: Wenju He <wenju.he at intel.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/SemaOpenCL.h
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaOpenCL.cpp
A clang/test/SemaOpenCL/read-image-integer-linear-filter.cl
Log Message:
-----------
[OpenCL] Warn if filter_mode is linear in read_image{i|ui} (#204086)
Per OpenCL spec:
The read_image{i|ui} calls support a nearest filter only. The
filter_mode specified in sampler must be set to CLK_FILTER_NEAREST;
otherwise the values returned are undefined.
Warn users when they apply a linear filter accidentally.
Address https://github.com/intel/compute-runtime/issues/379#issuecomment-4592083032
Assisted-by: Claude Sonnet 4.6
Commit: dfe8b229d3ec40e49250cc587009d5752b58b087
https://github.com/llvm/llvm-project/commit/dfe8b229d3ec40e49250cc587009d5752b58b087
Author: yonghong-song <yhs at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp
Log Message:
-----------
[BPF] Increase BPFMaxStoresPerMemFunc from 128 to 192 (#205222)
With commits [1] and [2], memory operations like memcpy/memmove lower to
a sequence of loads/stores whose width is the minimum of the source and
destination alignment, and the store count is bounded by
BPFMaxStoresPerMemFunc. For 1-byte alignment, the maximum copy length
that can be inlined is therefore 128 bytes.
This may regress cases that previously inlined. Consider a memcpy with
src alignment 8, dst alignment 1 and size 136. After [1]/[2], the store
width is the minimum alignment (1 byte), so the store count is 136,
which exceeds the 128 limit and the copy falls back. Before [1]/[2], the
store count was computed with a fixed 8-byte unit regardless of the
actual alignment (each unit expands to 8 one-byte stores when the
minimum alignment is 1), so the total count was only 17 (136/8 < 128)
and the copy was inlined.
Raise the limit from 128 to 192 to mitigate. Alternatively, users can
increase alignment to avoid the regression.
[1] https://github.com/llvm/llvm-project/pull/201119
[2] https://github.com/llvm/llvm-project/pull/204042
Commit: 899548615f41018113e08260817ddcfc23060937
https://github.com/llvm/llvm-project/commit/899548615f41018113e08260817ddcfc23060937
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] packed exchanged add/sub codegen (#203473)
Wire up the already-defined exchanged add/sub instructions
pas/psa/psas/pssa/paas/pasa with llvm.riscv.* intrinsics and isel
patterns.
Commit: f519bd91d300238660914d9094b5e70090da1d85
https://github.com/llvm/llvm-project/commit/f519bd91d300238660914d9094b5e70090da1d85
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/memprof-metadata-bad.ll
Log Message:
-----------
[Verifier] Require !callsite with !memprof metadata (#205053)
Fixes: https://github.com/llvm/llvm-project/issues/181237
Commit: d853c056e5db0f9e1779e351b02c98a141a95c8d
https://github.com/llvm/llvm-project/commit/d853c056e5db0f9e1779e351b02c98a141a95c8d
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-nontemporal.cpp
Log Message:
-----------
[CIR] Add support for __builtin_nontemporal_store and __builtin_nontemporal_load (#197872)
Add nontemporal attribute to cir.load and cir.store ops.
Commit: e2765f3e202cd0ed126fb72cd77a1f59ecaf739b
https://github.com/llvm/llvm-project/commit/e2765f3e202cd0ed126fb72cd77a1f59ecaf739b
Author: ZT Qin <xiaoyaoyou95 at hotmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/OpenMP/single_threaded_execution.ll
Log Message:
-----------
[OpenMPOpt][Attributor] Selectively seed deglobalization AAs (#198710)
This addresses a compile-time issue observed on a large generated C++
translation unit compiled with `-fopenmp`.
The source code is not OpenMP-heavy. It mainly consists of generated
function-registration wrappers, template instantiations, lambdas, and
small helper functions. However, because the TU is compiled with OpenMP
enabled, `OpenMPOptCGSCCPass` runs and drives Attributor on a module
with many functions.
`OpenMPOpt::registerAAsForFunction` currently eagerly creates the
deglobalization AAs for every function in OpenMP device modules:
* `AAHeapToShared`
* `AAHeapToStack`
Most generated wrapper/helper functions in the motivating workload do
not contain `__kmpc_alloc_shared`, removable allocations, or free-like
calls. In those cases, the deglobalization AAs have no useful candidates
but still contribute to Attributor initialization and fixed-point work.
This patch makes the deglobalization AA seeding more selective:
* only create `AAHeapToShared` for functions with non-empty
`__kmpc_alloc_shared` uses;
* only create `AAHeapToStack` for functions containing removable
allocation or free-like call candidates;
* make `AAHeapToShared` use the per-function runtime use vector instead
of scanning all users of the runtime declaration.
I also measured the previously attempted pieces independently. The
compile-time improvement comes from the selective seeding change. The
Attributor use-caching change and the `registerAAsForFunction`
registration cache did not show meaningful benefit on the motivating
workload, so they have been removed from this PR.
On the motivating TU, selective seeding reduced total compile time from
about 3473s to 271s, and `OpenMPOptCGSCCPass` time from about 3232s to
111s.
---------
Co-authored-by: jnudhf <jnudhf at users.noreply.github.com>
Co-authored-by: Shilei Tian <i at tianshilei.me>
Commit: c91c9fced2ff7266e566fad2963ab241bf6360b3
https://github.com/llvm/llvm-project/commit/c91c9fced2ff7266e566fad2963ab241bf6360b3
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Allocator.h
M llvm/unittests/Support/AllocatorTest.cpp
Log Message:
-----------
Reland [Allocator] Keep bump pointer at a minimum alignment (#205240)
Reland #203718 (reverted in #205091) by making computation in integer
domain to avoid UB (nullptr + non-zero offset).
Add a `MinAlign` template parameter (default 8, sizeof(size_t) on 64-bit
platforms) so that the common case `Alignment <= MinAlign` can skip
realigning `CurPtr`.
This is achieved by rounding each allocation's size up to MinAlign, so
the bump pointer stays MinAlign-aligned between allocations.
SpecificBumpPtrAllocator::DestroyAll() walks objects at a fixed
sizeof(T) stride and needs tight packing, so it uses MinAlign=1.
(alignof(T) would
pack just as tightly and reuse the default instantiation, but T may be
incomplete here, e.g. `SpecificBumpPtrAllocator<MCSectionELF>`.)
Its `Allocate` still skips the realign: the slab is max_align_t-aligned
and every size is a multiple of alignof(T), so the bump pointer stays
alignof(T)-aligned and we can just request alignment 1. Over-aligned
types (alignof(T) > alignof(max_align_t)) keep requesting alignof(T).
Also use `bit_ceil` instead of `NextPowerOf2` in the placement operator
new alignment heuristic. NextPowerOf2 is strictly greater, so an 8-byte
pointer-sized object asked for alignment 16 and missed the fast path;
bit_ceil(8) == 8 keeps it on the fast path.
Aided by Claude Opus 4.8
Commit: de1effc8639273ea79f95e198133dec777ff8908
https://github.com/llvm/llvm-project/commit/de1effc8639273ea79f95e198133dec777ff8908
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
M llvm/test/MC/RISCV/rv64p-aliases-valid.s
Log Message:
-----------
[RISCV][P-ext] Rename pwcvt/pncvt pseudoinstructions for RV64. (#205227)
We need to add a 'w' to the suffix to indicate it operates on a word and
not a register pair like on RV32. See https://github.com/riscv/riscv-p-spec/pull/303
Commit: 53fec04cc23de825ed6ae1c84dea5d45b746fba9
https://github.com/llvm/llvm-project/commit/53fec04cc23de825ed6ae1c84dea5d45b746fba9
Author: Anutosh Bhat <andersonbhat491 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
M mlir/test/Dialect/Arith/int-range-opts-crash.mlir
Log Message:
-----------
[mlir][arith] Fix APInt bitwidth mismatch crash in int-range-optimizations (#205110)
Fixes https://github.com/llvm/llvm-project/issues/204909
When an op's `areTypesCompatible()` hook accepts integers of different
widths across a region boundary, the range analysis can propagate a
constant range whose APInt bitwidth does not match the IR type of the
destination value.
This caused `IntegerAttr::get` to `assert` in
`maybeReplaceWithConstant`.
Fix by bailing out in `maybeReplaceWithConstant` when the bitwidths
mismatch, and adding the same check to the needsReplacing lambda in
matchAndRewrite.
The second guard is necessary to mirror the existing isIntOrIndex()
guard — without it the pattern claims success without changing the IR,
causing the greedy rewrite driver to loop.
We should now see
```
anutosh491 at Anutoshs-MacBook-Air mlir-build % ./bin/mlir-opt -int-range-optimizations bin/a.mlir
module {
func.func @m0() -> i32 {
%c1_i64 = arith.constant 1 : i64
%c0_i32 = arith.constant 0 : i32
%0 = "test.region_types_compat"(%c0_i32) ({
^bb0(%arg0: i64):
test.types_compat_yield %c1_i64 : i64
}) : (i32) -> i32
return %0 : i32
}
}
```
Commit: cdfd1e081529447ecb56ae7a43a32d8b237b9c28
https://github.com/llvm/llvm-project/commit/cdfd1e081529447ecb56ae7a43a32d8b237b9c28
Author: Yonah Goldberg <ygoldberg at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/Transforms/SROA/struct-to-vector-subpartition.ll
Log Message:
-----------
Patch tryCanonicalizeStructToVector to handle split slice tails (#201434)
We choose a vector alloca over a struct alloca when all users of the
alloca are memory or lifetime intrinsics. But we only accounted for
slices that start in the corresponding partition. We have to also check
that all split slice tails overlapping the partition are memory or
lifetime intrinsics
I also updated the `PassRegistry.def` to include the new pass option
because we forgot to add that.
Commit: d147ad969aa97fa500e250c33fe8d0770117708b
https://github.com/llvm/llvm-project/commit/d147ad969aa97fa500e250c33fe8d0770117708b
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
M llvm/test/MC/RISCV/xqcilo-pseudos-valid.s
Log Message:
-----------
[RISCV] Update Xqcilo Pseudos (#196422)
This changes the Xqcilo pseudos to instead emit a sequence of
`qc.e.li` followed by a standard load/store annotated with %qc.access.
The new sequence is easier for our linker to relax.
This Change was written with the assistance of AI.
Commit: f7ec732d50620ed5833c283558bf74fd446962e9
https://github.com/llvm/llvm-project/commit/f7ec732d50620ed5833c283558bf74fd446962e9
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
R flang/test/Semantics/modfile84.f90
Log Message:
-----------
Revert "[flang][cuda][openacc] Emit an error when CUDA symbols are imported with CUDA disabled" (#205254)
Reverts llvm/llvm-project#205207
Commit: 3d8ca7e0544c4cca5367c83b1ccd4246bc3dea77
https://github.com/llvm/llvm-project/commit/3d8ca7e0544c4cca5367c83b1ccd4246bc3dea77
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/AllocAction.h
Log Message:
-----------
[orc-rt] Replace AAHandlerTraits with CallableArgInfo. NFCI. (#205257)
CallableArgInfo provides a superset of AAHandlerTraits functionality, so
we don't need the latter.
Commit: c492c7d5c2e49e576fce149706139f37f6aae934
https://github.com/llvm/llvm-project/commit/c492c7d5c2e49e576fce149706139f37f6aae934
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
Log Message:
-----------
[RISCV] Avoid implicit conversions from MCRegister to MCPhysReg. NFC (#205260)
Commit: 194da0f3e774426dfa646e9879a1ad109db06c6c
https://github.com/llvm/llvm-project/commit/194da0f3e774426dfa646e9879a1ad109db06c6c
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
A clang/include/clang/Frontend/SSAFOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
Log Message:
-----------
Reland "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#204798)
Second attempt of #204686
This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.
This way all of these SSAF (and future) options will be at a
centralized place.
In preparation of rdar://179151023
Commit: 576584794d9124c7228f4599e757dc909a534f1c
https://github.com/llvm/llvm-project/commit/576584794d9124c7228f4599e757dc909a534f1c
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/AllocAction.h
M orc-rt/include/orc-rt/SPSAllocAction.h
M orc-rt/unittests/AllocActionTest.cpp
Log Message:
-----------
[orc-rt] Add return serialization to AllocActionFunction::handle. (#205271)
Add a Serializer template parameter to AllocActionFunction::handle and
apply it to the handler's return value before forwarding as the action
result. This lets handler authors return types other than
WrapperFunctionBuffer.
For SPS, AllocActionSPSSerializer is the default Serializer used by
SPSAllocActionFunction::handle. It accepts either:
- WrapperFunctionBuffer (identity pass-through, the existing behavior),
or
- Error (success → empty WFB; failure → out-of-band-error WFB carrying
toString(Err)).
Adds AllocActionTest coverage for both Error-return paths.
Commit: 639c5a014fad13c683b01c66a1474b7aa47ce7ee
https://github.com/llvm/llvm-project/commit/639c5a014fad13c683b01c66a1474b7aa47ce7ee
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
M libc/src/sys/ioctl/linux/CMakeLists.txt
M libc/src/sys/ioctl/linux/ioctl.cpp
M libc/src/termios/linux/CMakeLists.txt
M libc/src/termios/linux/tcdrain.cpp
M libc/src/termios/linux/tcflow.cpp
M libc/src/termios/linux/tcflush.cpp
M libc/src/termios/linux/tcgetattr.cpp
M libc/src/termios/linux/tcgetsid.cpp
M libc/src/termios/linux/tcsendbreak.cpp
M libc/src/termios/linux/tcsetattr.cpp
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/isatty.cpp
Log Message:
-----------
[libc] Introduce the ioctl syscall wrapper and port all callers (#204640)
This patch adds an ioctl syscall wrapper in linux_syscalls namespace and
migrates all direct SYS_ioctl calls to use it.
To handle the polymorphic nature of ioctl arguments (where some commands
expect pointers, some expect scalar integers like queue_selector, and
some expect no argument at all), I use a helper struct IoctlArg with
implicit constructors. This avoids template bloat and overload
ambiguities (particularly around literal 0) while keeping call sites
clean.
Assisted by Gemini.
Commit: c1bc84866a5ada0ec12c810ca42b381b776d198a
https://github.com/llvm/llvm-project/commit/c1bc84866a5ada0ec12c810ca42b381b776d198a
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
Log Message:
-----------
[Clang][ABI] Validate consistency between ABI lowering implementation (#203281)
If the LLVM ABI library is used, and assertions are enabled, compute the
ABI both using Clang's implementation the the LLVM ABI library, and
verify that the results are the same.
Commit: ffeb9c1d2612cb5729889b6e82ade060192722dd
https://github.com/llvm/llvm-project/commit/ffeb9c1d2612cb5729889b6e82ade060192722dd
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
Log Message:
-----------
[clang][ssaf][NFC] Make SSAFOptions available in Builders and Extractors (#204684)
Now that we have SSAFOptions, it would make it a lot more ergonomic if
it was accessible from builders and extractors.
This PR does exactly that.
Part of rdar://179151023
Co-authored-by: Jan Korous <jkorous at apple.com>
Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
Commit: 50838f484bbf4d514386d0717a789600790f1a1f
https://github.com/llvm/llvm-project/commit/50838f484bbf4d514386d0717a789600790f1a1f
Author: Yuxuan Shui <yshuiv7 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-symbolizer.rst
M llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
M llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
M llvm/test/tools/llvm-symbolizer/pdb/pdb.test
M llvm/tools/llvm-symbolizer/Opts.td
M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Log Message:
-----------
[symbolizer] Add a --pdb option. (#171053)
Closes #142490
Commit: ebaee77528bb1e5b241c4466117772dd3954340e
https://github.com/llvm/llvm-project/commit/ebaee77528bb1e5b241c4466117772dd3954340e
Author: adalal-2441 <adalal at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/test/CodeGen/X86/avx512-load-store.ll
Log Message:
-----------
[X86] Prevent folding of volatile scalar loads into masked loads in selects (#205103)
X86 select patterns were folding scalar FP loads into AVX-512 masked
loads. Since masked loads suppress memory access when the mask is 0,
this can incorrectly eliminate the observable access of volatile loads,
leading to miscompilation. Non-volatile loads are unaffected.
Multi-use loads already avoid folding, since folding consumes the load
into the instruction's memory operand and leaves no value for the other
users, forcing it to be materialized into a register. Single-use
volatile loads did not, and this must also be prevented, as volatile
loads are required to always perform their memory access.
Fix this by using the isSimple()-guarded simple_load pattern instead of
loadf32/loadf64, ensuring volatile loads are not folded.
Found via @jlebar's X86 LLVM bug hunt / FuzzX effort:
https://github.com/SemiAnalysisAI/FuzzX/blob/master/x86/bugs/093-avx512-vmovs-x86selects-load-fold-mask-suppress
Commit: 635cbc0ebb2851d4cb9d72dcd62f2ef2dd1c25c5
https://github.com/llvm/llvm-project/commit/635cbc0ebb2851d4cb9d72dcd62f2ef2dd1c25c5
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
R libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
M libc/src/sys/ioctl/linux/CMakeLists.txt
M libc/src/sys/ioctl/linux/ioctl.cpp
M libc/src/termios/linux/CMakeLists.txt
M libc/src/termios/linux/tcdrain.cpp
M libc/src/termios/linux/tcflow.cpp
M libc/src/termios/linux/tcflush.cpp
M libc/src/termios/linux/tcgetattr.cpp
M libc/src/termios/linux/tcgetsid.cpp
M libc/src/termios/linux/tcsendbreak.cpp
M libc/src/termios/linux/tcsetattr.cpp
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/isatty.cpp
Log Message:
-----------
Revert "[libc] Introduce the ioctl syscall wrapper and port all callers" (#205277)
Reverts llvm/llvm-project#204640
Breaks libc-x86_64-debian-fullbuild. Reverting while I investigate.
Commit: 9e3fc52b6e15d9ca4c07d014e7ac41ddd462f353
https://github.com/llvm/llvm-project/commit/9e3fc52b6e15d9ca4c07d014e7ac41ddd462f353
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/fold-imm-pk64.mir
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
M llvm/test/CodeGen/AMDGPU/pk-lshl-add-u64.ll
Log Message:
-----------
[AMDGPU] Fold v2{i|f}64 immediates (#205195)
Commit: 3e69ed4e8aeb3f3773e4551308141af1c91d78cb
https://github.com/llvm/llvm-project/commit/3e69ed4e8aeb3f3773e4551308141af1c91d78cb
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
R clang/include/clang/Frontend/SSAFOptions.h
M clang/include/clang/Options/Options.td
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
Log Message:
-----------
Revert some SSAF patches (#205279)
I've started seeing some failures on Windows permissive bots.
I'll revert my patches for now until further investigation.
errors:
https://lab.llvm.org/buildbot/#/builders/107/builds/20548
```
C:\b\slave\sanitizer-windows\llvm-project\clang\lib\Frontend\CompilerInvocation.cpp
C:\b\slave\sanitizer-windows\build\tools\clang\include\clang/Options/Options.inc(9981): error C2065: 'SSAFOpts': undeclared identifier
C:\b\slave\sanitizer-windows\build\tools\clang\include\clang/Options/Options.inc(9982): note: see reference to function template instantiation 'auto GenerateSSAFArgs::<lambda_5f504a9e8792b8b03f1d39701f31dbec>::operator ()<T>(const T &) const' being compiled
with
[
T=std::vector<std::string,std::allocator<std::string>>
]
```
Revert "Reland "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions
to a dedicated SSAFOptions" (#204798)"
This reverts commit 194da0f3e774426dfa646e9879a1ad109db06c6c.
Revert "[clang][ssaf][NFC] Make SSAFOptions available in Builders and
Extractors (#204684)"
This reverts commit ffeb9c1d2612cb5729889b6e82ade060192722dd.
Commit: 115c749cbdada7c2663d4a64c166bafccab5fcfa
https://github.com/llvm/llvm-project/commit/115c749cbdada7c2663d4a64c166bafccab5fcfa
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
Log Message:
-----------
[AMDGPU] Select fneg modifier for v2f64 instructions (#205194)
Commit: 9550cd76cadea9f25a5c0bf3ee06e9f7ce5631ed
https://github.com/llvm/llvm-project/commit/9550cd76cadea9f25a5c0bf3ee06e9f7ce5631ed
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[IR] Remove IRBuilder AddMetadataToInst (#202280)
This avoids an extra check for metadata on every instruction insertion,
makes constructing an IRBuilder cheaper, and therefore slightly improves
performance.
As the C API doesn't expose CollectMetadataToCopy or any other way to
add additional metadata to the IRBuilder, make LLVMAddMetadataToInst an
alias for LLVMSetInstDebugLocation and undeprecate the latter.
Commit: 876439fa00d7e04201f08418297bcdbd85400bb8
https://github.com/llvm/llvm-project/commit/876439fa00d7e04201f08418297bcdbd85400bb8
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Transforms/Inline/X86/call-abi-compatibility.ll
M llvm/test/Transforms/PhaseOrdering/X86/loop-vectorizer-noalias.ll
Log Message:
-----------
[X86][Inline] Make ABI compatibility check more precise (#205106)
When inlining a function that contains calls with vector arguments, we
have to be careful that inlining does not change the ABI of the call.
E.g. we generally can't inline a function without `+avx` into a
function with `+avx` if there are calls using vectors of size 256 or
larger, because they'd switch from passing in two xmm registers to
passing in a ymm register.
However, the current check is very crude and only allows inlining with
interior calls if the target features match *exactly* (via the base
areTypesABICompatible implementation). This is unnecessarily
conservative, as many target features do not affect the call ABI at all.
Make this check more precise by checking the result of
getRegisterTypeForCallingConv for the type between the TLI instances for
the caller and callee.
Commit: d39923c4df01fdeb10dae4da256c09fdf616157c
https://github.com/llvm/llvm-project/commit/d39923c4df01fdeb10dae4da256c09fdf616157c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/TargetInfo.h
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.cpp
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.cpp
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/M68k.h
M clang/lib/Basic/Targets/Mips.h
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/Sparc.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/Basic/Targets/Xtensa.h
Log Message:
-----------
clang: Change TargetInfo::setCPU to take StringRef (#205278)
The related APIs all use StringRef, so use StringRef for
consistency.
Co-Authored-By: Claude (Opus 4.8) <noreply at anthropic.com>
Commit: 4057dfd091241ab4784d1355422892b48810edf6
https://github.com/llvm/llvm-project/commit/4057dfd091241ab4784d1355422892b48810edf6
Author: PushkarSingh <149073046+iitianpushkar at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
M clang/test/Sema/LifetimeSafety/invalidations.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Improve destroyed and invalidated diagnostic notes (#204900)
## Summary
Improve Lifetime Safety diagnostic notes by identifying the affected
storage in destruction and invalidation notes.
Examples:
```
{
int value;
ptr = &value;
}
```
Before:
```
note: destroyed here
```
After:
```
note: local variable 'value' is destroyed here
```
For temporaries:
```
note: temporary object is destroyed here
```
For invalidations:
```
note: local variable 'container' is invalidated here
```
For parameters:
```
note: parameter 'container' is invalidated here
```
For explicitly deallocated storage:
```
note: allocated object is freed here
```
## Implementation
The lifetime analysis already knows which object is responsible for a
warning. This change reuses that information when producing the
accompanying destruction, invalidation or deallocation note.
All affected regression tests have been updated to check the complete
diagnostic messages.
Addresses #200234
Commit: 8289d982fb4267d9a5e545276292170a9b0f6700
https://github.com/llvm/llvm-project/commit/8289d982fb4267d9a5e545276292170a9b0f6700
Author: Avhi <oss at avhi.in>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/FixIrreducible.cpp
A llvm/test/Transforms/FixIrreducible/unsupported-terminator.ll
Log Message:
-----------
[FixIrreducible] Use reportFatalUsageError for unsupported terminators (#205244)
`opt -passes=fix-irreducible` crashed via `llvm_unreachable` on a
`switch` terminator incident to an irreducible cycle header. Such
terminators must be lowered first (`lower-switch`); replace the
`llvm_unreachable` at both sites with `reportFatalUsageError` so the
pass fails gracefully instead of crashing.
Fixes #191978
Signed-off-by: AvhiMaz <avhimazumder5 at outlook.com>
Commit: bad300bda1b936f160f49111b6e67731605c95fb
https://github.com/llvm/llvm-project/commit/bad300bda1b936f160f49111b6e67731605c95fb
Author: Ches Burks <chesburks at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/STLExtras.h
M mlir/include/mlir/Query/Matcher/MatchersInternal.h
Log Message:
-----------
[MLIR][ADT] Improve matcher compatability with C++20 STL (#205255)
When building MLIR on C++20 in Visual Studio with clang-cl, there are
several related compiler errors, grouped by project:
MLIRQueryMatcher
```C
type '_Mybase' (aka 'typename conditional<conjunction_v<is_trivially_destructible<DynMatcher>, is_trivially_move_constructible<DynMatcher>, is_trivially_move_assignable<DynMatcher>>, typename conditional<conjunction_v<is_trivially_destructible<DynMatcher>, is_trivially_copy_constructible<DynMatcher>, is_trivially_copy_assignable<DynMatcher>>, _Non_trivial_move<_Optional_construct_base<DynMatcher>, DynMatcher>, _Non_trivial_copy_assign<_Optional_construct_base<DynMatcher>, DynMatcher>>::type, _Non_trivial_move_assign<_Optional_construct_base<DynMatcher>, DynMatcher>>::type') is not a direct or virtual base of 'std::optional<mlir::query::matcher::DynMatcher>'
no member named '_Value' in 'std::optional<mlir::query::matcher::DynMatcher>'
no member named '_Has_value' in 'std::optional<mlir::query::matcher::DynMatcher>'
no matching function for call to '_Destroy_range'
invalid application of 'sizeof' to an incomplete type 'mlir::query::matcher::DynMatcher'
invalid application of 'alignof' to an incomplete type 'mlir::query::matcher::DynMatcher'
```
MLIRQueryMatcher, MLIRQuery, MLIRQueryLib, and mlir-query
```C
no viable conversion from 'std::vector<DynMatcher>' to 'ArrayRef<DynMatcher>'
incomplete type 'mlir::query::matcher::DynMatcher' used in type trait expression
```
MLIRIR
```C
no matching constructor for initialization of 'llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator'
invalid operands to binary expression ('const std::reverse_iterator<llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator>' and 'const std::reverse_iterator<llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator>')
```
std::vector<T> operations require complete type T for pointer
arithmetic, std::optional<T> has a similar problem.
std::reverse_iterator requires a default constructor for iterator.
Adding a default constructor for iterator, and defining VariadicMatcher
functions after DynMatcher is defined, resolves the errors.
Commit: 70c54ff1d5662f5a9ad22b3f6eeb287cef10236f
https://github.com/llvm/llvm-project/commit/70c54ff1d5662f5a9ad22b3f6eeb287cef10236f
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.td
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
M clang/lib/Headers/riscv_packed_simd.h
M clang/test/CodeGen/RISCV/rvp-intrinsics.c
M cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
Log Message:
-----------
[Clang][RISCV] packed exchanged add/sub intrinsics (#205251)
Add the `__riscv_{pas,psa,psas,pssa,paas,pasa}_x_*` header wrappers over
new `__builtin_riscv_*` builtins.
Commit: 3f7eb27ad40516fc66139e2043b8fc08bfe66d76
https://github.com/llvm/llvm-project/commit/3f7eb27ad40516fc66139e2043b8fc08bfe66d76
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/madd.ll
Log Message:
-----------
[X86] madd.ll - add SSE42 test coverage (#205299)
Commit: e85f1c1cf0f3b938803c1ce4763b096499a7f701
https://github.com/llvm/llvm-project/commit/e85f1c1cf0f3b938803c1ce4763b096499a7f701
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
Log Message:
-----------
[lldb][test] Skip TestConcurrentManyBreakpoints (#205298)
Commit: fbdb644a8b066d9c615077da31f10330e8a2f3d6
https://github.com/llvm/llvm-project/commit/fbdb644a8b066d9c615077da31f10330e8a2f3d6
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
Log Message:
-----------
AMDGPU: Move AMDGPUTargetID to AMDGPUTargetParser (#205268)
Commit: 11a928ec5cb21d4830fa8029160f33dc621ace5d
https://github.com/llvm/llvm-project/commit/11a928ec5cb21d4830fa8029160f33dc621ace5d
Author: John Brawn <john.brawn at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/test/Transforms/LoopStrengthReduce/AArch64/use-outside-loop.ll
Log Message:
-----------
[LSR] Don't merge ICmpZero uses outside loop (#205131)
In NarrowSearchSpaceByMergingUsesOutsideLoop don't merge ICmpZero uses
outside the loop with uses inside the loop, as the resulting use will
have a kind that's not ICmpZero, which will mean the compare won't be
expanded correctly later.
Commit: 40dc2b25d8bf421d0194ccb248561d372d168c96
https://github.com/llvm/llvm-project/commit/40dc2b25d8bf421d0194ccb248561d372d168c96
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
Log Message:
-----------
[CIR] Fix LoadOp creation (#205294)
Commit: 649e3e0e23222418bfbd8a4247875823be71143b
https://github.com/llvm/llvm-project/commit/649e3e0e23222418bfbd8a4247875823be71143b
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
A llvm/test/Transforms/ArgumentPromotion/X86/struct-load.ll
Log Message:
-----------
[X86][TTI] Handle structs in areTypesABICompatible() (#205308)
Fixes a regression from #205106. getValueType() asserts on aggregate
types. Use CompuateValueVTs() to compute the de-aggregated VTs.
Performing argument promotion for struct types seems pretty
dubious to me, but it was previously allowed, so I'm retaining
that behavior. We may want to disable promotion of aggregates
in ArgPromotion entirely though.
Commit: 3bfec5dd4309a53c0df9f9a59dcfa8232746240d
https://github.com/llvm/llvm-project/commit/3bfec5dd4309a53c0df9f9a59dcfa8232746240d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
Log Message:
-----------
AMDGPU: Temporarily restore disassembler's dependency on TargetParser, again (#205309)
Reverts part of #205268
Commit: 1e3018523042d1b610b6676cf8d056315f6e3bd7
https://github.com/llvm/llvm-project/commit/1e3018523042d1b610b6676cf8d056315f6e3bd7
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
A llvm/test/CodeGen/SystemZ/target-flags.ll
Log Message:
-----------
[SystemZ] Add serialization strings for some MO target flags. (#203053)
These strings are needed for MIR textual representation: If one is
missing it doesn't work to do "-stop-before=XXX and then
-start-before=XXX".
Commit: 0d49a95036d2d4579d3da4cf7b72f6be0fe33bd5
https://github.com/llvm/llvm-project/commit/0d49a95036d2d4579d3da4cf7b72f6be0fe33bd5
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
A clang/include/clang/Frontend/SSAFOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
Log Message:
-----------
Reland "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#205312)
Third attempt of #204686
Previous attempt was: #204798
This was last reverted in #205279
This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.
This way all of these SSAF (and future) options will be at a
centralized place.
In preparation of rdar://179151023
---
The previous attempt had issues on Windows with `/permissive` configs.
The issue was that `GENERATE_OPTION_WITH_MARSHALLING` had a generic
lambda capture and that does not constitute as an ODR-use of the
captured name - because that name was only used in an unevaluated context.
This meant that MSVC refused to find the function parameter.
My speculative solution is to follow the established pattern of passing
a pointer to the Opts structure instead of passing it directly as a
reference - similar to how `AnalyzerOptions` are passed around that macro.
Commit: 8b7e7fa49b6296eefe422da168a5595102c39870
https://github.com/llvm/llvm-project/commit/8b7e7fa49b6296eefe422da168a5595102c39870
Author: Julian Nagele <j.nagele at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
Log Message:
-----------
[NFC] UnicodeNameMappingGenerator: restore #include <unordered_map> (#205316)
#204303 removed this include while converting `unordered_map` uses to
`DenseMap`, but `loadDataFiles` still uses `unordered_multimap`.
See
https://ci.swift.org/job/llvm.org/job/clang-stage2-Rthinlto/job/main/360/
```
[2026-06-23T05:46:26.519Z] /Users/ec2-user/jenkins/workspace/m.org_clang-stage2-Rthinlto_main/llvm-project/llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp:34:13: error: missing '#include <unordered_map>'; 'unordered_multimap' must be declared before it is used
[2026-06-23T05:46:26.519Z] 34 | static std::unordered_multimap<char32_t, std::string>
[2026-06-23T05:46:26.519Z] | ^
```
Commit: 18ce6f449e0bc913ffa0ffde48f4305187d86bc4
https://github.com/llvm/llvm-project/commit/18ce6f449e0bc913ffa0ffde48f4305187d86bc4
Author: DmitriiMartynov <31047826+DmitriiMartynov at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryFunction.h
A bolt/test/AArch64/constant-island-reproducible.s
Log Message:
-----------
[BOLT][AArch64] reproducible output with constant islands (#204546)
Optimized binaries from subsequent llvm-bolt runs may sometimes differ
due to the unordered set (SmallPtrSet), even if the input binary and
parameters are the same. Usage of SetVector guarantees a deterministic
sequence of binary functions while keeping each function as a single
instance.
Below you can see two different main functions before the fix after two
llvm-bolt runs (same input binaries, same arguments).
```
0000000000210400 <main>:
210400: 10000140 adr x0, 0x210428 <main+0x28>
210404: f9400000 ldr x0, [x0]
210408: 10000140 adr x0, 0x210430 <main+0x30>
21040c: f9400000 ldr x0, [x0]
210410: 10000180 adr x0, 0x210440 <main+0x40>
210414: f9400000 ldr x0, [x0]
210418: 10000180 adr x0, 0x210448 <main+0x48>
21041c: f9400000 ldr x0, [x0]
210420: d65f03c0 ret
210424: d503201f nop
210428: 00000010 udf #0x10
21042c: 00000000 udf #0x0
210430: 00000020 udf #0x20
210434: 00000000 udf #0x0
210438: d503201f nop
21043c: d503201f nop
210440: 00000030 udf #0x30
210444: 00000000 udf #0x0
210448: 00000040 udf #0x40
21044c: 00000000 udf #0x0
210450: d503201f nop
210454: d503201f nop
0000000000210400 <main>:
210400: 100001c0 adr x0, 0x210438 <main+0x38>
210404: f9400000 ldr x0, [x0]
210408: 100001c0 adr x0, 0x210440 <main+0x40>
21040c: f9400000 ldr x0, [x0]
210410: 100000c0 adr x0, 0x210428 <main+0x28>
210414: f9400000 ldr x0, [x0]
210418: 100000c0 adr x0, 0x210430 <main+0x30>
21041c: f9400000 ldr x0, [x0]
210420: d65f03c0 ret
210424: d503201f nop
210428: 00000030 udf #0x30
21042c: 00000000 udf #0x0
210430: 00000040 udf #0x40
210434: 00000000 udf #0x0
210438: 00000010 udf #0x10
21043c: 00000000 udf #0x0
210440: 00000020 udf #0x20
210444: 00000000 udf #0x0
210448: d503201f nop
21044c: d503201f nop
```
Commit: 572cf32ce413f606162759da6c83b5409aa471da
https://github.com/llvm/llvm-project/commit/572cf32ce413f606162759da6c83b5409aa471da
Author: Lucas <lucasribeirolima974 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/bugprone/assignment-in-selection-statement.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/bad-signal-to-kill-thread.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/copy-constructor-mutates-argument.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/default-operator-new-on-overaligned-type.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/exception-copy-constructor-throws.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/macro-parentheses.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/pointer-arithmetic-on-polymorphic-object.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-non-trivial-type.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/reserved-identifier.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/signal-handler.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/signed-char-misuse.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/sizeof-expression.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unique-ptr-array-mismatch.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/err33-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/err60-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/mem57-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc30-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc50-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/concurrency/thread-canceltype-asynchronous.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/anonymous-namespace-in-header.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/no-recursion.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/predictable-rand.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/static-initialization-cycle.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/throw-by-value-catch-by-reference.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
Log Message:
-----------
[clang-tidy][NFC] Update CERT wiki link across all clang-tidy docs (#205086)
This patch updates the outdated CMU wiki link in the clang-tidy
documentation.
The old link currently returns a `301 Moved Permanently` redirecting to
the new GitHub Pages location. This patch updates the source file to
point directly to the new destination to prevent future link rot.
Closes #200277
Commit: 3abbf06dd15df2288de06749f0bb8dddc4189294
https://github.com/llvm/llvm-project/commit/3abbf06dd15df2288de06749f0bb8dddc4189294
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
Log Message:
-----------
[clang-tidy] Avoid token merging in redundant-parentheses fix-its (#202365)
The readability-redundant-parentheses check emitted fix-its that simply
removed both parentheses. Tools that apply those fix-its directly could
join adjacent tokens and produce invalid code, e.g. `return(0)` becoming
`return0`.
Replace the opening parenthesis with a space when removing it would
merge identifier characters across the removed token.
AI Usage: Test assisted by Codex.
Closes https://github.com/llvm/llvm-project/issues/185108
Commit: 7f567069a4009c651fcfa59d336f6f265ab31c8d
https://github.com/llvm/llvm-project/commit/7f567069a4009c651fcfa59d336f6f265ab31c8d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/phaddsub.ll
Log Message:
-----------
[X86] phaddsub.ll - update PR39921/PR39936 test case to a vector.reduce.v8i32 call (#205310)
Matches middle-end IR produced from the tests' C++ source since #199872
Commit: 516ab1ad34e2da9e03e3098ae2d731c597629853
https://github.com/llvm/llvm-project/commit/516ab1ad34e2da9e03e3098ae2d731c597629853
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.h
M llvm/test/CodeGen/SystemZ/args-22.ll
M llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
M llvm/test/CodeGen/SystemZ/bswap-09.ll
M llvm/test/CodeGen/SystemZ/bswap-10.ll
M llvm/test/CodeGen/SystemZ/call-zos-vec.ll
M llvm/test/CodeGen/SystemZ/canonicalize-vars.ll
M llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
M llvm/test/CodeGen/SystemZ/dag-combine-05.ll
M llvm/test/CodeGen/SystemZ/dag-combine-07.ll
M llvm/test/CodeGen/SystemZ/fold-masked-merge.ll
M llvm/test/CodeGen/SystemZ/fp-copysign-03.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-binops.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-fcmp-select.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-explicit-regs-zEC12.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-zEC12.ll
M llvm/test/CodeGen/SystemZ/int-cmp-65.ll
M llvm/test/CodeGen/SystemZ/int-conv-14.ll
M llvm/test/CodeGen/SystemZ/int-conv-15.ll
M llvm/test/CodeGen/SystemZ/int-mul-12.ll
M llvm/test/CodeGen/SystemZ/int-mul-13.ll
M llvm/test/CodeGen/SystemZ/int-uadd-14.ll
M llvm/test/CodeGen/SystemZ/int-usub-13.ll
M llvm/test/CodeGen/SystemZ/machine-combiner-reassoc-fp.ll
M llvm/test/CodeGen/SystemZ/misched-prera-cmp-elim.mir
M llvm/test/CodeGen/SystemZ/misched-prera-latencies.mir
A llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
A llvm/test/CodeGen/SystemZ/misched-prera-pdiffs.mir
M llvm/test/CodeGen/SystemZ/regcoal-subranges-update.mir
M llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
M llvm/test/CodeGen/SystemZ/risbg-04.ll
M llvm/test/CodeGen/SystemZ/rot-03.ll
M llvm/test/CodeGen/SystemZ/shift-12.ll
M llvm/test/CodeGen/SystemZ/shift-13.ll
M llvm/test/CodeGen/SystemZ/shift-14.ll
M llvm/test/CodeGen/SystemZ/shift-15.ll
M llvm/test/CodeGen/SystemZ/shift-16.ll
M llvm/test/CodeGen/SystemZ/shift-17.ll
M llvm/test/CodeGen/SystemZ/soft-float-args.ll
M llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
M llvm/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll
M llvm/test/CodeGen/SystemZ/vec-cmpsel-01.ll
M llvm/test/CodeGen/SystemZ/vec-eval.ll
M llvm/test/CodeGen/SystemZ/vec-move-23.ll
M llvm/test/CodeGen/SystemZ/vec-mul-07.ll
M llvm/test/CodeGen/SystemZ/vec-perm-12.ll
M llvm/test/CodeGen/SystemZ/vec-trunc-to-i16.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
Log Message:
-----------
[SystemZ] Enable liveness reduction in pre-RA sched strategy. (#188823)
Add some handling of register pressure by scheduling an SU "low" if it closes a
live range (under certain conditions).
As this is checked before latency reduction, the "data-sequnces" check that was
used to selectively enable latency reduction can now be removed.
This gives good improvements on several benchmarks and is also a simplification
of the SystemZPreRASchedStrategy.
Commit: e9d162fabb3eec8af9aa8583e7385e64d9c2a914
https://github.com/llvm/llvm-project/commit/e9d162fabb3eec8af9aa8583e7385e64d9c2a914
Author: adream307 <adream307 at 163.com>
Date: 2026-06-23 (Tue, 23 Jun 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/test/CodeGen/X86/avx2-builtins.c
M clang/test/CodeGen/X86/sse41-builtins.c
Log Message:
-----------
[clang][X86] Add constexpr support for mpsadbw128/256 intrinsics (#202257)
Enable constexpr evaluation for `_mm_mpsadbw_epu8` and
`_mm256_mpsadbw_epu8` (`__builtin_ia32_mpsadbw128`/`mpsadbw256`).
Fixes #157522.
Commit: ebd969f5ffb8f0abb31e8074c84aeea2766d75f5
https://github.com/llvm/llvm-project/commit/ebd969f5ffb8f0abb31e8074c84aeea2766d75f5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
Log Message:
-----------
AMDGPU: Rename AMDGPUTargetID to TargetID (#205269)
The AMDGPU prefix is redundant with the namespace.
Co-Authored-By: Claude <noreply at anthropic.com>
Commit: 9750a8d66da31ab5d5039a2b8acc90168417c244
https://github.com/llvm/llvm-project/commit/9750a8d66da31ab5d5039a2b8acc90168417c244
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Floating.h
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/IR/Constants.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/SPIRV/SPIRVCombinerHelper.cpp
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
M llvm/unittests/ADT/APFloatTest.cpp
M llvm/unittests/IR/MDBuilderTest.cpp
Log Message:
-----------
[LLVM][ConstantFP] Replace uses of isExactlyValue(+/-1.0) with isOne/isMinusOne. (#204333)
Commit: 7db130470447e9617fe1c169d90933c72254c3da
https://github.com/llvm/llvm-project/commit/7db130470447e9617fe1c169d90933c72254c3da
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/aarch64-bf16-ldst-intrinsics.ll
M llvm/test/CodeGen/AArch64/arm64-build-vector.ll
M llvm/test/CodeGen/AArch64/bf16-select.ll
M llvm/test/CodeGen/AArch64/bf16-shuffle.ll
M llvm/test/CodeGen/AArch64/bf16-vector-bitcast.ll
M llvm/test/CodeGen/AArch64/bf16-vector-shuffle.ll
M llvm/test/CodeGen/AArch64/bf16.ll
M llvm/test/CodeGen/AArch64/load-insert-undef.ll
M llvm/test/CodeGen/AArch64/load-insert-zero.ll
M llvm/test/CodeGen/AArch64/luti-with-sme2.ll
M llvm/test/CodeGen/AArch64/neon-luti.ll
M llvm/test/CodeGen/AArch64/spillfill-sve.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
M llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
M llvm/test/CodeGen/AArch64/sve-insert-element.ll
M llvm/test/CodeGen/AArch64/sve-insert-vector.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-gather-loads-128bit-index.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-gather-loads-128bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-scatter-stores-128bit-index.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-scatter-stores-128bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-tblq.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-tbxq.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpq1.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpq2.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-zipq1.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-zipq2.ll
M llvm/test/CodeGen/AArch64/sve2p1-vector-shuffles.ll
M llvm/test/CodeGen/AArch64/vector-extract-last-active.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-counts-not.ll
M llvm/test/CodeGen/ARM/bf16-create-get-set-dup.ll
M llvm/test/CodeGen/ARM/bf16-getlane-with-fp16.ll
M llvm/test/CodeGen/ARM/bf16-imm.ll
M llvm/test/CodeGen/ARM/bf16-intrinsics-ld-st.ll
M llvm/test/CodeGen/ARM/bf16-shuffle.ll
M llvm/test/CodeGen/ARM/bfloat.ll
Log Message:
-----------
[LLVM][CodeGen] Remove +bf16 for ARM/AArch64 tests that don't strictly need the feature flag. (#204199)
Tests that use bfloat purely as an opaque datatype should not use
instructions that require the bf16 feature.
Commit: d09868bc749f6bcbaa09bbbed7a140aa051aabf7
https://github.com/llvm/llvm-project/commit/d09868bc749f6bcbaa09bbbed7a140aa051aabf7
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M .ci/green-dragon/lldb-windows.groovy
Log Message:
-----------
[CI] switch to BuildTools variant of Visual Studio (#201335)
Follow up to:
- https://github.com/swiftlang/swift-docker/pull/566
- https://github.com/swiftlang/swift-docker/pull/565
It's no longer necessary to install packaging at runtime and the new
image will use `BuildTools`.
Commit: e3f6a42532749c55008e38e3e19186ef6b0c0d17
https://github.com/llvm/llvm-project/commit/e3f6a42532749c55008e38e3e19186ef6b0c0d17
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M orc-rt/unittests/AllocActionTest.cpp
M orc-rt/unittests/SPSAllocActionTest.cpp
Log Message:
-----------
[orc-rt] Split AllocAction tests by SPS dependency. (#205322)
Rewrites AllocActionTest.cpp's integration tests (RunBasicAction,
RunFinalize*) to drive AllocActionFunction::handle with a small local
IntPtrDeserializer / IdentitySerializer pair instead of going through
SPS, and moves the existing SPS-using AllocAction tests into
SPSAllocActionTest.cpp.
Also adds two new SPS tests covering previously-uncovered paths:
- RunActionWithSPSArgsAndWFBReturn — SPS argument deserialization plus
AllocActionSPSSerializer's identity (WrapperFunctionBuffer) overload.
- RunActionWithUndecodableArgs — the deserialization-failure path in
AllocActionFunction::handle.
After the split, an AllocActionTest failure indicates problems with the
AllocAction machinery, and an SPSAllocActionTest failure without a
corresponding AllocActionTest failure indicates an SPS encoding /
decoding issue for AllocAction.
Commit: 844136348ef4c03e84bed0a51d8557d53f466b0d
https://github.com/llvm/llvm-project/commit/844136348ef4c03e84bed0a51d8557d53f466b0d
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/test/AST/undocumented-attrs.cpp
Log Message:
-----------
Document the [[clang::annotate]] attribute (#203303)
The new documentation mirrors the existing docs for annotate_type.
Commit: 25f0443ddccf6a03d9b432c246ce97eb535cab52
https://github.com/llvm/llvm-project/commit/25f0443ddccf6a03d9b432c246ce97eb535cab52
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
Log Message:
-----------
[OpenMP] Remove unused isStrictSubset template (NFC) (#202987)
The `isStrictSubset` `ArrayRef<T>` template has no callers, so it never
instantiates and trips `-Wunused-template`. The `VariantMatchInfo`
overload does the work that's actually used, and `isSubset` stays
untouched. Removing the dead template.
NFC.
Part of #202945.
Commit: 59c5c39a76e04fc8cd3af39748e256ca1e6fcda8
https://github.com/llvm/llvm-project/commit/59c5c39a76e04fc8cd3af39748e256ca1e6fcda8
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/test/AST/undocumented-attrs.cpp
Log Message:
-----------
Fix test after 844136348ef4c03e84bed0a51d8557d53f466b0d (#205328)
Commit: 99c80fefdfac69a47773b66f35ae638d63ce5758
https://github.com/llvm/llvm-project/commit/99c80fefdfac69a47773b66f35ae638d63ce5758
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/test/API/macosx/thread_suspend/main.c
Log Message:
-----------
[lldb] Fix race/timeout in TestInternalThreadSuspension (#203202)
This test launches a thread and then waits for a signal from the
launched thread. Below is one possible interleaving, where the
`pthread_cond_signal` (2) wins the race and becomes a no-op while (3) is
locking until the test times out.
```
void *
suspend_func (void *unused) {
[...]
// 2. Created thread reaches this and signals.
pthread_cond_signal(&signal_cond);
[...]
}
int main() {
pthread_mutex_lock(&signal_mutex);
// 1. Thread is created
pthread_create(&suspend_thread, NULL, suspend_func, NULL);
// Enable this to make race reliable:
// sleep(1);
// 3. We start waiting on signal_cond, but 2. already executed.
pthread_cond_wait(&signal_cond, &signal_mutex);
```
This patch guards (2) with signal_mutex so it can only be executed after
pthread_cond_wait unlocks signal_mutex.
Commit: e9aec194f1e034f7b548240bd76b623d80bac034
https://github.com/llvm/llvm-project/commit/e9aec194f1e034f7b548240bd76b623d80bac034
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
Reapply "[InstCombine] Merge consecutive assumes" (#205177) (#205324)
The crash was caused by using `getOperandBundle` for an assume, which
requires that the operand bundles are unique. This isn't guaranteed by
assume bundles. This patch adds `hasOperandBundle` instead, which
doesn't have the same constraint.
Original message:
This should make assumes a bit more efficient, since it removes a few
instructions. This should also help with optimizations that are
limited in how many instructions they step through.
This reverts commit 3f0ef1efb26206c3f5d5621d86d740c7f466c67b.
Commit: b713aaedb6eedd7d20f666038d945e50eafd4c27
https://github.com/llvm/llvm-project/commit/b713aaedb6eedd7d20f666038d945e50eafd4c27
Author: David Green <david.green at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/ARM/vcombine.ll
Log Message:
-----------
[ARM] Regenerate vcombine.ll. NFC (#205335)
Commit: 0a991b71e78646322876c8db487084ec1840184a
https://github.com/llvm/llvm-project/commit/0a991b71e78646322876c8db487084ec1840184a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[LLVM][Runtimes] Forward 'LLVM_LIBDIR_SUFFIX' to runtimes by default (#205182)
Summary:
This option controls the logical path of the installed libraries. The
runtimes obften reach into libraries, or want to install to the same
location as the main build. Previously you had to set this per-runtime,
but we should likely forward it by default.
Fixes: https://github.com/llvm/llvm-project/issues/159762
Commit: d2850baf0ad99c662e224bb522aebdeb09ff8e1b
https://github.com/llvm/llvm-project/commit/d2850baf0ad99c662e224bb522aebdeb09ff8e1b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/test/CodeGen/convergent-functions.cpp
Log Message:
-----------
[Clang] Accept 'noconvergent' attributes outside of CUDA (#205247)
Summary:
There is no reason that `convergent` should be a generic attributes but
not `noconvergent`.
Commit: 9a5e3fdc79cb374550bbf0cac8ad02d8a4ce10ab
https://github.com/llvm/llvm-project/commit/9a5e3fdc79cb374550bbf0cac8ad02d8a4ce10ab
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-offload-binary.rst
A llvm/test/tools/llvm-offload-binary/member-extract.test
M llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp
Log Message:
-----------
[llvm-offload-binary] Add `member` key to single out archive members (#205170)
Summary:
Currently, archives offer three approaches.
1. `--archive` which takes an archive and puts all the output in a new
archive
2. No filename, which outputs based on the member names
3. Filename, which just matches everything.
This has a gap for when people wnat a single file without relying on
implicit naming that dumps all the contents to the CWD.
This PR adds `member` which lets you specify the member names as you
would get from `ar t libfoo.a` for this.
Commit: a06ac5d5d555bf01b9ef4ad233a9d3d962b25c43
https://github.com/llvm/llvm-project/commit/a06ac5d5d555bf01b9ef4ad233a9d3d962b25c43
Author: CarolineConcatto <caroline.concatto at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/arm64-fpenv.ll
Log Message:
-----------
[AArch64] Add flag to conditionally write FPMR (#203911)
Add a AArch64 codegen flag to make llvm.aarch64.set.fpmr avoid writing
FPMR when it already contains the requested value.
By default, llvm.aarch64.set.fpmr continues to lower directly to an MSR
FPMR instruction. With -aarch64-conditional-fpmr-write, the backend
lowers the intrinsic to an MRS/MSR conditional branch sequence.
This is based on the initial implementation from:
https://github.com/llvm/llvm-project/pull/114248
However this PR keeps the conditional FPMR write sequence behind a
codegen flag. One reason to change the codegen lowering is because GCC
emits the conditional branch sequence unconditionally. LLVM preserves
the existing direct MSR lowering by default.
Commit: 592e9d3e6a82b13aeccfc755aa5025b41cbfc260
https://github.com/llvm/llvm-project/commit/592e9d3e6a82b13aeccfc755aa5025b41cbfc260
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
Log Message:
-----------
Reland "[clang][ssaf][NFC] Make SSAFOptions available in Builders and Extractors" (#205334)
The original version of this was reverted part of #205279 because I
didn't know if this or the other patch caused the Windows build
failures. It turns out this patch is fine. I'm relating this now.
---
Now that we have SSAFOptions, it would make it a lot more ergonomic if
it was accessible from builders and extractors.
This PR does exactly that.
Part of rdar://179151023
Co-authored-by: Jan Korous <jkorous at apple.com>
Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
Commit: 81f06366f805c4d60da39c1c9b2eaa4443ef27fc
https://github.com/llvm/llvm-project/commit/81f06366f805c4d60da39c1c9b2eaa4443ef27fc
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M orc-rt/include/CMakeLists.txt
A orc-rt/include/orc-rt/MacroUtils.h
M orc-rt/unittests/CMakeLists.txt
A orc-rt/unittests/MacroUtilsTest.cpp
Log Message:
-----------
[orc-rt] Add MacroUtils.h header for general purpose macros. (#205337)
For now just contains ORC_RT_DEPAREN, a macro for stripping parentheses
from its argument. This will be used in an upcoming commit.
Commit: 7a0829e41228513299c5108685b0bc127463c6a1
https://github.com/llvm/llvm-project/commit/7a0829e41228513299c5108685b0bc127463c6a1
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M llvm/docs/AMDGPUUsage.rst
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
Log Message:
-----------
[AMDGPU] Define new target gfx1154 (#204816)
Commit: f17453ef75fc4acb0bb8c149bfcc07409881676e
https://github.com/llvm/llvm-project/commit/f17453ef75fc4acb0bb8c149bfcc07409881676e
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp
M mlir/test/Dialect/MemRef/runtime-verification.mlir
Log Message:
-----------
[mlir][memref] Add SCFDialect dependency to RuntimeOpVerification (#205241)
Explicitly load SCFDialect as a dependent dialect in
RuntimeOpVerification to avoid unregistered dialect errors when
generating `scf.if`/`scf.yield` ops. Fixes #204295.
Commit: 1416b5f6de966f29e6b9c4f868c330e693ce8952
https://github.com/llvm/llvm-project/commit/1416b5f6de966f29e6b9c4f868c330e693ce8952
Author: Wooseok Lee <wolee at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
M llvm/test/CodeGen/AMDGPU/uaddo.ll
M llvm/test/CodeGen/AMDGPU/usubo.ll
Log Message:
-----------
[AMDGPU][DAGCombiner] Fix UADDO/USUBO_CARRY carry-out miscompile and remove redundant AMDGPU combine (#204362)
performAddCarrySubCarryCombine in SIISelLowering folded:
uaddo_carry((x+y), 0, cc) -> uaddo_carry(x, y, cc)
usubo_carry((x-y), 0, cc) -> usubo_carry(x, y, cc)
Both produce the same value but differ in carry-out when x+y (or x-y)
wraps. The fold was missing a !N->hasAnyUseOfValue(1) guard, giving
wrong carry values to consumers. E.g. x=0xFFFFFFFF, y=1, cc=0:
original: ((x+y) mod 2^32 + cc) >= 2^32 = 0 (correct)
folded: (x+y+cc) >= 2^32 = 1 (wrong)
The generic visitUADDO_CARRY (DAGCombiner.cpp) already handles
the UADDO_CARRY/ADD fold with the correct guard. Since target combines
fire before generic ones, the AMDGPU ADD arm was a buggy duplicate.
The USUBO_CARRY/SUB arm is produced by AMDGPU's performAddCombine
which converts add(sub(v,a), sext(cmp)) -> usubo_carry(sub(v,a), 0,
cmp).
There was no generic equivalent for this pattern.
Fix by adding the symmetric fold to visitUSUBO_CARRY:
(usubo_carry (sub X, Y), 0, Carry) -> (usubo_carry X, Y, Carry)
with the same guard, then removing performAddCarrySubCarryCombine
from SIISelLowering entirely as it is now fully subsumed.
Tests: Add AMDGPU tests in uaddo.ll and usubo.ll covering the
carry-out-used (fold suppressed) and carry-out-unused (fold applied)
cases, autogenerated with update_llc_test_checks.py.
Commit: 45a65bb48b5925707f43d08e30df2263a5e4e268
https://github.com/llvm/llvm-project/commit/45a65bb48b5925707f43d08e30df2263a5e4e268
Author: Alex Kremer <godexsoft at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/__expected/expected.h
M libcxx/include/version
M libcxx/test/libcxx/utilities/expected/nodiscard.verify.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
A libcxx/test/std/utilities/expected/expected.expected/observers/has_error.pass.cpp
A libcxx/test/std/utilities/expected/expected.void/observers/has_error.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] P3798R1: The unexpected in std::expected (#204826)
Closes #204394
Implements P3798 and related tests.
Applies the paper as a Defect Report per https://wg21.link/P3798/github.
Commit: ab1ef459069d1dbf4ee9e5a802537ababe294b25
https://github.com/llvm/llvm-project/commit/ab1ef459069d1dbf4ee9e5a802537ababe294b25
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/test/SemaCXX/warn-memset-bad-sizeof.cpp
Log Message:
-----------
[Clang][Test] Fix warn-memset-bad-sizeof.cpp after #183004 (#205201)
The new `-Wstringop-overread` warning (added in #183004) fires on the
SemaCXX test warn-memset-bad-sizeof.cpp. This happens on targets where
unsigned matches size_t, such as 32-bit ARM, because clang will match
the declaration with the builtin prototype (specifically, argument
`unsigned n`).
Suppress the warning since this test is exercising
`-Wsizeof-pointer-memaccess`, not source buffer overreads.
Fixes:
- https://lab.llvm.org/buildbot/#/builders/154/builds/32985
- https://lab.llvm.org/buildbot/#/builders/135/builds/3888
- https://lab.llvm.org/buildbot/#/builders/38/builds/9363
Commit: 60b3b30897b3c9549d2083accbba26e1ca8bf44e
https://github.com/llvm/llvm-project/commit/60b3b30897b3c9549d2083accbba26e1ca8bf44e
Author: Jiahao Guo <eoonguo at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/utils/TableGen/CIRLoweringEmitter.cpp
Log Message:
-----------
[CIR][NFC] Rename zero result flag variable (#205242)
###summary
This is a follow up of https://github.com/llvm/llvm-project/pull/202273
Just a light patch for renaming the zero result flag variable.
Commit: d957d2f2d8e718bd1101e7afad6be62901304cd1
https://github.com/llvm/llvm-project/commit/d957d2f2d8e718bd1101e7afad6be62901304cd1
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
Log Message:
-----------
[analyzer] Allow SVals as llvm::Immutable{Map,Set} keys (#205319)
This will allow maps and sets being declared:
```
REGISTER_MAP_WITH_PROGRAMSTATE(MyMap, SVal, SVal)
REGISTER_SET_WITH_PROGRAMSTATE(MySet, SVal)
```
Commit: 86d380e54fdb637be039f750651421c5b812eae4
https://github.com/llvm/llvm-project/commit/86d380e54fdb637be039f750651421c5b812eae4
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-23 (Tue, 23 Jun 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/sched-macros.h
M libc/include/sched.yaml
M libc/src/sched/CMakeLists.txt
M libc/src/sched/linux/CMakeLists.txt
A libc/src/sched/linux/sched_clrcpuset.cpp
A libc/src/sched/sched_clrcpuset.h
M libc/test/src/sched/CMakeLists.txt
M libc/test/src/sched/cpu_count_test.cpp
Log Message:
-----------
[libc] Add CPU_CLR(_S) macros (#204590)
This patch implements CPU_CLR and CPU_CLR_S macros following the
existing CPU_SET pattern. The macro just forwards to an internal entry
point.
Assisted by Gemini.
Commit: 8ea065becdeb47687ce9717adc2c50e68b939b87
https://github.com/llvm/llvm-project/commit/8ea065becdeb47687ce9717adc2c50e68b939b87
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/SPSAllocAction.h
M orc-rt/unittests/SPSAllocActionTest.cpp
Log Message:
-----------
[orc-rt] Add ORC_RT_SPS_ALLOC_ACTION helper macro. (#205339)
ORC_RT_SPS_ALLOC_ACTION(Name, SPSArgs, Handle) is shorthand for defining
an allocation-action wrapper function whose arguments are SPS-encoded.
It expands to:
static orc_rt_WrapperFunctionBuffer Name(const char *ArgData,
size_t ArgSize);
with a body that deserializes ArgData via
SPSAllocActionFunction<SPSArgs...> and forwards the decoded arguments to
Handle.
SPSArgs is given as a parenthesized comma-separated list of SPS argument
types — e.g. (int32_t, int32_t) — stripped at expansion time via
ORC_RT_DEPAREN.
Commit: 3f526756827fecd80111d1f065b879d292518480
https://github.com/llvm/llvm-project/commit/3f526756827fecd80111d1f065b879d292518480
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/test/CXX/drs/cwg5xx.cpp
M clang/www/cxx_dr_status.html
Log Message:
-----------
[clang] Update C++ DR status page (#205342)
The post-Brno draft will not be out for three more weeks, but Brno
updates for Core issues statuses are already trickling in.
Notably, [CWG507](https://cplusplus.github.io/CWG/issues/507.html)
"Ambiguity with built-in binary operator candidates for class object
convertible to built-in type", which used to be marked as a duplicate of
[CWG260](https://cplusplus.github.io/CWG/issues/260.html) "User-defined
conversions and built-in `operator=`", is open again, presumably because
it contains an example that goes beyond the scope of CWG260. Relatively
recent CWG thread that might be related (WG21 access required):
[link](https://lists.isocpp.org/core/2025/08/18478.php).
Commit: a4a59deb8dc50540c2e2f8b4c0b4addf30761a46
https://github.com/llvm/llvm-project/commit/a4a59deb8dc50540c2e2f8b4c0b4addf30761a46
Author: David Sherwood <david.sherwood at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-gaps.ll
Log Message:
-----------
[LV][NFC] Add SVE tests for masked interleaved accesses with gaps (#205330)
Commit: 7337fe1b09309fedbbdff2eb34043a0821523109
https://github.com/llvm/llvm-project/commit/7337fe1b09309fedbbdff2eb34043a0821523109
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Basic/Builtins.cpp
A clang/test/AST/builtin-name-registration.c
Log Message:
-----------
[clang] Avoid per-builtin std::string allocation in initializeBuiltins (#205162)
`initializeBuiltins()` previously registered every builtin through an
allocated std::string every time a `CompilerInstance` initialized. This
was hot for module-heavy builds, where each built module re-registered
the full set.
Add `getBuiltinNameInto()`, which writes the name into a caller-provided
buffer and returns a `StringRef`, with no allocation when the shard has
no prefix (the common case). `Info::getName` now delegates to it so the
two cannot diverge. This change is output behavior-preserving.
Resolves: rdar://178672190
Commit: f8aa5f66209d69c2c1f033317a4b4be961f4a78c
https://github.com/llvm/llvm-project/commit/f8aa5f66209d69c2c1f033317a4b4be961f4a78c
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.h
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.h
M llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp
M llvm/lib/Target/Hexagon/HexagonPseudo.td
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
A llvm/test/CodeGen/Hexagon/kcfi.ll
Log Message:
-----------
[Hexagon] Add KCFI support for forward-edge control flow integrity (#191746)
Add KCFI support for Hexagon. KCFI provides lightweight forward-edge CFI
for indirect calls by embedding a type hash before each function and
checking it before indirect calls, without requiring LTO.
Commit: 34b6e1c3b07d2d18b3112841992378b1057d87cc
https://github.com/llvm/llvm-project/commit/34b6e1c3b07d2d18b3112841992378b1057d87cc
Author: Chirag Wattamwar <119049661+ChiragSW at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Dialect/Arith/invalid.mlir
M mlir/test/Dialect/Tosa/tosa-arith-const-to-tosa-const.mlir
M mlir/test/Dialect/common_folders.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
Log Message:
-----------
[mlir][arith] Reject signful integer element types in `arith.constant` (#204937)
Update arith.constant verification to reject integer constants with
signed and unsigned element types including shaped constants like
tensors and vectors, as the arith dialect does not support
signed/unsigned types.
This incidentally address cases where further lowering would crash (e.g.
SPIR-V constant lowering used IntegerAttr::getInt() on an unsigned
integer attribute from tensor<2xui8>)
Fixes #204911
Commit: dc658f1f11d3bf1da4243be9671dcdab597288b5
https://github.com/llvm/llvm-project/commit/dc658f1f11d3bf1da4243be9671dcdab597288b5
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
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/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/include/CMakeLists.txt
A libc/include/libgen.yaml
M libc/src/CMakeLists.txt
M libc/src/__support/CPP/string_view.h
A libc/src/libgen/CMakeLists.txt
A libc/src/libgen/basename.cpp
A libc/src/libgen/basename.h
A libc/src/libgen/dirname.cpp
A libc/src/libgen/dirname.h
M libc/test/src/CMakeLists.txt
A libc/test/src/libgen/CMakeLists.txt
A libc/test/src/libgen/basename_death_test.cpp
A libc/test/src/libgen/basename_test.cpp
A libc/test/src/libgen/dirname_death_test.cpp
A libc/test/src/libgen/dirname_test.cpp
A libc/utils/docgen/libgen.yaml
Log Message:
-----------
Reland "[libc] Implement basename and dirname in libgen.h #204554" (#205352)
Added the POSIX standard functions basename and dirname under a new libgen.h header. The implementations modify the input path in-place using cpp::string_view to determine boundaries safely.
Added find_last_not_of to cpp::string_view to support trailing slash removal.
Implemented:
libc/include/libgen.yaml, libgen.h.def: Public API definitions.
libc/src/libgen/basename.cpp, dirname.cpp: Generic implementations.
libc/test/src/libgen/: Unit and hermetic tests.
Registered the new entrypoints for all active Linux targets (x86_64, aarch64, arm, riscv) and added docgen configuration.
The tests are skipped when using ASan because death tests do not currently work with them.
Assisted-by: Automated tooling, human reviewed.
Commit: 7befba8a76f3ba54b584cbb4b673d749f34054af
https://github.com/llvm/llvm-project/commit/7befba8a76f3ba54b584cbb4b673d749f34054af
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
Silence conversion warning; NFC (#205357)
This was triggering a conversion warning in MSVC.
Commit: 820314fae19408e906ef8144573fca292b411613
https://github.com/llvm/llvm-project/commit/820314fae19408e906ef8144573fca292b411613
Author: Qiongsi Wu <qiongsiwu at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
Log Message:
-----------
[clang][Dependency Scanning] Fix the Input File for By-Name Lookup's Input CC1 Command Line (#205214)
When the command line is a CC1 command, the scanner does not append the
fake input file to the command line when initializing the compiler
instance. This PR fixes that by passing the compiler instance
initialization the correct modified command line. Without specifying the
fake input file, clang picks up `-` as its input.
An observable behavior is that the diagnostics are pointing to incorrect
files for cc1 commands, hence a test is added to check the diagnostics
messages contain the correct file name.
Commit: 0ce76c77c9e0ee15905d76500bfa0235c2ac3741
https://github.com/llvm/llvm-project/commit/0ce76c77c9e0ee15905d76500bfa0235c2ac3741
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Format/CMakeLists.txt
Log Message:
-----------
[clang-format] Don't check the format if diff is unavailable (#205036)
Commit: fdb70dfca31d80ed3a5231819aaab8c54b12b658
https://github.com/llvm/llvm-project/commit/fdb70dfca31d80ed3a5231819aaab8c54b12b658
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
M llvm/test/CodeGen/RISCV/calling-conv-p-ext-vector.ll
M llvm/test/CodeGen/RISCV/make-compressible-zilsd.mir
M llvm/test/CodeGen/RISCV/rv32-merge-non-arg-reg.mir
M llvm/test/CodeGen/RISCV/rv32-move-merge-crash.ll
M llvm/test/CodeGen/RISCV/rv32-move-merge.ll
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
M llvm/test/MC/RISCV/rv32p-aliases-valid.s
Log Message:
-----------
[RISCV][P-ext] Add mvd alias for padd.dw rd, zero, rs. Use for copy idiom. (#205223)
See https://github.com/riscv/riscv-p-spec/pull/304
I've refactored the MoveMerge code to use copyPhysReg to avoid duplication.
Commit: 62c9839e109fa53c0cd52cddb4f28d415a5e7f74
https://github.com/llvm/llvm-project/commit/62c9839e109fa53c0cd52cddb4f28d415a5e7f74
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-vectors.ll
M llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
Log Message:
-----------
[LegalizeTypes] Fix incorrect EVL1 clip in SplitVecRes_VP_SPLICE. (#205021)
We were incorrectly clipping EVL1 to be a valid index for the VT, in the
range [0, VT.getNumVectorElements() - 1]. It is legal for EVL1 to be
equal to VT.getNumVectorElements() here so that was incorrect.
In case it isn't clear, the clip is necessary to prevent turning poison
into UB by accessing outside the temporary stack object.
Commit: 83528bad5c9b9722280d284a7c35b06d560003bc
https://github.com/llvm/llvm-project/commit/83528bad5c9b9722280d284a7c35b06d560003bc
Author: Yihan Wang <yronglin777 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Lex/Preprocessor.h
M clang/lib/Lex/PPCaching.cpp
M clang/lib/Lex/PPLexerChange.cpp
M clang/lib/Lex/Preprocessor.cpp
Log Message:
-----------
[clangd] fix preprocessor caching-lexer state tracking (#203716)
Fix `recomputeCurLexerKind` to avoid default fallback to
`CurLexerCallback = CLK_CachingLexer;`.
This prevents code-completion EOF handling from accidentally restoring
CLK_CachingLexer while a tentative parse is still active, which could
trigger a caching lexer re-entry assertion in clangd signature help.
Fixes https://github.com/llvm/llvm-project/issues/200677
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Commit: db31a66571857ac2991e0ade1165a0fa81c4fbd1
https://github.com/llvm/llvm-project/commit/db31a66571857ac2991e0ade1165a0fa81c4fbd1
Author: Felipe Novais <felipenovais at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/docs/Docker.rst
Log Message:
-----------
[docs] Fix typo in Docker.rst (#205346)
Small typo fix in the Docker documentation: Debian8 -> Debian12.
Signed-off-by: Felipe Novais <contact at felipenovais.com>
Commit: b31886a2af71590b00d13a082b80e7a4a347c1c4
https://github.com/llvm/llvm-project/commit/b31886a2af71590b00d13a082b80e7a4a347c1c4
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/docs/Status/Cxx23Papers.csv
M libcxx/include/__config
M libcxx/include/__ranges/drop_view.h
M libcxx/include/__ranges/drop_while_view.h
M libcxx/include/__ranges/filter_view.h
M libcxx/include/__ranges/iota_view.h
M libcxx/include/__ranges/lazy_split_view.h
M libcxx/include/__ranges/split_view.h
M libcxx/include/__ranges/take_view.h
M libcxx/include/__ranges/take_while_view.h
M libcxx/include/__ranges/transform_view.h
M libcxx/test/std/ranges/range.adaptors/range.drop.while/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.drop/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.filter/ctor.view_pred.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.range.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.split/ctor.range.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.split/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.take.while/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.take/ctor.view_count.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.transform/ctor.view_function.pass.cpp
M libcxx/test/std/ranges/range.factories/range.iota.view/ctor.first.last.pass.cpp
M libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.bound.pass.cpp
Log Message:
-----------
[libc++][ranges] Backport P2711R1: Making multi-param constructors of views explicit (#190513)
As discussed in https://gcc.gnu.org/PR114298 - GCC and MSVC STL
implemented P2711R1 as a DR. This PR does the same for libc++.
Co-authored-by: A. Jiang <de34 at live.cn>
Commit: a91e271481cc99ee0ab01aa0affc7ac352963844
https://github.com/llvm/llvm-project/commit/a91e271481cc99ee0ab01aa0affc7ac352963844
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/madd.ll
Log Message:
-----------
[X86] madd.ll - add additional tests for matchPMADDWD folds that fail with larger source types (#205362)
matchPMADDWD handles sext/shl cases as well which don't fold either on SSE/AVX512 targets
Commit: 9acc93f96af24fd3b3598f3cc51520aaff6e688c
https://github.com/llvm/llvm-project/commit/9acc93f96af24fd3b3598f3cc51520aaff6e688c
Author: adams381 <adams at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/test/CIR/CodeGenBuiltins/builtins-elementwise-bool-nyi.c
M clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c
Log Message:
-----------
[CIR] Lower elementwise saturating add/sub builtins (#203112)
`__builtin_elementwise_add_sat` and `__builtin_elementwise_sub_sat` were
still in the `errorBuiltinNYI` batch in `emitBuiltinExpr`, so any use
hit "unimplemented builtin call". That blocks C++26
`std::add_sat`/`std::sub_sat` (libc++
`<__numeric/saturation_arithmetic.h>`), which lower directly onto these
builtins.
This lowers them the way classic CodeGen does in `CGBuiltin.cpp`: select
the signed or unsigned saturating intrinsic from the operand's element
type (`sadd.sat`/`uadd.sat` for add, `ssub.sat`/`usub.sat` for sub).
Test coverage in `builtins-elementwise.c` exercises signed and unsigned,
scalar and vector, at i32 and i16 widths, checking the CIR
`cir.call_llvm_intrinsic` and the lowered `@llvm.{s,u}{add,sub}.sat`
calls on both the CIR and classic `-emit-llvm` paths.
Commit: 7054171f229e2a9d55ed742dcf89782727579926
https://github.com/llvm/llvm-project/commit/7054171f229e2a9d55ed742dcf89782727579926
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/test/C/C23/n3037.c
Log Message:
-----------
Additional test coverage for WG14 N3037 (#202674)
There was a request for additional test coverage in:
https://github.com/llvm/llvm-project/pull/201650#discussion_r3376475306
Commit: 650a05947d5bd0393914b8dfe15a5c50b193dfc9
https://github.com/llvm/llvm-project/commit/650a05947d5bd0393914b8dfe15a5c50b193dfc9
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2026-06-23 (Tue, 23 Jun 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/CIRGenOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenOpenACCRecipe.cpp
M clang/lib/CIR/CodeGen/CIRGenStmtOpenACC.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGenOpenACC/cache.c
M clang/test/CIR/CodeGenOpenACC/combined-copy.c
M clang/test/CIR/CodeGenOpenACC/combined-copy.cpp
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-copy.c
M clang/test/CIR/CodeGenOpenACC/compute-copy.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.c
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.c
M clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
M clang/test/CIR/CodeGenOpenACC/declare-create.cpp
M clang/test/CIR/CodeGenOpenACC/declare-deviceresident.cpp
M clang/test/CIR/CodeGenOpenACC/declare-link.cpp
M clang/test/CIR/CodeGenOpenACC/declare-present.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/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
A clang/test/CIR/IR/builtin-int-cast.cir
A clang/test/CIR/IR/invalid-builtin-int-cast.cir
A clang/test/CIR/Lowering/builtin-int-cast.cir
A clang/test/CIR/Transforms/builtin-int-cast-fold.cir
Log Message:
-----------
[CIR] Add cir.builtin_int_cast operation to replace uses of builtin.unrealized_conversion_cast (#201592)
This patch adds a new operation builtin_int_cast to handle casting
between CIR integer types and builtin integer types. This will replace
the current use of the builtin.unrealized_conversion_cast since this
operation is only intended to be used temporarily when doing
transformations.
Assisted-by: Cursor/Claude Opus 4.8 High
Commit: a05357175d053b86e6d00df13e39416fb9a18cd7
https://github.com/llvm/llvm-project/commit/a05357175d053b86e6d00df13e39416fb9a18cd7
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/copyable-phi-scheduled-non-copyable.ll
Log Message:
-----------
[SLP]Fix dominance crash for scheduled copyable PHI-operand bundles
Extend the copyable/non-copyable PHI conflict bail-out in
tryScheduleBundle to the scheduled path, not just the non-schedulable
one.
Fixes #205327
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/205372
Commit: 759191045115d966dffc99901e9086289767ff5c
https://github.com/llvm/llvm-project/commit/759191045115d966dffc99901e9086289767ff5c
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
M libc/src/sys/ioctl/linux/CMakeLists.txt
M libc/src/sys/ioctl/linux/ioctl.cpp
M libc/src/termios/linux/CMakeLists.txt
M libc/src/termios/linux/tcdrain.cpp
M libc/src/termios/linux/tcflow.cpp
M libc/src/termios/linux/tcflush.cpp
M libc/src/termios/linux/tcgetattr.cpp
M libc/src/termios/linux/tcgetsid.cpp
M libc/src/termios/linux/tcsendbreak.cpp
M libc/src/termios/linux/tcsetattr.cpp
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/isatty.cpp
Log Message:
-----------
Recommit "[libc] Introduce the ioctl syscall wrapper and port all callers (#204640)" (#205317)
This patch reapplies #204640 (reverted in #205277), due to (-Werror)
build failure with gcc. Gcc warned about passing an uninitialized
structure through a `const void *` argument. This isn't a problem
because the ioctls in question write to that argument. The
fix/workaround is to provide a `void *` overload.
The original commit message was:
This patch adds an ioctl syscall wrapper in linux_syscalls namespace and
migrates all direct SYS_ioctl calls to use it.
To handle the polymorphic nature of ioctl arguments (where some commands
expect pointers, some expect scalar integers like queue_selector, and
some expect no argument at all), I use a helper struct IoctlArg with
implicit constructors. This avoids template bloat and overload
ambiguities (particularly around literal 0) while keeping call sites
clean.
Assisted by Gemini.
Commit: 5274b7ffac47a891a932dcc630e6130cc72359ef
https://github.com/llvm/llvm-project/commit/5274b7ffac47a891a932dcc630e6130cc72359ef
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Model pointer-to-data-member access in the fact generator (#204612)
VisitBinaryOperator had no case for `obj.*pm` (BO_PtrMemD) /
`objptr->*pm` (BO_PtrMemI), so a borrow of the accessed member
(`&(obj.*pm)`) dropped the object's loan to an empty origin and a
use-after-scope was missed. Flow the object operand's origin into the
result, mirroring a member access: for `.*` the object is the LHS, for
`->*` it is the LHS pointer's pointee.
Assisted-by: Claude Opus 4.8
Co-authored-by: Gabor Horvath <gaborh at apple.com>
Commit: 0914d20f2f8fc3c85e956d93b643a54f683638c3
https://github.com/llvm/llvm-project/commit/0914d20f2f8fc3c85e956d93b643a54f683638c3
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/linux/CMakeLists.txt
A libc/include/llvm-libc-types/linux/loff_t.h
A libc/include/llvm-libc-types/loff_t.h
M libc/include/sys/types.yaml
Log Message:
-----------
[libc] Add loff_t type (#204641)
Added loff_t type definition. This is a Linux extension required for
large file offsets.
* llvm-libc-types/loff_t.h: Include linux/loff_t.h on Linux.
* llvm-libc-types/linux/loff_t.h: Added Linux definition using
__kernel_loff_t.
* llvm-libc-types/CMakeLists.txt: Include linux subdirectory and add
dependency for loff_t.
* llvm-libc-types/linux/CMakeLists.txt: Registered loff_t.
* sys/types.yaml: Added loff_t to sys/types.
* libc/include/CMakeLists.txt: Added dependency to sys_types target.
Assisted-by: Automated tooling, human reviewed.
Commit: 9928eab6b57b9791e648abc6cac2ac28870f6dbe
https://github.com/llvm/llvm-project/commit/9928eab6b57b9791e648abc6cac2ac28870f6dbe
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
A clang/test/CIR/CodeGen/atomic-libcall.c
Log Message:
-----------
[CIR] Atomic load and store via library call (#202671)
This patch adds support for atomic load/store operations that go through
calls to the `__atomic_load` and `__atomic_store` library functions.
This could happen when the size of the atomic type is too large or is
not a power of 2.
Assisted-by: Codex / gpt-5.5 xhigh
Commit: 8d2a578b2130742c8790f3dba5fb414962eafcd5
https://github.com/llvm/llvm-project/commit/8d2a578b2130742c8790f3dba5fb414962eafcd5
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/test/Sema/LifetimeSafety/invalidations.cpp
Log Message:
-----------
[LifetimeSafety] Fix liveness propagation for all origin flows (#205323)
Previously, the `transfer` function for `OriginFlowFact` only handled
killing the destination origin. It did not propagate liveness backwards
from destination to source, meaning that if an origin flowed into
another, the source was not marked live even when the destination was.
The `transfer` function now propagates liveness from destination to
source: if the destination origin is live, the source origin is also
marked live with the same `LivenessInfo`, before optionally killing the
destination.
Additionally, `handleMovedArgsInCall` now skips rvalue reference
parameters annotated with `[[clang::lifetimebound]]`, since such
parameters should not be treated as moved-from.
This introduces some false positives for invalidations as container
modifications are not considered self-invalidating. The updated test
expectations reflect this, along with `FIXME` comments explaining that
they are false positives stemming from the lack of distinction between
owner-borrows and content-borrows, which will require more precise
`AccessPath` reasoning to resolve.
Commit: 14670fd9a949958eb4f157a58c34d6179b4bab77
https://github.com/llvm/llvm-project/commit/14670fd9a949958eb4f157a58c34d6179b4bab77
Author: David Blaikie <dblaikie at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/CodeGen/ModuleBuilder.h
M clang/lib/CodeGen/ModuleBuilder.cpp
M clang/unittests/CodeGen/CodeGenExternalTest.cpp
Log Message:
-----------
Add limited vtable address querying to `clang::CodeGenerator` (#202807)
This is being used in Carbon (
https://github.com/carbon-language/carbon-lang/pull/7323 ) to implement
cross-language overriding.
I realize this isn't the fully general feature needed for virtual bases,
etc - but this limited functionality is already wrapped up for, if I
understand it correctly, constexpr use cases and some others. So
hopefully it's still something folks feel is general enough to be
worthwhile exporting. For now Carbon doesn't support deriving from a
type with virtual bases, so the extra complexity isn't needed.
Commit: 053d75c1d580e0c394f4cfb0688bafd05c187b0f
https://github.com/llvm/llvm-project/commit/053d75c1d580e0c394f4cfb0688bafd05c187b0f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
Revert "Reapply "[InstCombine] Merge consecutive assumes" (#205177)" (#205380)
This surfaces a bug likely fixed by
https://github.com/llvm/llvm-project/pull/205275. Once that lands this
patch can be landed again.
Reverts llvm/llvm-project#205324
Commit: e8b663ba31d4eed75a6cbc758dbc9f56589c9239
https://github.com/llvm/llvm-project/commit/e8b663ba31d4eed75a6cbc758dbc9f56589c9239
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/loopflatten.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
M llvm/test/Transforms/PhaseOrdering/unswitch-cold-func.ll
A llvm/test/Transforms/PhaseOrdering/unswitch-nontrivial-cold-func.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/uniform-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch2.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch3.ll
A llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-loop-guard.ll
A llvm/test/Transforms/SimpleLoopUnswitch/update-dt.ll
M polly/test/Support/pipelineposition.ll
Log Message:
-----------
[SimpleLoopUnswitch] Reland "Generalize the notion of trivial unswitching" (#204934)
In the original PR for this feature, the third parameter of
`MemorySSAUpdater::applyUpdates` was not set to `true`. This
caused `DT` to be invalid, resulting in the failures. This PR fixes the
issue and provides an additional testcase.
Also in the original commit had three asserts to confirm
`!ModifiedBranch ` when we bail out. One of these is redundant because
it is enclosed in an `if` statement checking the same condition. This PR removes
the redundant `assert` too.
Commit: 2a362bf5a546d9ac6da47412b6f594de58cce722
https://github.com/llvm/llvm-project/commit/2a362bf5a546d9ac6da47412b6f594de58cce722
Author: Nicholas Bishop <nbishop at nbishop.net>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Sema/MultiplexExternalSemaSource.h
M clang/lib/Sema/MultiplexExternalSemaSource.cpp
Log Message:
-----------
Add no-arg constructor and EraseIf method to MultiplexExternalSemaSource (#204458)
The no-arg constructor makes MultiplexExternalSemaSource usable in
situations where two child sources are not immediately available, or
where conditional logic makes it easier to call AddSource rather than
immediately pass child sources to the constructor.
The EraseIf method allows sources to be removed later if they are no
longer needed.
Co-authored-by: Nicholas Bishop <nicholsabishop at google.com>
Commit: c0214621a7492d950d0863501fe178c4e74a70f5
https://github.com/llvm/llvm-project/commit/c0214621a7492d950d0863501fe178c4e74a70f5
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-ctlz-to-cttz.ll
Log Message:
-----------
[InstCombine] Fold (bw-1) - ctlz(x&-x) to cttz (#205383)
Works for non-powers of 2.
Alive2: https://alive2.llvm.org/ce/z/-cbxFz
Commit: 87789e236d9de4b8d688a0d7291c7390fc2c58b4
https://github.com/llvm/llvm-project/commit/87789e236d9de4b8d688a0d7291c7390fc2c58b4
Author: adams381 <adams at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
A clang/test/CIR/CodeGen/member-pointer-null-init.cpp
Log Message:
-----------
[CIR] Handle non-zero-initializable types in emitNullInitialization (#201654)
Value-initializing an aggregate containing a pointer-to-data-member
(e.g. `new Inner()` where `Inner` has an `int Inner::*` field) crashed
with "type is not zero initializable" because `emitNullInitialization`
unconditionally called `errorNYI` for types where `isZeroInitializable`
returns false.
Member pointers use -1 as the null sentinel, so a plain zero store is
incorrect. Replace the `errorNYI` with `emitNullConstant`, which already
builds the correct per-field pattern (-1 for member-pointer fields, zero
elsewhere), and store the result. Types with virtual bases are still
guarded with `errorNYI` since `emitNullConstant` does not yet handle
them.
Commit: db078760b01d8b533c5d8d2e1017516823ae9a3d
https://github.com/llvm/llvm-project/commit/db078760b01d8b533c5d8d2e1017516823ae9a3d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] Remove isCodeGenOnly=0 from PseudoLA_TLSDESC. (#205366)
The default for a Pseudo is isCodeGenOnly=1. With isCodeGenOnly=0 the
'la.tlsdesc' is a valid mnemonic for the assembly parser, but crashes in
the encoder.
I don't think this was meant to be a valid assembly mnemonic so remove
it.
Commit: 05f4625e7282294d556653ca11fc4ccb8f2aedca
https://github.com/llvm/llvm-project/commit/05f4625e7282294d556653ca11fc4ccb8f2aedca
Author: Yao Qi <yao_qi at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/test/API/lang/objc/hidden-ivars/Makefile
Log Message:
-----------
[lldb][test] Fix TestHiddenIvars rebuild failures in hidden-ivars Makefile (#205114)
Two rebuild-state bugs surfaced when running `./bin/lldb-dotest -p
TestHiddenIvars.py`:
```
FAILED (errors=6, skipped=7, expected failures=2)
```
1. `mkdir: stripped: File exists`, mkdir failed on the second build
because the directory already existed. Switch to `mkdir -p`.
2. `cp -r a.out.dSYM stripped/a.out.dSYM` recurses *into* the existing
destination on rebuild, producing a nested `stripped/a.out.dSYM/
a.out.dSYM/`. The outer dSYM keeps its stale UUID, so lldb cannot
match it to the freshly relinked stripped binary (which gets a new
UUID per link via -Wl,-random_uuid), causing source breakpoints to
fail to resolve. Remove the destination before copying.
Commit: e09eee295e86bd3e01de5a9ef3eb3d6b9446578b
https://github.com/llvm/llvm-project/commit/e09eee295e86bd3e01de5a9ef3eb3d6b9446578b
Author: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
A llvm/test/Instrumentation/Instrumentor/compare.ll
A llvm/test/Instrumentation/Instrumentor/compare_config.json
M llvm/test/Instrumentation/Instrumentor/default_config.json
M llvm/test/Instrumentation/Instrumentor/default_rt.h
Log Message:
-----------
[Instrumentor] Add comparison instrumentation opportunity (#204069)
This patch adds an instrumentation opportunity for comparison
instructions (`icmp` and `fcmp`).
Commit: 044f0a53e3a011739572037d9880cb71eb988dcd
https://github.com/llvm/llvm-project/commit/044f0a53e3a011739572037d9880cb71eb988dcd
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/TableGen/directive1.td
M llvm/test/TableGen/directive2.td
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
Log Message:
-----------
[TableGen] Use llvm_unreachable in switch guard for all except gcc 8- (#205385)
Follow-up to https://github.com/llvm/llvm-project/pull/194728.
For gccs older than v9 use abort. That seems to make everybody happy.
Commit: 5d4296c10053158c8193748994f7a49ae88c626b
https://github.com/llvm/llvm-project/commit/5d4296c10053158c8193748994f7a49ae88c626b
Author: adams381 <adams at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
A clang/test/CIR/CodeGenBuiltins/builtin-reduce-bitwise.c
M clang/test/CIR/CodeGenBuiltins/builtin-undef-rvalue.cpp
Log Message:
-----------
[CIR] Lower bitwise vector reduce builtins
`__builtin_reduce_or`, `__builtin_reduce_and`, and `__builtin_reduce_xor` were caught by the batch `errorBuiltinNYI` switch in CIRGen and rejected with an NYI diagnostic. They now lower to the matching `llvm.vector.reduce.{or,and,xor}` intrinsics on the vector element type, mirroring classic CodeGen in `CGBuiltin.cpp`.
The emission routes through `emitBuiltinWithOneOverloadedType`, extended with an optional result type: a vector reduction returns the element type, and CIR has no intrinsic registry to derive it the way classic's `getIntrinsic(ID, argTy)` does, so the element type is supplied explicitly (the default keeps the existing callers unchanged). The intrinsic name is passed without the `llvm.` prefix, which `LowerToLLVM` prepends, producing LLVM output byte-identical to OGCG.
The `builtin-undef-rvalue` regression test previously pinned `reduce_or` as NYI; it is retargeted to `reduce_add`, which is still NYI, so the undef-rvalue path stays covered.
Commit: 88eaad84c9832a2eaa335d90505b33870cc4b2e8
https://github.com/llvm/llvm-project/commit/88eaad84c9832a2eaa335d90505b33870cc4b2e8
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/docs/InternalsManual.rst
M clang/lib/Frontend/CompilerInvocation.cpp
M llvm/include/llvm/Option/OptParser.td
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/utils/TableGen/OptionParserEmitter.cpp
Log Message:
-----------
[llvm][option] Remove bitfield marshalling (#203051)
Marshaling of bitfield options is adding some extra complexity in the
form of extractors and mergers, but is now unused. This PR removes that
feature.
Commit: 289e243d2b481ceb604c798f239350108bcd9585
https://github.com/llvm/llvm-project/commit/289e243d2b481ceb604c798f239350108bcd9585
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/lib/Evaluate/tools.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
Revert "[flang][cuda] Do not emit data transfer for constant read on the rhs" (#205394)
Reverts llvm/llvm-project#205185
this is making couple of downstream tests failing. Another approach is
needed
Commit: c70d01a0a6b76e8b34a470cf9ef57a68cfa7cc0d
https://github.com/llvm/llvm-project/commit/c70d01a0a6b76e8b34a470cf9ef57a68cfa7cc0d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/include/lldb/Core/Module.h
M lldb/source/Core/Module.cpp
M lldb/unittests/Core/ModuleTest.cpp
Log Message:
-----------
[lldb] Fix data race in Module::GetSectionList (#205226)
Module::GetSectionList built the section list (m_sections_up) without a
lock, so parallel module loading (e.g. crashlog.py's thread pool) could
race two builders on the unique_ptr and the SectionList vector, crashing
in AppleObjCRuntime::GetObjCVersion.
Build through ObjectFile::GetSectionList instead of locking the module
mutex and calling CreateSections directly: that path locks the object
file's section mutex before the module mutex, and the build can re-enter
it, so holding the module mutex across the build would invert the order
and risk a deadlock. The Module-level counterpart to a0176fd9dfc5.
rdar://180308581
Commit: e0359327d544d593f4bbf6af9479eb55ddf342d0
https://github.com/llvm/llvm-project/commit/e0359327d544d593f4bbf6af9479eb55ddf342d0
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 7591910 (#205377)
This fixes 759191045115d966dffc99901e9086289767ff5c.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: dd1685d5a9f4f0af759ec29dc7f39951e262467c
https://github.com/llvm/llvm-project/commit/dd1685d5a9f4f0af759ec29dc7f39951e262467c
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/rotated-strided-loads.ll
Log Message:
-----------
[SLP] Don't recognize rotated widened strided stores in analyzeRtStrideCandidate() (#204013)
These cases which are nearly strided stores are being incorrectly
recognized as strided stores. Fixes #204011
Commit: 361f3b24f2a8703eb7a32c1ae081f490888238f3
https://github.com/llvm/llvm-project/commit/361f3b24f2a8703eb7a32c1ae081f490888238f3
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Model GNU statement expressions (#204841)
Commit: 3f48c6728c06f270f3126394ef8e6e65ef9d7174
https://github.com/llvm/llvm-project/commit/3f48c6728c06f270f3126394ef8e6e65ef9d7174
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/tools/dsymutil/X86/bundle-mtime.test
Log Message:
-----------
[dsymutil] Use more portable way to compare timestamp (NFC) (#204680)
`find` on AIX does not support `-maxpath` option. This patch is
to use python to compare the `mtime` of the file/directory.
Commit: 95decf7ce8bdcee2ab3f2b6932d951bd70babf91
https://github.com/llvm/llvm-project/commit/95decf7ce8bdcee2ab3f2b6932d951bd70babf91
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/test/Analysis/BasicAA/phi-aa.ll
M llvm/test/Analysis/BasicAA/phi-and-select.ll
M llvm/test/Analysis/BasicAA/recphi.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-derived-ivs.ll
M llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
M llvm/test/Transforms/LoopVersioning/exit-block-dominates-rt-check-block.ll
Log Message:
-----------
[BasicAA] Allow some more recursion across GEPs/phis. (#205010)
Allow recursive base-object analysis for some GEPs. The new version
still retains some bail-outs to avoid some redundant work.
This has a notable impact across a large IR corpus (32k modules from
large set of C/C++ workloads).
Some of the highlights include:
aa.NumNoAlias +1.52%
aa.NumMayAlias −0.10%
licm.NumMovedLoads +20.47%
licm.NumHoisted +2.03%
early-cse.NumCSELoad +1.59%
SLP.NumVectorInstructions +0.86%
loop-vectorize.LoopsVectorized +0.21%
instcount.TotalInsts −0.05%
instcount.NumLoadInst −0.10%
basicaa.SearchTimes +0.98%
basicaa.SearchLimitReached +14.39%
LV runtime alias check −1.3%
Compile-time has 2 notable changes
stage1-ReleaseThinLTO: +0.04%
stage1-ReleaseLTO-g: +0.18%
https://llvm-compile-time-tracker.com/compare.php?from=26ed0c17c0de84add0513a0e9699479f8c88b8fe&to=476e7466c5f543ac74c86bad728d79892f668f73&stat=instructions:u
The stage1-ReleaseLTO-g regression in particular is almost exclusively
due to tramp3d-v4, for which we also generate +1.18% more code, so the
majority of the increase is coming from additional transforms/codegen,
not the analysis itself.
PR: https://github.com/llvm/llvm-project/pull/205010
Commit: dcec4dda91608ddeee72cf2f503b3cb56e427fcb
https://github.com/llvm/llvm-project/commit/dcec4dda91608ddeee72cf2f503b3cb56e427fcb
Author: yueshe <yueshe at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
M llvm/test/CodeGen/SystemZ/misched-prera-pdiffs.mir
Log Message:
-----------
[SystemZ] Add missing asserts requirement for pre-RA sched mir tests (#205403)
This is based off https://github.com/llvm/llvm-project/pull/188823 and
is needed because tests are failing in release (non-asserts) builds
Commit: 7a4dfab07d1f76e5609be940213495060cecb078
https://github.com/llvm/llvm-project/commit/7a4dfab07d1f76e5609be940213495060cecb078
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/SourceManager.h
M clang/lib/Basic/SourceManager.cpp
M clang/test/DebugInfo/Generic/macro.c
A clang/test/Preprocessor/hardlink-include-names.c
M clang/unittests/Basic/SourceManagerTest.cpp
Log Message:
-----------
[clang] Fix incorrect filenames for hardlinks (#189475)
Previously hardlinked files would be discovered based on their inode,
leading to incorrect filepaths printed in some cases.
Fixes https://github.com/llvm/llvm-project/issues/26953
Fixes https://github.com/llvm/llvm-project/issues/58726
Related https://reviews.llvm.org/D137304
Assisted-by: codex
Commit: 0628d3586aee3f880a75934e4f7c314bf5c221f2
https://github.com/llvm/llvm-project/commit/0628d3586aee3f880a75934e4f7c314bf5c221f2
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 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/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/GotoSolver.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
A clang/test/CIR/CodeGen/const-label-addr.c
Log Message:
-----------
[CIR] Implement support for emitting label address constants (#203644)
The evalloop.c test in the llvm-test-suite single source tests contains
a static array that is initialized with the address of labels within the
enclosing function. This wasn't implemented in CIR.
This change adds an implementation. The constant emitter change was
trivial. We just needed to create a #cir.block_addr_info attribute.
However, using that attribute as an initializer for a global requires
some additional handling and special lowering for the initializer.
The goto solver also needed to be updated to consider uses of labels in
global initializers.
The test case here was copied over directly from classic codegen. The
original test has an additional test case for the difference between two
label addresses. Support for that case will be added in a future change.
Assisted-by: Cursor / claude-opus-4.8
Commit: 5ab7ad96b05277467b2bab27f510affd337fa3be
https://github.com/llvm/llvm-project/commit/5ab7ad96b05277467b2bab27f510affd337fa3be
Author: vitbur <vittorioburani at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
Log Message:
-----------
[RISCV][XCV] Add missing IsRV32 predicate to the XCVmac block (#205095)
The XCVmac instruction block was missing the `IsRV32` predicate that
every other XCV block already carries. `HasVendorXCVmac` on its own does
not require RV32, so `-mtriple=riscv64 -mattr=+xcvmac` could select
these RV32-only vendor instructions on RV64. Add `IsRV32` to the XCVmac
block to match the other XCV extensions and prevent selecting invalid
instructions on RV64.
Split out of #204879 at review request (one fix per PR).
Part of a CORE-V (XCV) series; see RFC:
https://discourse.llvm.org/t/rfc-core-v-xcv-support-for-cv32e40p-clang-builtins-xcvsimd-intrinsics-and-generic-auto-selection/91111
Commit: 6709bcde07752b38038bafda35eac3f16c38c4ba
https://github.com/llvm/llvm-project/commit/6709bcde07752b38038bafda35eac3f16c38c4ba
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/unittests/Support/GlobPatternTest.cpp
Log Message:
-----------
Revert "[NFC][Support] Add test for inverted slash-agnostic matching" (#205397)
Reverts llvm/llvm-project#203290 as part of the process of reverting
https://github.com/llvm/llvm-project/pull/202854 due to downstream
breakage (see discussion in
https://github.com/llvm/llvm-project/pull/202854#issuecomment-4746579478)
Commit: 0b5c006208cf7b0fee3709f468152e7de81607ef
https://github.com/llvm/llvm-project/commit/0b5c006208cf7b0fee3709f468152e7de81607ef
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/unittests/Basic/DiagnosticTest.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/unittests/Support/SpecialCaseListTest.cpp
Log Message:
-----------
Revert "Make sanitizer special case list slash-agnostic" (#205399)
Reverts llvm/llvm-project#149886 as part of the process of reverting
https://github.com/llvm/llvm-project/pull/202854 due to downstream
breakage (see discussion in
https://github.com/llvm/llvm-project/pull/202854#issuecomment-4746579478)
Commit: 92f058a8b351def1c10cb3f37d05adf813fb9638
https://github.com/llvm/llvm-project/commit/92f058a8b351def1c10cb3f37d05adf813fb9638
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
A llvm/test/tools/llvm-pdbutil/forward-cxx-to-c-odr.test
A llvm/test/tools/llvm-pdbutil/forward-cxx-to-c.test
Log Message:
-----------
[DebugInfo][CodeView] Resolve forward references to types without unique name (#203781)
In the following code:
```cpp
// header.h
typedef struct lua_State lua_State;
lua_State *getState();
// source.c
#include "header.h"
struct lua_State { int field; };
lua_State *getState() {
static lua_State state = {.field=42}; // make sure the type is emitted
return &state;
}
// main.cpp
extern "C" {
#include "header.h"
}
int main() { return getState() != 0; }
```
We'll get two forward references for `lua_State` when compiling with
clang-cl. One with a unique name (from C++) and one without (from C).
There's one complete definition for the type (from `source.c`). Since
this is from C, it doesn't have a unique name. Before, we could only
resolve the forward reference from C, not from C++.
With this PR, we can resolve both references. I also tested that the VS
debugger resolves the reference correctly.
I'm not sure if this is a clang bug, because when compiling with MSVC,
the C type also has a unique name. Clang omits the unique name, because
C doesn't have ODR like C++.
Commit: f9db256c63b5ecc802183f6e58fda039e36816c4
https://github.com/llvm/llvm-project/commit/f9db256c63b5ecc802183f6e58fda039e36816c4
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86InstrInfo.h
Log Message:
-----------
[X86] Hoist getMOVriOpcode to X86InstrInfo.h and share it, NFC (#205187)
The x86 backend often needs to materialize potentially 64-bit immediates
into registers, and the logic to pick between the available opcodes
exists in 3 places at least. Move this to X86InstrInfo.h so we can share
it over the x86 backend without copying it.
An LLM did the refactoring.
Commit: 4c02baa7db33dcebd6b9eb51837b176869c8d327
https://github.com/llvm/llvm-project/commit/4c02baa7db33dcebd6b9eb51837b176869c8d327
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/elf-core/CMakeLists.txt
Log Message:
-----------
[lldb] Add missing dependency on lldbPluginObjectFilePlaceholder (#204831)
Fixes shared library build after 882d0251.
Commit: 094c10f9c6a7ff039c682fd2c5d90f92e2579f1e
https://github.com/llvm/llvm-project/commit/094c10f9c6a7ff039c682fd2c5d90f92e2579f1e
Author: adams381 <adams at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
A clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
Log Message:
-----------
[CIR] Lower byval/byref args in CallConvLowering (#201717)
[CIR] Lower byval/byref args in CallConvLowering
ArgKind::Indirect arguments were hitting an errorNYI in
CIRABIRewriteContext. Add the lowering: in the callee the block argument
type changes to !cir.ptr<T>, a load is inserted at entry so the body sees
the original value type, and llvm.byval or llvm.byref is attached based on
ownership. At call sites, both byval and byref are lowered by allocating a
stack slot, copying the value in, and passing the pointer.
For byval, llvm.noalias and llvm.noundef are also added -- llvm.noalias
because the call-site rewrite always produces a fresh alloca+store
(equivalent to -fpass-by-value-is-noalias), and llvm.noundef because the
copy is always fully defined. byref carries only llvm.byref and llvm.align
since it does not assert exclusive ownership.
Commit: 594cce3cbcdbe46d6f9ac3c6a53f86ae63c5bc42
https://github.com/llvm/llvm-project/commit/594cce3cbcdbe46d6f9ac3c6a53f86ae63c5bc42
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
A llvm/test/CodeGen/AMDGPU/uniform-intrin-combine-wqm-demote.ll
Log Message:
-----------
[AMDGPU] Change static NOP last terminator SI_DEMOTE_I1 to be replaced by S_BRANCH instead of assert (#204649)
This issue was first discovered in some testing downstream. A specific
chain of transformations on a ballot instruction with a constant
argument followed by an llvm.amgcn.wqm.demote call leads to an
instruction of `SI_DEMOTE_I1 -1, 0` being the last terminator of a block
with a single successor. This instruction is a NOP and can safely be
replaced with an S_BRANCH to the block's successor instead of asserting
failure.
The test added in this change is a very simplified recreation of the
pattern seen in the shader compilation in the downstream that lead to
assertion failure
Commit: 9757708126ff8defac247ed5a8a04b5daa8cd7c1
https://github.com/llvm/llvm-project/commit/9757708126ff8defac247ed5a8a04b5daa8cd7c1
Author: seantalts <me at seantalts.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/pred-inst-discount-vector-library-call.ll
Log Message:
-----------
[LoopVectorize] Don't assert in getVectorCallCost for vector library variants (#202085)
During loop vectorization, `computePredInstDiscount` queries the cost of
instructions at vector VF using `getInstructionCost`. A `CallInst` with
a vector library variant delegates to `getVectorCallCost`, which
asserted that such variants should not reach it.
A predicated call can however reach `getVectorCallCost` via
`computePredInstDiscount` — before its widening decision is made — when
a predicated user (e.g. a scatter store) is being considered for
scalarization. Remove the assert and fall through to the existing
scalarization cost, which is the cost relevant to that analysis.
Adds a regression test exercising that path.
Commit: ebf518b37a85a418ef887d77ff688d17d2bd8fa5
https://github.com/llvm/llvm-project/commit/ebf518b37a85a418ef887d77ff688d17d2bd8fa5
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/include/mlir/Dialect/XeGPU/uArch/IntelGpuXe2.h
M mlir/include/mlir/Dialect/XeGPU/uArch/uArchBase.h
M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
M mlir/test/Dialect/XeGPU/resolve-layout-conflicts.mlir
Log Message:
-----------
[MLIR][XeGPU] Refactor XeGPU layout propagation: passing lane_layout/lane_data with inst_data (#203156)
**Motivation**
Enhance setup* rules in layout propagation to pass lane_layout, and
lane_data information during inst_data propagation, so that the
propagation can have lane level information when choosing an optimal
inst_data. This branch makes that relationship explicit and uniform
across all setup rules.
**Invariant**
All setup rules now produce layouts that satisfy:
Nd ops + dpas/dpas_mx: inst_data = k * (lane_layout * lane_data), k ≥ 1
Scatter/matrix ops + non-anchor ops: inst_data = lane_layout * lane_data
**Key changes in XeGPULayoutImpl**
- New per-op anchor setup rules: setupStoreNdAnchorLayout,
setupPrefetchNdAnchorLayout,
setupLoadNdAnchorLayout (replacing a generic block-IO path) — Nd ops
have rigid lane info
and fit inst_data to the lane factorization.
- New complete*LayoutFromInstData helpers: fill in lane info on
user-provided anchors that
specify only inst_data, by re-running the op's Lane-kind setup with
inst_data as the
destination shape. Covers scatter load/store, block store/load, DPAS,
and DPAS_MX.
- BlockIOInstructionInterface (new in uArchBase.h): shared abstraction
over the
load/store/prefetch 2D-block instructions; the three Xe2 instructions
now implement it.
- setupMultiReductionResultLayout reorganized so the InstData and Lane
branches share the
same lane-layout logic (computeReductionLaneLayoutAndData).
- createScaleLayout (dpas_mx): caps the scale lane_layout by inst_data
so the scale
operand's load_nd satisfies the multiple-of invariant.
- getValidLayouts → getSgLayoutCandidates: renamed and generalized from
2D to N-D
factorization.
- inferShapeCastSourceLayout preserves lane info through 1D↔ND
collapse-style casts.
- chunkSize → contiguousChunkSize parameter rename for the scatter
inst_data decision.
- ResolveLayoutConflicts: retargets an existing convert_layout instead
of chaining a second
one; UnrollConvertLayoutOp short-circuits when input == target.
- Sub-byte (4-bit) element support added to the block-load uArch table.
- Tests updated: propagate-layout-inst-data.mlir, propagate-layout.mlir,
resolve-layout-conflicts.mlir.
Assisted-by-claude
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply at anthropic.com>
Commit: cf78c5484ae7d39464d7b46f9fb3769dd6f9a2b7
https://github.com/llvm/llvm-project/commit/cf78c5484ae7d39464d7b46f9fb3769dd6f9a2b7
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/MemoryBuiltins.h
M llvm/lib/Analysis/MemoryBuiltins.cpp
Log Message:
-----------
[MemoryBuiltins][NFC] Clang format and fixed coding style (#205205)
Commit: 0fdfa2b597aa0dbe76bc89fa313e2aa00da04430
https://github.com/llvm/llvm-project/commit/0fdfa2b597aa0dbe76bc89fa313e2aa00da04430
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] Remove assembly string from PseudoLA_TLSDESC. NFC (#205406)
Commit: 7e510f6adca203c3e347a85dc0e5a9016cd645a5
https://github.com/llvm/llvm-project/commit/7e510f6adca203c3e347a85dc0e5a9016cd645a5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Log Message:
-----------
[LV] Remove unused getInt/Fp/PointerInductionDescriptor accessors (NFC) (#205414)
getIntOrFpInductionDescriptor and getPointerInductionDescriptor are
unused, remove them.
Commit: 5794f4e183d2612bb3aa4cd529d0c5c8c0f267dd
https://github.com/llvm/llvm-project/commit/5794f4e183d2612bb3aa4cd529d0c5c8c0f267dd
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
M llvm/lib/Analysis/ProfileSummaryInfo.cpp
Log Message:
-----------
[PSI] Drop AllowSynthetic parameter to getProfileCount
This was not set anywhere and synthetic profile counts are not
emitted/used anywhere, so remove it.
Reviewers: david-xl, mtrofin, teresajohnson
Pull Request: https://github.com/llvm/llvm-project/pull/204765
Commit: ee682b8b050a16dc7c2f6bcb6e3409b3241d4022
https://github.com/llvm/llvm-project/commit/ee682b8b050a16dc7c2f6bcb6e3409b3241d4022
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
M llvm/lib/Analysis/BlockFrequencyInfo.cpp
M llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
Log Message:
-----------
[BFI] Drop AllowSynthetic Parameter
This was never set anywhere to something other than the default outside
of the implementation and synthetic profile counts are slated for
removal.
Reviewers: teresajohnson, mtrofin, david-xl
Pull Request: https://github.com/llvm/llvm-project/pull/204767
Commit: e584691adce2c8c0949e28f56427db72ac765570
https://github.com/llvm/llvm-project/commit/e584691adce2c8c0949e28f56427db72ac765570
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Function.h
M llvm/lib/IR/Function.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/Utils/ProfileVerify.cpp
M llvm/unittests/IR/MetadataTest.cpp
Log Message:
-----------
[IR] Remove Synthetic Profile Support from Function
Synthetic profiles are not generated anywhere and support is very
sporadic across the code base. They are slated to be removed, so remove
support for them from Function member functions.
A future PR will clean up the ProfileCount abstraction that is now no
longer necessary.
Reviewers: teresajohnson, david-xl, mtrofin
Pull Request: https://github.com/llvm/llvm-project/pull/204768
Commit: b74154ccda5f417de6be26fcc69cd41aed8eec57
https://github.com/llvm/llvm-project/commit/b74154ccda5f417de6be26fcc69cd41aed8eec57
Author: Sy Brand <sy.brand at fastly.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/test/Driver/wasm-toolchain.c
A lld/test/wasm/cooperative-threading.s
M lld/test/wasm/stack-pointer-abi.s
M lld/test/wasm/thread-context-abi-mismatch.s
M lld/test/wasm/tls-libcall.s
M lld/wasm/Config.h
M lld/wasm/Driver.cpp
M lld/wasm/Options.td
M lld/wasm/Relocations.cpp
M lld/wasm/SyntheticSections.cpp
M lld/wasm/Writer.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
A llvm/test/CodeGen/WebAssembly/cooperative-strip-tls.ll
Log Message:
-----------
[WebAssembly] Cooperative threading for WASIP3 (#200855)
This PR builds on the changes to allow libcall thread context from
https://github.com/llvm/llvm-project/pull/175800/changes and adds the
necessary changes to support cooperative multithreading in the WASIP3
target:
- Not marking memory as shared
- Allowing thread local accesses without atomics
- Only using passive segments for TLS segments
The linker changes are supported by a new flag called
`--cooperative-multithreading`. We talked about having two flags, one
for the `--libcall-thread-context` part and one for the cooperative
multithreading part. For now, I've simply replaced the
`--libcall-thread-context` flag with the `--cooperative-multithreading`
one and kept the internal configuration intact for simplicity.
Commit: 7e6d7003d805935036076b6d76ee698164e5b8aa
https://github.com/llvm/llvm-project/commit/7e6d7003d805935036076b6d76ee698164e5b8aa
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
M llvm/lib/CodeGen/MachineFunction.cpp
Log Message:
-----------
[PSI] Return raw entry count values
Now that synthetic entry counts are being removed, stop using the
ProfileCount wrapper around entrycounts given it only exists to
distinguish between synthetic and real profile counts.
Reviewers: teresajohnson, david-xl, mtrofin
Pull Request: https://github.com/llvm/llvm-project/pull/204769
Commit: d6c03937349e8d3856b4e21f1737e860bf1c8e3f
https://github.com/llvm/llvm-project/commit/d6c03937349e8d3856b4e21f1737e860bf1c8e3f
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/cmake/modules/LLDBConfig.cmake
Log Message:
-----------
[lldb] Disable dynamic script interpreters by default under Xcode (#205423)
When LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS is set, liblldb's export
list is built by merging the undefined LLDB symbols extracted from each
script interpreter plugin's objects (119e57630281). Because the plugins
link liblldb, the generated file is wired into liblldb's link via
LINK_DEPENDS, a file-level dependency with no target-level edge.
The Xcode generator only has coarse target-level dependencies, so that
generated liblldb-script-interpreter.exports ends up attached to two
targets with no common dependency, which its "new build system" rejects
at generation time:
```
CMake Error in source/API/CMakeLists.txt:
.../source/API/liblldb-script-interpreter.exports
is attached to multiple targets ... but none of these is a common
dependency of the other(s). This is not allowed by the Xcode "new
build system".
```
Default the option to OFF under the Xcode generator. The script
interpreter plugins are then linked statically into liblldb and the
per-plugin export path is never taken.
rdar://180422686
Commit: 65a7ccf65602e5e77c13f7e88fe152f4f7cfaa17
https://github.com/llvm/llvm-project/commit/65a7ccf65602e5e77c13f7e88fe152f4f7cfaa17
Author: Delaram Talaashrafi <dtalaashrafi at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksLoop.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
A mlir/test/Dialect/OpenACC/acc-emit-remarks-loop-pipeline.mlir
A mlir/test/Dialect/OpenACC/acc-emit-remarks-loop.mlir
Log Message:
-----------
[MLIR][OpenACC] Add acc-emit-remarks-loop pass (#205203)
Add a function-level pass that emits optimization remarks for loops in
`acc.compute_region`, describing their mapping to OpenACC parallel
levels (gang, worker, vector, sequential) and GPU dimensions (blockIdx,
threadIdx).
Commit: 37a71b650a9f4c4431fece85485023a048b0bb1d
https://github.com/llvm/llvm-project/commit/37a71b650a9f4c4431fece85485023a048b0bb1d
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Analysis/ProfileSummaryInfo.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/MIRSampleProfile.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/ProfDataUtils.cpp
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
M llvm/lib/Transforms/Utils/ProfileVerify.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/unittests/IR/MetadataTest.cpp
Log Message:
-----------
[IR] Remove ProfileCount Abstraction
This only exists to differentiate between real and synthetic profiles.
Remove the abstraction now that we plan to fully remove synthetic
profiles.
Reviewers: mtrofin, david-xl
Reviewed By: mtrofin
Pull Request: https://github.com/llvm/llvm-project/pull/204770
Commit: 1a997e2a2c370231b6add5884f6fdc7f195d5fe6
https://github.com/llvm/llvm-project/commit/1a997e2a2c370231b6add5884f6fdc7f195d5fe6
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/DWARFLinker/Classic/DWARFLinker.h
M llvm/include/llvm/DWARFLinker/DWARFLinkerBase.h
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.h
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
M llvm/tools/dsymutil/DwarfLinkerForBinary.h
M llvm/tools/dsymutil/dsymutil.cpp
M llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
Log Message:
-----------
[dsymutil] Reuse a single thread pool across architectures (#204691)
dsymutil links the architectures of a universal binary on a thread pool,
and the parallel linker's DWARFLinkerImpl::link() then created a second
pool to link each architecture's object files. With one such inner pool
per architecture, dsymutil spun up more worker threads than the machine
has cores.
Add DWARFLinkerBase::setThreadPool() so the caller provides the pool.
The parallel linker schedules the object files on it as a
ThreadPoolTaskGroup. dsymutil hands over the pool it already uses to
schedule the architectures, llvm-dwarfutil passes one sized by
--num-threads, and the classic linker ignores it and manages its own
threads (always 2 for the lockstep algorithm).
The per-compile-unit cloning still runs on the global llvm::parallel
executor, whose per-thread allocators are indexed by getThreadIndex(),
so it can't move onto this pool.
Commit: cf6527a49669c796bc4b5bacb7a7738fee13944b
https://github.com/llvm/llvm-project/commit/cf6527a49669c796bc4b5bacb7a7738fee13944b
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/profile/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/RISCV/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#205428)
55d7f777d958
582a20269e2c
Commit: 0c6a0c4ccf234c5d9969294b454cb615277ede14
https://github.com/llvm/llvm-project/commit/0c6a0c4ccf234c5d9969294b454cb615277ede14
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDowngrade1p1To1p0.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
M mlir/test/Dialect/Tosa/dynamic_extension.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/level_check.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/profile_all_unsupported.mlir
M mlir/test/Dialect/Tosa/tosa-downgrade-1-1-to-1-0.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
Log Message:
-----------
[mlir][tosa] Add support for matmul_t (#203894)
Adds support for matmul_t added to the specification in
https://github.com/arm/tosa-specification/pull/50.
This includes:
- Operator definition
- Verification logic for the operator
- Output shape inference for the operator
- Validation checks to ensure compliance with the TOSA specification
including profile compliance and level checks.
- Support for matmul_t to matmul in the downgrade pass.
Note that MXFP support will be added in a follow-up commit.
Commit: 3b1927989a0831d731eb5e0b9eada6a5367c6bf5
https://github.com/llvm/llvm-project/commit/3b1927989a0831d731eb5e0b9eada6a5367c6bf5
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M flang/lib/Semantics/expression.cpp
A flang/test/Semantics/cuf29.cuf
Log Message:
-----------
[flang][cuda] Prefer valid intrinsics over host-only generics in device code (#205376)
In CUDA device code, a host-only generic can shadow an intrinsic with
the same name and cause a valid call such as maxloc(a, 1) to be rejected
as non-device-callable. Retry intrinsic resolution for host-only generic
function calls in device context, preserving normal diagnostics when no
valid intrinsic matches.
Commit: 6c25981989b0b21e5fa95ae75badd94a1c5453f6
https://github.com/llvm/llvm-project/commit/6c25981989b0b21e5fa95ae75badd94a1c5453f6
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/GlobPattern.h
M llvm/lib/Support/GlobPattern.cpp
M llvm/unittests/Support/GlobPatternTest.cpp
Log Message:
-----------
Revert "[NFC][Support] Implement slash-agnostic path matching in GlobPattern" (#205409)
Reverts llvm/llvm-project#202854 due to downstream breakage (see
discussion in
https://github.com/llvm/llvm-project/pull/202854#issuecomment-4746579478)
Commit: 510ef079ffdd60a912ebf23911621944af757ac6
https://github.com/llvm/llvm-project/commit/510ef079ffdd60a912ebf23911621944af757ac6
Author: Maosu Zhao <maosu.zhao at intel.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
M llvm/test/Instrumentation/NumericalStabilitySanitizer/non_float_store.ll
Log Message:
-----------
[NSan] Fix null-pointer crash on unsupported vector element sizes (#202270)
In propagateNonFTStore, BitcastTy is left null when a ConstantDataVector
has an element width other than 32/64/80 bits (e.g., f16, bf16, fp128).
Passing a null element type into VectorType::get crashes. Guard the
VectorType::get call so the unsupported case falls through to the "reset
shadow to unknown" path.
---------
Co-authored-by: Alexander Shaposhnikov <ashaposhnikov at google.com>
Commit: c179b4e55aaf7b13813fd662b0acc6cf0908a949
https://github.com/llvm/llvm-project/commit/c179b4e55aaf7b13813fd662b0acc6cf0908a949
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M flang/lib/Lower/Bridge.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Materialize trivial computation to avoid data transfer error (#205422)
Avoid this error: `error: 'cuf.data_transfer' op expect src and dst to
be references or descriptors or src to be a constant: 'f32' -
'!fir.ref<f32>'`
Commit: 43b63b61c392920460e32339f2703d5f75a20218
https://github.com/llvm/llvm-project/commit/43b63b61c392920460e32339f2703d5f75a20218
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][Scheduler] Implement direction (#205193)
DGNode::UnscheduledPreds was added in a previous patch, so this patch
makes use of it in the scheduler. Depending on Dir we can now schedule
BottomUp or TopDown.
Commit: bab165ecb0d64686849dfa14d1798589eee7b66e
https://github.com/llvm/llvm-project/commit/bab165ecb0d64686849dfa14d1798589eee7b66e
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/tools/dsymutil/Options.td
Log Message:
-----------
[dsymutil] Fix help message after #200971 (#203337)
The default DWARF linker is parallel after #200971. Fix help message
which still suggests classic DWARF linker.
Commit: 614b0b4fe8cb418b7c409f504846fe7e4f158b6f
https://github.com/llvm/llvm-project/commit/614b0b4fe8cb418b7c409f504846fe7e4f158b6f
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
Log Message:
-----------
[lldb] Resolve dyld introspection SPIs with dlsym (NFC) (#205434)
HostInfoMacOSX's SharedCacheInfo used the dyld process-snapshot
introspection SPIs only when <mach-o/dyld_introspection.h> was present,
gating the calling code behind a compile-time macro.
To avoid bifurcating the behavior based on the SDK, rather than the
presence of the symbols, use dlsym to resolve them at runtime.
While here, fold the duplicate dlsym of dyld_image_segment_data_ into
the new, once-initialized, shared table.
Assisted-by: Claude
Commit: c997a13812c1250499d016867bf6f2f9197e384e
https://github.com/llvm/llvm-project/commit/c997a13812c1250499d016867bf6f2f9197e384e
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/Hexagon/CMakeLists.txt
M llvm/lib/Target/Hexagon/Hexagon.h
A llvm/lib/Target/Hexagon/HexagonHVXSaveRemark.cpp
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
A llvm/test/CodeGen/Hexagon/hvx-save-remarks.ll
Log Message:
-----------
[Hexagon] Add HVX caller-save remark pass for call-site diagnostics (#189188)
Add a new MachineFunctionPass (HexagonHVXSaveRemark) that emits
optimization analysis remarks when HVX vector registers must be saved
and restored around function calls. All HVX registers are caller-saved
(Section 5.3 of the Hexagon ABI), so any HVX value live across a call
requires a save/restore pair on the stack. Each HVX vector is 64 or 128
bytes, making this overhead expensive.
The pass exits when remarks are not requested
(-Rpass-analysis=hexagon-hvx-save) or when HVX is not enabled. A byte
threshold (default 1024, tunable via -hexagon-hvx-save-threshold)
filters out functions with only a small number of saves. The remarks
help programmers identify call sites where inlining, hoisting, or
sinking could reduce the save/restore cost.
Commit: bdc00c2a051169caf0f3cff624f00e3d38d02a3c
https://github.com/llvm/llvm-project/commit/bdc00c2a051169caf0f3cff624f00e3d38d02a3c
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M .github/workflows/prune-unused-branches.py
Log Message:
-----------
[Github] Make prune-unused-branches only delete branches after 7 days
To hopefully prevent the last failure mode that led to the job being
disabled where the GitHub API failed to return results for >24 hours.
Reviewers: cmtice
Pull Request: https://github.com/llvm/llvm-project/pull/205438
Commit: c48e258f617c231c6be1bbf15d239dfdcdd8c30c
https://github.com/llvm/llvm-project/commit/c48e258f617c231c6be1bbf15d239dfdcdd8c30c
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M .github/workflows/prune-branches.yml
Log Message:
-----------
[Github] Reenable prune-unused-branches workflow
The Github API has recovered and the previous failure mode has been
rectified by ensuring that branches are ready for deletion for seven
days rather than 24 hours.
Reviewers: cmtice
Reviewed By: cmtice
Pull Request: https://github.com/llvm/llvm-project/pull/205439
Commit: f12b16713185fe244b7f21f9c0fa42f96fc066e8
https://github.com/llvm/llvm-project/commit/f12b16713185fe244b7f21f9c0fa42f96fc066e8
Author: Matt <MattPD at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M flang/include/flang/Lower/Support/ReductionProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/ReductionProcessor.cpp
A flang/test/Lower/OpenMP/Todo/declare-reduction-operator-multiple-types.f90
A flang/test/Lower/OpenMP/Todo/declare-reduction-operator-use-assoc.f90
A flang/test/Lower/OpenMP/declare-reduction-operator-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-operator.f90
Log Message:
-----------
[flang][OpenMP] Fix ICE lowering user-defined operator declare reduction
A REDUCTION clause naming a user-defined operator (e.g.,
reduction(.myop.:x)) crashed in lowering: ReductionProcessor assumed the
DefinedOperator clause variant always held an intrinsic operator and called
std::get<IntrinsicOperator> unconditionally, which aborts for the
DefinedOpName alternative.
Handle DefinedOpName in the reduction clause processor, adding the
clause-side counterpart to the directive handling from #190288. For a
locally declared user-defined operator reduction, resolve the operator to
its reduction symbol and reference the omp.declare_reduction op materialized
for the declare reduction directive. The op name is now module-scoped via
AbstractConverter::mangleName, on the directive and clause sides in
lockstep, so reductions with the same operator spelling in different modules
no longer collide.
Cases that are not yet supported (reductions imported by USE association,
renamed or merged operators, and declarations with multiple types) now emit
a clean "not yet implemented" diagnostic instead of crashing or silently
binding the wrong combiner. Support for the USE-associated and cross-module
cases is a follow-up that builds on the semantic fix in #200329.
Tests cover the issue's integer case and a derived-type case (both lower,
with a module-scoped op name), plus the USE-associated and multiple-type
cases (clean TODO).
Fixes #204299
Assisted-by: Claude Opus 4.8, GPT-5.5.
Commit: 4bb31d7c30933e42bc924536728178ba0051ab31
https://github.com/llvm/llvm-project/commit/4bb31d7c30933e42bc924536728178ba0051ab31
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/test/Dialect/GPU/canonicalize.mlir
Log Message:
-----------
[mlir][gpu] Fix memref.dim folding with negative index (#205338)
Fixes #205073.
Commit: 719144a271dbefb8719ed9ecd4c142ff514b4f22
https://github.com/llvm/llvm-project/commit/719144a271dbefb8719ed9ecd4c142ff514b4f22
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
Log Message:
-----------
[mlir] Simplify DimOp::fold by using `getConstantIndex`(NFC) (#205343)
Refactor `DimOp::fold` in both memref and tensor dialects to use the
existing `getConstantIndex()` helper instead of manually extracting the
index via `IntegerAttr`.
Commit: 87c73ade608c60c7e5e9f3868556b1b572be94c7
https://github.com/llvm/llvm-project/commit/87c73ade608c60c7e5e9f3868556b1b572be94c7
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/icmp_ptr.ll
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Add basic support for pointer comparisons (#205410)
This patch was a part of
https://github.com/llvm/llvm-project/pull/201170. I split the `icmp ptr`
support from the original PR since I am worried it might not catch up
for the LLVM 23 release (#201170 is blocked by #200672 for curating
mixed provenance tests). I hope we can pick most of the low-hanging
fruit exposed by fuzzers before the release. The released version should
be able to run csmith-generated tests without obvious false positives or
crashes.
BTW, this patch doesn't respect the exact semantics of `icmp ptr` (i.e.,
truncating the address to the address width. The naming is a bit
confusing...). Currently, we don't model external state in non-address
bits of a pointer in llubi. So I think it is fine.
Commit: ca368598052824548c753faf227bcf1dfc443cfd
https://github.com/llvm/llvm-project/commit/ca368598052824548c753faf227bcf1dfc443cfd
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/Targets/X86.cpp
M clang/test/CodeGen/X86/avx-cxx-record.cpp
Log Message:
-----------
[clang] Exclude EmptyRecord when calculating larger CXX records (#205040)
To match with GCC: https://godbolt.org/z/KPKGhhenK
Fixes: #203760
Assisted-by: Claude Sonnet 4.6
Commit: f41a6b7cd2b9e4d8c7c1c7f4c60ac3b8edebba28
https://github.com/llvm/llvm-project/commit/f41a6b7cd2b9e4d8c7c1c7f4c60ac3b8edebba28
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
[Github] Bump release-binaries python version (#179287)
This makes it more consistent with the rest of the repository.
Commit: be3ee6fe6beda79e653d81733ede396aa40c0d6e
https://github.com/llvm/llvm-project/commit/be3ee6fe6beda79e653d81733ede396aa40c0d6e
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
A llvm/test/CodeGen/AArch64/peephole-substitute-cmp-adcs.mir
Log Message:
-----------
[AArch64] Add final missing instructions to sForm (#167518)
Fix missing opcodes in table of flag-setting instructions.
Commit: 2cbaca8fe5f33069d764c6cada16ea4305a6efc5
https://github.com/llvm/llvm-project/commit/2cbaca8fe5f33069d764c6cada16ea4305a6efc5
Author: Jin Huang <jinhuang1102 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Analysis/AliasAnalysis.cpp
R llvm/test/Transforms/DeadStoreElimination/atomic-todo.ll
M llvm/test/Transforms/DeadStoreElimination/atomic.ll
Log Message:
-----------
Reapply [AA] Improve precision for monotonic atomic load/stor… (#195015)
Reverts https://github.com/llvm/llvm-project/pull/173135 and and add two
new IR tests to demonstrate the impact of different atomic orderings on
Dead Store Elimination(DSE).
This reverts commit c8941df6a1e4ed5e1ba3287985a60e1d7512c250.
Co-authored-by: Aiden Grossman <aidengrossman at google.com>
Commit: 9ee7bdaaca232e18e4a47ca25ed088d144a5b7e6
https://github.com/llvm/llvm-project/commit/9ee7bdaaca232e18e4a47ca25ed088d144a5b7e6
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
M clang/include/clang/AST/Decl.h
M clang/lib/AST/Decl.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/Serialization/ASTWriter.cpp
Log Message:
-----------
[clang][AST] Refactor `EvaluatedStmt` accessors in `VarDecl` (#205033)
1) Return the evaluated APValue as a const pointer since it
may not be modified by callers.
2) Only return a non-nullptr from `getEvaluatedValue()` if
the APValue not absent.
Commit: d17d249e92bfe63f6ccc8a927caa4eb0316474a8
https://github.com/llvm/llvm-project/commit/d17d249e92bfe63f6ccc8a927caa4eb0316474a8
Author: jinge90 <ge.jin at intel.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M libc/utils/MPFRWrapper/MPCommon.cpp
Log Message:
-----------
[libc][NFC] Remove a compiler warning for MPCommon (#205264)
Local build on Linux platform reports a compiler warning:
llvm-project/libc/utils/MPFRWrapper/MPCommon.cpp:546:15: warning:
implicit conversion loses integer precision: 'long' to 'int'
[-Wshorten-64-to-32]
546 | int mod = mpfr_get_si(value_ret_exact.value, MPFR_RNDN);
| ~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Signed-off-by: jinge90 <ge.jin at intel.com>
Commit: 7570d2daec569c691694daa0ce967b1119533dc2
https://github.com/llvm/llvm-project/commit/7570d2daec569c691694daa0ce967b1119533dc2
Author: Frederick Vu <100011202+FrederickVu at users.noreply.github.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir
A llvm/test/MachineVerifier/AMDGPU/dpp-imm-src1.mir
Log Message:
-----------
[AMDGPU] Reject src1 immediates with dpp when unsupported (#201494)
This fixes an oversight in #164241.
Commit: 51b0fc4f611adc420afefa40130185cca6a59553
https://github.com/llvm/llvm-project/commit/51b0fc4f611adc420afefa40130185cca6a59553
Author: flovent <flbven at protonmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove a wrong comment in ProTypeMemberInitCheck (#205477)
`getAsCXXRecordDecl` will return nullptr for any dependent types.
It's introduced by #192786, see
https://github.com/llvm/llvm-project/pull/192786#issuecomment-4785223372
in original PR.
Commit: 81a8c66fdc96a7bf6927bf3f88d4b2e24a5c71e7
https://github.com/llvm/llvm-project/commit/81a8c66fdc96a7bf6927bf3f88d4b2e24a5c71e7
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
M llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
Log Message:
-----------
[LV] Accept swapped operands in early-exit condition compare (#199989)
Use m_c_ICmp so the load can be on either side of the icmp.
Commit: c656cb11639b5e6bd43fc691b3dab91a5d42ce37
https://github.com/llvm/llvm-project/commit/c656cb11639b5e6bd43fc691b3dab91a5d42ce37
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
Log Message:
-----------
[Hexagon] Fix unused variable in non-assert builds (KCFI) (#205491)
Without asserts, we see failures like so:
/repo/llvm/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp:982:43: error:
unused variable 'NextI' [-Werror,-Wunused-variable]
982 | MachineBasicBlock::const_instr_iterator NextI =
std::next(MI.getIterator());
| ^~~~~
1 error generated.
Mark NextI `maybe_unused` to address the issue.
Fixes a regression introduced by f8aa5f66209d.
Commit: a12ce96dad720892ecf8e77a6f8184b44bdde9e2
https://github.com/llvm/llvm-project/commit/a12ce96dad720892ecf8e77a6f8184b44bdde9e2
Author: Zhige Chen <zhige_chen at outlook.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/intr_memory.ll
A llvm/test/tools/llubi/intr_memory_align_ub.ll
A llvm/test/tools/llubi/intr_memory_constant_ub.ll
A llvm/test/tools/llubi/intr_memory_len_ub.ll
A llvm/test/tools/llubi/intr_memory_ub.ll
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Implement memory manipulation intrinsics (#204932)
Implement `memset`, `memcpy`, `memmove` intrinsics and their
corresponding inline version. Note that the `isvolatile` argument is
ignored and left for future PRs.
Commit: 474b21aa99899756ede1e767abed2be63783c8ec
https://github.com/llvm/llvm-project/commit/474b21aa99899756ede1e767abed2be63783c8ec
Author: firmiana402 <firmiana402 at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M lldb/source/Expression/DWARFExpression.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
M llvm/test/DebugInfo/X86/constant-loclist.ll
Log Message:
-----------
[DebugInfo][LLDB] Fix generic DW_OP_const handling (#204353)
This PR fixes two related DWARF constant-handling bugs that were
blocking each other.
First, LLDB's DWARF expression evaluator in
[`DWARFExpression.cpp`](https://github.com/llvm/llvm-project/blob/main/lldb/source/Expression/DWARFExpression.cpp)
handled `DW_OP_constu` and `DW_OP_consts` without going through
`to_generic`. Under DWARF, these operators push a generic value: an
address-sized integral value with unspecified signedness. That means the
result should be truncated to the target address size (via
`to_generic`).
Second, LLVM already had a producer-side issue tracked as
[#47431](https://github.com/llvm/llvm-project/issues/47431): on 32-bit
targets, LLVM could emit `DW_OP_consts` / `DW_OP_constu` for source
integer constants wider than the target generic type. If LLDB were fixed
alone, those producer-emitted constants would become truncated as DWARF
requires, exposing incorrect debug info for wide source values.
This patch fixes both sides together.
## What Changed
On the LLDB consumer side:
- `DW_OP_constu` now uses `to_generic`.
- `DW_OP_consts` now uses `to_generic`.
- The corresponding LLDB DWARF expression tests were updated to expect
address-sized generic values.
On the LLVM producer side:
- Wide integer debug-location constants that cannot be represented by
the target generic type are emitted as `DW_OP_implicit_value` instead of
`DW_OP_const*`.
- This preserves the source value bytes instead of relying on an
address-sized DWARF generic constant.
- The producer-side change is limited to complete constant values, where
there are no remaining `DIExpression` operations.
## Validation
Locally verified with:
```text
build/tools/lldb/unittests/Expression/ExpressionTests --gtest_filter='DWARFExpression.*'
74 tests passed
build/bin/llvm-lit -sv llvm/test/DebugInfo/X86/constant-loclist.ll
1 test passed
ninja -C build check-lldb -j12
No unexpected failures
ninja -C build check-all -j12
Completed with one unrelated local failure in Clang Tools :: clang-doc/DR-141990.cpp, caused by host warning-option output. No DebugInfo, DWARF, LLDB expression, or AsmPrinter-related failures were observed.
```
Commit: d7414ff58979052ee6f9979c96e54b565870ca18
https://github.com/llvm/llvm-project/commit/d7414ff58979052ee6f9979c96e54b565870ca18
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
Log Message:
-----------
[LoopFusion][NFC] Share fusion tail between guarded and unguarded paths (#205492)
`performFusion()` and `fuseGuardedLoops()` carried two
character-for-character identical tails: header-PHI migration plus latch
rewiring, and the SCEV-forget / block-merge / latch-merge finalization.
Extract them into `rewireFusedHeaderPHIsAndLatches()` and
`finalizeFusedLoop()` and call both from each path.
Commit: 82c5bce5233f964da4f8086b2341067314d841d7
https://github.com/llvm/llvm-project/commit/82c5bce5233f964da4f8086b2341067314d841d7
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vp-combine-reverse-load.ll
Log Message:
-----------
[RISCV] Convert opaque pointers in vp-combine-reverse-load.ll. NFC (#205498)
Commit: 448c3d54df7bcd5e5be2b5d051832ad00b4cc89c
https://github.com/llvm/llvm-project/commit/448c3d54df7bcd5e5be2b5d051832ad00b4cc89c
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/aarch64-neon-vector-insert-uaddlv.ll
M llvm/test/CodeGen/AArch64/fabs-fp128.ll
Log Message:
-----------
[AArch64] Run cleanup one final time after peephole (#199711)
It's a lightweight pass. Should always be the last SSA pass since
peephole can end up making some instructions dead.
Commit: da9252a9453603af579a9f56c3212cce04e831d2
https://github.com/llvm/llvm-project/commit/da9252a9453603af579a9f56c3212cce04e831d2
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/ObjectYAML/ELFEmitter.cpp
Log Message:
-----------
[ObjectYAML][NFC] Derive BBAddrMap section size from the CBA offset (#204056)
Add the CBA offset delta to sh_size once at the end instead of after
each write.
Commit: 25ae6ce4801f6f6addae5079323870d4191e7531
https://github.com/llvm/llvm-project/commit/25ae6ce4801f6f6addae5079323870d4191e7531
Author: Victor Campos <victor.campos at arm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M libc/src/stdlib/qsort.cpp
M libc/src/stdlib/qsort_r.cpp
M libc/src/stdlib/qsort_util.h
M libc/test/src/stdlib/CMakeLists.txt
A libc/test/src/stdlib/QsortReentrantTest.h
M libc/test/src/stdlib/qsort_r_test.cpp
Log Message:
-----------
[libc] Refactor qsort code (#198781)
This patch makes the following changes:
- Refactor the internal sorting functions to reduce code duplication.
- Move the testing machinery done for the testing of `qsort_r` to a
shared place.
These changes are done in anticipation to the introduction of Annex K's
`qsort_s`. This function shares most of its semantics with `qsort_r`,
therefore most of the testing logic can be shared between the two.
Besides, `qsort`, `qsort_r` and `qsort_s` are all very similar, hence we
can attempt to reduce duplication a bit more.
Commit: 099b1f6aeec8058460598106ff0b68fab66b12dc
https://github.com/llvm/llvm-project/commit/099b1f6aeec8058460598106ff0b68fab66b12dc
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M compiler-rt/lib/builtins/arm/divdf3.S
M compiler-rt/test/builtins/Unit/divdf3new_test.c
Log Message:
-----------
[compiler-rt][ARM] Fix underflow handling in new divdf3.S (#204784)
The code which calculates the 'errsign' parameter to pass to
`__compiler_rt_dunder` was wrong in two ways. It calculated the value
with the wrong sign, and also in the wrong register, r12 rather than r2!
In this code's original context, both of those things made sense (the
'dunder' function had a nonstandard ABI). Somehow none of the existing
test cases detected the problem.
We found this bug in a test case downstream that only failed big-endian
(because that changes which half of the denominator mantissa is left in
r2 to be accidentally used as errsign). However, the new test cases here
are designed to detect the failure in both endiannesses.
Commit: a71292356656e0c516019aa6b571baeb572a7624
https://github.com/llvm/llvm-project/commit/a71292356656e0c516019aa6b571baeb572a7624
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_ip_mreq.h
A libc/hdr/types/struct_ip_mreq_source.h
A libc/hdr/types/struct_ip_mreqn.h
A libc/hdr/types/struct_ip_msfilter.h
A libc/hdr/types/struct_ip_opts.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_ip_mreq.h
A libc/include/llvm-libc-types/struct_ip_mreq_source.h
A libc/include/llvm-libc-types/struct_ip_mreqn.h
A libc/include/llvm-libc-types/struct_ip_msfilter.h
A libc/include/llvm-libc-types/struct_ip_opts.h
M libc/include/netinet/in.yaml
M libc/test/src/netinet/CMakeLists.txt
M libc/test/src/netinet/in_test.cpp
Log Message:
-----------
[libc] Add IPv4 socket options and related structs (#204787)
This patch adds struct ip_mreq, ip_mreq_source, ip_mreqn, ip_opts, and
ip_msfilter to <netinet/in.h>, along with IP level socket option macros
(IP_TOS, IP_TTL, IP_ADD_MEMBERSHIP, etc.).
I add basic unit tests verifying the size and member offsets of the new
structures against standard layout expectations, mainly to make sure
that the files are used /somewhere/.
Assisted by Gemini.
Commit: a562f6a4833eb15d8d2fdbd54c27c595935ff275
https://github.com/llvm/llvm-project/commit/a562f6a4833eb15d8d2fdbd54c27c595935ff275
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/Dialect/FIROps.cpp
A flang/test/Fir/present-absent-if-fold.fir
Log Message:
-----------
[flang][FIR] add canonicalization pattern for fir.if returning OPTIONAL (#205353)
Lowering is generating patterns when forwarding OPTIONAL in calls that
looks like:
```
%present = fir.is_present %var : (T) -> i1
%if_result = fir.if %present -> (T) {
fir.result %var : T
} else {
%absent = fir.absent T
fir.result %absent : T
}
```
This specific pattern is a no-op and `%var` can be used directly. The
lowering logic that generates such patterns is inside non trivial
compiler code that has to deal with more complex scenarios where the
code inside the fir.if is more complex. Add a FIR pattern to
canonicalize such code to help with later analysis (like aliasing).
Commit: 35cfa14e389e72b1b852d15c7cfc87172a5d4e4b
https://github.com/llvm/llvm-project/commit/35cfa14e389e72b1b852d15c7cfc87172a5d4e4b
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M libcxx/include/__ranges/reverse_view.h
R libcxx/test/libcxx/ranges/range.adaptors/range.reverse/adaptor.nodiscard.verify.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.reverse/nodiscard.verify.cpp
Log Message:
-----------
[libc++][ranges] Applied `[[nodiscard]]` to `reverse_view` (#205186)
Towards #172124
#References:
- https://wg21.link/range.reverse
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
Commit: 34bdee76b8577302e2e04fe553ab03579e764069
https://github.com/llvm/llvm-project/commit/34bdee76b8577302e2e04fe553ab03579e764069
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/IncludeFixer.cpp
M clang-tools-extra/modularize/PreprocessorTracker.cpp
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/unittests/AST/ASTImporterFixtures.cpp
M clang/unittests/Interpreter/CodeCompletionTest.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
M lldb/source/Commands/CommandObjectCommands.cpp
M lldb/source/Commands/CommandObjectHelp.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
M lldb/source/Plugins/Protocol/MCP/ProtocolServerMCP.cpp
M lldb/source/Target/StackFrameList.cpp
M lldb/tools/yaml2macho-core/yaml2macho.cpp
M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h
M llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h
M llvm/lib/DWARFCFIChecker/DWARFCFIState.cpp
M llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
M llvm/tools/llvm-rc/ResourceScriptParser.cpp
M llvm/tools/llvm-rc/ResourceScriptParser.h
M llvm/tools/sancov/sancov.cpp
M llvm/unittests/ADT/STLExtrasTest.cpp
M llvm/unittests/CodeGen/PassManagerTest.cpp
M llvm/unittests/TextAPI/TextStubV3Tests.cpp
M llvm/unittests/TextAPI/TextStubV4Tests.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
Remove unused variables in the monorepo (#204994)
https://github.com/llvm/llvm-project/pull/203084 adds diagnostics about
unused variables to the libc++ containers. This patch is the fallout
from the projects I tried to build with it.
Commit: 86e2f0f502066a2624981d6272b0dd727edc78b7
https://github.com/llvm/llvm-project/commit/86e2f0f502066a2624981d6272b0dd727edc78b7
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
Log Message:
-----------
[CIR] Handle const evaluated variable values (#205512)
Match the `VarDecl::evaluateValue()` contract updated by #205033 in CIR
constant emission.
Commit: 20988f874dc241b8b7c21f5c0b1f4c032835c2d2
https://github.com/llvm/llvm-project/commit/20988f874dc241b8b7c21f5c0b1f4c032835c2d2
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/madd.ll
Log Message:
-----------
[X86] madd.ll - add additional tests for matchPMADDWD folds that fail with irregular source types (#205514)
Ensure #205391 doesn't crash with non-pow2/illegal types
Commit: 08e389cc4a029fb6d659f3f1e277ab3bce461a38
https://github.com/llvm/llvm-project/commit/08e389cc4a029fb6d659f3f1e277ab3bce461a38
Author: Anonmiraj <ezzibrahimx at gmail.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang/include/clang/APINotes/APINotesManager.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/Sema/SemaAPINotes.cpp
Log Message:
-----------
[APINotes] Skip per-decl ProcessAPINotes work when no API notes are active (#203710)
Cache "any API notes active" and skip per-decl lookups.
| function | before #202727 | trunk (parent) | this PR |
| ------------------------ | ----------------- | ----------------- |
------------------- |
| `Sema::ProcessAPINotes` | 2,385,852 (0.21%) | 1,028,280 (0.09%) |
**365,310 (0.03%)** |
| `UnwindNamespaceContext` | 349,244 | gone | gone |
| `findAPINotes` | 448,140 | 473,550 | **gone** |
cc @egorzhdan @Xazax-hun @compnerd
Commit: d8b6b295ac3064c2ef0a2a44e6d25663802ce866
https://github.com/llvm/llvm-project/commit/d8b6b295ac3064c2ef0a2a44e6d25663802ce866
Author: CarolineConcatto <caroline.concatto at arm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAArch64.td
Log Message:
-----------
[AArch64][TableGen] Define ZA, ZT0 and FPMR memory defvars (#154144)
Introduce TableGen defvars for the inaccessible memory effects used to
model accesses to ZA, ZT0 and FPMR in IntrinsicsAArch64.td.
This is a preparatory cleanup for a follow-up patch that will replace
these uses of InaccessibleMem with target-specific memory locations.
Other uses of inaccessible memory in the file are left unchanged because
they are unrelated to ZA, ZT0 or FPMR.
This preserves the existing memory effects. In particular, intrinsics
that currently access both argument memory and inaccessible memory keep
the same ArgMem/InaccessibleMem read/write modelling.
---------
Co-authored-by: Paul Walker <paul.walker at arm.com>
Commit: 910425f1a4ea52f5b6a04e7f55a5df812cd77424
https://github.com/llvm/llvm-project/commit/910425f1a4ea52f5b6a04e7f55a5df812cd77424
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c
M clang/test/CodeGen/AArch64/neon/bf16-getset.c
M clang/test/CodeGen/AArch64/sme2p3-intrinsics/acle_sme2p3_luti6.c
M clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_luti6.c
M clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_luti6_lane_x2.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-types.c
M clang/test/CodeGen/svboolx2_t.cpp
M clang/test/CodeGen/svboolx4_t.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp
M clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp
M clang/test/CodeGenCXX/mangle-neon-vectors.cpp
M clang/test/Index/index-builtin-sve.cpp
M clang/test/Sema/aarch64-bf16-ldst-intrinsics.c
M clang/test/Sema/aarch64-incompat-sm-builtin-calls.cpp
M clang/test/Sema/aarch64-sme-func-attrs.c
M clang/test/Sema/aarch64-sme-streaming-nonstreaming-vl-checks.c
M clang/test/Sema/aarch64-sme2p1-diagnostics.c
M clang/test/Sema/aarch64-sme2p1-intrinsics/acle_sme2p1_imm.cpp
M clang/test/Sema/aarch64-sme2p3-intrinsics/acle_sme2p3_imm.c
M clang/test/Sema/attr-arm-sve-vector-bits.c
M clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp
Log Message:
-----------
[NFC][Clang][Tests] Remove +bf16 from AArch64 tests that don't strictly need the feature flag. (#205336)
Commit: 14840af5d694f40dbc8b1733330da2db4000335c
https://github.com/llvm/llvm-project/commit/14840af5d694f40dbc8b1733330da2db4000335c
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/OpenMP/device-constructs.f90
A flang/test/Semantics/OpenMP/if-clause-45-suggestion.f90
M flang/test/Semantics/OpenMP/if-clause-45.f90
A flang/test/Semantics/OpenMP/if-clause-50-suggestion.f90
M flang/test/Semantics/OpenMP/if-clause-50.f90
A flang/test/Semantics/OpenMP/if-clause-60.f90
M flang/test/Semantics/OpenMP/if-clause.f90
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Check that IF clause applies to at most one leaf (#205164)
This also allows placing the IF clause in the "allowedClauses" set for
all directives, instead of having it in "allowedOnceClauses" for some
directives and in "allowedClauses" for others.
The emitted diagnostic will show which constituent has multiple IF
clauses applying to it:
```
if.f90:4:35: error: At most one IF clause can apply to each directive constituent
!$omp & if(target teams: x > 0) if(teams distribute: y > 0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
if.f90:4:11: Previous IF clause applying to the TEAMS constituent
!$omp & if(target teams: x > 0) if(teams distribute: y > 0)
^^^^^^^^^^^^^^^^^^^^^^^
```
Commit: 34ed491f6375a39248f71a98eaab5810dfc1324e
https://github.com/llvm/llvm-project/commit/34ed491f6375a39248f71a98eaab5810dfc1324e
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/Delinearization/global_array_bounds.ll
M llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
M llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
M llvm/test/Analysis/DependenceAnalysis/Constraints.ll
M llvm/test/Analysis/DependenceAnalysis/DifferentOffsets.ll
M llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
M llvm/test/Analysis/LoopAccessAnalysis/clamped-access-pattern.ll
M llvm/test/Analysis/LoopAccessAnalysis/inbounds-gep-in-predicated-blocks.ll
M llvm/test/Analysis/LoopAccessAnalysis/nssw-predicate-implied.ll
M llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
M llvm/test/Analysis/ScalarEvolution/addrec-computed-during-addrec-calculation.ll
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/becount-invalidation.ll
M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
M llvm/test/Analysis/ScalarEvolution/exit-count-non-strict.ll
M llvm/test/Analysis/ScalarEvolution/exit-count-select-safe.ll
M llvm/test/Analysis/ScalarEvolution/incorrect-exit-count.ll
M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
M llvm/test/Analysis/ScalarEvolution/limit-depth.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-operand-order.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/mul-udiv-folds.ll
M llvm/test/Analysis/ScalarEvolution/pr123550.ll
M llvm/test/Analysis/ScalarEvolution/pr22641.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
M llvm/test/Analysis/ScalarEvolution/sext-iv-2.ll
M llvm/test/Analysis/ScalarEvolution/sext-mul.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll
M llvm/test/Analysis/ScalarEvolution/umin-umax-folds.ll
M llvm/test/CodeGen/PowerPC/mma-intrinsics.ll
M llvm/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.ll
M llvm/test/Transforms/LoopInterchange/fixed-size-no-signed-wrap.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/X86/cast-costs.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-no-wrap.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
M polly/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
Log Message:
-----------
[SCEV] Infer addrec nowrap flags during range analysis (#202964)
When we're computing the range of the addrec, we already have to reason
about whether it wraps, so we may as well determine the nowrap flags at
the same time.
This is more precise than the previous logic that took the addrec range
and checked whether adding a step to it does not wrap. For example, an
`{0,+,1}` addrec with a full range can still be non-wrapping.
Note that I removed some assertions in the SCEV printed that predicated
exit counts actually have predicates. Due to SCEV's query order
dependence, this can happen, also prior to this change, see for example
https://llvm.godbolt.org/z/cWK1MMEqv. While this indicates suboptimal
results, it's not a bug, and we should not assert.
Fixes https://github.com/llvm/llvm-project/issues/200788.
Commit: 2b91b5b61a218c102e75806f5d1381a9861977d1
https://github.com/llvm/llvm-project/commit/2b91b5b61a218c102e75806f5d1381a9861977d1
Author: Tomas Matheson <Tomas.Matheson at arm.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-undef.ll
A llvm/test/CodeGen/AArch64/sve-mul-imm-add-adr.ll
M llvm/test/CodeGen/AArch64/sve2-histcnt.ll
Log Message:
-----------
[AArch64][SVE] Use ADD/ADR instead of MUL/MLA for x*N (#198566)
Avoid `MUL`/`MLA` for all-active multiplies by small constants when
cheaper `ADD`/`ADR` sequences are available.
Vector multiplication (int32_t/uint32_t base types) by 2, 3, 5, 9 can be
done with ADD (for 2) ADR (for 3,5,9).
Similarly, operations of the form a + x * {1,2,4,8} can use ADR.
Commit: 36f12f975f395cab406f161086b6a808ea0440af
https://github.com/llvm/llvm-project/commit/36f12f975f395cab406f161086b6a808ea0440af
Author: Kareem Ergawy <kergawy at nvidia.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/slice-projected.mlir
Log Message:
-----------
[FIR] Route embox + projected complex slice through shapeVec (#205042)
When the array_coor base is a fir.embox with a projected complex %re/%im
slice, take the shapeVec path instead of the descriptor (fir.box_dims)
path. The descriptor path iterates source-rank dims while querying the
rank-reduced embox result box, which miscompiles slices that collapse
dims (e.g. complex(:,k)%re). For embox-derived boxes the underlying
storage is contiguous, so the shape-derived layout is both correct and
the natural place to encode that static shape is available. Non-embox
boxes (rebox, assumed-shape) still go through fir.box_dims.
Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 5672b0d27af93e63c528e4ff9f9da793ccd3aa75
https://github.com/llvm/llvm-project/commit/5672b0d27af93e63c528e4ff9f9da793ccd3aa75
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M .ci/green-dragon/lldb-windows.groovy
M .github/CODEOWNERS
M .github/workflows/prune-branches.yml
M .github/workflows/prune-unused-branches.py
M .github/workflows/release-binaries.yml
M .gitignore
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/Aligner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/MachORewriteInstance.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
A bolt/test/AArch64/constant-island-reproducible.s
M bolt/test/eh-frame-hdr.test
M clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/clangd/IncludeFixer.cpp
M clang-tools-extra/clangd/test/did-change-configuration-params.test
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/assignment-in-selection-statement.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/bad-signal-to-kill-thread.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/copy-constructor-mutates-argument.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/default-operator-new-on-overaligned-type.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/exception-copy-constructor-throws.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/macro-parentheses.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/pointer-arithmetic-on-polymorphic-object.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-non-trivial-type.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/reserved-identifier.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/signal-handler.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/signed-char-misuse.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/sizeof-expression.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unique-ptr-array-mismatch.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/err33-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/err60-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/mem57-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc30-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc50-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst
M clang-tools-extra/docs/clang-tidy/checks/concurrency/thread-canceltype-asynchronous.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/anonymous-namespace-in-header.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/no-recursion.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/predictable-rand.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/static-initialization-cycle.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/throw-by-value-catch-by-reference.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
M clang-tools-extra/modularize/PreprocessorTracker.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/misplaced-widening-cast-bitfield.cpp
M clang/docs/InternalsManual.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/include/clang/APINotes/APINotesManager.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/BuiltinsRISCV.td
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/SourceManager.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/LoweringHelpers.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/CodeGen/ModuleBuilder.h
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Compilation.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Job.h
M clang/include/clang/Driver/SanitizerArgs.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
A clang/include/clang/Frontend/SSAFOptions.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
M clang/include/clang/Sema/MultiplexExternalSemaSource.h
M clang/include/clang/Sema/SemaOpenCL.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/AST/ByteCode/Floating.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/lib/Basic/Builtins.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/SourceManager.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.cpp
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.cpp
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/M68k.h
M clang/lib/Basic/Targets/Mips.h
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/Sparc.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/Basic/Targets/Xtensa.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenCall.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.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/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenOpenACCRecipe.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenStmtOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/GotoSolver.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
M clang/lib/CIR/Lowering/LoweringHelpers.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/ModuleBuilder.cpp
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/Driver.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/AIX.h
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.h
M clang/lib/Driver/ToolChains/AVR.cpp
M clang/lib/Driver/ToolChains/AVR.h
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
M clang/lib/Driver/ToolChains/CSKYToolChain.cpp
M clang/lib/Driver/ToolChains/CSKYToolChain.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/CrossWindows.cpp
M clang/lib/Driver/ToolChains/CrossWindows.h
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cuda.h
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/FreeBSD.h
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Fuchsia.h
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPAMD.h
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/HLSL.h
M clang/lib/Driver/ToolChains/Haiku.cpp
M clang/lib/Driver/ToolChains/Haiku.h
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/Linux.h
M clang/lib/Driver/ToolChains/MSP430.cpp
M clang/lib/Driver/ToolChains/MSP430.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/MSVC.h
M clang/lib/Driver/ToolChains/Managarm.cpp
M clang/lib/Driver/ToolChains/Managarm.h
M clang/lib/Driver/ToolChains/MinGW.cpp
M clang/lib/Driver/ToolChains/MinGW.h
M clang/lib/Driver/ToolChains/NetBSD.cpp
M clang/lib/Driver/ToolChains/NetBSD.h
M clang/lib/Driver/ToolChains/OHOS.cpp
M clang/lib/Driver/ToolChains/OHOS.h
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/lib/Driver/ToolChains/OpenBSD.h
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/lib/Driver/ToolChains/PS4CPU.h
M clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp
M clang/lib/Driver/ToolChains/SPIRVOpenMP.h
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/Serenity.cpp
M clang/lib/Driver/ToolChains/Serenity.h
M clang/lib/Driver/ToolChains/Solaris.cpp
M clang/lib/Driver/ToolChains/Solaris.h
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/lib/Driver/ToolChains/VEToolchain.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/ToolChains/WebAssembly.h
M clang/lib/Driver/ToolChains/XCore.cpp
M clang/lib/Driver/ToolChains/XCore.h
M clang/lib/Driver/ToolChains/ZOS.cpp
M clang/lib/Driver/ToolChains/ZOS.h
M clang/lib/Format/CMakeLists.txt
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/Headers/riscv_packed_simd.h
M clang/lib/Lex/PPCaching.cpp
M clang/lib/Lex/PPLexerChange.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/lib/Sema/MultiplexExternalSemaSource.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaOpenCL.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/AST/ByteCode/command-line-options.cpp
A clang/test/AST/builtin-name-registration.c
A clang/test/AST/pr198903.cpp
M clang/test/AST/undocumented-attrs.cpp
M clang/test/Analysis/bstring.c
M clang/test/Analysis/malloc.c
A clang/test/Analysis/pr169302.cpp
M clang/test/Analysis/pr22954.c
M clang/test/C/C23/n3037.c
A clang/test/CIR/CodeGen/atomic-libcall.c
A clang/test/CIR/CodeGen/const-label-addr.c
A clang/test/CIR/CodeGen/member-pointer-null-init.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
A clang/test/CIR/CodeGen/unary-expr-or-type-trait-32bit.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-nontemporal.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-reduce-bitwise.c
M clang/test/CIR/CodeGenBuiltins/builtin-undef-rvalue.cpp
A clang/test/CIR/CodeGenBuiltins/builtins-elementwise-bool-nyi.c
M clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c
M clang/test/CIR/CodeGenOpenACC/cache.c
M clang/test/CIR/CodeGenOpenACC/combined-copy.c
M clang/test/CIR/CodeGenOpenACC/combined-copy.cpp
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-copy.c
M clang/test/CIR/CodeGenOpenACC/compute-copy.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.c
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.c
M clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
M clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
M clang/test/CIR/CodeGenOpenACC/declare-create.cpp
M clang/test/CIR/CodeGenOpenACC/declare-deviceresident.cpp
M clang/test/CIR/CodeGenOpenACC/declare-link.cpp
M clang/test/CIR/CodeGenOpenACC/declare-present.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/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
A clang/test/CIR/IR/builtin-int-cast.cir
A clang/test/CIR/IR/invalid-builtin-int-cast.cir
M clang/test/CIR/IR/invalid-data-member.cir
A clang/test/CIR/Lowering/builtin-int-cast.cir
M clang/test/CIR/Lowering/const-array-bulk-lowering-fallbacks.cir
M clang/test/CIR/Lowering/const-array-of-pointers.cir
A clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
A clang/test/CIR/Transforms/builtin-int-cast-fold.cir
M clang/test/CXX/drs/cwg5xx.cpp
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
M clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c
M clang/test/CodeGen/AArch64/neon/bf16-getset.c
M clang/test/CodeGen/AArch64/sme2p3-intrinsics/acle_sme2p3_luti6.c
M clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_luti6.c
M clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_luti6_lane_x2.c
M clang/test/CodeGen/RISCV/rvp-intrinsics.c
M clang/test/CodeGen/X86/avx-cxx-record.cpp
M clang/test/CodeGen/X86/avx2-builtins.c
M clang/test/CodeGen/X86/sse41-builtins.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-types.c
M clang/test/CodeGen/convergent-functions.cpp
M clang/test/CodeGen/svboolx2_t.cpp
M clang/test/CodeGen/svboolx4_t.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp
M clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp
M clang/test/CodeGenCXX/mangle-neon-vectors.cpp
A clang/test/CodeGenHLSL/BasicFeatures/OutArgLifetime.hlsl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11.cl
M clang/test/DebugInfo/Generic/macro.c
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-device-compile.hip
M clang/test/Driver/hip-link-bundle-archive.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/Driver/wasm-toolchain.c
M clang/test/Index/index-builtin-sve.cpp
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
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_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/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
R clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_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_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_codegen_03.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_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_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_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_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_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_collapse_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_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_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_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_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_collapse_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_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_collapse_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_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_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
A clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_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_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_private_codegen.cpp
A clang/test/Preprocessor/hardlink-include-names.c
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
M clang/test/Sema/LifetimeSafety/invalidations.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
M clang/test/Sema/aarch64-bf16-ldst-intrinsics.c
M clang/test/Sema/aarch64-incompat-sm-builtin-calls.cpp
M clang/test/Sema/aarch64-sme-func-attrs.c
M clang/test/Sema/aarch64-sme-streaming-nonstreaming-vl-checks.c
M clang/test/Sema/aarch64-sme2p1-diagnostics.c
M clang/test/Sema/aarch64-sme2p1-intrinsics/acle_sme2p1_imm.cpp
M clang/test/Sema/aarch64-sme2p3-intrinsics/acle_sme2p3_imm.c
M clang/test/Sema/attr-arm-sve-vector-bits.c
M clang/test/Sema/builtin-memcpy.c
M clang/test/Sema/builtin-object-size.c
M clang/test/Sema/warn-fortify-source.c
A clang/test/Sema/warn-stringop-overread.c
M clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp
M clang/test/SemaCXX/ext-int.cpp
M clang/test/SemaCXX/warn-memset-bad-sizeof.cpp
A clang/test/SemaOpenCL/read-image-integer-linear-filter.cl
M clang/unittests/AST/ASTImporterFixtures.cpp
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/unittests/Basic/SourceManagerTest.cpp
M clang/unittests/CodeGen/CodeGenExternalTest.cpp
M clang/unittests/Driver/DXCModeTest.cpp
M clang/unittests/Interpreter/CodeCompletionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/FindDecl.h
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
M clang/utils/TableGen/CIRLoweringEmitter.cpp
M clang/www/cxx_dr_status.html
M compiler-rt/lib/builtins/arm/divdf3.S
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSADefs.h
A compiler-rt/lib/profile/InstrProfilingPlatformROCmInternal.h
M compiler-rt/test/asan/TestCases/Windows/issue64990.cpp
M compiler-rt/test/builtins/Unit/divdf3new_test.c
A compiler-rt/test/profile/AMDGPU/device-basic.hip
A compiler-rt/test/profile/AMDGPU/device-early-collect.hip
A compiler-rt/test/profile/AMDGPU/device-no-kernel.hip
A compiler-rt/test/profile/AMDGPU/device-symbols.hip
A compiler-rt/test/profile/AMDGPU/lit.local.cfg.py
A compiler-rt/test/profile/GPU/instrprof-hip-basic.hip
A compiler-rt/test/profile/GPU/instrprof-hip-collect-after.hip
A compiler-rt/test/profile/GPU/instrprof-hip-counter-correctness.hip
A compiler-rt/test/profile/GPU/instrprof-hip-coverage.hip
A compiler-rt/test/profile/GPU/instrprof-hip-device-branching.hip
A compiler-rt/test/profile/GPU/instrprof-hip-fork-safety.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-gpu.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-process-merge.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multiple-kernels.hip
A compiler-rt/test/profile/GPU/instrprof-hip-nondefault-device.hip
A compiler-rt/test/profile/GPU/instrprof-hip-pgo-use.hip
A compiler-rt/test/profile/GPU/lit.local.cfg.py
A compiler-rt/test/profile/instrprof-rocm-bounds-dedup.cpp
A compiler-rt/test/profile/instrprof-rocm-grow-array.cpp
M compiler-rt/test/profile/lit.cfg.py
M cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
M flang-rt/lib/runtime/CMakeLists.txt
M flang/include/flang/Lower/Support/ReductionProcessor.h
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/ReductionProcessor.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/check-call.h
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-variant.cpp
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
M flang/test/Analysis/AliasAnalysis/alias-analysis-scoped-origins.fir
A flang/test/Fir/present-absent-if-fold.fir
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/CUDA/cuda-gpu-managed.cuf
A flang/test/Lower/OpenMP/Todo/declare-reduction-operator-multiple-types.f90
A flang/test/Lower/OpenMP/Todo/declare-reduction-operator-use-assoc.f90
A flang/test/Lower/OpenMP/declare-reduction-operator-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-operator.f90
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/device-constructs.f90
A flang/test/Semantics/OpenMP/if-clause-45-suggestion.f90
M flang/test/Semantics/OpenMP/if-clause-45.f90
A flang/test/Semantics/OpenMP/if-clause-50-suggestion.f90
M flang/test/Semantics/OpenMP/if-clause-50.f90
A flang/test/Semantics/OpenMP/if-clause-60.f90
M flang/test/Semantics/OpenMP/if-clause.f90
M flang/test/Semantics/OpenMP/single03.f90
M flang/test/Semantics/OpenMP/single04.f90
M flang/test/Semantics/call47.f90
A flang/test/Semantics/cuf29.cuf
M flang/test/Transforms/FIRToMemRef/slice-projected.mlir
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/freebsd/x86_64/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/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_ip_mreq.h
A libc/hdr/types/struct_ip_mreq_source.h
A libc/hdr/types/struct_ip_mreqn.h
A libc/hdr/types/struct_ip_msfilter.h
A libc/hdr/types/struct_ip_opts.h
M libc/include/CMakeLists.txt
A libc/include/libgen.yaml
M libc/include/llvm-libc-macros/linux/sched-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/linux/CMakeLists.txt
A libc/include/llvm-libc-types/linux/loff_t.h
A libc/include/llvm-libc-types/loff_t.h
A libc/include/llvm-libc-types/struct_ip_mreq.h
A libc/include/llvm-libc-types/struct_ip_mreq_source.h
A libc/include/llvm-libc-types/struct_ip_mreqn.h
A libc/include/llvm-libc-types/struct_ip_msfilter.h
A libc/include/llvm-libc-types/struct_ip_opts.h
M libc/include/netinet/in.yaml
M libc/include/sched.yaml
M libc/include/sys/types.yaml
M libc/src/CMakeLists.txt
M libc/src/__support/CPP/string_view.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
A libc/src/libgen/CMakeLists.txt
A libc/src/libgen/basename.cpp
A libc/src/libgen/basename.h
A libc/src/libgen/dirname.cpp
A libc/src/libgen/dirname.h
M libc/src/sched/CMakeLists.txt
M libc/src/sched/linux/CMakeLists.txt
A libc/src/sched/linux/sched_clrcpuset.cpp
A libc/src/sched/sched_clrcpuset.h
M libc/src/stdlib/qsort.cpp
M libc/src/stdlib/qsort_r.cpp
M libc/src/stdlib/qsort_util.h
M libc/src/sys/ioctl/linux/CMakeLists.txt
M libc/src/sys/ioctl/linux/ioctl.cpp
M libc/src/termios/linux/CMakeLists.txt
M libc/src/termios/linux/tcdrain.cpp
M libc/src/termios/linux/tcflow.cpp
M libc/src/termios/linux/tcflush.cpp
M libc/src/termios/linux/tcgetattr.cpp
M libc/src/termios/linux/tcgetsid.cpp
M libc/src/termios/linux/tcsendbreak.cpp
M libc/src/termios/linux/tcsetattr.cpp
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/isatty.cpp
M libc/test/src/CMakeLists.txt
A libc/test/src/libgen/CMakeLists.txt
A libc/test/src/libgen/basename_death_test.cpp
A libc/test/src/libgen/basename_test.cpp
A libc/test/src/libgen/dirname_death_test.cpp
A libc/test/src/libgen/dirname_test.cpp
M libc/test/src/netinet/CMakeLists.txt
M libc/test/src/netinet/in_test.cpp
M libc/test/src/sched/CMakeLists.txt
M libc/test/src/sched/cpu_count_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
A libc/test/src/stdlib/QsortReentrantTest.h
M libc/test/src/stdlib/qsort_r_test.cpp
M libc/utils/MPFRWrapper/MPCommon.cpp
A libc/utils/docgen/libgen.yaml
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx23Papers.csv
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/__config
M libcxx/include/__expected/expected.h
M libcxx/include/__math/abs.h
M libcxx/include/__random/bernoulli_distribution.h
M libcxx/include/__random/binomial_distribution.h
M libcxx/include/__random/cauchy_distribution.h
M libcxx/include/__random/chi_squared_distribution.h
M libcxx/include/__random/discard_block_engine.h
M libcxx/include/__random/discrete_distribution.h
M libcxx/include/__random/exponential_distribution.h
M libcxx/include/__random/extreme_value_distribution.h
M libcxx/include/__random/fisher_f_distribution.h
M libcxx/include/__random/gamma_distribution.h
M libcxx/include/__random/generate_canonical.h
M libcxx/include/__random/geometric_distribution.h
M libcxx/include/__random/independent_bits_engine.h
M libcxx/include/__random/linear_congruential_engine.h
M libcxx/include/__random/lognormal_distribution.h
M libcxx/include/__random/mersenne_twister_engine.h
M libcxx/include/__random/negative_binomial_distribution.h
M libcxx/include/__random/normal_distribution.h
M libcxx/include/__random/piecewise_constant_distribution.h
M libcxx/include/__random/piecewise_linear_distribution.h
M libcxx/include/__random/poisson_distribution.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/seed_seq.h
M libcxx/include/__random/shuffle_order_engine.h
M libcxx/include/__random/student_t_distribution.h
M libcxx/include/__random/subtract_with_carry_engine.h
M libcxx/include/__random/uniform_int_distribution.h
M libcxx/include/__random/uniform_real_distribution.h
M libcxx/include/__random/weibull_distribution.h
M libcxx/include/__ranges/drop_view.h
M libcxx/include/__ranges/drop_while_view.h
M libcxx/include/__ranges/filter_view.h
M libcxx/include/__ranges/iota_view.h
M libcxx/include/__ranges/lazy_split_view.h
M libcxx/include/__ranges/reverse_view.h
M libcxx/include/__ranges/split_view.h
M libcxx/include/__ranges/take_view.h
M libcxx/include/__ranges/take_while_view.h
M libcxx/include/__ranges/transform_view.h
M libcxx/include/__utility/constant_wrapper.h
M libcxx/include/utility
M libcxx/include/version
A libcxx/test/libcxx/numerics/rand/nodiscard.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bernoulli/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.cauchy/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.chisq/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.f/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.normal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.t/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.exp/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.extreme/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.gamma/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.pconst/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.real/bad_engine.verify.cpp
R libcxx/test/libcxx/ranges/range.adaptors/range.reverse/adaptor.nodiscard.verify.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.reverse/nodiscard.verify.cpp
M libcxx/test/libcxx/utilities/expected/nodiscard.verify.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/numerics/c.math/abs.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.drop.while/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.drop/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.filter/ctor.view_pred.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.range.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.split/ctor.range.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.split/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.take.while/ctor.view.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.take/ctor.view_count.pass.cpp
M libcxx/test/std/ranges/range.adaptors/range.transform/ctor.view_function.pass.cpp
M libcxx/test/std/ranges/range.factories/range.iota.view/ctor.first.last.pass.cpp
M libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.bound.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
A libcxx/test/std/utilities/const.wrap.class/template.verify.cpp
M libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
A libcxx/test/std/utilities/expected/expected.expected/observers/has_error.pass.cpp
A libcxx/test/std/utilities/expected/expected.void/observers/has_error.pass.cpp
M libcxx/utils/ci/lnt/README.md
M libcxx/utils/ci/lnt/run-benchbot
M libcxx/utils/ci/lnt/run-benchmarks
M libcxx/utils/generate_feature_test_macro_components.py
M libunwind/src/UnwindRegistersSave.S
A lld/test/wasm/cooperative-threading.s
M lld/test/wasm/stack-pointer-abi.s
M lld/test/wasm/thread-context-abi-mismatch.s
M lld/test/wasm/tls-libcall.s
M lld/wasm/Config.h
M lld/wasm/Driver.cpp
M lld/wasm/Options.td
M lld/wasm/Relocations.cpp
M lld/wasm/SyntheticSections.cpp
M lld/wasm/Writer.cpp
M lldb/cmake/modules/LLDBConfig.cmake
M lldb/include/lldb/Breakpoint/Breakpoint.h
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Core/Section.h
M lldb/include/lldb/Utility/FileSpec.h
M lldb/source/Breakpoint/Breakpoint.cpp
M lldb/source/Commands/CommandObjectBreakpoint.cpp
M lldb/source/Commands/CommandObjectCommands.cpp
M lldb/source/Commands/CommandObjectHelp.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Core/ModuleList.cpp
M lldb/source/Core/PluginManager.cpp
M lldb/source/Core/Section.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/Process/elf-core/CMakeLists.txt
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
M lldb/source/Plugins/Protocol/MCP/ProtocolServerMCP.cpp
M lldb/source/Plugins/ScriptInterpreter/Lua/LuaState.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Target/StackFrameList.cpp
M lldb/source/Utility/FileSpec.cpp
M lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py
M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
M lldb/test/API/lang/objc/hidden-ivars/Makefile
A lldb/test/API/macosx/deny-attach/Makefile
A lldb/test/API/macosx/deny-attach/TestDenyAttach.py
A lldb/test/API/macosx/deny-attach/main.c
M lldb/test/API/macosx/thread_suspend/main.c
A lldb/test/Shell/ObjectFile/ELF/build-id-case-debug-only.yaml
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
M lldb/tools/debugserver/source/RNBRemote.cpp
M lldb/tools/yaml2macho-core/yaml2macho.cpp
M lldb/unittests/Core/ModuleTest.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
M llvm/CMakeLists.txt
M llvm/README.txt
M llvm/docs/AMDGPUUsage.rst
A llvm/docs/CMake.md
R llvm/docs/CMake.rst
A llvm/docs/CodeGenerator.md
R llvm/docs/CodeGenerator.rst
A llvm/docs/CodingStandards.md
R llvm/docs/CodingStandards.rst
A llvm/docs/CommandGuide/index.md
R llvm/docs/CommandGuide/index.rst
M llvm/docs/CommandGuide/llvm-offload-binary.rst
M llvm/docs/CommandGuide/llvm-symbolizer.rst
A llvm/docs/Contributing.md
R llvm/docs/Contributing.rst
A llvm/docs/DeveloperPolicy.md
R llvm/docs/DeveloperPolicy.rst
M llvm/docs/Docker.rst
A llvm/docs/GettingInvolved.md
R llvm/docs/GettingInvolved.rst
A llvm/docs/GettingStarted.md
R llvm/docs/GettingStarted.rst
A llvm/docs/GettingStartedTutorials.md
R llvm/docs/GettingStartedTutorials.rst
A llvm/docs/GitHub.md
R llvm/docs/GitHub.rst
M llvm/docs/GitRepositoryPolicy.md
M llvm/docs/InstrRefDebugInfo.md
A llvm/docs/Passes.md
R llvm/docs/Passes.rst
A llvm/docs/ProgrammersManual.md
R llvm/docs/ProgrammersManual.rst
M llvm/docs/ProjectGovernance.rst
A llvm/docs/RFCProcess.md
R llvm/docs/RFCProcess.rst
A llvm/docs/Reference.md
R llvm/docs/Reference.rst
M llvm/docs/ReleaseNotes.md
M llvm/docs/RemoveDIsDebugInfo.md
A llvm/docs/SourceLevelDebugging.md
R llvm/docs/SourceLevelDebugging.rst
M llvm/docs/SphinxQuickstartTemplate.md
A llvm/docs/TableGen/index.md
R llvm/docs/TableGen/index.rst
A llvm/docs/TestingGuide.md
R llvm/docs/TestingGuide.rst
A llvm/docs/UserGuides.md
R llvm/docs/UserGuides.rst
A llvm/docs/WritingAnLLVMBackend.md
R llvm/docs/WritingAnLLVMBackend.rst
A llvm/docs/WritingAnLLVMNewPMPass.md
R llvm/docs/WritingAnLLVMNewPMPass.rst
A llvm/docs/WritingAnLLVMPass.md
R llvm/docs/WritingAnLLVMPass.rst
M llvm/docs/conf.py
A llvm/docs/index.md
R llvm/docs/index.rst
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/ADT/STLExtras.h
M llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/MemoryBuiltins.h
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/CodeGen/LiveInterval.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/DWARFLinker/Classic/DWARFLinker.h
M llvm/include/llvm/DWARFLinker/DWARFLinkerBase.h
M llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h
M llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/include/llvm/IR/BundleAttributes.h
M llvm/include/llvm/IR/Constants.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/include/llvm/MC/MCObjectStreamer.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/Option/OptParser.td
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/include/llvm/Support/Allocator.h
M llvm/include/llvm/Support/GlobPattern.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/BlockFrequencyInfo.cpp
M llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MemoryBuiltins.cpp
M llvm/lib/Analysis/ProfileSummaryInfo.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/LiveInterval.cpp
M llvm/lib/CodeGen/LiveIntervals.cpp
M llvm/lib/CodeGen/MIRSampleProfile.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/DWARFCFIChecker/DWARFCFIState.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.h
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
M llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/BundleAttributes.cpp
M llvm/lib/IR/CMakeLists.txt
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DebugInfo.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/ProfDataUtils.cpp
M llvm/lib/IR/Verifier.cpp
A llvm/lib/IR/VerifierAMDGPU.cpp
A llvm/lib/IR/VerifierInternal.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCObjectStreamer.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/ObjectYAML/ELFEmitter.cpp
M llvm/lib/ObjectYAML/MachOEmitter.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/ProfileData/MemProfReader.cpp
M llvm/lib/Support/GlobPattern.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/AMDGPULaneMaskUtils.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMMCInstLower.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.h
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
M llvm/lib/Target/Hexagon/CMakeLists.txt
M llvm/lib/Target/Hexagon/Hexagon.h
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.h
A llvm/lib/Target/Hexagon/HexagonHVXSaveRemark.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.h
M llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp
M llvm/lib/Target/Hexagon/HexagonPseudo.td
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
M llvm/lib/Target/Mips/MipsAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/CMakeLists.txt
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
A llvm/lib/Target/RISCV/RISCVQCRelaxMarking.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Target/SPIRV/SPIRVCombinerHelper.cpp
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/lib/Target/Sparc/SparcInstr64Bit.td
M llvm/lib/Target/Sparc/SparcInstrInfo.td
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.h
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86InstrInfo.h
M llvm/lib/Target/X86/X86MCInstLower.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/FixIrreducible.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
M llvm/lib/Transforms/Utils/ProfileVerify.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/runtimes/CMakeLists.txt
M llvm/test/Analysis/BasicAA/phi-aa.ll
M llvm/test/Analysis/BasicAA/phi-and-select.ll
M llvm/test/Analysis/BasicAA/recphi.ll
M llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
M llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
M llvm/test/Analysis/Delinearization/global_array_bounds.ll
M llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
M llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
M llvm/test/Analysis/DependenceAnalysis/Constraints.ll
M llvm/test/Analysis/DependenceAnalysis/DifferentOffsets.ll
M llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
M llvm/test/Analysis/LoopAccessAnalysis/clamped-access-pattern.ll
M llvm/test/Analysis/LoopAccessAnalysis/inbounds-gep-in-predicated-blocks.ll
M llvm/test/Analysis/LoopAccessAnalysis/nssw-predicate-implied.ll
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll
M llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
M llvm/test/Analysis/ScalarEvolution/addrec-computed-during-addrec-calculation.ll
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/becount-invalidation.ll
M llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
M llvm/test/Analysis/ScalarEvolution/exit-count-non-strict.ll
M llvm/test/Analysis/ScalarEvolution/exit-count-select-safe.ll
M llvm/test/Analysis/ScalarEvolution/incorrect-exit-count.ll
M llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
M llvm/test/Analysis/ScalarEvolution/limit-depth.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-operand-order.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/mul-udiv-folds.ll
M llvm/test/Analysis/ScalarEvolution/pr123550.ll
M llvm/test/Analysis/ScalarEvolution/pr22641.ll
M llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
M llvm/test/Analysis/ScalarEvolution/sext-iv-2.ll
M llvm/test/Analysis/ScalarEvolution/sext-mul.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll
M llvm/test/Analysis/ScalarEvolution/umin-umax-folds.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/aarch64-bf16-ldst-intrinsics.ll
M llvm/test/CodeGen/AArch64/aarch64-neon-vector-insert-uaddlv.ll
M llvm/test/CodeGen/AArch64/arm64-build-vector.ll
M llvm/test/CodeGen/AArch64/arm64-fpenv.ll
M llvm/test/CodeGen/AArch64/bf16-select.ll
M llvm/test/CodeGen/AArch64/bf16-shuffle.ll
M llvm/test/CodeGen/AArch64/bf16-vector-bitcast.ll
M llvm/test/CodeGen/AArch64/bf16-vector-shuffle.ll
M llvm/test/CodeGen/AArch64/bf16.ll
M llvm/test/CodeGen/AArch64/fabs-fp128.ll
M llvm/test/CodeGen/AArch64/load-insert-undef.ll
M llvm/test/CodeGen/AArch64/load-insert-zero.ll
M llvm/test/CodeGen/AArch64/luti-with-sme2.ll
M llvm/test/CodeGen/AArch64/neon-luti.ll
A llvm/test/CodeGen/AArch64/peephole-substitute-cmp-adcs.mir
M llvm/test/CodeGen/AArch64/spillfill-sve.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
M llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
M llvm/test/CodeGen/AArch64/sve-insert-element.ll
M llvm/test/CodeGen/AArch64/sve-insert-vector.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-undef.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-reg.ll
A llvm/test/CodeGen/AArch64/sve-mul-imm-add-adr.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-reg.ll
M llvm/test/CodeGen/AArch64/sve2-histcnt.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-gather-loads-128bit-index.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-gather-loads-128bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-scatter-stores-128bit-index.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-scatter-stores-128bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-tblq.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-tbxq.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpq1.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpq2.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-zipq1.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-zipq2.ll
M llvm/test/CodeGen/AArch64/sve2p1-vector-shuffles.ll
M llvm/test/CodeGen/AArch64/vector-extract-last-active.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-counts-not.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir
M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.ll
A llvm/test/CodeGen/AMDGPU/fold-imm-pk64.mir
M llvm/test/CodeGen/AMDGPU/gfx902-without-xnack.ll
M llvm/test/CodeGen/AMDGPU/hsa-default-device.ll
M llvm/test/CodeGen/AMDGPU/hsa-func.ll
M llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
M llvm/test/CodeGen/AMDGPU/hsa.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_nortn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmax.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmin.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-vimage-vsample.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands-non-ptr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.mir
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
M llvm/test/CodeGen/AMDGPU/pk-lshl-add-u64.ll
A llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-dead-def-join.mir
M llvm/test/CodeGen/AMDGPU/shl.v2i64.ll
M llvm/test/CodeGen/AMDGPU/sign_extend.ll
M llvm/test/CodeGen/AMDGPU/target-id-xnack-always-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-any.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-off.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-2.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-2.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-any.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-off.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-on.ll
M llvm/test/CodeGen/AMDGPU/uaddo.ll
A llvm/test/CodeGen/AMDGPU/uniform-intrin-combine-wqm-demote.ll
M llvm/test/CodeGen/AMDGPU/usubo.ll
M llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll
M llvm/test/CodeGen/ARM/bf16-create-get-set-dup.ll
M llvm/test/CodeGen/ARM/bf16-getlane-with-fp16.ll
M llvm/test/CodeGen/ARM/bf16-imm.ll
M llvm/test/CodeGen/ARM/bf16-intrinsics-ld-st.ll
M llvm/test/CodeGen/ARM/bf16-shuffle.ll
M llvm/test/CodeGen/ARM/bfloat.ll
M llvm/test/CodeGen/ARM/vcombine.ll
A llvm/test/CodeGen/Hexagon/hvx-save-remarks.ll
A llvm/test/CodeGen/Hexagon/kcfi.ll
M llvm/test/CodeGen/PowerPC/mma-intrinsics.ll
M llvm/test/CodeGen/RISCV/O3-pipeline.ll
M llvm/test/CodeGen/RISCV/calling-conv-p-ext-vector.ll
M llvm/test/CodeGen/RISCV/make-compressible-zilsd.mir
A llvm/test/CodeGen/RISCV/qc-access-marking.ll
M llvm/test/CodeGen/RISCV/rv32-merge-non-arg-reg.mir
M llvm/test/CodeGen/RISCV/rv32-move-merge-crash.ll
M llvm/test/CodeGen/RISCV/rv32-move-merge.ll
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
M llvm/test/CodeGen/RISCV/rvv/vp-combine-reverse-load.ll
M llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-vectors.ll
M llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
M llvm/test/CodeGen/SPARC/bswap.ll
M llvm/test/CodeGen/SystemZ/args-22.ll
M llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
M llvm/test/CodeGen/SystemZ/bswap-09.ll
M llvm/test/CodeGen/SystemZ/bswap-10.ll
M llvm/test/CodeGen/SystemZ/call-zos-vec.ll
M llvm/test/CodeGen/SystemZ/canonicalize-vars.ll
M llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
M llvm/test/CodeGen/SystemZ/dag-combine-05.ll
M llvm/test/CodeGen/SystemZ/dag-combine-07.ll
M llvm/test/CodeGen/SystemZ/fold-masked-merge.ll
M llvm/test/CodeGen/SystemZ/fp-copysign-03.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-binops.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-fcmp-select.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-explicit-regs-zEC12.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-zEC12.ll
M llvm/test/CodeGen/SystemZ/int-cmp-65.ll
M llvm/test/CodeGen/SystemZ/int-conv-14.ll
M llvm/test/CodeGen/SystemZ/int-conv-15.ll
M llvm/test/CodeGen/SystemZ/int-mul-12.ll
M llvm/test/CodeGen/SystemZ/int-mul-13.ll
M llvm/test/CodeGen/SystemZ/int-uadd-14.ll
M llvm/test/CodeGen/SystemZ/int-usub-13.ll
M llvm/test/CodeGen/SystemZ/machine-combiner-reassoc-fp.ll
M llvm/test/CodeGen/SystemZ/misched-prera-cmp-elim.mir
M llvm/test/CodeGen/SystemZ/misched-prera-latencies.mir
A llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
A llvm/test/CodeGen/SystemZ/misched-prera-pdiffs.mir
M llvm/test/CodeGen/SystemZ/regcoal-subranges-update.mir
M llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
M llvm/test/CodeGen/SystemZ/risbg-04.ll
M llvm/test/CodeGen/SystemZ/rot-03.ll
M llvm/test/CodeGen/SystemZ/shift-12.ll
M llvm/test/CodeGen/SystemZ/shift-13.ll
M llvm/test/CodeGen/SystemZ/shift-14.ll
M llvm/test/CodeGen/SystemZ/shift-15.ll
M llvm/test/CodeGen/SystemZ/shift-16.ll
M llvm/test/CodeGen/SystemZ/shift-17.ll
M llvm/test/CodeGen/SystemZ/soft-float-args.ll
M llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
A llvm/test/CodeGen/SystemZ/target-flags.ll
M llvm/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll
M llvm/test/CodeGen/SystemZ/vec-cmpsel-01.ll
M llvm/test/CodeGen/SystemZ/vec-eval.ll
M llvm/test/CodeGen/SystemZ/vec-move-23.ll
M llvm/test/CodeGen/SystemZ/vec-mul-07.ll
M llvm/test/CodeGen/SystemZ/vec-perm-12.ll
M llvm/test/CodeGen/SystemZ/vec-trunc-to-i16.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
A llvm/test/CodeGen/WebAssembly/cooperative-strip-tls.ll
M llvm/test/CodeGen/X86/avx512-load-store.ll
M llvm/test/CodeGen/X86/madd.ll
M llvm/test/CodeGen/X86/phaddsub.ll
A llvm/test/DebugInfo/BPF/dbg-location-fbreg.ll
M llvm/test/DebugInfo/X86/constant-loclist.ll
A llvm/test/Instrumentation/Instrumentor/compare.ll
A llvm/test/Instrumentation/Instrumentor/compare_config.json
M llvm/test/Instrumentation/Instrumentor/default_config.json
M llvm/test/Instrumentation/Instrumentor/default_rt.h
M llvm/test/Instrumentation/NumericalStabilitySanitizer/non_float_store.ll
A llvm/test/MC/AMDGPU/amd-amdgpu-isa-malformed-target-id.s
A llvm/test/MC/AMDGPU/amdgcn-target-directive-triple-env.s
A llvm/test/MC/AMDGPU/amdgcn-target-malformed-target-id.s
M llvm/test/MC/AMDGPU/buffer-op-swz-operand.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_err.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/hsa-diag-v4.s
M llvm/test/MC/AMDGPU/hsa-exp.s
M llvm/test/MC/AMDGPU/hsa-gfx12-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1250-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1251-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx13-v4.s
M llvm/test/MC/AMDGPU/hsa-tg-split.s
M llvm/test/MC/AMDGPU/hsa-v4.s
M llvm/test/MC/AMDGPU/hsa-v5-uses-dynamic-stack.s
M llvm/test/MC/AMDGPU/isa-version-hsa.s
M llvm/test/MC/AMDGPU/isa-version-pal.s
M llvm/test/MC/AMDGPU/isa-version-unk.s
M llvm/test/MC/AMDGPU/user-sgpr-count.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3_from_vop1.txt
M llvm/test/MC/RISCV/rv32p-aliases-valid.s
M llvm/test/MC/RISCV/rv64p-aliases-valid.s
M llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
M llvm/test/MC/RISCV/xqcilo-pseudos-valid.s
A llvm/test/MachineVerifier/AMDGPU/dpp-imm-src1.mir
M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
A llvm/test/ObjectYAML/MachO/endianness.yaml
M llvm/test/TableGen/directive1.td
M llvm/test/TableGen/directive2.td
A llvm/test/Transforms/ArgumentPromotion/X86/struct-load.ll
A llvm/test/Transforms/Attributor/callbr.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
R llvm/test/Transforms/DeadStoreElimination/atomic-todo.ll
M llvm/test/Transforms/DeadStoreElimination/atomic.ll
A llvm/test/Transforms/FixIrreducible/unsupported-terminator.ll
M llvm/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.ll
M llvm/test/Transforms/Inline/X86/call-abi-compatibility.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/InstCombine/select-ctlz-to-cttz.ll
M llvm/test/Transforms/InstSimplify/ConstProp/active-lane-mask.ll
M llvm/test/Transforms/LoopInterchange/fixed-size-no-signed-wrap.ll
M llvm/test/Transforms/LoopStrengthReduce/AArch64/use-outside-loop.ll
A llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
M llvm/test/Transforms/LoopStrengthReduce/preserve-lcssa.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-gaps.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-derived-ivs.ll
M llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/X86/cast-costs.ll
M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
A llvm/test/Transforms/LoopVectorize/X86/predicated-replicate-feeding-cast.ll
M llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
M llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-no-wrap.ll
M llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
A llvm/test/Transforms/LoopVectorize/pred-inst-discount-vector-library-call.ll
M llvm/test/Transforms/LoopVersioning/exit-block-dominates-rt-check-block.ll
M llvm/test/Transforms/OpenMP/add_attributes.ll
M llvm/test/Transforms/OpenMP/single_threaded_execution.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/loopflatten.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
M llvm/test/Transforms/PhaseOrdering/X86/loop-vectorizer-noalias.ll
M llvm/test/Transforms/PhaseOrdering/unswitch-cold-func.ll
A llvm/test/Transforms/PhaseOrdering/unswitch-nontrivial-cold-func.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/rotated-strided-loads.ll
A llvm/test/Transforms/SLPVectorizer/X86/copyable-phi-scheduled-non-copyable.ll
M llvm/test/Transforms/SROA/struct-to-vector-subpartition.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/uniform-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch2.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch3.ll
A llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-loop-guard.ll
A llvm/test/Transforms/SimpleLoopUnswitch/update-dt.ll
A llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-pseudoprobe.ll
A llvm/test/Transforms/SimplifyCFG/hoist-common-skip-pseudoprobe.ll
M llvm/test/Verifier/callbr-intrinsic.ll
M llvm/test/Verifier/memprof-metadata-bad.ll
M llvm/test/tools/dsymutil/X86/bundle-mtime.test
A llvm/test/tools/llubi/icmp_ptr.ll
A llvm/test/tools/llubi/intr_memory.ll
A llvm/test/tools/llubi/intr_memory_align_ub.ll
A llvm/test/tools/llubi/intr_memory_constant_ub.ll
A llvm/test/tools/llubi/intr_memory_len_ub.ll
A llvm/test/tools/llubi/intr_memory_ub.ll
A llvm/test/tools/llubi/reset_return_value_slot.ll
M llvm/test/tools/llvm-cas/validation.test
A llvm/test/tools/llvm-cov/show-colors-uninit.test
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
A llvm/test/tools/llvm-offload-binary/member-extract.test
A llvm/test/tools/llvm-pdbutil/forward-cxx-to-c-odr.test
A llvm/test/tools/llvm-pdbutil/forward-cxx-to-c.test
A llvm/test/tools/llvm-profgen/aarch64-disassemble-all-features.test
M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
M llvm/test/tools/llvm-symbolizer/pdb/pdb.test
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
M llvm/tools/dsymutil/DwarfLinkerForBinary.h
M llvm/tools/dsymutil/Options.td
M llvm/tools/dsymutil/dsymutil.cpp
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llvm-cov/CodeCoverage.cpp
M llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
M llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
M llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-rc/ResourceScriptParser.cpp
M llvm/tools/llvm-rc/ResourceScriptParser.h
M llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
M llvm/tools/llvm-symbolizer/Opts.td
M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
M llvm/tools/reduce-chunk-list/reduce-chunk-list.cpp
M llvm/tools/sancov/sancov.cpp
M llvm/unittests/ADT/APFloatTest.cpp
M llvm/unittests/ADT/STLExtrasTest.cpp
M llvm/unittests/CodeGen/PassManagerTest.cpp
M llvm/unittests/IR/MDBuilderTest.cpp
M llvm/unittests/IR/MetadataTest.cpp
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/unittests/Support/AllocatorTest.cpp
M llvm/unittests/Support/GlobPatternTest.cpp
M llvm/unittests/Support/SpecialCaseListTest.cpp
M llvm/unittests/TextAPI/TextStubV3Tests.cpp
M llvm/unittests/TextAPI/TextStubV4Tests.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
M llvm/utils/TableGen/OptionParserEmitter.cpp
M llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
M llvm/utils/gn/secondary/compiler-rt/lib/profile/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/RISCV/BUILD.gn
M llvm/utils/lit/tests/Inputs/shtest-define/examples/param-subst.txt
M mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/include/mlir/Dialect/EmitC/Transforms/Passes.td
M mlir/include/mlir/Dialect/EmitC/Transforms/Transforms.h
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/include/mlir/Dialect/XeGPU/uArch/IntelGpuXe2.h
M mlir/include/mlir/Dialect/XeGPU/uArch/uArchBase.h
M mlir/include/mlir/Query/Matcher/MatchersInternal.h
M mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
M mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
M mlir/lib/Dialect/EmitC/Transforms/WrapFuncInClass.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp
A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksLoop.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDowngrade1p1To1p0.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Conversion/MathToXeVM/math-to-ocl.mlir
M mlir/test/Dialect/Arith/int-range-opts-crash.mlir
M mlir/test/Dialect/Arith/invalid.mlir
M mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
M mlir/test/Dialect/GPU/canonicalize.mlir
M mlir/test/Dialect/MemRef/runtime-verification.mlir
A mlir/test/Dialect/OpenACC/acc-emit-remarks-loop-pipeline.mlir
A mlir/test/Dialect/OpenACC/acc-emit-remarks-loop.mlir
M mlir/test/Dialect/Tosa/dynamic_extension.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/level_check.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/profile_all_unsupported.mlir
M mlir/test/Dialect/Tosa/tosa-arith-const-to-tosa-const.mlir
M mlir/test/Dialect/Tosa/tosa-downgrade-1-1-to-1-0.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
M mlir/test/Dialect/XeGPU/resolve-layout-conflicts.mlir
M mlir/test/Dialect/common_folders.mlir
M mlir/test/Target/LLVMIR/allocatable_gpu_reduction_teams.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M offload/include/Shared/Environment.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/test/CMakeLists.txt
M openmp/device/include/Interface.h
M openmp/device/src/Reduction.cpp
M openmp/module/CMakeLists.txt
M orc-rt/include/CMakeLists.txt
M orc-rt/include/orc-rt/AllocAction.h
A orc-rt/include/orc-rt/MacroUtils.h
M orc-rt/include/orc-rt/SPSAllocAction.h
M orc-rt/unittests/AllocActionTest.cpp
M orc-rt/unittests/CMakeLists.txt
A orc-rt/unittests/MacroUtilsTest.cpp
M orc-rt/unittests/SPSAllocActionTest.cpp
M polly/test/ScopInfo/NonAffine/non_affine_conditional_surrounding_non_affine_loop.ll
M polly/test/Support/pipelineposition.ll
M utils/bazel/llvm-project-overlay/bolt/BUILD.bazel
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
Merge branch 'main' into users/kparzysz/m02-locator-frontend
Compare: https://github.com/llvm/llvm-project/compare/fd1c4828f509...5672b0d27af9
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