LLVM/project 02c804dmlir/lib/Dialect/Linalg/IR LinalgOps.cpp

[mlir][linalg] Silence unused variable warning
DeltaFile
+3-3mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+3-31 files

LLVM/project a5f759elldb/source/Plugins/Platform CMakeLists.txt, lldb/source/Plugins/Platform/AIX PlatformAIX.cpp PlatformAIX.h

[lldb][AIX] Added PlatformAIX plugin (#121273)

This PR is in reference to porting LLDB on AIX.

Link to discussions on llvm discourse and github:

1. https://discourse.llvm.org/t/port-lldb-to-ibm-aix/80640
2. https://github.com/llvm/llvm-project/issues/101657
The complete changes for porting are present in this draft PR:
https://github.com/llvm/llvm-project/pull/102601

Details:
--------------
Adding PlatformAIX plugin for a basic lldb build support. The 1st commit
is the original version as in the draft PR which is a PlatformLinux
copy. I have removed some of the code in the next commits.
Please let me know all the other changes required to push the
PlatformAIX changes and avoid any duplication.
DeltaFile
+158-0lldb/source/Plugins/Platform/AIX/PlatformAIX.cpp
+68-0lldb/source/Plugins/Platform/AIX/PlatformAIX.h
+13-0lldb/source/Plugins/Platform/AIX/CMakeLists.txt
+1-0lldb/source/Plugins/Platform/CMakeLists.txt
+240-04 files

LLVM/project c78cb30mlir/include/mlir/Dialect/LLVMIR ROCDLOps.td

[MLIR][ROCDL] Fix accessedOperands for Rocdl_RawPtrBufferLoadOp (#127983)

`getAccessedOperands` should return all accessed pointer operands. In
the case for BufferLoads this is the source buffer and not the result.
DeltaFile
+1-1mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+1-11 files

LLVM/project fc2f31cmlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[MLIR][ROCDL] Add op for raw.ptr.buffer.load.lds (#127988)

This PR adds raw.ptr.buffer.load.lds op to ROCDL to expose buffer loads
directly to LDS.
The op is converted to the corresponding intrinsic call during the
translation from MLIR to LLVM IR.
DeltaFile
+19-1mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+12-0mlir/test/Target/LLVMIR/rocdl.mlir
+9-0mlir/test/Dialect/LLVMIR/rocdl.mlir
+40-13 files

LLVM/project 8a3222dmlir/include/mlir/IR OpImplementation.h, mlir/test/IR invalid-ops.mlir

[mlir][Parser] Fix crash when resolving invalid operands with missing location (#128163)

When `resolveOperands` reports an error and no valid `SMLoc` was
provided, report the error at the beginning of the op instead of
crashing.

```
Assert `Ptr >= BufStart && Ptr <= Buffer->getBufferEnd()' in llvm/lib/Support/SourceMgr.cpp:llvm::SourceMgr::SrcBuffer::getLineNumberSpecialized failed
```

E.g., this is currently the case when parsing the following op with a
type but without any operands:
```
let assemblyFormat = "$str (`,` $args^)? attr-dict (`:` type($args)^)?";
```

Reported error (with this PR):
```
within split at mlir/test/IR/invalid-ops.mlir:122 offset :4:1: error: custom op 'test.variadic_args_types_split' number of operands and types do not match: got 0 operands and 1 types

    [13 lines not shown]
DeltaFile
+4-2mlir/include/mlir/IR/OpImplementation.h
+5-0mlir/test/IR/invalid-ops.mlir
+5-0mlir/test/lib/Dialect/Test/TestOpsSyntax.td
+14-23 files

LLVM/project 25e1272utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[mlir][bazel] Move OpAsmOpInterface.h.inc from hdrs to srcs

This file internal to the target and should not be exposed as a public (textual) header.
DeltaFile
+1-1utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-11 files

LLVM/project 41437a6llvm/lib/Transforms/Scalar LoopSimplifyCFG.cpp, llvm/test/Transforms/LoopSimplifyCFG pr117537.ll

[LoopSimplifyCFG] Fix SCEV invalidation after removing dead exit (#127536)

Fixes #127534
DeltaFile
+109-0llvm/test/Transforms/LoopSimplifyCFG/pr117537.ll
+1-1llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+110-12 files

LLVM/project fc19803llvm/lib/CodeGen RegAllocFast.cpp

there should be no assignments to null register
DeltaFile
+3-8llvm/lib/CodeGen/RegAllocFast.cpp
+3-81 files

LLVM/project af32e22llvm/lib/CodeGen RegAllocFast.cpp

Add comment
DeltaFile
+2-0llvm/lib/CodeGen/RegAllocFast.cpp
+2-01 files

LLVM/project 0005b5e. do_loop_with_local_and_local_init.mlir do_loop_with_local_and_local_init.f90

Add sample test
DeltaFile
+49-0do_loop_with_local_and_local_init.mlir
+15-0do_loop_with_local_and_local_init.f90
+64-02 files

LLVM/project 0c6516aflang/include/flang/Lower AbstractConverter.h, flang/lib/Lower Bridge.cpp

[flang] Basic PFT to MLIR lowering for `do concurrent` locality specifiers
DeltaFile
+45-10flang/lib/Lower/Bridge.cpp
+22-5flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+8-2flang/lib/Lower/OpenMP/DataSharingProcessor.h
+3-0flang/include/flang/Lower/AbstractConverter.h
+78-174 files

LLVM/project a9e45a5mlir/include/mlir/IR OpImplementation.h, mlir/test/IR invalid-ops.mlir

[mlir][Parser] Fix crash when resolving invalid operands with missing location
DeltaFile
+4-2mlir/include/mlir/IR/OpImplementation.h
+5-0mlir/test/IR/invalid-ops.mlir
+5-0mlir/test/lib/Dialect/Test/TestOpsSyntax.td
+14-23 files

LLVM/project de75db2flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP host-eval.f90

[Flang][OpenMP] Allow host evaluation of loop bounds for distribute

This patch adds `target teams distribute [simd]` and equivalent construct nests
to the list of cases where loop bounds can be evaluated in the host, as they
represent Generic-SPMD kernels for which the trip count must also be evaluated
in advance to the kernel call.
DeltaFile
+103-0flang/test/Lower/OpenMP/host-eval.f90
+7-5flang/lib/Lower/OpenMP/OpenMP.cpp
+110-52 files

LLVM/project 36e1b5fmlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

Address review comment
DeltaFile
+2-2mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+2-21 files

LLVM/project e965e0emlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR openmp-target-spmd.mlir openmp-todo.mlir

[MLIR][OpenMP] Support target SPMD

This patch implements MLIR to LLVM IR translation of host-evaluated loop
bounds, completing initial support for `target teams distribute parallel do
[simd]` and `target teams distribute [simd]`.
DeltaFile
+96-0mlir/test/Target/LLVMIR/openmp-target-spmd.mlir
+63-20mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-24mlir/test/Target/LLVMIR/openmp-todo.mlir
+159-443 files

LLVM/project f14d964llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[OpenMPIRBuilder] Split calculation of canonical loop trip count, NFC

This patch splits off the calculation of canonical loop trip counts from the
creation of canonical loops. This makes it possible to reuse this logic to, for
instance, populate the `__tgt_target_kernel` runtime call for SPMD kernels.

This feature is used to simplify one of the existing OpenMPIRBuilder tests.
DeltaFile
+31-7llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+18-9llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+3-13llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+52-293 files

LLVM/project 749a7a6flang/lib/Optimizer/Transforms ControlFlowConverter.cpp

[flang] Basic lowering of `fir.do_loop`'s `local_init` specifier
DeltaFile
+21-1flang/lib/Optimizer/Transforms/ControlFlowConverter.cpp
+21-11 files

LLVM/project 6de5d1emlir/include/mlir/Dialect/Linalg/IR LinalgStructuredOps.td LinalgEnums.td, mlir/lib/Dialect/Linalg/IR LinalgOps.cpp

[mlir][linalg] Extend elementwise (#124661)

Implements Linalg elemwise named-op following the proposal and
discussions in RFC:
  https://discourse.llvm.org/t/rfc-extend-linalg-elemwise-named-ops-semantics/83927/1
  
DeltaFile
+227-0mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+165-0mlir/test/Dialect/Linalg/elementwise/generalize_named_ops.mlir
+120-0mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
+90-0mlir/test/Dialect/Linalg/elementwise/round-trip.mlir
+59-0mlir/include/mlir/Dialect/Linalg/IR/LinalgEnums.td
+54-0mlir/test/Dialect/Linalg/elementwise/invalid.mlir
+715-01 files not shown
+721-07 files

LLVM/project 1172e9bmlir/test/Target/LLVMIR openmp-llvm.mlir

Update test
DeltaFile
+10-24mlir/test/Target/LLVMIR/openmp-llvm.mlir
+10-241 files

LLVM/project fc0a638. do_loop_with_local_and_local_init.f90, flang/include/flang/Lower AbstractConverter.h

[flang] Basic PFT to MLIR lowering for `do concurrent` locality specifiers
DeltaFile
+45-10flang/lib/Lower/Bridge.cpp
+22-5flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+15-0do_loop_with_local_and_local_init.f90
+8-2flang/lib/Lower/OpenMP/DataSharingProcessor.h
+3-0flang/include/flang/Lower/AbstractConverter.h
+93-175 files

LLVM/project b9622e8llvm/lib/Analysis TargetTransformInfo.cpp, llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp

[TTI][AArch64] Detect OperandInfo from scalable splats. (#122469)

Pulled out of #122236, this allows Splats constants to be recognized by
getOperandInfo, allowing "better" costs for instructions like divides by
constants to be produced (which are expanded into mul+add+shift). Some
of the costs are not very accurate yet, but the comparison of scalar vs
fixed-width vs scalable for the same div can become more accurate,
especially with patches like #122236.
DeltaFile
+23-22llvm/lib/Analysis/TargetTransformInfo.cpp
+18-18llvm/test/Analysis/CostModel/AArch64/sve-rem.ll
+18-18llvm/test/Analysis/CostModel/AArch64/sve-div.ll
+4-4llvm/test/Analysis/CostModel/RISCV/rvv-load-store.ll
+2-1llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+65-635 files

LLVM/project bd16a87llvm/lib/Target/AMDGPU SIPostRABundler.cpp SIPostRABundler.h, llvm/test/CodeGen/AMDGPU postra-bundle-memops.mir

[AMDGPU][NewPM] Port SIPostRABundler to NPM (#123717)

DeltaFile
+25-8llvm/lib/Target/AMDGPU/SIPostRABundler.cpp
+22-0llvm/lib/Target/AMDGPU/SIPostRABundler.h
+3-2llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPU.h
+1-0llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
+1-0llvm/test/CodeGen/AMDGPU/postra-bundle-memops.mir
+54-126 files

LLVM/project 6bd88bbmlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Dialect/LLVMIR/IR NVVMDialect.cpp

[MLIR][NVVM] Add Ops for tcgen05 cp and shift (#127798)

PR #127669 adds intrinsics for tcgen05.cp/shift.
This PR adds NVVM Dialect Ops for the same.

lit tests are added to verify the lowering
to the intrinsics.

Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
DeltaFile
+136-0mlir/test/Target/LLVMIR/nvvm/tcgen05-cp.mlir
+108-0mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+76-0mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+30-0mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
+11-0mlir/test/Target/LLVMIR/nvvm/tcgen05-shift.mlir
+361-05 files

LLVM/project 25e308aflang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP host-eval.f90

[Flang][OpenMP] Allow host evaluation of loop bounds for distribute

This patch adds `target teams distribute [simd]` and equivalent construct nests
to the list of cases where loop bounds can be evaluated in the host, as they
represent Generic-SPMD kernels for which the trip count must also be evaluated
in advance to the kernel call.
DeltaFile
+103-0flang/test/Lower/OpenMP/host-eval.f90
+7-5flang/lib/Lower/OpenMP/OpenMP.cpp
+110-52 files

LLVM/project 32e696fmlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR openmp-target-spmd.mlir openmp-todo.mlir

[MLIR][OpenMP] Support target SPMD

This patch implements MLIR to LLVM IR translation of host-evaluated loop
bounds, completing initial support for `target teams distribute parallel do
[simd]` and `target teams distribute [simd]`.
DeltaFile
+96-0mlir/test/Target/LLVMIR/openmp-target-spmd.mlir
+63-20mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-24mlir/test/Target/LLVMIR/openmp-todo.mlir
+159-443 files

LLVM/project b074390mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

Address review comment
DeltaFile
+2-2mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+2-21 files

LLVM/project 033091ellvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[OpenMPIRBuilder] Split calculation of canonical loop trip count, NFC

This patch splits off the calculation of canonical loop trip counts from the
creation of canonical loops. This makes it possible to reuse this logic to, for
instance, populate the `__tgt_target_kernel` runtime call for SPMD kernels.

This feature is used to simplify one of the existing OpenMPIRBuilder tests.
DeltaFile
+31-7llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+18-9llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+3-13llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+52-293 files

LLVM/project aad04famlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR openmp-llvm.mlir openmp-todo.mlir

[MLIR][OpenMP] Host lowering of distribute-parallel-do/for

This patch adds support for translating composite `omp.parallel` +
`omp.distribute` + `omp.wsloop` loops to LLVM IR on the host. This is done by
passing an updated `WorksharingLoopType` to the call to `applyWorkshareLoop`
associated to the lowering of the `omp.wsloop` operation, so that
`__kmpc_dist_for_static_init` is called at runtime in place of
`__kmpc_for_static_init`.

Existing translation rules take care of creating a parallel region to hold the
workshared and workdistributed loop.
DeltaFile
+65-0mlir/test/Target/LLVMIR/openmp-llvm.mlir
+16-5mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-19mlir/test/Target/LLVMIR/openmp-todo.mlir
+81-243 files

LLVM/project ba9ea8cllvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[OpenMPIRBuilder] Add support for distribute-parallel-for/do constructs

This patch adds codegen for `kmpc_dist_for_static_init` runtime calls, used to
support worksharing a single loop across teams and threads. This can be used to
implement `distribute parallel for/do` support.
DeltaFile
+30-4llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+30-41 files

LLVM/project 55089bamlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR openmp-todo.mlir openmp-llvm.mlir

[MLIR][OpenMP] Host lowering of standalone distribute

This patch adds MLIR to LLVM IR translation support for standalone
`omp.distribute` operations, as well as `distribute simd` through ignoring
SIMD information (similarly to `do/for simd`).

Co-authored-by: Dominik Adamski <dominik.adamski at amd.com>
DeltaFile
+83-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+63-3mlir/test/Target/LLVMIR/openmp-todo.mlir
+37-0mlir/test/Target/LLVMIR/openmp-llvm.mlir
+183-33 files