[mlir][irdl] Add verification of IRDL ops
authorMathieu Fehr <mathieu.fehr@gmail.com>
Wed, 8 Mar 2023 22:16:02 +0000 (23:16 +0100)
committerMathieu Fehr <mathieu.fehr@gmail.com>
Wed, 17 May 2023 12:34:00 +0000 (13:34 +0100)
commitc8a581c331f27a1ece8e42206831e56b7a222d26
tree2f243907cb494873ba73821f612a1823fa90b0f9
parent4f30a63ca2a6cbc16beaa49df16373d020118e92
[mlir][irdl] Add verification of IRDL ops

This patch adds verification on registered IRDL operations, types,
and attributes.

This is done through an interface implemented by operations from the
`irdl` dialect, which translate the operations into `Constraint`.
This interface is then use in the `registerDialect` function to
generate verifiers for the entire operation/type/attribute.

Depends on D145733

Reviewed By: Mogball

Differential Revision: https://reviews.llvm.org/D145734
mlir/include/mlir/Dialect/IRDL/IR/CMakeLists.txt
mlir/include/mlir/Dialect/IRDL/IR/IRDL.h
mlir/include/mlir/Dialect/IRDL/IR/IRDLInterfaces.h [new file with mode: 0644]
mlir/include/mlir/Dialect/IRDL/IR/IRDLInterfaces.td [new file with mode: 0644]
mlir/include/mlir/Dialect/IRDL/IR/IRDLOps.td
mlir/lib/Dialect/IRDL/CMakeLists.txt
mlir/lib/Dialect/IRDL/IR/IRDL.cpp
mlir/lib/Dialect/IRDL/IR/IRDLOps.cpp [new file with mode: 0644]
mlir/lib/Dialect/IRDL/IRDLLoading.cpp
mlir/test/Dialect/IRDL/testd.mlir