<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63370>63370</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] Bare pointer memref lowering crashes on dynamic memrefs
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
bondhugula
</td>
</tr>
</table>
<pre>
Bare pointer memref lowering isn't expected to work on dynamic memrefs, but shouldn't crash on such input either.
Reproduce on git version on `test/Integration/GPU/CUDA/gpu-to-cubin.mlir` for example, by adding the option `use-bare-ptr-memref-call-conv=1` to gpu-to-nvvm in its run line. The result is a segfault with a trace like:
```
Command Output (stderr):
--
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/uday/llvm-project-upstream/build/bin/mlir-opt -pass-pipeline=builtin.module(gpu.module(strip-debuginfo,convert-gpu-to-nvvm{use-bare-ptr-memref-call-conv=1},gpu-to-cubin))
#0 0x00005589c27a448f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x237948f)
#1 0x00005589c27a1f04 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f94f903c420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00005589c4b2db67 mlir::Type::getContext() const (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x4702b67)
#4 0x00005589c4a62b85 mlir::TypeAttr::get(mlir::Type) (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x4637b85)
#5 0x00005589c329aaf8 mlir::LLVM::LLVMFuncOp::build(mlir::OpBuilder&, mlir::OperationState&, llvm::StringRef, mlir::Type, mlir::LLVM::linkage::Linkage, bool, mlir::LLVM::cconv::CConv, llvm::ArrayRef<mlir::NamedAttribute>, llvm::ArrayRef<mlir::DictionaryAttr>, std::optional<unsigned long>) (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x2e6faf8)
#6 0x00005589c4160fad mlir::GPUFuncOpLowering::matchAndRewrite(mlir::gpu::GPUFuncOp, mlir::gpu::GPUFuncOpAdaptor, mlir::ConversionPatternRewriter&) const (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x3d35fad)
#7 0x00005589c413d6e7 mlir::ConvertOpToLLVMPattern<mlir::gpu::GPUFuncOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const LowerGpuOpsToNVVMOps.cpp:0:0
#8 0x00005589c49b8959 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/uday/llvm-project-upstream/build/bin/mlir-opt+0x458d959)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VltP6zoW_jXui5XKde4PfSgt3XMk9gEBm1fkxCuph8S2fAH670dOAm04-zqDRoLGt2V_6_uWvRazVrQSYI3SC5TuFsy7gzLrSkl-8K3v2KJS_Li-YAawVkI6MLiH3kCDO_UCRsgWCysRzR2GVw21A46dwi_KPGElMT9K1ot6srGIbnHlHbYH5Ts-mtWG2UNYa319wEJq7zAIdwCzRGSHyGb8vQVtFPc1hKWtcPgZjBVKhi7KiAPrEN3_JR20hjmhJKL7LzffEN1vv-02iO5b7SOnotpXQi77ThiUEdwog-GV9bqDAdsRM86DU-4AWOmwT9jdW4gqZiDSzkSjL1HNui6qlXxG8W4V9nIKT2fI5-ceC4mFs9h4iTshYYnvD4ANWN85LCxm2ELbsNB7Ee6AGXaG1YA78QQonpxGGZn-hu5W9T2THF97F1hCtLCOgzGIlu8mUTR-b64uN3eX2PqqFw4zXPkWG9DKuAD04Jy2wYbuAzXCHXy1rFWP6L7rnt8-kTbq31AHYoW1HiyiexwACFl3nsPA0qhfxeqnwYFJtDvH6ifMfa_fkZElIuWNUa1hPWam9T1IF0BgRPcH1QOie8_Z8cPhkdfWGWABVOVFx8NXBHmDiJHSDkeaWRtpoSEwjeJdWOeCzIr7oGzRan_qWGeEjjhUvhWyUYhug4xgXHSmH8ovfq16vkN0ex5YQQlajv5iRGOCySshhKRpUdY0Z0lSNHhgON6geGOPdmzcGCHdwNl9IBHR4rTIsJdH9UZBFsJUSIdoGfT_H5lD9IK80jgvk6KZ4V59wL1qSILvRCtZ9y8meQcG0WKCMQ7bZa2D1mT4f9-IThvlTZk0JYnrhBL8-GjAOmXg0bjJi05UiO5fi-wxS6JOSP8atdKPE9odDDC-tGpJBsSrJKFkhjc-x5tUlFdZjodLPlB4f9QwtlpwWyUdvLrh3BLXSlr3WVQmOaFVls-gJTNoLKNVkX6AtnHOvMNDtPgA_POkTrI4r4p0hi89xxfTkrGmOMN3dfXw9dTae1lf67E_nXOG9lpfhLEQHEOcns_A-CrfOeZgmj6F-J0LmeQWmrnV6P32u2g6IZ9YO6l6NXXCE65U9yObery4obndhuYMxMYYdgwY4u3J-G_WAw_6iMo7QPHlb9jsRB1cZeY4CjvYWMfH2TGrsA7FWy-H7Mtxp2Q7rPu8Sw1Zw5pipnQ2i8RVRhrGz3j6cvNtlPdqyuzjcM9cfdhIfgsvRgTtzgRvtf9gO6f-n_MbzrRTZr5sOzy_IZvfMOfAyOmsMY4--Y7GPE4bxmfM5HNmYp5B_g987lrfqxBME8iZ5t9hIr78NYHv9wLRzW9E1gPr_FsQ_il9g6pftL_W9l79_fDw9Vr_4M0uZmyUVVGm5c-O-3M3TzP_B8GTtOBlesrL70XVgq9jXsYlW8B6lRU5oUWeksVhzUuSZGXDizIrciBlWjNSVDVPy5wV2SpdiDUlNCbZKl-VJE3JsskbvopXWZk00KQQo4RAz0S3DHiXyrSLoYBaZ3Gck0XHKujsW81t1oNTlW8tSkgnrLMnMydcN1TnX6_-ukXpDv-0FB9qMbDfqbwX3nTr_77qG3D_JwAA__8AkNTm">