diff --git a/mlir/lib/Dialect/Shape/Transforms/ShapeTypeConversion.cpp b/mlir/lib/Dialect/Shape/Transforms/ShapeTypeConversion.cpp --- a/mlir/lib/Dialect/Shape/Transforms/ShapeTypeConversion.cpp +++ b/mlir/lib/Dialect/Shape/Transforms/ShapeTypeConversion.cpp @@ -45,11 +45,9 @@ auto newAssumingOp = rewriter.create( assumingOp.getLoc(), newResultTypes, assumingOp.witness()); - // Handle the region transfer carefully here to avoid assertions that both - // operations are valid at replacement time. - newAssumingOp.doRegion().push_back(new Block()); rewriter.replaceOp(assumingOp, newAssumingOp.getResults()); - newAssumingOp.doRegion().takeBody(assumingOp.doRegion()); + rewriter.inlineRegionBefore(assumingOp.doRegion(), newAssumingOp.doRegion(), + newAssumingOp.doRegion().end()); return success(); }