diff --git a/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp b/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp index 9ca1f6da43f6cd..5c67c8e61829ef 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp @@ -595,11 +595,14 @@ LogicalResult mlir::linalg::hoistPaddingOnTensors(SimplePadOp &simplePadOp, b.create(loc, simplePadOp.getResultType(), packedTensor, offsets, sizes, strides) ->getResult(0)); - simplePadOp.erase(); + + Operation *toErase = simplePadOp; // Make the newly cloned `simplePadOp` available to the caller. simplePadOp = cast(bvm.lookup(simplePadOp.result()).getDefiningOp()); + toErase->erase(); + return success(); }