[mlir][irdl] Add IRDL verification constraint classes
This patch adds the necessary constraint classes that are be used by IRDL to define Operation, Type, and Attribute verifiers. A constraint is a class inheriting the `irdl::Constraint` class, which may call other constraints that are indexed by `unsigned`. A constraint represent an invariant over an Attribute. The `ConstraintVerifier` class group these constraints together, and make sure that a constraint can only identify a single attribute. So, once a constraint is used to check the satisfiability of an `Attribute`, the `Attribute` will be memorized for this constraint. This ensure that in IRDL, a single `!irdl.attribute` value only correspond to a single `Attribute`. Depends on D144693 Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D145733
Loading
Please sign in to comment