[Mlir-commits] [mlir] [mlir][tensor][bufferize] `tensor.empty` bufferizes to allocation (PR #68201)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Oct 4 03:44:17 PDT 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-tensor
<details>
<summary>Changes</summary>
`BufferizableOpInterface::bufferizesToAllocation` is queried when forming equivalence sets during bufferization. It is not really needed for ops like `tensor.empty` which do not have tensor operands, but it should be added for consistency.
This change should have been part of #<!-- -->68080. No test is added because the return value of this function is irrelevant for ops without tensor operands. (However, this function acts as a form documentation, describing the bufferization semantics of the op.)
---
Full diff: https://github.com/llvm/llvm-project/pull/68201.diff
1 Files Affected:
- (modified) mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp (+2)
``````````diff
diff --git a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
index b08283f0070784c..997e442bc9ae241 100644
--- a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
@@ -260,6 +260,8 @@ struct DimOpInterface
struct EmptyOpInterface
: public BufferizableOpInterface::ExternalModel<EmptyOpInterface,
tensor::EmptyOp> {
+ bool bufferizesToAllocation(Operation *op, Value value) const { return true; }
+
bool resultBufferizesToMemoryWrite(Operation *op, OpResult opResult,
const AnalysisState &state) const {
// The returned tensor does not have specified contents.
``````````
</details>
https://github.com/llvm/llvm-project/pull/68201
More information about the Mlir-commits
mailing list