diff options
author | Matthias Springer <me@m-sp.org> | 2023-05-12 10:04:13 +0200 |
---|---|---|
committer | Matthias Springer <me@m-sp.org> | 2023-05-12 15:07:20 +0200 |
commit | 7d436d56b60b36508b94e39d08761f1405a9c770 (patch) | |
tree | 7c42a607e3e02af08e401c206491f7af0c3f7f1e /mlir/lib | |
parent | 81be68062f49dccfb0c28b98f04d88b5343c4ae6 (diff) | |
download | llvm-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.cpp | 19 |
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); |