diff --git a/mlir/include/mlir/IR/BuiltinTypes.h b/mlir/include/mlir/IR/BuiltinTypes.h --- a/mlir/include/mlir/IR/BuiltinTypes.h +++ b/mlir/include/mlir/IR/BuiltinTypes.h @@ -443,10 +443,6 @@ return type.isa(); } -inline bool BaseMemRefType::isValidElementType(Type type) { - return type.isIntOrIndexOrFloat() || type.isa(); -} - inline bool FloatType::classof(Type type) { return type.isa(); diff --git a/mlir/lib/IR/BuiltinTypes.cpp b/mlir/lib/IR/BuiltinTypes.cpp --- a/mlir/lib/IR/BuiltinTypes.cpp +++ b/mlir/lib/IR/BuiltinTypes.cpp @@ -472,6 +472,10 @@ // BaseMemRefType //===----------------------------------------------------------------------===// +bool BaseMemRefType::isValidElementType(Type type) { + return type.isIntOrIndexOrFloat() || type.isa(); +} + unsigned BaseMemRefType::getMemorySpace() const { return static_cast(impl)->memorySpace; } diff --git a/mlir/lib/Parser/TypeParser.cpp b/mlir/lib/Parser/TypeParser.cpp --- a/mlir/lib/Parser/TypeParser.cpp +++ b/mlir/lib/Parser/TypeParser.cpp @@ -219,8 +219,7 @@ return nullptr; // Check that memref is formed from allowed types. - if (!elementType.isIntOrIndexOrFloat() && - !elementType.isa()) + if (!BaseMemRefType::isValidElementType(elementType)) return emitError(typeLoc, "invalid memref element type"), nullptr; // Parse semi-affine-map-composition.