[mlir][python] Fix MemRefType IsAFunction in Python bindings

MemRefType was using a wrong `isa` function in the bindings code, which
could lead to invalid IR being constructed. Also run the verifier in
memref dialect tests.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D111784
This commit is contained in:
Alex Zinenko 2021-10-14 11:33:28 +02:00
parent e3e1da20d4
commit a04c0b7ed2
3 changed files with 3 additions and 2 deletions

View File

@ -406,7 +406,7 @@ class PyMemRefLayoutMapList;
/// Ranked MemRef Type subclass - MemRefType.
class PyMemRefType : public PyConcreteType<PyMemRefType, PyShapedType> {
public:
static constexpr IsAFunctionTy isaFunction = mlirTypeIsARankedTensor;
static constexpr IsAFunctionTy isaFunction = mlirTypeIsAMemRef;
static constexpr const char *pyClassName = "MemRefType";
using PyConcreteType::PyConcreteType;

View File

@ -33,5 +33,5 @@ class LoadOp:
memref_resolved = _get_op_result_or_value(memref)
indices_resolved = [] if indices is None else _get_op_results_or_values(
indices)
return_type = memref_resolved.type
return_type = MemRefType(memref_resolved.type).element_type
super().__init__(return_type, memref, indices_resolved, loc=loc, ip=ip)

View File

@ -71,3 +71,4 @@ def testCustomBuidlers():
# CHECK: func @f1(%[[ARG0:.*]]: memref<?x?xf32>, %[[ARG1:.*]]: index, %[[ARG2:.*]]: index)
# CHECK: memref.load %[[ARG0]][%[[ARG1]], %[[ARG2]]]
print(module)
assert module.operation.verify()