summaryrefslogtreecommitdiff
path: root/mlir/lib/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.cpp
AgeCommit message (Collapse)Author
2025-09-12[MLIR] Add `InParallelOpInterface` for parallel combining operations (#157736)Alan Li
This commit: - Introduces a new `InParallelOpInterface`, along with the `ParallelCombiningOpInterface`, represent the parallel updating operations we have in a parallel loop of `scf.forall`. - Change the name of `ParallelCombiningOpInterface` to `InParallelOpInterface` as the naming was quite confusing. - `ParallelCombiningOpInterface` now is used to generalize operations that insert into shared tensors within parallel combining regions. Previously, only `tensor.parallel_insert_slice` was supported directly in `scf.InParallelOp` regions. - `tensor.parallel_insert_slice` now implements `ParallelCombiningOpInterface`. This change enables future extensions to support additional parallel combining operations beyond `tensor.parallel_insert_slice`, which have different update semantics, so the `in_parallel` region can correctly and safely represent these kinds of operation without potential mistakes such as races. Author credits: @qedawkins
2025-07-14[mlir] Remove unused includes (NFC) (#148769)Kazu Hirata
These are identified by misc-include-cleaner. I've filtered out those that break builds. Also, I'm staying away from llvm-config.h, config.h, and Compiler.h, which likely cause platform- or compiler-specific build failures.
2023-09-20[mlir][bufferization][scf] Implement BufferDeallocationOpInterface for ↵Martin Erhart
scf.reduce.return (#66886) This is necessary to run the new buffer deallocation pipeline as part of the sparse compiler pipeline.
2023-09-20[mlir][gpu][bufferization] Implement BufferDeallocationOpInterface for ↵Martin Erhart
gpu.terminator (#66880) This is necessary to support deallocation of IR with gpu.launch operations because it does not implement the RegionBranchOpInterface. Implementing the interface would require it to support regions with unstructured control flow and produced arguments/results.
2023-09-14[mlir][bufferization] Implement BufferDeallocationopInterface for ↵Martin Erhart
scf.forall.in_parallel (#66351) The scf.forall.in_parallel terminator operation has a nested graph region with the NoTerminator trait. Such regions are not supported by the default implementations. Therefore, this commit adds a specialized implementation for this operation which only covers the case where the nested region is empty. This is because after bufferization, ops like tensor.parallel_insert_slice were already converted to memref operations residing int the scf.forall only and the nested region of scf.forall.in_parallel ends up empty.
2023-09-13Revert "[mlir][bufferization] Implement BufferDeallocationopInterface for ↵Martin Erhart
scf.forall.in_parallel" This reverts commit 1356e853d47723c1be6eee2368d95c514a1816d1. This caused problems in downstream projects. We are reverting to give them more time for integration.
2023-09-13[mlir][bufferization] Implement BufferDeallocationopInterface for ↵Martin Erhart
scf.forall.in_parallel The scf.forall.in_parallel terminator operation has a nested graph region with the NoTerminator trait. Such regions are not supported by the default implementations. Therefore, this commit adds a specialized implementation for this operation which only covers the case where the nested region is empty. This is because after bufferization, ops like tensor.parallel_insert_slice were already converted to memref operations residing int the scf.forall only and the nested region of scf.forall.in_parallel ends up empty. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D158979