LLVM/project 2706780llvm/include/llvm/IR PatternMatch.h, llvm/lib/Transforms/InstCombine InstCombineSelect.cpp

[InstCombine] support trunc condition in foldSelectICmpAndAnd (#223132)

Reland https://github.com/llvm/llvm-project/pull/220690 with the fix for
asan failure see fixup commit
DeltaFile
+101-11llvm/test/Transforms/InstCombine/select-of-bittest.ll
+39-25llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+11-0llvm/include/llvm/IR/PatternMatch.h
+151-363 files

LLVM/project e17b8cbllvm/docs LangRef.md, llvm/include/llvm/IR Module.h

IR: Introduce "thread-model" module flag (#222768)

Introduce the replacement for TargetOptions::ThreadModel, but
does not yet wire up the uses. This maintains the current values,
but I question if it makes sense to retain "posix" as the default.
POSIX sounds very target opinionated, but isn't used in a non-binary
way anywhere. Alternatively we could have a simple singlethread binary
flag, or name this something more general.

Follows the precedent of float-abi. It happens the triple default
is just POSIX, but theoretically targets like AVR should be defaulting
to singlethread.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+37-0llvm/test/Verifier/module-flags-thread-model.ll
+29-0llvm/docs/LangRef.md
+29-0llvm/test/Linker/module-flags-thread-model.ll
+28-0llvm/include/llvm/Support/CodeGen.h
+13-0llvm/test/Assembler/module-flags-thread-model.ll
+12-0llvm/include/llvm/IR/Module.h
+148-07 files not shown
+184-1413 files

LLVM/project cad1b33libc/cmake/modules LLVMLibCArchitectures.cmake

[libc] Pass correct system include flag for macOS. (#223116)
DeltaFile
+1-1libc/cmake/modules/LLVMLibCArchitectures.cmake
+1-11 files

LLVM/project 25728f8llvm/lib/CodeGen MachineScheduler.cpp, llvm/test/CodeGen/AArch64 misched-postra-only1.mir

[MISched] Fix post-RA pickOnlyChoice debug logs (#222927)

On the way, adding a stable test for `pickOnlyChoice()` scheduling paths
directly, which has been missing, while filechecking the fixed tracing.
DeltaFile
+114-0llvm/test/CodeGen/AArch64/misched-postra-only1.mir
+1-1llvm/lib/CodeGen/MachineScheduler.cpp
+115-12 files

LLVM/project 1f13035libcxx/docs/Status Cxx26Issues.csv, libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop has_unique_object_representations.verify.cpp

[libc++] Test LWG4113: Disallow `has_unique_object_representations<Incomplete[]>` (#169446)

We have been rejecting `has_unique_object_representations<Incomplete[]>`
since LLVM 6.

Some related change landed in Clang 19 due to
6451806ef73bb033be3f6e1599f3bcb224943206, and then a follow-up change
ae9990ed965118e7274a52399b43e3b9fb419a54 simplified error messages.

Test coverage for incomplete enumeration types is skipped for Clang-cl
mode, because an incomplete enumeration type is incorrectly considered
to be complete. See https://llvm.org/PR169472.

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
DeltaFile
+48-0libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.verify.cpp
+1-1libcxx/docs/Status/Cxx26Issues.csv
+49-12 files

LLVM/project 18bc801llvm/docs LangRef.md, llvm/include/llvm/IR Module.h

IR: Introduce "thread-model" module flag

Introduce the replacement for TargetOptions::ThreadModel, but
does not yet wire up the uses. This maintains the current values,
but I question if it makes sense to retain "posix" as the default.
POSIX sounds very target opinionated, but isn't used in a non-binary
way anywhere. Alternatively we could have a simple singlethread binary
flag, or name this something more general.

Follows the precedents of float-abi. It happens the triple default
is just POSIX, but theoretically targets like AVR should be defaulting
to singlethread.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+37-0llvm/test/Verifier/module-flags-thread-model.ll
+29-0llvm/docs/LangRef.md
+29-0llvm/test/Linker/module-flags-thread-model.ll
+28-0llvm/include/llvm/Support/CodeGen.h
+13-0llvm/test/Assembler/module-flags-thread-model.ll
+12-0llvm/include/llvm/IR/Module.h
+148-07 files not shown
+184-1413 files

LLVM/project cebfe6cllvm/docs LangRef.md, llvm/lib/CodeGen MachineBlockPlacement.cpp

IR: Add verifier checks and LangRef for llvm.loop.align (#221933)

Verify the nested !{!"llvm.loop.align", i32 N} tag.
Require exactly two operands, an integer constant of type i32 or
smaller, and a positive power-of-two value

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+126-0llvm/test/Verifier/llvm.loop.align.ll
+28-0llvm/test/Assembler/llvm.loop.align.ll
+27-0llvm/lib/IR/Verifier.cpp
+15-0llvm/docs/LangRef.md
+0-3llvm/lib/CodeGen/MachineBlockPlacement.cpp
+196-35 files

LLVM/project eff88dbclang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOpenCLMetadata.h LowerToLLVM.cpp, clang/test/CIR/CodeGenHIP amdgcnspirv-kernel.hip

[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect (#219689)

Propagate CIR OpenCL language version module attributes as LLVM dialect
named metadata before LLVM IR translation.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+43-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.cpp
+16-0clang/test/CIR/CodeGenOpenCL/version.cl
+16-0clang/test/CIR/Lowering/opencl-version-metadata.cir
+3-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.h
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+82-06 files

LLVM/project b80b725llvm/lib/CodeGen RegisterCoalescer.cpp, llvm/test/CodeGen/AArch64 coalescer-empty-subrange-early-lis.ll

RegisterCoalescer: Remove empty subranges after merging subranges

Merging subranges in joinVirtRegs didn't try to clear empty ranges after
refineSubRanges, manifesting in an assert in overlaps checks later.

Exposed with subregister liveness once LiveIntervals runs before TwoAddress.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+30-0llvm/test/CodeGen/AArch64/coalescer-empty-subrange-early-lis.ll
+3-0llvm/lib/CodeGen/RegisterCoalescer.cpp
+33-02 files

LLVM/project 7e01a10llvm/lib/CodeGen RegisterCoalescer.cpp

Move removeEmptySubRanges into mergeSubRangeInto
DeltaFile
+4-3llvm/lib/CodeGen/RegisterCoalescer.cpp
+4-31 files

LLVM/project 4388400mlir/include/mlir/IR BuiltinTypes.td, mlir/lib/IR TypeDetail.h BuiltinTypes.cpp

[mlir] Remove the memory space attribute restriction on memref types (#222995)

Follow-up to #187682. `isSupportedMemorySpace` only rejected builtin
attributes other than IntegerAttr/StringAttr/DictionaryAttr. This is a
leftover from when memory spaces were restricted to integers, and is now
inconsistent.
DeltaFile
+0-28mlir/lib/IR/BuiltinTypes.cpp
+6-0mlir/test/IR/parser.mlir
+0-4mlir/test/IR/invalid-builtin-types.mlir
+0-3mlir/lib/IR/TypeDetail.h
+2-1mlir/include/mlir/IR/BuiltinTypes.td
+8-365 files

LLVM/project a67c8f2clang/include/clang/Options Options.td, flang/include/flang/Optimizer/Transforms Passes.td

[Flang][Driver]Implemented support for option -momit-leaf-frame-pointer/-mno-omit-leaf-frame-pointer in flang (#216700)

Added support for `-momit-leaf-frame-pointer` /
`-mno-omit-leaf-frame-pointer` in the Flang compiler.

- The driver resolves the flags via `getFramePointerKind()` and forwards
`-mframe-pointer=<kind>` to flang -fc1, resulting in the LLVM IR
function attribute "frame-pointer"
- These options, used with `-fno-omit-frame-pointer`, control whether
leaf functions (functions that don't call other functions) retain or
omit the frame pointer.
- `fno-omit-frame-pointer -momit-leaf-frame-pointe`r : Keep the frame
pointer in non-leaf functions, but omit it in leaf functions (produces
"frame-pointer"="non-leaf").
- `fno-omit-frame-pointer -mno-omit-leaf-frame-pointe`r : Keep the frame
pointer in all functions, including leaf functions (produces
"frame-pointer"="all").
DeltaFile
+29-1flang/test/Driver/frame-pointer-forwarding.f90
+20-0flang/test/Transforms/function-attr-frame-pointer.fir
+3-2clang/include/clang/Options/Options.td
+3-0flang/lib/Frontend/FrontendActions.cpp
+1-0flang/include/flang/Optimizer/Transforms/Passes.td
+56-35 files

LLVM/project 78f5578flang/test/Lower/OpenMP omp-lib-integer-wrappers.f90, llvm/include/llvm/Frontend/OpenMP OMPKinds.def

[OpenMP] [Flang] Add Fortran integer(kind=8) overloads for omp_lib APIs (#221451)

Fortran code that uses integer(8) arguments, including
-fdefault-integer-8, did not match omp_lib interfaces declared with
omp_integer_kind (typically kind 4). Added *_8 specific procedures to
named generic interfaces in omp_lib, exported matching Fortran and C
runtime entry points, and implemented the *_8 functions as thin wrappers
that saturate-convert arguments to 32-bit and call the existing APIs.
DeltaFile
+279-103openmp/module/omp_lib.F90.var
+277-0openmp/runtime/test/api/kmp_integer_8_apis.f90
+156-0openmp/runtime/src/kmp_ftn_entry.h
+148-0flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
+80-0openmp/runtime/src/kmp_ftn_os.h
+25-0llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
+965-1037 files not shown
+1,028-10313 files

LLVM/project 070455bclang-tools-extra/clang-tidy/readability ConvertMemberFunctionsToStaticCheck.cpp, clang-tools-extra/docs ReleaseNotes.md

[clang-tidy] Fix convert-member-functions-to-static crash on attributed methods (#223007)

Fixes #222951
DeltaFile
+6-0clang-tools-extra/test/clang-tidy/checkers/readability/convert-member-functions-to-static.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.md
+1-1clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
+12-13 files

LLVM/project 30edfb7clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOpenCLMetadata.h LowerToLLVM.cpp, clang/test/CIR/CodeGenOpenCL version.cl

[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect

Propagate CIR OpenCL language version module attributes as LLVM dialect named metadata before LLVM IR translation.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+43-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.cpp
+16-0clang/test/CIR/CodeGenOpenCL/version.cl
+16-0clang/test/CIR/Lowering/opencl-version-metadata.cir
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.h
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+79-05 files

LLVM/project 3fefe4aclang/test/CIR/CodeGenHIP amdgcnspirv-kernel.hip

fix: Check HIP SPIR-V version metadata after lowering
DeltaFile
+3-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+3-01 files

LLVM/project ba3010dclang/lib/CIR/CodeGen CIRGenModule.cpp, clang/lib/CodeGen CodeGenModule.cpp

[CIR][OpenCL] Emit OpenCL language version metadata in CIR (#219688)

Emit OpenCL and C++ for OpenCL language version attributes from CIRGen.
Preserve the compatible OpenCL version and the C++ for OpenCL version
separately so later lowering does not infer one from the other.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+15-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+15-0clang/test/CIR/CodeGenOpenCL/version.cl
+8-0clang/test/CodeGenHIP/hipspv-kernel.cpp
+8-0clang/test/SemaHIP/atomic-init.hip
+3-1clang/lib/CodeGen/CodeGenModule.cpp
+4-0clang/test/CodeGenCUDASPIRV/kernel-cc.cu
+53-12 files not shown
+56-18 files

LLVM/project 162e183llvm/lib/Target/DirectX DXILResourceAccess.cpp, llvm/test/CodeGen/AArch64 sme-za-tailcall-fpdiff-align.ll

address comments

Created using spr 1.3.8-beta.1
DeltaFile
+79-0llvm/test/CodeGen/AArch64/sme-za-tailcall-fpdiff-align.ll
+76-0llvm/test/Transforms/SampleProfile/non-probe-stale-profile-indirect-call-anchor.ll
+57-16llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+64-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture-unsupported-kind.ll
+64-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture-nonscalar.ll
+62-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture.ll
+402-1630 files not shown
+719-7936 files

LLVM/project 4fb1117llvm/lib/Target/DirectX DXILResourceAccess.cpp, llvm/test/CodeGen/AArch64 sme-za-tailcall-fpdiff-align.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.8-beta.1

[skip ci]
DeltaFile
+79-0llvm/test/CodeGen/AArch64/sme-za-tailcall-fpdiff-align.ll
+76-0llvm/test/Transforms/SampleProfile/non-probe-stale-profile-indirect-call-anchor.ll
+57-16llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+64-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture-unsupported-kind.ll
+64-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture-nonscalar.ll
+62-0llvm/test/CodeGen/DirectX/ResourceAtomicBinOp-texture.ll
+402-1628 files not shown
+709-7134 files

LLVM/project e8dcd18llvm/lib/Target/AMDGPU GCNSchedStrategy.cpp

Added clarifying comment.
DeltaFile
+4-1llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+4-11 files

LLVM/project 70eba39clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOpenCLMetadata.h LowerToLLVM.cpp, clang/test/CIR/CodeGenOpenCL version.cl

[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect

Propagate CIR OpenCL language version module attributes as LLVM dialect named metadata before LLVM IR translation.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+43-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.cpp
+16-0clang/test/CIR/CodeGenOpenCL/version.cl
+16-0clang/test/CIR/Lowering/opencl-version-metadata.cir
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.h
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+79-05 files

LLVM/project 0cb5106clang/test/CIR/CodeGenHIP amdgcnspirv-kernel.hip

fix: Check HIP SPIR-V version metadata after lowering
DeltaFile
+3-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+3-01 files

LLVM/project b37e6dbclang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp, clang/test/CIR/CodeGenOpenCL version.cl

[CIR][OpenCL] Emit OpenCL language version metadata in CIR

Emit OpenCL and C++ for OpenCL language version attributes from CIRGen. Preserve the compatible OpenCL version and the C++ for OpenCL version separately so later lowering does not infer one from the other.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+15-0clang/test/CIR/CodeGenOpenCL/version.cl
+13-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+4-0clang/test/CodeGenCUDASPIRV/kernel-cc.cu
+1-0clang/lib/CIR/CodeGen/CIRGenModule.h
+33-04 files

LLVM/project 871a42dclang/lib/CIR/CodeGen CIRGenModule.cpp, clang/lib/CodeGen CodeGenModule.cpp

fix: Supply the HIP SPIR-V version only for metadata emission

Fix the assertion exposed by PR #214246 under the version invariant from PR #219687. Supply OpenCL 2.0 in classic CodeGen and CIRGen without changing HIP language options or enabling OpenCL-only Sema restrictions.

Assisted-by: Codex / GPT-6
DeltaFile
+8-0clang/test/CodeGenHIP/hipspv-kernel.cpp
+8-0clang/test/SemaHIP/atomic-init.hip
+4-2clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-1clang/lib/CodeGen/CodeGenModule.cpp
+2-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+25-35 files

LLVM/project 64a6af1clang/include/clang/CIR/Dialect/IR CIROpenCLAttrs.td, clang/lib/CIR/Dialect/IR CIROpenCLAttrs.cpp CIRDialect.cpp

[CIR][OpenCL] Add OpenCL language version module attributes (#219687)

Add structured CIR module attributes for OpenCL and C++ for OpenCL
language versions. Verify their module-level placement and version
components so lowering can consume explicit source-language version
state.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+85-3clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+73-0clang/test/CIR/IR/invalid-version.cir
+34-0clang/include/clang/CIR/Dialect/IR/CIROpenCLAttrs.td
+19-0clang/test/CIR/IR/version.cir
+15-0clang/lib/CIR/Dialect/IR/CIROpenCLAttrs.cpp
+3-1clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
+229-41 files not shown
+233-47 files

LLVM/project 25fe99bllvm/include/llvm/ExecutionEngine/Orc/Shared OrcRTBridge.h, llvm/lib/ExecutionEngine/Orc EPCGenericRTDyldMemoryManager.cpp

[ORC] Retire rt::SimpleExecutorMemoryManager* for sps_ci (#223113)

Move all clients to the sps_ci SimpleNativeMemoryMap / MemMgr
counterparts and retire the old rt::SimpleExecutorMemoryManager*
interface names.
DeltaFile
+7-25llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp
+8-11llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp
+9-10llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
+0-17llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
+0-11llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
+24-745 files

LLVM/project bb962e7orc-rt/include/orc-rt/bedrock SocketHandle.h, orc-rt/lib/bedrock/sys/posix SocketHandle.cpp

[orc-rt] Add SocketHandle, NativeSocketHandle APIs (#223114)

SocketHandle is an owning wrapper for a NativeSocketHandle value, and
closes the native socket on destruction.

NativeSocketHandle is a typedef for the platform's native socket handle
type.

Only POSIX is implemented in this patch (in sys/posix/SocketHandle.cpp).
Windows support will be added later.

This will be used for an upcoming SimpleRemote-based ControllerAccess
implementation that uses sockets for transport (SocketSimpleRemoteCA).
DeltaFile
+116-0orc-rt/test/unit/bedrock/SocketHandleTest.cpp
+90-0orc-rt/include/orc-rt/bedrock/SocketHandle.h
+37-0orc-rt/lib/bedrock/sys/posix/SocketHandle.cpp
+36-0orc-rt/test/unit/bedrock/sys/posix/SocketTestUtils.cpp
+35-0orc-rt/test/unit/bedrock/SocketTestUtils.h
+17-0orc-rt/test/unit/CMakeLists.txt
+331-02 files not shown
+335-18 files

LLVM/project fe36473clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp, clang/lib/CodeGen/TargetBuiltins AMDGPU.cpp

[CIR][AMDGPU] Let amdgcn_lerp and ds_swizzle use the generic codegen path (#222204)

__builtin_amdgcn_lerp and __builtin_amdgcn_ds_swizzle both map 1:1 onto
concrete (non-overloaded) intrinsics and carry the ClangBuiltin<> marker
in IntrinsicsAMDGPU.td, so EmitBuiltinExpr already lowers them
automatically by forwarding the arguments to the intrinsic.
DeltaFile
+9-0clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
+0-6clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+0-3clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+9-93 files

LLVM/project 29de2a7llvm/lib/Target/AMDGPU AMDGPU.td

[AMDGPU] Fix placement of FeatureSupportsXNACK

This can't be put into 12_50_Common because of conflict in downstream code.
DeltaFile
+4-1llvm/lib/Target/AMDGPU/AMDGPU.td
+4-11 files

LLVM/project e471938llvm/test/Transforms/AggressiveInstCombine/RISCV lit.local.cfg

[AggressiveInstCombine] Add lit.local.cfg to RISCV test directory. NFC (#223067)

To fix buildbot failures after #220310.
DeltaFile
+2-0llvm/test/Transforms/AggressiveInstCombine/RISCV/lit.local.cfg
+2-01 files