LLVM/project c3badbb.github/workflows release-binaries.yml

workflows/release-binaries.yml: Only dump the wix logs on failure (#218810)

There is currently a bug in the path on ARM64 Windows, so this step
always fails. Running it after a successful build doesn't make much
sense anyway since since we don't need to see the logs for a good build.
Also, we risk having it fail the whole job even after a successful build
(like what is currently happening on ARM64 Windows), so that's another
reason only to run this when the bulid fails.
DeltaFile
+1-1.github/workflows/release-binaries.yml
+1-11 files

LLVM/project a9797b1mlir/test/mlir-tblgen op-format.td, mlir/tools/mlir-tblgen OpFormatGen.cpp

[mlir:tblgen] Qualify access to `getContext` to fix #218872. (#218951)

With #218872, some code generated by `tblgen` containing `getContext()`
now uses `OpTyp::getContext()` if that op has a `context` property
instead of the intendend `Operation::getContext()`. This PR qualifies
the access such that the intended function is always called.

Signed-off-by: Ingo Müller <ingomueller at google.com>
DeltaFile
+4-4mlir/tools/mlir-tblgen/OpFormatGen.cpp
+6-0mlir/test/mlir-tblgen/op-format.td
+10-42 files

LLVM/project ffa68d7.github/workflows release-binaries.yml, clang/cmake/caches Release.cmake

Revert "Revert "workflows/release-binaries: Disable flang on Darwin (#164667)…"

This reverts commit d2bd0203bee02681b0a150fb8d2d6563b7e56b2e.
DeltaFile
+8-2clang/cmake/caches/Release.cmake
+0-7.github/workflows/release-binaries.yml
+8-92 files

LLVM/project 1a4151bllvm/lib/Target/AArch64 AArch64MIPeepholeOpt.cpp, llvm/test/CodeGen/AArch64 ld-tuple-dsub-fmov.ll

[AArch64] Remove extra fmov after half-vector Neon LD instruction (#216758)

Currently, after a load instruction resulting in a half-vector tuple,
LLVM emits an extra fmov for explicitly zeroing the upper-half of the
vector register when returning a value in the tuple as the full 128 bit
vector.
This is unneeded as the load instruction already zeros the upper half of
the registers in the tuple.

Add special case to existing peephole function that can recognize the D
sub-reg tuple defining opcode and allow removing the extra FMOV

Full List of Load Instructions Tested:
LD1Twov: 8b, 4h, 2s, 1d
LD1Twov_POST: 8b, 4h, 2s, 1d
LD1Threev: 8b, 4h, 2s, 1d
LD1Threev_POST: 8b, 4h, 2s, 1d
LD1Fourv: 8b, 4h, 2s, 1d
LD1Fourv_POST: 8b, 4h, 2s, 1d

    [5 lines not shown]
DeltaFile
+649-0llvm/test/CodeGen/AArch64/ld-tuple-dsub-fmov.ll
+16-2llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
+665-22 files

LLVM/project 8a4a0f2llvm/lib/Transforms/Scalar MemCpyOptimizer.cpp, llvm/test/Transforms/MemCpyOpt stack-move-offset.ll memcpy.ll

[MemCpyOpt] Extend call slot optimization for non-dereferenceable destinations. (#217436)

Allow call slot optimization for non-dereferenceable destinations when
execution is guaranteed to reach the store. For this, check if the call
has both willreturn and nounwind attributes, and there are no
instructions between the call and the store that might trap or throw.
Since the store would trap anyway if the destination pointer was not
dereferenceable, we can forward the pointer to the call.
DeltaFile
+69-2llvm/test/Transforms/MemCpyOpt/callslot_deref.ll
+11-2llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+6-2llvm/test/Transforms/MemCpyOpt/memcpy.ll
+1-2llvm/test/Transforms/MemCpyOpt/stack-move-offset.ll
+87-84 files

LLVM/project 5492b18clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, clang/test/CIR/CodeGen vtable-nyi-nonconvertible-functype.cpp

[CIR] Address review comments, drop one more test's opt-out

Update a couple of review comments to either stand alone instead of referencing
what classic does or clarify what they say.

The test case that was discussed already exists in the CIR lit suite.  It was
just opting out of the pass until this PR allowed it to run.  Dropped the flag
and confirmed the test passes with the pass on and no CHECK changes are needed.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+5-7clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+2-4clang/test/CIR/CodeGen/vtable-nyi-nonconvertible-functype.cpp
+7-112 files

LLVM/project 68f9f8bclang/test/CIR/CodeGen partial-array-cleanup.cpp array-ctor.cpp, clang/test/CIR/CodeGenOpenACC atomic-write.cpp

[CIR] Regenerate CHECK lines for 8 more callconv opt-out tests (#218931)

These 8 CIR tests compile clean with x86_64 calling-convention lowering
on, but their CHECK lines still pinned the pre-coercion CIR: raw record
types in signatures, plain by-value loads for temporaries with a
non-trivial destructor, and matching store/load pairs for empty records.
The pass now emits the ABI-correct shape instead: sret return
parameters, a dropped or byref-marked argument for records that carry no
data or that need pass-by-reference, and a `#cir.poison` placeholder
where a value the pass ignores used to be stored.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+14-28clang/test/CIR/CodeGen/cleanup-conditional-with-wrapper.cpp
+14-28clang/test/CIR/CodeGen/cleanup-conditional-with-wrapper-eh.cpp
+7-13clang/test/CIR/CodeGen/array-ctor.cpp
+8-12clang/test/CIR/CodeGen/paren-list-agg-init.cpp
+5-9clang/test/CIR/CodeGen/partial-array-cleanup.cpp
+5-6clang/test/CIR/CodeGenOpenACC/atomic-write.cpp
+53-962 files not shown
+61-1068 files

LLVM/project db093a7flang/test/Lower/OpenMP metadirective-loop.f90, flang/test/Lower/OpenMP/Todo metadirective-loop-intervening-statement.f90

Improve metadirective loop tests

- Cover supported and unsupported compiler directives in begin/end forms.
- Add vectorization checks to the enabled loop annotation.
DeltaFile
+34-4flang/test/Lower/OpenMP/metadirective-loop.f90
+20-0flang/test/Lower/OpenMP/Todo/metadirective-loop-intervening-statement.f90
+54-42 files

LLVM/project f7b4ff8llvm/include module.modulemap

[modulemap] Add OMPDescriptors.h.inc to modulemap of the OpenMP module (#218933)
DeltaFile
+3-0llvm/include/module.modulemap
+3-01 files

LLVM/project 532ee8dllvm/lib/CodeGen AllocationOrder.h AllocationOrder.cpp

Merge branch 'users/mssefat/anti-hints-pr3-amdgpu-apply' into users/mssefat/anti-hints-pr4-amdgpu-pre-ra
DeltaFile
+5-7llvm/lib/CodeGen/AllocationOrder.cpp
+4-4llvm/lib/CodeGen/AllocationOrder.h
+9-112 files

LLVM/project dd31169llvm/lib/CodeGen AllocationOrder.h AllocationOrder.cpp

Merge branch 'users/mssefat/anti-hints-pr2-mir-serialize' into users/mssefat/anti-hints-pr3-amdgpu-apply
DeltaFile
+5-7llvm/lib/CodeGen/AllocationOrder.cpp
+4-4llvm/lib/CodeGen/AllocationOrder.h
+9-112 files

LLVM/project ba7ef0bllvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-scope-same-line.ll debug-scope-block.ll

Add support for NSDI DebugScope, DebugNoScope and DebugInlinedAt
DeltaFile
+127-18llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+83-0llvm/test/CodeGen/SPIRV/debug-info/debug-inlined-at-recursive.ll
+68-0llvm/test/CodeGen/SPIRV/debug-info/debug-inlined-at.ll
+67-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope.ll
+66-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope-block.ll
+63-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope-same-line.ll
+474-1815 files not shown
+658-2121 files

LLVM/project 8aa53b8flang/lib/Optimizer/CodeGen BoxedProcedure.cpp, flang/test/Fir boxproc-execstack-module-flag.fir

Revert "[CodeGen] Take the executable stack from a module flag" (#218964)

Reverts llvm/llvm-project#215152

This change breaks -Wl,-z,execstack for target offload.
DeltaFile
+0-113flang/test/Fir/boxproc-execstack-module-flag.fir
+1-46flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
+0-29llvm/test/CodeGen/X86/execstack-module-flag.ll
+4-18llvm/docs/LangRef.md
+7-8llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+4-4llvm/test/CodeGen/RISCV/rv64-trampoline.ll
+16-2184 files not shown
+19-22910 files

LLVM/project 736e914llvm/lib/Target/AMDGPU AMDGPUUniformIntrinsicCombine.cpp, llvm/test/CodeGen/AMDGPU redundant-ballot-reads.ll

Revert "[AMDGPU] Combine redundant ballot intrinsic calls (#218357)"

This reverts commit 2be211bb2ab35461520530f37e3faf382dc644d5.
DeltaFile
+0-448llvm/test/CodeGen/AMDGPU/redundant-ballot-reads.ll
+5-170llvm/lib/Target/AMDGPU/AMDGPUUniformIntrinsicCombine.cpp
+5-6182 files

LLVM/project 3566ca5clang/lib/Interpreter IncrementalAction.cpp Interpreter.cpp, clang/test/Interpreter emit-llvm.cpp

Reapply "[clang-repl] Honor -emit-llvm to print incremental IR" (#218735)

Relands #217870 with a fix for the failure in `clang/test/Interpreter/emit-llvm.cpp` seen on ppc64le
DeltaFile
+21-0clang/test/Interpreter/emit-llvm.cpp
+7-0clang/lib/Interpreter/Interpreter.cpp
+1-0clang/lib/Interpreter/IncrementalAction.cpp
+29-03 files

LLVM/project 081c5bcclang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-fcvt-intrinsics.c neon-intrinsics.c

[clang][CIR][AArch64] Add lowering for conversion intrinsics (#217263)

This PR adds lowering for intrinsic from the following groups:
* https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#conversions

It continues the work started in #190961, #193273, #199990, #209252,
, #211609,  #216757 and #217017.

This PR implements the conversions for the following:
1) "int to float" intrinsics:
   * vcvt_f32_s32
   * vcvtq_f32_s32
   * vcvt_f32_u32
   * vcvtq_f32_u32
   * vcvts_f32_s32
   * vcvts_f32_u32
   * vcvt_f64_s64
   * vcvtq_f64_s64
   * vcvt_f64_u64

    [24 lines not shown]
DeltaFile
+317-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-194clang/test/CodeGen/AArch64/neon-misc.c
+0-64clang/test/CodeGen/AArch64/neon-intrinsics.c
+57-7clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+0-17clang/test/CodeGen/AArch64/neon-fcvt-intrinsics.c
+374-2825 files

LLVM/project 1389c24llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-scope-same-line.ll debug-scope.ll

Add support for NSDI DebugScope, DebugNoScope and DebugInlinedAt
DeltaFile
+127-18llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+83-0llvm/test/CodeGen/SPIRV/debug-info/debug-inlined-at-recursive.ll
+71-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope-block.ll
+68-0llvm/test/CodeGen/SPIRV/debug-info/debug-inlined-at.ll
+67-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope.ll
+63-0llvm/test/CodeGen/SPIRV/debug-info/debug-scope-same-line.ll
+479-1815 files not shown
+663-2121 files

LLVM/project dc03113mlir/include/mlir/Dialect/Affine/Analysis AffineStructures.h, mlir/include/mlir/Dialect/GPU/TransformOps Utils.h

[mlir] Remove dead forward declarations (#218863)

This patch removes forward declarations of classes and structs that
are no longer referenced anywhere in MLIR.
DeltaFile
+0-8mlir/include/mlir/Dialect/IRDL/IR/IRDL.h
+0-5mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
+0-1mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h
+0-1mlir/include/mlir/Dialect/GPU/TransformOps/Utils.h
+0-1mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h
+0-165 files

LLVM/project 141f901llvm/lib/DWARFLinker/Parallel ModulePool.h DWARFLinkerCompileUnit.cpp, llvm/test/tools/dsymutil/Inputs/module-import-canonical dup2.ll 2.ll

[DWARFLinker] Resolve a module import through the module's anchor (#218575)

An importing compile unit emits its own DW_TAG_module skeleton, and that
skeleton can name a different DW_AT_LLVM_include_path than the unit
built from the .pcm. For example, a Swift unit names the .swiftmodule
while the companion Clang module names the framework bundle.

The classic linker gets this from DeclContext uniquing. f03b9d709525
made the parallel linker's type pool pick the right copy, but the type
pool only covers ODR languages. This addresses the non-ODR case.

Add a link-global ModulePool, using the dotted module path as the key. A
module unit records where it put each DW_TAG_module, either as a type
entry or as a section + offset. Because the import may not exist during
cloning, we emit a placeholder and only emit it when the anchor is fully
resolved.

A .pcm holds the description of the module it was built for, and also a
partial copy of every module that it imports. Only the first is the

    [13 lines not shown]
DeltaFile
+99-0llvm/test/tools/dsymutil/X86/module-import-canonical.test
+87-0llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
+73-0llvm/lib/DWARFLinker/Parallel/ModulePool.h
+47-0llvm/test/tools/dsymutil/X86/module-import-canonical-duplicate.test
+36-0llvm/test/tools/dsymutil/Inputs/module-import-canonical/2.ll
+33-0llvm/test/tools/dsymutil/Inputs/module-import-canonical/dup2.ll
+375-014 files not shown
+639-320 files

LLVM/project 30aaef1llvm/lib/CodeGen AllocationOrder.h AllocationOrder.cpp

Merge branch 'users/mssefat/anti-hints-pr1-infra' into users/mssefat/anti-hints-pr2-mir-serialize
DeltaFile
+5-7llvm/lib/CodeGen/AllocationOrder.cpp
+4-4llvm/lib/CodeGen/AllocationOrder.h
+9-112 files

LLVM/project 463d506llvm/lib/CodeGen AllocationOrder.h AllocationOrder.cpp

Addressed review
DeltaFile
+5-7llvm/lib/CodeGen/AllocationOrder.cpp
+4-4llvm/lib/CodeGen/AllocationOrder.h
+9-112 files

LLVM/project c9b1787mlir/include/mlir/Dialect/Tosa/Utils ConversionUtils.h, mlir/lib/Conversion/TosaToLinalg TosaToLinalg.cpp

[mlir][Tosa] Use split discardable/inherent attribute APIs (#218912)

Use typed operation accessors and explicit discardable attribute APIs in
the Tosa dialect, conversions, target handling, and validation.

Assisted-by: Codex
DeltaFile
+14-9mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+7-7mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp
+7-6mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
+4-4mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
+6-2mlir/lib/Dialect/Tosa/Transforms/TosaNarrowTypes.cpp
+5-1mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
+43-295 files not shown
+52-3711 files

LLVM/project 7e329dellvm/test/Analysis/ScalarEvolution ptrtoint.ll

[SCEV] Fix dead CHECK lines in ptrtoint.ll (NFC) (#218932)

There is no CHECK prefix; remove and regenerate with X32/X86 check
lines.

As suggested in https://github.com/llvm/llvm-project/pull/217378.
DeltaFile
+56-27llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
+56-271 files

LLVM/project d1e3942llvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll, llvm/test/Transforms/LoopVectorize/VPlan vplan-based-stride-mv.ll

Merge branch 'vplan-based-stride-mv-tests' into vplan-based-stride-mv-rt-guard
DeltaFile
+1-2llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+1-2llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+2-42 files

LLVM/project e5bfadfllvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll, llvm/test/Transforms/LoopVectorize/VPlan vplan-based-stride-mv.ll

Fix formatting
DeltaFile
+1-2llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+1-2llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+2-42 files

LLVM/project c862266llvm/docs MergeFunctions.md, llvm/lib/Transforms/Utils FunctionComparator.cpp

[MergeFunctions] Fix merging functions with different KCFI type identifiers (#217665)

MergeFunctions currently merges functions with identical bodies even
when
their function-level !kcfi_type metadata contains different type
identifiers.

This can redirect calls or function pointers to a function with a
mismatched
KCFI type identifier, potentially causing KCFI checks to fail at
runtime.

Compare function-level !kcfi_type metadata in FunctionComparator so that
functions with different KCFI type identifiers are not merged.

Add a minimal regression test covering two identical functions with
different
KCFI type identifiers.

Fixes #217629
DeltaFile
+112-0llvm/test/Transforms/MergeFunc/kcfi-function-merging.ll
+4-0llvm/lib/Transforms/Utils/FunctionComparator.cpp
+2-0llvm/docs/MergeFunctions.md
+118-03 files

LLVM/project b3a1838llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 pr72777.ll u128-square.ll

[AArch64] Suboptimal assembly for u128 x * x (#214796)

This PR optimizes the AArch64 backend for 128-bit integer squaring
(`u128 x * x`).

It updates the instruction selection logic to combine `(A + B) + B` into
`A + (B << 1)`. This allows the compiler to emit a single, optimal `add
... lsl #1` instruction instead of multiple separate `add` instructions.

A baseline test was added in the first commit, and the optimization is
provided in the second commit to clearly highlight the codegen
improvements.

Fixes #213775
DeltaFile
+30-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+13-6llvm/test/CodeGen/AArch64/reassocmls.ll
+15-0llvm/test/CodeGen/AArch64/u128-square.ll
+2-3llvm/test/CodeGen/AArch64/pr72777.ll
+60-94 files

LLVM/project 6160b5amlir/lib/Dialect/X86/Utils X86Utils.cpp, mlir/test/Dialect/X86 vector-contract-to-packed-type-dotproduct.mlir vector-contract-bf16-to-fma.mlir

[MLIR][X86] Track shuffled write operand updates (#218936)

Notify pattern rewrite listeners while replacing the operands of both
write-like users after accumulator shuffling.

Add focused coverage that does not depend on the separate accumulator
rewrite.

Assisted-by: Codex
DeltaFile
+148-0mlir/test/Dialect/X86/shuffle-before-write.mlir
+6-3mlir/lib/Dialect/X86/Utils/X86Utils.cpp
+0-2mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
+0-2mlir/test/Dialect/X86/vector-contract-bf16-to-fma.mlir
+154-74 files

LLVM/project 55dd65fllvm/lib/Target/SPIRV SPIRVBuiltins.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_integer_dot_product SPV_KHR_integer_dot_product_OCLtoSPIRV_int.ll

[SPIR-V] Diagnose integer dot builtins without SPV_KHR_integer_dot_product (#218599)
DeltaFile
+7-3llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+3-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_integer_dot_product/SPV_KHR_integer_dot_product_OCLtoSPIRV_int.ll
+10-32 files

LLVM/project a82267cclang/test/CodeGen/AArch64/neon load.c, llvm/lib/Target/SystemZ SystemZAsmPrinter.cpp

Merge branch 'main' into users/adams381/cir-callconv-union-empty-member
DeltaFile
+1,217-1,125llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
+2,240-0clang/test/CodeGen/AArch64/neon/load.c
+853-1,375llvm/test/CodeGen/AMDGPU/splitkit-getsubrangeformask-phi-extend.ll
+815-788llvm/test/CodeGen/AMDGPU/bypass-div.ll
+753-757llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
+17-1,275llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+5,895-5,3201,182 files not shown
+50,808-30,5931,188 files