An operation expression in PDLL represents an MLIR operation. In
the match section of a pattern, this expression models one of
the input operations to the pattern. In the rewrite section of
a pattern, this expression models one of the operations to
create. The general structure of the operation expression is very
similar to that of the "generic form" of textual MLIR assembly:
let root = op<my_dialect.foo>(operands: ValueRange) {attr = attr: Attr} -> (resultTypes: TypeRange);
For now we only model the components that are within PDL, as PDL
gains support for blocks and regions so will this expression.
Depends On D115295
s/the structural form to/an/ ? (think message is the same and feels cleaner)