<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/120947>120947</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir] -convert-tensor-to-linalg 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: bc29fc937c6cb4a210f80c93c79fc6ed97c801f8

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>
}

module attributes {transform.with_named_sequence} {
 transform.named_sequence @__transform_main(%arg1:!transform.any_op {transform.readonly}) {
    %0 = transform.structured.match ops{["tensor.pad"]} in %arg1
      : (!transform.any_op) ->!transform.any_op
 transform.structured.rewrite_in_destination_passing_style %0
      : (!transform.any_op) ->!transform.any_op
      transform.yield
  }
}

``` 
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 /data/szy/MLIR/seed/seed29/tmp.QEAQVRHJ7x.mlir
 #0 0x00005652d744c508 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11ef508)
 #1 0x00005652d744a01e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11ed01e)
 #2 0x00005652d744ce9d SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f84ae664420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f84adca100b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f84adc80859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007f84adc80729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007f84adc80729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007f84adc91fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #9 0x00005652da567df3 (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x430adf3)
#10 0x00005652da56782f 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 0x00005652da5662fc mlir::RewriterBase::eraseOp(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x43092fc)
#12 0x00005652da40c3dd mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41af3dd)
#13 0x00005652da41236b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41b536b)
#14 0x00005652da25a8c8 (anonymous namespace)::ConvertTensorToLinalgPass::runOnOperation() TensorToLinalgPass.cpp:0:0
#15 0x00005652da3adec6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4150ec6)
#16 0x00005652da3ae7f0 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+0x41517f0)
#17 0x00005652da3b0dc2 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4153dc2)
#18 0x00005652da3a953a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#19 0x00005652da3a918d 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 0x00005652da454c65 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+0x41f7c65)
#21 0x00005652da3a3175 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+0x4146175)
#22 0x00005652da3a341f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x414641f)
#23 0x00005652da3a374e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x414674e)
#24 0x00005652d742cff7 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11cfff7)
#25 0x00007f84adc82083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x00005652d742cb6e _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11cfb6e)
``` 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWdty4zbSfhr4BmUVCJ4vfEEf9Gf-Gtc49uzeskAApLChAAYAPVKefgsAJUqy5Z1koqR2XbYl4tCHrz90N0lijOgk5zcgvQXp_RUZ7Urpm2_ftllURleNYtubTlj4yrURSoK4gg3FZUvLOKcZbRKCI9QWiJYxzcuWZpyVOS1Q1BYAVQBVZmssX7t9IEP_aEZpRxgVC5QsMvj56wvIUFin-aAVGymH34RdTevXvdDXarAQXlMlX7m215ZLo_S1Vde9kKTvIFm4VXs5AFXTSFxB6AYyFH7dRTtKunD_IEhQEFUPhNVUSWOJtAAXAKfW7Q2zIL4D8XIToY2QjG9A_ADwHcBpj0FchSF_vYpOrmMnYxoo4TWIH44lur-dSAjyW4AqCHCKQHw_LVwMhLkhC3v1DaS3KcB3MKhO7-FKdCsXM686TKxiNzHJgiB9aBoUHCK6Qwf2-NVEd9GhjSCu_D7oJil0dhAt7GqxwwamCM4bwtLJ0q3gPdvtO1wB8nv4EZjQqvOweAma21FLD81bSSerQX4fGLBWbOw5JNZq0YyWG4eK1USaVun1wjGslmTNWW34ryOXlHtDA3LzuuMljjJ1vZ-t10TIPbwOSoCjeS-R21oNx3o1J0zJfuvsxOU-UnDn3f2BbmP1SO2oOVusiaUrqAbjNriQ45kgADs2OOuF3Ec1CIUeL2_hG7t2nHxv6giCAzM0_6aF5bWQNePGCkmsULIeXAqRXW3stueBwj-s3__ME55eOz4dxvnobBtL6C9uF-WBy6cLdtkkmLVkxBKAl-a3LcDLx8-fngFe9v3r-lrznhPDd5eDVv_i1AK89GkFL3vRALz065-ItVzLRxehBR0GEFdR4VIDJKNVcMpDIK6eA3j61gn2I1wTw78MABdfBq49lhDgajqJjk0FkUpu12o0kPbEmP2U8huU9tiW70iA_sw6MypjuA4zGVqT7S3_P02G1TPvXDZ3-ys1uEh03D4RzaU9mCo9S3EGcAYBxnwzcGo5g3ZFLFQDXBEDpYKj4cbxEOewJaLnbAFQ9fT5oXp5gGZs1sJCApuxg5oPSlt35lfWDsY7uQR42Qm7GpsFVesJ87fQC2NGp2UJiWRQSNqPjEO74pBqYlawIfQXH3qn-8UzgY3rIRABLQKjnrTqNFlDortxzaU1f5gJzSh65j5dCljuy9T5KnVGi-GcTR8O7aVdD4ufH6qf__n80__nm1DHfGGIEUQbhBBKsxSzPEloigrosfKUMFsTvjxpIa0H4Ks_CbiYF2nyrVbGak7WPqp3ULiSV4ZD-qfBAPAt2kQRb1PkSRQciE4cICji7znwPMoX0UnS_0Qk67k2gYoXspGhiM824lOQecngkTUAFxNmYdhMpx75vyAlnqTkbZEQnmVJghGsa82NVZrX2k6-hDyyKbI6SxxPxs11J8cwMdiVqxYLoxYo2OqkzJYmhzoYJRFCDdREGJeC9z53vWjo9Wf6CaPN_hIv4shB6O0HeLlYuKutYXxwB2yUYhMGXr0pcnSXXvSCgrhKXamLJjPSYzMKVKQlJI3yPn6fGZYFHPwur6FwGvJJQ3aqIccl7Litg8W14Z07yvUr6cfv9l1I6zzvFWFr01ES9KbI5ddiUpy_p7iWfe121Uy58v9j-srcsSZOJoXFscIyaln2HUyhjiOZ50gctyybOVIespmkWc7a-BLHKIkRYW0cFLuTjk4VF7iFxrJwwOvlKKlvHVbTmYrvXpVw_WMxF8x9SZtqIr77zmp6XsRUVpM6cp1HsOWxFvJV_eLy5GxgJbe1Q2gqoyFVnpOb-d8SvtMK7JKCwyQ6wSTDLf1Rjy4UzBK3dA7mUU4kCaIxY--BcRdKH5_Gp0q4nzZHlajSmmyfeQviuzPeud7wMg5GpI0Zmx2Mjx2McJw1Bw6SYei3T0RbQfrgown90bmwHFJl3vCV6I7bM4xaavUblxMHJiK9nF09C71TshXdxYBq0jhrZqCSI6BwSgpawKM21d0wmcG3HeWhrfar74e-qs--G3pyzWzoSEb5RR7A5yv928XvnKf0yJiYME6zA4wYt0T0u_B8VV8GJ6diZHB98073URS9VacBPB_aSpJ-a4R5JJJ0rjG4g41SvfscpX-owi7YXiVRijjN5uBkJ3jwvEW_G48nMfBeSH7Cbrd07-aHyfAPAXS4yan6JN1dp6vq7han-mhB0BwmJtvDXcwn2ard8blYqozSKG_RHIP8OAYNYhSfmL4D410G_hXpPUpjRvFsc3HCmzKNCRy4djfeFX2bud_eQ-zrplkRzVk9WFfR5x0vatSUP3YaxA9nMprz6k5Jyzf2TcAfe6G_DPaRiCndHcgo4cHsO0miPHUuKtjBPcdn1QlK-mduxt4ejLe7BkX7CnVuw2HPMErx68jf-P7I10pvb8e2DQdgv57xloy9rRnvueXn97hG5cHtPB-Bct_NUNL37ka4buVRYT0A6XtjeXF_ZuvuBek59c8djNXbt-T4iABzU4e84KJXsvtrPfkgMh_TEx_3yUma0Cw9cNwMvbCVZE9aUW7Mzta_hXT_hUfiwxWHcy9WC9m5bvTc8IVScZvTLN2nYhydZKs4ytP3z8H_2im-DLxJFuUH8OJTeJOoPQvv1JjQFQktSPV7KfOfsLmYz0nUzj7Hpz7nCf9TfP6bnMsTPjuXHD-tw7Rtczg9lrnAs0Latm0-az999IVREcO67kVDa2OJtvXveUJEzbh7FBe--kkvxz8rihPs_k-6s1PPm4zDoPVSvjfZDvn9K5UrdhOzMi7JFb-J8jgpk6SIkqvVTZRQUpSMNWXGiyxpKG1bnpM4aqIoojG5EjcY4STCOEYlytJkUTQRI7zJcpIgSnALEsTXRPQLZ-RC6e7KvwC4iTAqk_yqJw3vzU14GRbeymCQ3l_pG-9UM3YGJKgXxppZghW29--5_Yb0_oOn9f6dAjdXo-5v_virisnY1xv87wAAAP__Mr6u-A">