<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/118763>118763</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] -linalg-fuse-elementwise-ops crashes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wwy6191
</td>
</tr>
</table>
<pre>
git version: adf892d743d91afc1af7893f97c770db31c26916
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -linalg-fuse-elementwise-ops a.mlir`
a.mlir:
```
module {
pdl_interp.func @matcher(%arg0:!pdl.operation) {
pdl_interp.finalize
}
module @rewriters {
}
func.func @test_reshape_3_3_sparse(%arg0: tensor<3x?xf32>) -> tensor<?x?xf32> {
%c0 = arith.constant 0 : index
%c3 = arith.constant 3 : index
%c4 = arith.constant 4 : index
%collapsed = tensor.collapse_shape %arg0 [[0, 1]] : tensor<3x?xf32> into tensor<?xf32>
%c0_0 = arith.constant 0 : index
%dim = tensor.dim %collapsed, %c0_0 : tensor<?xf32>
%c3_1 = arith.constant 3 : index
%dim_2 = tensor.dim %collapsed, %c3_1 : tensor<?xf32>
%c1 = arith.constant 1 : index
%expanded = tensor.expand_shape %collapsed [[0, 1]] output_shape [%dim, %dim_2] : tensor<?xf32> into tensor<?x?xf32>
return %expanded : tensor<?x?xf32>
}
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/build/tools/mlir/include/mlir/IR/BuiltinTypeInterfaces.h.inc:242: bool mlir::detail::ShapedTypeTrait<mlir::RankedTensorType>::isDynamicDim(unsigned int) const [ConcreteType = mlir::RankedTensorType]: Assertion `idx < getRank() && "invalid index for shaped type"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -linalg-fuse-elementwise-ops /data/szy/MLIR/seed/seed0/tmp.I5Q4qvqwct.mlir
#0 0x00005627fa4f3048 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1188048)
#1 0x00005627fa4f0b5e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1185b5e)
#2 0x00005627fa4f39dd SignalHandler(int) Signals.cpp:0:0
#3 0x00007f749acf5420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007f749a33200b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007f749a311859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007f749a311729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007f749a311729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007f749a322fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x00005627faa1bd9b mlir::detail::ShapedTypeTrait<mlir::RankedTensorType>::isDynamicDim(unsigned int) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x16b0d9b)
#10 0x00005627fc9dc6eb (anonymous namespace)::FoldDimOfCollapseShape::matchAndRewrite(mlir::tensor::DimOp, mlir::PatternRewriter&) const TensorOps.cpp:0:0
#11 0x0000562800453851 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) PatternApplicator.cpp:0:0
#12 0x000056280045051b mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x70e551b)
#13 0x00005627fd9a9eef (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() GreedyPatternRewriteDriver.cpp:0:0
#14 0x00005627fd9a687f mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x463b87f)
#15 0x00005627fb36dc1b (anonymous namespace)::LinalgElementwiseOpFusionPass::runOnOperation() ElementwiseOpFusion.cpp:0:0
#16 0x00005627fd92f7a6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c47a6)
#17 0x00005627fd9300d0 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c50d0)
#18 0x00005627fd9326a2 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c76a2)
#19 0x00005627fd92af4a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x00005627fd92ab9d llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#21 0x00005627fd9d6d75 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x466bd75)
#22 0x00005627fd924b85 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b9b85)
#23 0x00005627fd924e2f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b9e2f)
#24 0x00005627fd92515e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45ba15e)
#25 0x00005627fa4d3b37 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1168b37)
#26 0x00007f749a313083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#27 0x00005627fa4d36ae _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11686ae)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWt1z4ygS_2vICxUXAn0-5EGJx3dTNVPJJbm6RxUSyOYGgxZQEu9ffwWSP-Q4H7uz3q27uqmZiQ1Nd_-6m1-DFGqtWCrOr0ByDZL5Be3dSpur5-dNGhXRRa3Z5mopHHzixgqtACkhZW1eYJbFhBURbZuItllekLbImixDrCZRg9MiSgEqASrtxjq-9utAiv5Z98r1MMpnKJ6l8NvjA0jRIGd4ZzTrGw6fhVuN8mspzKXuHISXUigql5dtb_kll3zNlXsWll_qzkI684I7VQCV4wgpIfQDKRr--i9rzXrJIciuASoh7JishHLcdLO2Vw0EMVpT16y4ATgHOKFmiQApAY46Jme644Y6Hwhc7FRMlXg_xa88zIBsHn5ubcbI8GcjHDd2t3or463vXHDcuspwu6Idr0hFKttRY_nEJei4stoAckNeAFm8tAQD8sU7dgnIl_2sn9vPH3gNcNIgCMgcUiPcatZoZR1VDvrBEgrF-IsX9XLklByZyo0q41Oi8WuVWkraWc6C-ODtbDtYBeRwBAtDcV4jgG9gBJI5SObwzQBAoZyeoh8jc4C6-gzuQZiJ9aGH4euB996nvcryA8Okij4RyMFqhT9jd9D4kd2TVqNTcPlLRxWbZmUY2-fkIHWvE6N71_VuK5xcD2BGdwOsV-l7N3lTPIa73qgjR8v3VowbbPz_iAyso80P6AxtuN_krwW2DBQICS8YdRTghf11A_Di-7ev9wAvpHxaXxouOfUbdPjaGf1v3jiAF3UvJAN44bSWFuBF4CW8EKqRPeP7gaDquhfSCfW46fhXTyctbbidrWZCNYCUOMbejVprCUd6A6Rk3FEhh88PPujML380VDhAbvZy91T94OwxBMpL-PCECWHnG0XXopn7NOW9Ch2B-VR4Mgnl4hN5o1VjuON-caiOd3Qnc-9paS03ni09lwv2AgG5gUvuvHigsgICnAKcQoCxUE9UCjbUI2y1gaGEGHReIcYAZ7ClQnI2A6i8-_alfPgCbV-vhYMU1v0SGt5p46DTcOVcZwNrLwBeLIVb9fWs0esxPa-zJKztuU8PpMq7EJID3YrDxlC7gjVtfoQq8bYfQtGwft0NNYNmMPy5M3pp6BpSs-x9f7I_XTS1UGOFhC74bhN8w5DlnivCD-TLcN3Nvib_iH95-uW5cUOXDIxDEEQvCCGUpDhradwSFOcwRCuk2G7s8OHOCOVCCB7DtsH5XsjQ50pbZzhdh8TebIsoZPsPCwTA1-glivIcxb6IRgDREQBUJ_wUgPtePYilovLvVDHJjd2V4jl8TOqE733Ex0EuGIMTbwDOx5gNw3bWdL7OUPg3aCGjlqzN4oI2bRJjBCt_XnDa8Mq4EYsUNcCLlzyt0tjXTv9yuVT9MNG5leGUzayeocHXOMZo72k8sUEIRqiGhgrrO8AO81KKurn81nzF6GX3Fc9I5EMY_Ad4MZv5bxvLeOe3WK_EyzDwFFxRvf8aVM88zSURIGU0upFM3fABLSCtdcD4OTccG-IQVgULubeQjRbSYwsZLjxJVYPHleVLv8-qJyr7T2MXynnkUlO2tsuGDnYTVHjro-HslOFKycqvqpheU6F-zl6R-aoh8WgwnxrEuGXpJyql8TWShhohpGXpvkaKSTXTqGZF_ed3pjNs27RGrKgHoJ5ZJtzYFKxJee0NU6XVZq17CxVdc9sFPiwG5xdasrlY37Y342kphGCYCzeMUrH74TYAcL6PxvYo4z_79Z2n0f30HXWOGzWuNIFmt6EYQnjbHXOGh3DAjjlCcULyJIJPWrADivS3D9-uK8NbQG7C7ECOu5Q0VErfDKtWTXI4ulV2nRQNdVsA7wG93d-lyo8x3rztZzgQTVSPCoawDCEKV6N3lGzB_pSS_cQ3vRQNlffc9tJ9Tu9YNwDHFQoDudRq6bP7Krgn8ouP8ouSqH4d0v_n5yfycw6qyRBPkuiAasgh1bCCFpy3H1HN3wznbDPNytyIJz4i6oxuuLX_0uaHFB5TOO-8vepEecVHbqV51h5UBO06uVVlS8U8-QX9Qm4mwb3ny1BR6bSiFkb_yrdOjHoeuDvIwaH04PkofaNVK5ZewNdZqNWzZCpOSZ1n7T5TyWFIapKyJvqwKXwLB_gv-6P7bbfordDqjtrxeGp6dasO9l7I1YkVJ5KUTpOE24ymb_Tj2-5R33beaslot-MD06ujvWDtq-3_NjGUisqNFfY7VXTpiWGblBt43LzPkaGkiTOa7jOUTeNBEGLoN8fjTnRcCnXMjV50BzP9wwM0pVtrvyrrTLhVanOCjw8FBsvDxOj7HTVcua-q1dsddbZdkjQJYmifg_woBzil-Mj1bTBOVuA0lufyOUsp3vtcHO0j2sYUdty02qzL0E_sB9de69h461xRw1nVOTNpPw-6Nw3_vjSAfHmD5DyqG60cf3GvEv5dCnPbue9UqIH-DpsVPJh9TRIYHYOri8Mz4LQx_p5OusPeK_FLz19h_87X2myu-7YdNsBOnvGW9tJVjEvu-Ntr_Fn0qM8fZ-DjA-tBkD6by7Pj2Xs3F1TyxvluaZ3ZvC6O9wrgjXPkn4nkncx8UJ7RtDxZyrLkALjtpHClYnfDkWbr619SdP-FW-JdicO5B2eEWt7z9s3hMx2y0pplyY6KMT5iq7jOk9P74H9tF5-n09VFnR-ElxyHl-P2zfCOB5NmRYcjSPlbS-aj2JwNM8f7czs-usrgJEr4H4L5rwFHo-0DZg8umT5gZqQmGRyfJJ7h8Xaa1yTbWz9-lkpQTmBVSVE3lXXUuOq3PNRsbL99ejx8DJNBT3i8ScL7MDLazo6Rp5TDweq5sKd0G_ndK8MLdkVYQQp6wa-ijBCS53FUXKyueBQhVqe4LlJEcNMQUqcI51EcFTjOEnwhrjDCcYRRgvI4TYpZTHOc5yknhGcpoimIEV9TIWfeyZk2y4vw1uoqivIsJReS1lza8HscGA8vFTFI5hfmKoCq-6UFMfL3f7vX4IST4Xc_woJk_v4rpvAujNuL3sir3_-KbfT36Qr_JwAA__8v-qSC">