[Mlir-commits] [mlir] [mlir][bufferization] Support custom types at function boundaries (PR #159766)
Matthias Springer
llvmlistbot at llvm.org
Wed Sep 24 01:13:37 PDT 2025
================
@@ -338,11 +338,21 @@ bool OpFilter::isOpAllowed(Operation *op) const {
namespace {
/// Default function arg type converter: Use a fully dynamic layout map.
-BaseMemRefType
-defaultFunctionArgTypeConverter(TensorType type, Attribute memorySpace,
+BufferLikeType
+defaultFunctionArgTypeConverter(TensorLikeType type, Attribute memorySpace,
func::FuncOp funcOp,
const BufferizationOptions &options) {
- return getMemRefTypeWithFullyDynamicLayout(type, memorySpace);
+ if (auto tensorType = mlir::dyn_cast<TensorType>(type)) {
+ return cast<BufferLikeType>(
+ getMemRefTypeWithFullyDynamicLayout(tensorType, memorySpace));
+ }
+
+ // If not builtin, fallback to TensorLikeType::getBufferType()
+ auto bufferType =
+ type.getBufferType(options, [&]() { return funcOp->emitError(); });
+ assert(mlir::succeeded(bufferType) &&
----------------
matthias-springer wrote:
nit: You can drop `mlir::`.
https://github.com/llvm/llvm-project/pull/159766
More information about the Mlir-commits
mailing list