[Mlir-commits] [mlir] [mlir][python] Fixup the constantTypes of pdl.TypesOp (PR #75812)
Jiefeng Wang
llvmlistbot at llvm.org
Wed Dec 20 03:26:01 PST 2023
jiefwo wrote:
> @jiefwo for which test is this happening? The one above? `test_operation_results`?
We can have a look on this reduced test from `mlir/test/Dialect/Transform/selective-targeting.mlir`.
```mlir
func.func @matmul_tensors_1(
%arg0: tensor<128x128xf32>, %arg1: tensor<128x128xf32>,
%arg2: tensor<128x128xf32>)
-> tensor<128x128xf32> {
%0 = linalg.matmul { test.attrA }
ins(%arg0, %arg1: tensor<128x128xf32>, tensor<128x128xf32>)
outs(%arg2: tensor<128x128xf32>)
-> tensor<128x128xf32>
func.return %0 : tensor<128x128xf32>
}
transform.with_pdl_patterns {
^bb0(%arg0: !transform.any_op):
// Match matmul operations inside @matmul_tensors with test.attrA set.
pdl.pattern @pdl_target_attrA : benefit(1) {
%args = operands
%results = types
%attr = attribute
%0 = operation "linalg.matmul"(%args : !pdl.range<value>) {"test.attrA" = %attr}-> (%results : !pdl.range<type>)
// TODO: we don't want this, but it is the required terminator for pdl.pattern
rewrite %0 with "transform.dialect"
}
transform.sequence %arg0 : !transform.any_op failures(propagate) {
^bb1(%arg1: !transform.any_op):
%0 = pdl_match @pdl_target_attrA in %arg1 : (!transform.any_op) -> !transform.any_op
transform.structured.tile_using_for %0 [4, 4, 4] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
}
}
```
If we replace the `%results = types` with `%results = types : []`, the transformation fails.
https://github.com/llvm/llvm-project/pull/75812
More information about the Mlir-commits
mailing list