<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/109128>109128</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] [transform] Attempt to generalize a convolution
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
iviarcio
</td>
</tr>
</table>
<pre>
I'm trying to generalize a linalg convolution (see code below) and the compiler crashed (see the file
[crash.txt](https://github.com/user-attachments/files/17043886/crash.txt)
attached).
// RUN: mlir-opt "$1".mlir --pass-pipeline=" \
// RUN: builtin.module(transform-interpreter{ \
// RUN: debug-bind-trailing-args=linalg.depthwise_conv_2d_nhwc_hwcm},canonicalize,cse,symbol-dce)" \
// RUN: -o "$1"_opt.mlir
// Original depthwise_conv_2d_nhwc_hwcm to be converted into generic.
func.func @depthwise_conv_2d_nhwc_hwcm(%input: tensor<2x4x5x2xf32>, %filter: tensor<2x2x2x3xf32>, %output: tensor<2x3x4x2x3xf32>) {
%depw = linalg.depthwise_conv_2d_nhwc_hwcm
{ dilations = dense<1> : tensor<2xi64>, strides = dense<1> : tensor<2xi64> }
ins(%input, %filter : tensor<2x4x5x2xf32>, tensor<2x2x2x3xf32>)
outs(%output : tensor<2x3x4x2x3xf32>) -> tensor<2x3x4x2x3xf32>
return %depw : tensor<2x3x4x2x3xf32>
}
module attributes {transform.with_named_sequence} {
transform.named_sequence @__transform_main(
%arg0: !transform.any_op,
%conv: !transform.op<"linalg.depthwise_conv_2d_nhwc_hwcm">) {
transform.debug.emit_remark_at %conv, "Input conv" : !transform.op<"linalg.depthwise_conv_2d_nhwc_hwcm">
%res = transform.structured.generalize %conv
: !transform.op<"linalg.depthwise_conv_2d_nhwc_hwcm">
-> !transform.any_op
transform.debug.emit_remark_at %res, "result" : !transform.any_op
transform.yield
}
}
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVk-PuzYQ_TSTiwUiQwhwyGE3-UX6XVqpUs_I4Alxa2xqm022n74yJCHZf12pVSQTYOb5-c0zHu6cbDXRBrJnyHYLPvijsRv5IrltpFnURrxufgLmHfP2VeqWecNa0mS5kn8T40xJzVXLGqNfjBq8NJoBFo6INUYQq0mZE2DJuBbMH8PTrpeKLGssd0cS1-jw7iAVMUh2kDxB9jwGxP7sIdsBFkfvewfpE-AecN9KfxzquDEd4H5wZCPuPW-OHWnvAPcBKlyXebJKi2INuJ_xsJwmmVJIAJbxZdppHKdgv_3-C6RPrFPSRqb3DBABV0tAjMMzFkU9dy7qZU9KaoJ0B4gMsu1HKPUglZc67owYFAEW3nLtDsZ2kdSebG_Jk4X8-TMAQfXQRrXUIvKWSyV1G3HbOkh3Uw1iQb0_nqSjKlSjQlHp46mpjqemg3wHuG24Nlo2Y-nCrQuje-1qoyLRUNDl8wUwFpk7CSrT-1GGD4T71co2UGJfMApGqmn0DVlPgkl9tZZsLtU4DLqJw8BglXy1OiwAM6n7wQemnrQzFtItnlfn7IznQ4qQ_gDcMsDsIFUQ-jEu_NLHODP493jpefUQWTLInyeyLCQJ6k8M0h37RkkuWYwFDCak4mH3uDFdkHYE6XYJ6Q_2hoNcry4snbdS0HczWDDBPKnU7l63e3He5r9V8VPhyhnfDP6CPwn5FvO9klHg-HnEBdmSH6y-0_or1MmU12VP47QBGffeynrwQb78-bYZ45P0x0rzjkTl6K-BdEOQ7-YyX3nMGY_BwapVdXtbdVzqoMNNGMCM2zYJxAGXMwzXr5XpAbcPocE270JND-kWEL9hMnzn0wv8jDZ-WGLqpK8sddz-WXF_m3q0Bf4MFmHTA2T_nc-DkuM67cXGM6jzdmj8YEnEdwfOldfs4_-LzgQ2mvCDurC3nP9dPxsOoFE-S25Q_kPpLlX_FPxVkhK3D8zNydc_C7FJRZmWfEGbZY7r9RpXWbk4buhQiyZP1rw4FE1TiyxdF2tBKZVNmTVlupAbTHCVlMtiiZinRVwscyqXeblOkgzrhsMqoY5LFSv10sXGtgvp3ECbZVIusVgoXpNyY9-AOJ4DiKGDsJsQH9VD62CVKOm8mxG89GrsNcaEbMcgm7deuH_ynrrev-sy7tqLxWDV5otmIEx2uUS9NX9Q4wH3I_exIZjov2zwnwAAAP__PbzJPg">