This commit introduces the irdl.attributes operation, which allows defining named attributes for the parent operation. Each attribute is defined with a name and a type constraint.
Example usage:
irdl.dialect @example { irdl.operation @attr_op { %0 = irdl.any %1 = irdl.is i64 irdl.attributes { "attr1" = %0, "attr2" = %1 } } }
In this example the operation will expect an arbitrary attribute "attr1"
and an attribute "attr2" with value i64.