PSA: All structured (linalg) transform ops now require types

All transform ops prefixed with transform.structured now require types. In the vast majority of cases, the syntax involves:

  • trailing functional type, e.g. transform.structured.tile_to_forall_op ... : (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.forall">)
  • immediate colon types for values used as parameter in the list, e.g., transform.structured.tile %0 tile_sizes [%1 : !transform.any_value] : ... /* type of %0 goes here */.

!transform.any_op can be used as a default placeholder in absence of more specific type constraints, !pdl.operation should not be used unless for connection to PDL.

[RFC] Type System for the Transform Dialect discusses the motivation for the change.