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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`convert-func-to-llvm` pass : crashed when calling `printMemrefI32` function
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          BealZephyr
      </td>
    </tr>
</table>

<pre>
    Test commit: https://github.com/llvm/llvm-project/commit/e7281c6f614230860cd18a9d1f24612c5c38e9ca

Steps to reproduce:
```
mlir-opt test.mlir -convert-func-to-llvm=use-bare-ptr-memref-call-conv=true
```
Test case:
```
module {
  func.func @main(%arg0:memref<*xi32>) {
 call @printMemrefI32(%arg0) : (memref<*xi32>) -> ()
    return
  }
 func.func private @printMemrefI32(memref<*xi32>)
}
```
Crash trace:
```
Unranked memrefs are not supported
UNREACHABLE executed at /home/ty/llvm-project/mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp:550!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/ty/llvm-project/build/bin/mlir-opt test.mlir -convert-func-to-llvm=use-bare-ptr-memref-call-conv=true
 #0 0x000055581c33260a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ty/llvm-project/build/bin/mlir-opt+0x22b60a)
 #1 0x000055581c32f89c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f8bf3898980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f8bf2549e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f8bf254b7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x000055581c34c1ba (/home/ty/llvm-project/build/bin/mlir-opt+0x2451ba)
 #6 0x000055581d62d8f5 mlir::LLVMTypeConverter::promoteOperands(mlir::Location, mlir::ValueRange, mlir::ValueRange, mlir::OpBuilder&) (/home/ty/llvm-project/build/bin/mlir-opt+0x15268f5)
 #7 0x000055581d5780c4 (anonymous namespace)::CallOpInterfaceLowering<mlir::func::CallOp>::matchAndRewrite(mlir::func::CallOp, mlir::func::CallOpAdaptor, mlir::ConversionPatternRewriter&) const FuncToLLVM.cpp:0:0
 #8 0x000055581d56fc9a mlir::ConvertOpToLLVMPattern<mlir::func::CallOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/home/ty/llvm-project/build/bin/mlir-opt+0x1468c9a)
 #9 0x000055581dcc4cd8 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/ty/llvm-project/build/bin/mlir-opt+0x1bbdcd8)
#10 0x000055581e01fa19 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (/home/ty/llvm-project/build/bin/mlir-opt+0x1f18a19)
#11 0x000055581dccf6a7 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#12 0x000055581dcd0308 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#13 0x000055581dcd3dc0 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1bccdc0)
#14 0x000055581d5769bf (anonymous namespace)::ConvertFuncToLLVMPass::runOnOperation() (.part.541) FuncToLLVM.cpp:0:0
#15 0x000055581d5775c5 (anonymous namespace)::ConvertFuncToLLVMPass::runOnOperation() FuncToLLVM.cpp:0:0
#16 0x000055581dc529be mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b4b9be)
#17 0x000055581dc53813 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.510) Pass.cpp:0:0
#18 0x000055581dc53e9d mlir::PassManager::run(mlir::Operation*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b4ce9d)
#19 0x000055581dc47e13 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x000055581dc484e1 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#21 0x000055581dc486d1 mlir::LogicalResult llvm::function_ref<mlir::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&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#22 0x000055581dd1a5e0 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1c135e0)
#23 0x000055581dc437f3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b3c7f3)
#24 0x000055581dc4601e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b3f01e)
#25 0x000055581c2fe570 main (/home/ty/llvm-project/build/bin/mlir-opt+0x1f7570)
#26 0x00007f8bf252cc87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#27 0x000055581c3113da _start (/home/ty/llvm-project/build/bin/mlir-opt+0x20a3da)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWVtz4yj2_zTkhbILga4PeXAurul_Jf-kkuw8zIsLwZHMtoS0gLqT-fRbQnJs2UnaGffMzm5Vd2QkONffuQDcWlVqgHMUXaDo6ox3bt2Y8wvg1W_Qrl_MWd7Il_MnsA6Lpq6VQ2yB1861FrEFoktEl6Vy6y6fi6ZGdFlV3zaPWWuaf4JwiC7HpXQJCU0DERdxEFJG0pgIGaQ8k0FBwzigIhIshUxwRK4QWQx_Hx20FrsGG2hNIzsBPethQkzGf35YV8rMmtZhB9bN-xGeiUZ_A-NmRafFzDUzLyC76izMcm5g1jozq6E2UMwEryo_H7ErZzp4k8dgCm7fF6KRXQUYJRfDGOOe9bz_g1FIaq40oimiETclQWwxMEfsEtHFs2IUsWtEs531vVj9ytYo7W797C-M7tDoZ7MFRjR9h9YMsWvsF2QbmTA24DqjN2OUXI0_t9K2Rn3jDt7k_Tan0SAbWnuWuTTcrrEz_H0P_kMbrr-CxAN9i7kBrBuHbde2jXEgx3n__3C9uPxlcXFzjeEZROdAYu4wost1UwOiS_dyCMMeEf1blSO6vPTAsKrRiC5vbn69vWzq2g-eXloYvjowc9G2iC2iiCAaDMzvb64Xj9fYdnmtHOY478oem41xPUo_HRzK2g4sokvMtcRKi6qTgN0asPAGy7n46o0238QDF1-x7Or21Ypkjkh2b5rS8BpzU3Y1aGcHUHxkkLxTleyfPSaXf0r4YEQZweSZEEKiKEoDwRiNCccDpQViC_tihx_3Pcq8ek8eJDTdTjL8-6qxzgCvEY0RvcRKOw_9HtefVxLRC_JMaR4Tvg0LRFkwlZUWaSbwoyo1r37hWlZgEE1H1sNrO0KE-P-vhOhIKCnSvGBplmYpwauVAesaAyvjRskHND6n8SoOZ5XS3fOs1N3woXVrA1zObTMnXuCAZimZyMt22dAozCBNsOHKAt7RvaxULmaXv_7f99_y1yGd0wTRpfVaILqcz_vRi5XQ9nDstHoeXnzz0uiuH3rSc9GHRDBVONyTJE-KAPO88ZoeJ4mTgzX8Ks8k3WMSTd0TiiDnp0EgjIJ8CoF4l4eMqUyLCPvc4ZHY54pJihhet6apGwd3LRiupe1z5HZJI7jzmeZyh9CvvOrggesSjnt_1170evQIjE9FfhDROC2iid7JRO8oSYkIeyZcN_qlbjqLNa_Btj40s0GmS15Vd-0X7cAUXMBN8x2M0iVil1u5-9yxO7uvFX5YcyfWCy0f4LtRDiYmO1g0McX-14XkrWvMdNI2w99z58Dokc_GfqLR1uFlp8VT0zv17ThOp1aJC5HxAyburh1ojJxO19_jaMDMoldrmwkXxvCXB1989zDji_DnLXASjsI4Fdk0frKJxYQIhUw_Eurzxth--dP0ynMp5LZj6ivDpIwBCQoeZIeiLNq2UoL3aPzJeu2CoMdUv3A1dGF501R4QnokMJhiMMsIj3eJfGuUPJnIbtIrleDVA9iucsfRPTGnFUHKg2zis2APi0XMkx_ltFev3EDJK_X7JsNX4_BIF_4o-K4Ur0C47bTD_NNrQKcaSMJIerQGezVKbJLV-NlOWqw3E8tEv08D6ErxUjfWKTHx8pGqsz3VmRRkx8C8bauXe26c4tVuN_9J7zxxU4IbI2w7YWma32Hjs9GDj-B2MLtriSvQFh7BvW-7w-m3vP2ii-bDJb1Jfb249i9ODJBcCCnIJEDCvaIfZ3nxw6I_wGhbOe-5HVt40-k7vaNEOso8b7lx8ygM-vFHJbeXKdqTKYlE9LNl-pEM0yZQRDTLYQcdEhxX1cZnT81d2_PbtCEbtntJz9oDGL4P0IXm1YtV9pZrXoJvbfos3z877U9t5M_YAgV5mGc5TDCR7OnO0oB9Wvd71UKl9H627Ke-qhT_dGNMa6i1X7R1xm-H--7woMjuThg4Dx9G2e-5Ae36IN2E_SYG537cmqadR4E_gumJvQ2ldN-ckMk9KTZ6vQmcqVlOdreATE7cvdevhQkEDLdgisbUC3FYJw634tbJcSu_5gbkqnUGscvtisemMwJuS4PY9SSBbpW8vfnycNloB8_uwE-3lTJ3rbvlqi9ohSp3Gwe88_VN-1Oyp18aQoBb0wiw9qIrCr-lP0q9Tqt_dXCg3i3UjXnZkNqZL6HgXeVWEipw8P6aMcEfq_PuvLGUPkCprDMvB4XpyZ8g3PtgWRxlrmDfXLEM8Htt3R_pA_86c77v1Ox1EyZ4VeVcfF0V013bjp3-hvB42-1HhswwBdGk4nUuOaLJ38krNK0aXf61hv1ApB8HzLRDlwGPYLdNtW2l3ELL-72M85_Q7r8wSD-csW0DhueJxVEELIJJf0z39iAhSwr2dpz9r2WJE_sMJpKCTUwZ7pkyJgG8a8qxmxNrPvRtexuoR2eULvvN6hEK_xRs5KwgwaRPptPDaFpAlBBcc6VPPMZIomQKwnh6tE6FSBO8WlUqFyvruHGrketRx-zCdpvT_uGn_-jp-DN3FobTBJdMD92DgEmOB8annb0TzuT27PD1LvBMnjOZsYyfwXkQp4TGcZiGZ-tzlmVhnABhMg4zxgvCuaQJIbkEJjIiztQ5JZQRxoKAhgEN54yEUZIDpBmBIkwFCgnUXFXzXsp5Y8ozf_12HgdpQs8qnkNl_WU4pRq-Y_8RUYqiqzNz7jXLu9KikFTKOrul4pSr_C1638ei6ArF5M2rs5jgllvrL2z99R5I_H0N2t_yKl1iFO9ftsYEb9L2WWeq8z9-weiV_HcAAAD__7QY2LM">