This patch adds optional and variadic operands and results
to IRDL. These are added using the irdl.variadicity attribute,
which has to be attached to every irdl.operands and irdl.results
operations.
For instance:
mlir irdl.operands(%0, single %1, optional %2, variadic %3)
has 4 operand definitions. The first two are single operands,
the second one is optional, and the last one is variadic.
Note that this patch only adds the variadicities to the definition,
but does not consider them when loading a dialect at runtime. This
will be done in the next patch.
It is not used anywhere, if I'm not mistaken
Is it intentional?