[Mlir-commits] [mlir] 148432e - [mlir][bufferization][NFC] Rename BufferRelation::None to BufferRelation::Unknown
Matthias Springer
llvmlistbot at llvm.org
Mon Jan 30 02:09:40 PST 2023
Author: Matthias Springer
Date: 2023-01-30T11:09:28+01:00
New Revision: 148432ea84d244f9f6aa50d9af567b12dba671d5
URL: https://github.com/llvm/llvm-project/commit/148432ea84d244f9f6aa50d9af567b12dba671d5
DIFF: https://github.com/llvm/llvm-project/commit/148432ea84d244f9f6aa50d9af567b12dba671d5.diff
LOG: [mlir][bufferization][NFC] Rename BufferRelation::None to BufferRelation::Unknown
The previous name was incorrect. `None` does not mean that there is no buffer relation between two buffers (seems to imply that they do not alias for sure); instead it means that there is no further information available.
Differential Revision: https://reviews.llvm.org/D142870
Added:
Modified:
mlir/docs/Bufferization.md
mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp
mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
Removed:
################################################################################
diff --git a/mlir/docs/Bufferization.md b/mlir/docs/Bufferization.md
index 464e1ca63dde8..ffa5f9e0efd35 100644
--- a/mlir/docs/Bufferization.md
+++ b/mlir/docs/Bufferization.md
@@ -369,9 +369,9 @@ must at least implement the following interface methods.
* `bufferRelation`: Return `BufferRelation::Equivalent` if the given OpResult
is the exact same memref as the aliasing OpOperand after bufferization (in
case of in-place bufferization). Otherwise, (e.g., they overlap but are not
- necessarily the exact same memrefs), `BufferRelation::None` should be
+ necessarily the exact same memrefs), `BufferRelation::Unknown` should be
returned. Additional buffer relations will be added in the future, but
- `BufferRelation::None` is always safe.
+ `BufferRelation::Unknown` is always safe.
* `bufferize`: Rewrite the op with the given rewriter. Ops should be replaced
with `bufferization::replaceOpWithBufferizedValues`.
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
index fda05534bca36..5300b13fbd82b 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
@@ -302,7 +302,7 @@ struct BufferizationOptions {
/// Specify fine-grain relationship between buffers to enable more analysis.
enum class BufferRelation {
- None,
+ Unknown,
// TODO: ResultContainsOperand,
// TODO: OperandContainsResult,
Equivalent
diff --git a/mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp
index abcebf496fbe2..38985a3825798 100644
--- a/mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp
@@ -202,7 +202,7 @@ struct SelectOpInterface
BufferRelation bufferRelation(Operation *op, OpResult opResult,
const AnalysisState &state) const {
- return BufferRelation::None;
+ return BufferRelation::Unknown;
}
};
diff --git a/mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
index d25dd41c0ab4d..896895aac4ea4 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
@@ -200,7 +200,7 @@ struct CallOpInterface
if (getFuncOpAnalysisState(state, funcOp) !=
FuncOpAnalysisState::Analyzed) {
// Function not analyzed yet. The conservative answer is "None".
- return BufferRelation::None;
+ return BufferRelation::Unknown;
}
const FuncAnalysisState &funcState = getFuncAnalysisState(state);
@@ -217,7 +217,7 @@ struct CallOpInterface
#endif
return BufferRelation::Equivalent;
}
- return BufferRelation::None;
+ return BufferRelation::Unknown;
}
/// All function arguments are writable. It is the responsibility of the
diff --git a/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
index 4a2991eaa1fe2..c490450368d86 100644
--- a/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
@@ -269,7 +269,8 @@ struct IfOpInterface
assert(yieldValues.size() == 2 && "expected 2 yield values");
bool equivalentYields = state.areEquivalentBufferizedValues(
yieldValues[0]->get(), yieldValues[1]->get());
- return equivalentYields ? BufferRelation::Equivalent : BufferRelation::None;
+ return equivalentYields ? BufferRelation::Equivalent
+ : BufferRelation::Unknown;
}
};
@@ -459,7 +460,8 @@ struct ForOpInterface
cast<scf::YieldOp>(forOp.getLoopBody().front().getTerminator());
bool equivalentYield = state.areEquivalentBufferizedValues(
bbArg, yieldOp->getOperand(opResult.getResultNumber()));
- return equivalentYield ? BufferRelation::Equivalent : BufferRelation::None;
+ return equivalentYield ? BufferRelation::Equivalent
+ : BufferRelation::Unknown;
}
bool isWritable(Operation *op, Value value,
@@ -680,10 +682,10 @@ struct WhileOpInterface
// The "before" region bbArgs and the OpResults may not match.
if (resultNumber >= whileOp.getBeforeArguments().size())
- return BufferRelation::None;
+ return BufferRelation::Unknown;
if (opResult.getType() !=
whileOp.getBeforeArguments()[resultNumber].getType())
- return BufferRelation::None;
+ return BufferRelation::Unknown;
auto conditionOp = whileOp.getConditionOp();
BlockArgument conditionBbArg = whileOp.getBeforeArguments()[resultNumber];
@@ -698,7 +700,7 @@ struct WhileOpInterface
state.areEquivalentBufferizedValues(bodyBbArg, yieldOperand);
return equivCondition && equivYield ? BufferRelation::Equivalent
- : BufferRelation::None;
+ : BufferRelation::Unknown;
}
bool isWritable(Operation *op, Value value,
diff --git a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
index 2f578445de1dd..4f44be75b1610 100644
--- a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
@@ -333,7 +333,7 @@ struct ExtractSliceOpInterface
BufferRelation bufferRelation(Operation *op, OpResult opResult,
const AnalysisState &state) const {
- return BufferRelation::None;
+ return BufferRelation::Unknown;
}
LogicalResult bufferize(Operation *op, RewriterBase &rewriter,
More information about the Mlir-commits
mailing list