diff --git a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp --- a/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp @@ -999,6 +999,20 @@ rewriter, op, resultMemRefType, *srcBuffer, *shapeBuffer); return success(); } + + FailureOr + getBufferType(Operation *op, Value value, const BufferizationOptions &options, + const DenseMap &fixedTypes) const { + auto reshapeOp = cast(op); + assert(value == reshapeOp.getResult() && "unexpected value provided"); + auto maybeResultBufferType = + bufferization::getBufferType(value, options, fixedTypes); + if (failed(maybeResultBufferType)) + return failure(); + return getMemRefTypeWithStaticIdentityLayout( + reshapeOp.getResult().getType(), + cast(maybeResultBufferType.value()).getMemorySpace()); + } }; /// Analysis of ParallelInsertSliceOp.