<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108154>108154</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][tensor] -convert-tensor-to-linalg crashes in PatternMatch.cpp:182: auto mlir::RewriterBase::eraseOp(Operation *)::(anonymous class)::operator()(Operation *) const: Assertion `mayBeGraphRegion(*op->getParentRegion()) && "expected that op has no uses"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
axeabc
</td>
</tr>
</table>
<pre>
git version: 761bf333e378b52614c
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -convert-tensor-to-linalg a.mlir`
a.mlir:
```
func.func @tensor_pad_constant(%t: tensor<?x10xindex>,%l2:index,%h1:index,%h3: index) -> tensor<?x?xindex> {
%0= tensor.pad %t low[5, %l2] high[%h1, %h3] {
^bb0(%arg0: index, %arg1: index):
%c = arith.constant 50 : index
tensor.yield %c : index
} : tensor<?x10xindex> to tensor<?x?xindex>
return %0 : tensor<?x?xindex>
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/mlir/lib/IR/PatternMatch.cpp:182: auto mlir::RewriterBase::eraseOp(Operation *)::(anonymous class)::operator()(Operation *) const: Assertion `mayBeGraphRegion(*op->getParentRegion()) && "expected that op has no uses"' 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 -convert-tensor-to-linalg a.mlir
#0 0x000055cb90c58128 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d7128)
#1 0x000055cb90c55c3e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d4c3e)
#2 0x000055cb90c58abd SignalHandler(int) Signals.cpp:0:0
#3 0x00007f4d89c05420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007f4d8924200b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007f4d89221859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007f4d89221729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007f4d89221729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007f4d89232fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x000055cb93f008e6 (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x437f8e6)
#10 0x000055cb93f0006f std::_Function_handler<void (mlir::Operation*), mlir::RewriterBase::eraseOp(mlir::Operation*)::$_1>::_M_invoke(std::_Any_data const&, mlir::Operation*&&) PatternMatch.cpp:0:0
#11 0x000055cb93efe86c mlir::RewriterBase::eraseOp(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x
437d86c)
#12 0x000055cb93da9e8d mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4228e8d)
#13 0x000055cb93db196b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x423096b)
#14 0x000055cb93703afb (anonymous namespace)::ConvertTensorToLinalgPass::runOnOperation() TensorToLinalgPass.cpp:0:0
#15 0x000055cb93d4a2d6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c92d6)
#16 0x000055cb93d4ac40 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+0x41c9c40)
#17 0x000055cb93d4d282 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41cc282)
#18 0x000055cb93d45ab1 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#19 0x000055cb93d4570b 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
#20 0x000055cb93df23a5 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+0x42713a5)
#21 0x000055cb93d40b35 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+0x41bfb35)
#22 0x000055cb93d40ddf mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41bfddf)
#23 0x000055cb93d4110e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c010e)
#24 0x000055cb90c38d67 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b7d67)
#25 0x00007f4d89223083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x000055cb90c388ee _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b78ee)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVtz6yjy_zTkhYoLga4PeXAu_v9PVVInlWSfVQiQzI4MWkA59nz6LZB8kWNnMmfGM7VbW5XYFpfu_nX_aFpArZWNEuIGJLcgub-ivVtqc0PXglbsqtJ8c9NIB9-FsVIrQOYwS6OqJoQIkuVVgtMoZgDdAzQfPu3GOrHyA0GK_lH1yvUwymconqXw8e0VpOhwtBGd0bxnAv6QbjnOWrXSXOvOwWum1bsw7toJZbW5dvq6lYq2DaQzP-hI2NhIxkffG_7g8Fz3is38BwQxGiSWHeUl08o6qhzAOcCJ80YMvYDcAbJYR2gtFRdrQB4AvgM4aTEg86EpPC-jo2fiZYwNBbwG5GEq0f9vRUKQ3Q72QYATBMj9OHbWUe6bHGz1D5DcJgDfwUF7cg-Xsln6kAXtQ8eS-I69OAiSh6pCAyxqGnRgVZhATRMdWrrzHITQ9zPoraFGuuVs6ySYILifsxs9mryRouXbqUeDQHYPP_MtdPq8l7ZCjHC9UcFTH4V9nACy-9NcsI6yX6AzlIk9X06O3JIxcBMvOHUU4IX9dQPw4unx2wvAi7Z9X10b0QpqxfaxM_qfgjmAF4GTeNHKCuBFGP9MnRNGPVHHljPWdYDMo9xzCtLeabglMZm_iB9GOmFuveDQIgy14nsHcP69E4Y6qb0z5mPwyBzgnCqtNivdW8haau2uS4cJ2gQ-FCckwBBjb8bcWmGGnhSt6OZW_J-h3fJFND4H-Plz3XlaN8I9UyOUO-gqvCiAU4BTCDAW604wJzh0S-qg7uCSWqg07K2wAGOAM1hT2Qo-G_z9_Pgwf32Atq9W0kEKq76BRnTaOE-QpXOdDTgXAC8a6ZZ9NWN6Nbr9o_eltb1XtIBUcSgVa3suoFsKyAy1S1hR9kugwaj-NRCD96tuxws0A6h4NroxdAWpafqVUM7-NB-qXrbcf0s1suNruW6bIwiCaI0QQknCqgKxJI9wDgP6EGe7scOPZyOVC3jeAs9xvh9k6I9SW2cEXYVQ3UHpE6APXP4nogL4Fq0jxLNoYMYOQ3SEIWFEnMLw0qtX2Sja_j9VvBXGDhS7kJkxI2JiJj52Na04nBgEcD56bmi244JG4X8niIyCsjrmecFQEmMEy9II67QRpXEjoiFLrPO0TGMf_3593ah-6Ojc0gjKZ1bP0GBxHGM0sTeeqMExRqiChkor4AH4ppUVu35k3zBa7x7xjETelwEFwIvZzD9tLBedXz69kuuh4T1Yo3r_GETPGCDzxO8k0d6SZGoJjvKkgLTSAenXLHF88EaYFZTkXkm2V5IeK8lwARvhysHu0orGr9Xynbb9lz0glfP4W035yjaMDqoT5NNovtedndJdqrb0E0uuV1SqP6ayyDyJSLzXmU91Elzz9AvEYZ4yaaAMITVPJ5QpDilOaoRykV5iecUkq3Ox1-2TADrWjdIaWseHtV8uesX8LlQux7VG7t619PVFvt8jd7vYuA3iuy9uoOdFjDtpXEa-kBhseSqlete_-Cy6N3CuNqV30rhzDon0nNw0_BXwxO5_kCy8WybJkYha5Cn7o6AuEdLB4phkPE_ZJLCTvEk4LUTOTznmbtjzxNg-boG7bjvZs-bG0M2LqAG5OwPTF-gXQRpjnIucTzCSKcYqKtLqACPtunbzTI2TtB1g2qFCOheiQ-bsJ7xR0wh3hmALo38VauTDyKvXs6P3Qu-0qmVzMV8RVKTVxFfxxFcZIrSu4KRWVXQlbBfKlOLQXPcWyqE3_RiKoWdf0Q4VTK--qwMPhrLg4-DTKyyZxi6mmKcHnuLCUdlug_Smv3de1JzTztfPW_WTWAbDjsN4PsBzRduNlfaJKtr4KuIOVlq3_rtX4Y2cX7AiiyNWYD7NxemxS1iMfrdLnmUnWqnEEc390B3ST5PkT_nocJJX9U1ZZ0KV7t925p8NGDQPHaPtwwvNN1Xr7Tq6VP70YWAxmoQhOwoDxzk-sn7rj5M8_AvSfhwxhnM8MTs_MjuhVQQ7YWptVnP2MZd_fP_Y7ap2SY3gZef8fr-f8ap7w8RTYwB5OJPgPLA7rZxYuw9hf2ql-d65JyrH7Hcgo4AHvacTRnGML0PVwfvKo24ko-2LsH3rDtrrbQVjwrZ1bsJhUdEr-a9efID_JFbabG77uh5Wwm48FzXtW1dy0Qonzs_xlcyDn3k-CMWu3GG0bf2bcVmryW574KevhvPiePbW3UvaChbOIqwzm4_8-IwD-6oPBcF5q1Xz1yL5JDK_yVA8raV5jQlNDrDbrpVurviz0UxYuzX3b-Hdf-Cq-HTEYd-rM1I1vko913yhoiuLCE0OczKOjnIWqkhyejX8t63ly-x6VV2RqYfxsYc5r896eCxV2JIORcn89xLnt9xzMdic1xPYR28-cRQh8afA_lvwMRQhMcEXT0_9SM7TDI7nORc4dqwynmYTA44PzwjKCSzLVlastI4aV_6e0yVm--153vAzdAY54ZyJxNh_7tWnx_hzIeCg-FIeyMVBCHY3MFf8hvCCFPRK3EQZThEpiji5Wt7EJBdVlcUZiikpalaTOBdZLWpOi6zg9ZW8wQjHqIgilBGMk1lRMx7HUVUkSYUyJECMxIrKdubtnGnTXIWbgpsI5VESX7W0Eq3dXoqam4Cm6hsLYtRK6-x-npOuDdengb3JPUhux1up5P6TU_1w_SAslOrUidD_7oP47Ko37c3PX_iMkXy_wf8OAAD__3Mecas">