summaryrefslogtreecommitdiff
path: root/mlir/lib
diff options
context:
space:
mode:
authorMatthias Springer <me@m-sp.org>2023-05-12 10:04:13 +0200
committerMatthias Springer <me@m-sp.org>2023-05-12 15:07:20 +0200
commit7d436d56b60b36508b94e39d08761f1405a9c770 (patch)
tree7c42a607e3e02af08e401c206491f7af0c3f7f1e /mlir/lib
parent81be68062f49dccfb0c28b98f04d88b5343c4ae6 (diff)
downloadllvm-7d436d56b60b36508b94e39d08761f1405a9c770.tar.gz
[mlir][transform] TrackingListener: Allow existing ops as replacements
The TrackingListener was unnecessarily strict. Existing ops are now allowed when updating payload ops mappings due to `replaceOp` in the TrackingListener. Differential Revision: https://reviews.llvm.org/D150429
Diffstat (limited to 'mlir/lib')
-rw-r--r--mlir/lib/Dialect/Transform/IR/TransformOps.cpp19
1 files changed, 0 insertions, 19 deletions
diff --git a/mlir/lib/Dialect/Transform/IR/TransformOps.cpp b/mlir/lib/Dialect/Transform/IR/TransformOps.cpp
index 7451193d51fd..ecd5d2a915ab 100644
--- a/mlir/lib/Dialect/Transform/IR/TransformOps.cpp
+++ b/mlir/lib/Dialect/Transform/IR/TransformOps.cpp
@@ -180,20 +180,9 @@ transform::TrackingListener::findReplacementOp(Operation *op,
if (op->getName() != defOp->getName())
return nullptr;
- // If the replacement op is not a new op, drop the mapping.
- if (!isNewOp(defOp))
- return nullptr;
-
return defOp;
}
-bool transform::TrackingListener::isNewOp(Operation *op) const {
- auto it = newOps.find(op->getName());
- if (it == newOps.end())
- return false;
- return it->second.contains(op);
-}
-
LogicalResult transform::TrackingListener::notifyMatchFailure(
Location loc, function_ref<void(Diagnostic &)> reasonCallback) {
LLVM_DEBUG({
@@ -204,17 +193,9 @@ LogicalResult transform::TrackingListener::notifyMatchFailure(
return failure();
}
-void transform::TrackingListener::notifyOperationInserted(Operation *op) {
- newOps[op->getName()].insert(op);
-}
-
void transform::TrackingListener::notifyOperationRemoved(Operation *op) {
// TODO: Walk can be removed when D144193 has landed.
op->walk([&](Operation *op) {
- // Keep set of new ops up-to-date.
- auto it = newOps.find(op->getName());
- if (it != newOps.end())
- it->second.erase(op);
// Remove mappings for result values.
for (OpResult value : op->getResults())
(void)replacePayloadValue(value, nullptr);