diff options
author | Ingo Müller <ingomueller@google.com> | 2023-07-12 09:55:06 +0000 |
---|---|---|
committer | Ingo Müller <ingomueller@google.com> | 2023-07-12 13:30:15 +0000 |
commit | ab86b8cef4b04c6d078e9533353d16ac1843fc40 (patch) | |
tree | 82461e6799f110f91fe467f8ff9e939ba1655c51 /lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h | |
parent | 58d1eaa3b6ce4f7285c51f83faff7a3ac374c746 (diff) | |
download | llvm-ab86b8cef4b04c6d078e9533353d16ac1843fc40.zip llvm-ab86b8cef4b04c6d078e9533353d16ac1843fc40.tar.gz llvm-ab86b8cef4b04c6d078e9533353d16ac1843fc40.tar.bz2 |
[mlir][linalg][transform] Fix printing of TileToForall in edge case.
The `static_(num_threads|tile_sizes)` attributes of this op are
`DefaultValuedOptionalAttr`s, so they can be constructed *without* such
an attribute. In other words, the following is a valid op (note the
absense of the `static_num_threads` attribute):
"builtin.module"() ({
"transform.sequence"() <{failure_propagation_mode = 1 : i32, operand_segment_sizes = array<i32: 0, 0>}> ({
^bb0(%arg0: !pdl.operation, %arg1: !transform.op<"linalg.matmul">, %arg2: !transform.op<"linalg.elemwise_binary">):
%0 = "transform.structured.match"(%arg0) <{ops = ["test.dummy"]}> : (!pdl.operation) -> !pdl.operation
%1:2 = "transform.structured.tile_to_forall_op"(%arg1, %0) <{operand_segment_sizes = array<i32: 1, 0, 0, 0, 1>}> : (!transform.op<"linalg.matmul">, !pdl.operation) -> (!transform.op<"scf.forall">, !transform.op<"linalg.matmul">)
"transform.yield"() : () -> ()
}) : () -> ()
}) : () -> ()
However, the custom printing directive converted those to an `ArrayRef`,
which crashes if done on an empty `ArrayAttr`. This patch changes the
signature such that no automatic conversion takes place and extends the
test to test for existinnce of the attribute.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D155062
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h')
0 files changed, 0 insertions, 0 deletions