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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]'-promote-buffers-to-stack' triggers LLVM ERROR' neither the scoping op nor the type class provide data layout information for memref<1xf32>'
        </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 on commit: https://github.com/llvm/llvm-project/commit/e0282cb4da9402de5712ac7855af6c71a03d0c19
The same crash occurred in [LLVM 16](https://github.com/llvm/llvm-project/tree/release/16.x)
```
mlir-opt -promote-buffers-to-stack test.mlir
```
test case:
```
module attributes { dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry<index, 32>> } {
 func.func @memref_of_memref_32() {
    %0 = memref.alloc() : memref<1xmemref<1xf32>>
    return
  }
}
```
crash trace:
```
LLVM ERROR: neither the scoping op nor the type class provide data layout information for memref<1xf32>
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/verify/llvm-project/build/bin/mlir-opt -promote-buffers-to-stack test.mlir
 #0 0x0000558f15ae105a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/verify/llvm-project/build/bin/mlir-opt+0x22205a)
 #1 0x0000558f15ade55c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f0c02368980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f0c01460e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f0c014627f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x0000558f15afac6d llvm::report_fatal_error(llvm::Twine const&, bool) (/home/verify/llvm-project/build/bin/mlir-opt+0x23bc6d)
 #6 0x0000558f1780e9e8 reportMissingDataLayout(mlir::Type) DataLayoutInterfaces.cpp:0:0
 #7 0x0000558f17813f7c (/home/verify/llvm-project/build/bin/mlir-opt+0x1f54f7c)
 #8 0x0000558f178141f5 cachedLookup(mlir::Type, llvm::DenseMap<mlir::Type, unsigned int, llvm::DenseMapInfo<mlir::Type, void>, llvm::detail::DenseMapPair<mlir::Type, unsigned int>>&, llvm::function_ref<unsigned int (mlir::Type)>) (.constprop.306) DataLayoutInterfaces.cpp:0:0
 #9 0x0000558f178144ab mlir::DataLayout::getTypeSizeInBits(mlir::Type) const (/home/verify/llvm-project/build/bin/mlir-opt+0x1f554ab)
#10 0x0000558f15dc10bd std::_Function_handler<bool (mlir::Value), (anonymous namespace)::PromoteBuffersToStackPass::initialize(mlir::MLIRContext*)::'lambda'(mlir::Value)>::_M_invoke(std::_Any_data const&, mlir::Value&&) BufferOptimizations.cpp:0:0
#11 0x0000558f15dbc20b (anonymous namespace)::PromoteBuffersToStackPass::runOnOperation() BufferOptimizations.cpp:0:0
#12 0x0000558f1739eea9 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/verify/llvm-project/build/bin/mlir-opt+0x1adfea9)
#13 0x0000558f1739f1ca mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/verify/llvm-project/build/bin/mlir-opt+0x1ae01ca)
#14 0x0000558f1739f548 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#15 0x0000558f1739e685 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/home/verify/llvm-project/build/bin/mlir-opt+0x1adf685)
#16 0x0000558f1739ee1a mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/verify/llvm-project/build/bin/mlir-opt+0x1adfe1a)
#17 0x0000558f1739fd03 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.495) Pass.cpp:0:0
#18 0x0000558f173a03ed mlir::PassManager::run(mlir::Operation*) (/home/verify/llvm-project/build/bin/mlir-opt+0x1ae13ed)
#19 0x0000558f173933f3 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x0000558f17393b29 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 0x0000558f17393e51 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 0x0000558f17459c80 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/verify/llvm-project/build/bin/mlir-opt+0x1b9ac80)
#23 0x0000558f17390b33 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/verify/llvm-project/build/bin/mlir-opt+0x1ad1b33)
#24 0x0000558f17394238 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/verify/llvm-project/build/bin/mlir-opt+0x1ad5238)
#25 0x0000558f15aad470 main (/home/verify/llvm-project/build/bin/mlir-opt+0x1ee470)
#26 0x00007f0c01443c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#27 0x0000558f15ac010a _start (/home/verify/llvm-project/build/bin/mlir-opt+0x20110a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWUtv4zgS_jXMhYhBkXoecnAexmaRIEES9GEuBkWVbG5LpJak0nH_-gUpJ5EcpzuZ9szOLBZItyWRrMdXXxVLIrdWrhTACUpOUXJ-xHu31ubkFHjzG3TrjTkqdbU5eQDrsFZY6LaVDrE5XjvXWcTmiC4QXaykW_flTOgW0UXTPD7_HHdG_wuEQ3SxXUoXQGhORRlXvIgJrSDJIspFlicJr1ORRZywioioQOQckfnDGrDlLWBhuF1jLURvDFRYKoyS06urL9c4SlFyjmj-aZOcAUB0YaABbv1VlM6eEN1qRinZ_oXbtpHmWHcOewGtdnBc9nUNxh47fWwdF1-xA-tmft5eAX4UC6-Izfdr0FXfAObOGVn2DixG2SmuGidnVbO0HQiM2DlGlI2fIXY2egLKmQ1iZ1JV8IToGWYUsQvELjDKzr28QRWueyVm_j-MYtJCa6Be6nq5vWIU0RzRYrQAY4xoQoIFw6wZbxotniey-fYxYmfR0-iyfrbgVZAB1xv1fI-y8y0cLxdTXIbIO8PFu9AFHlzc3d3ceUMUSLcGg53njtCdVCusO6z08MhtOsCi4dbizuhHWQGuuOO44RvdOyxVrU3LndQK19rgt74ElbdXF_P7C2z7spUOc1z2K2yg08Zhpz-fHtLaHiyiC8yVZ7do-gqCuYP7JRdfAwSzQf19YFzVt90LJmSGSHFr9MrwFnOz6ltQzhuBEV2sdesZ_ghG1pu36steNpX_lQrRxee57llJMHkihJAkyeso4RCRhOPgLZsjNrcbO1zcGqlcsP8hxJTmr5MM_7bU1hngLaKpJ7BULhDM8-z3eYHoKXmilJKEvyS3tzea2ltBkgh8L1eKN__gqmrAIJpv1Q-P7Ux0Hm8S_r0IoltBWU0EoSzNi5zg5dKAddrA0rit9Y0sEV085ekyjY8bqfqn45Xqh4HOrQ3wamb1jASDI1rkZGIvG6uJ4pRAnmHDpQU88n3VyFIcn33557ffypdbOqMZogsbvEB0MZv5u42toPOc65V8Gh48BmtU72-D6JlAbJ5EU4fjHUtoVkeYlzp4-jFLXDWgEVYFJfmOkmQanpqLtBrRaci1Zc0db5ZgjDYTIj18kwqw0Mq6LZFKrZuDMImVIq0mkUnHpmY5gQLybTG4ltZKtTrnjl-F-oJoHtJmsHLTgbfpdfhSOTA1F_AO17KpqojVmfhll6I6ietMTHzKdxTFUZ1gwcUaqiutv_bdHkfORvE5B2XhmneInb2d1qvQdlRDdu9bdqlqvXfpo5aVL8KTVRU4LpuphFvul_5M-bA1DQx5led3Rr8BLIfKP16B9wUwyAjUmgXKdUZ3M0bSz8W22IU85iV-1TXiULhfgfPq7-V3uFSn0tm91Ar2HIIhSczL1-aIsmha7ysRkbLC1lWD_uXiGcP1tpiyM5-CU_y-8KYPANIzP8CVVptW9xYr3oLtwvZQPG8bYSs6HXaiBx12kFtut7uKVNJJ3sjvMFFwfXV5d6aVgyeH6PxFGKJZw9uy4siXo30GeWIEP66XUj3qr17sq3NztVmGpmFcYd5IScNfgQebbzonW_k9dBZ7GOAhnW5JVSkoKX8RF9OrG3XTgQl6t-3ahw2iE0qyAoAXIz_HeXfTPeibziueV7xz2rzonwAcLPORGOM1sm9nZK54s7HSXnPFV35Hfi7ku0Xk1wt7xKsaeDHhONvxv44E_7T_t7KDRqopMYepL26lBwdkvMirulTWmdAT-q1y_qMJg-ZhYGv7LTegnK_Kz5SfHwZzIJHgE8zjXcyTOP805iPOz-1Gicu2axDNt03AT4rA4VTcdLfXYSsLhWB4psOq0K-EyvcnKN7uAl7Y_jxPdvM8zZMDY36Q_EzzZMKV9E19ij6fn3-n-hRNcyXbzZWKsP_Xp0l9GnVkceHZ84M0mDa9jBMG1Y4Vz37tJc8UloOUx4hBNQl5sRNyxmqGOzC1Nu08dFz2J6_UL22MXXMD1bJzvjl7XXGveyPgemUQu3inwdltqyZjjfStxTWX6kyrWq5GMgo8Gt0bA0p2_StpgTujBVg79C0fda9X8t89vHHvGlptNs-iRvMrqHnfuGUFDTh4f832neGjPo_nnUvegHB3sJLWmc2bF4-H8BXgNiTM_ENwRbtwQRKNFF7plRS8uQPbN-79N5z3Foyb3j8czveD-tqOC940JRdfl7WamD3C6S9Ij_1h_2DK7G1W_jJRoXmj1erPBfYHJv08YaavNHFSiJyMQmG7Rrq5qm53Ks5_w7u_YZL-cMZrK3CwnrAsuBh9J_UB3n1nIyVj-3Ptf61SHKLFjErGJnDuvo7FlOXvwrnt7MSaDz3cfEqIe2ekWt1B_RGnD_jekFCWT5za-bjMqzgjuOVS_bo2gDibEjKdfi6PmcgzvFw2shRL67hxy63mD306F7Z__oI_XIbBICd8R2dxPC142dRXQSLC8aD41z-Gkygi_O2Z6VF1wqqCFfwITqI0yzOSZ1F-tD4pCAOoS0ZZITglhKZlXWVQlwkjULLkSJ5QQhlhEYuiJGf5rK6qJM6TFIo6KfIoQTGBlstm5q2cabM6CmdnJ2nEsuSo4SU0NhxnU6rgGw6DiFKUnB-Zk-BZ2a8sikkjrbOvUpx0TTgH971tOFHO3j3-QjTDzsjVCozFo8NHmv3hh480O-pNc_L7DxgDTv8JAAD__9rM4sQ">