<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131439>131439</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] crashed on `allocateBuffer` when using `-finalize-memref-to-llvm`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sweead
</td>
</tr>
</table>
<pre>
test commit: [bbd1bb4](https://github.com/llvm/llvm-project/commit/bbd1bb40573dd5a36dc04af4ad307d6e16456f89)
step to reproduce:
```
mlir-opt test.mlir --finalize-memref-to-llvm
```
test case:
```
module {
func.func private @main() -> tensor<4x1xf32> {
%alloca = memref.alloca() {alignment = 64 : i64} : memref<4xf32, #spirv.storage_class<StorageBuffer>>
%expand_shape = memref.expand_shape %alloca [[0, 1]] output_shape [4, 1] : memref<4xf32, #spirv.storage_class<StorageBuffer>> into memref<4x1xf32, #spirv.storage_class<StorageBuffer>>
%1 = bufferization.to_tensor %expand_shape : memref<4x1xf32, #spirv.storage_class<StorageBuffer>> to tensor<4x1xf32>
return %1 : tensor<4x1xf32>
}
}
```
Crash backtrace:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/workdir/llvm-project/build/bin/./mlir-opt test.mlir --finalize-memref-to-llvm
#0 0x000056028373c158 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12d3158)
#1 0x0000560283739c7e llvm::sys::RunSignalHandlers() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12d0c7e)
#2 0x000056028373cb61 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007f4e3c584520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f4e3c5d89fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007f4e3c584476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007f4e3c56a7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x0000560283728ecf (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12bfecf)
#8 0x00005602865ecb95 (anonymous namespace)::AllocaOpLowering::allocateBuffer(mlir::ConversionPatternRewriter&, mlir::Location, mlir::Value, mlir::Operation*) const MemRefToLLVM.cpp:0:0
#9 0x00005602865ff0e2 mlir::AllocLikeOpLLVMLowering::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/home/workdir/llvm-project/build/bin/./mlir-opt+0x41960e2)
#10 0x0000560283a4c954 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::ValueRange>, mlir::ConversionPatternRewriter&) const (/home/workdir/llvm-project/build/bin/./mlir-opt+0x15e3954)
#11 0x0000560286896596 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/workdir/llvm-project/build/bin/./mlir-opt+0x442d596)
#12 0x0000560288fe5622 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) PatternApplicator.cpp:0:0
#13 0x0000560288fe231f mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x6b7931f)
#14 0x000056028689760d (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#15 0x00005602868966a7 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x442d6a7)
#16 0x000056028689784f mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x442e84f)
#17 0x000056028689da9b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x4434a9b)
#18 0x00005602865ec5eb (anonymous namespace)::FinalizeMemRefToLLVMConversionPass::runOnOperation() MemRefToLLVM.cpp:0:0
#19 0x00005602868358a3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cc8a3)
#20 0x0000560286836142 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cd142)
#21 0x000056028683891e mlir::PassManager::run(mlir::Operation*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cf91e)
#22 0x0000560286830e9b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#23 0x0000560286830af3 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
#24 0x00005602868dc065 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) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x4473065)
#25 0x000056028682a752 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c1752)
#26 0x000056028682aa03 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c1a03)
#27 0x000056028682ac12 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c1c12)
#28 0x000056028371b8df main (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12b28df)
#29 0x00007f4e3c56bd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#30 0x00007f4e3c56be40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#31 0x000056028371b435 _start (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12b2435)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWltv46ra_jX0BjXC4ONFL9y00bekVq3a0bqNMMYO3zjgDbiH9eu3sJ34kKSdzmTW0t7a0kwTA355nvfEC4QaI0rJ-RUIrkFwc0Ebu1H6yrxyTvOLTOXvV5YbC5naboUFJIUguM6y3MsyHwQ3AMcba2sDSArwCuBVKeymyRZMbQFeVdXL7uOy1ur_ObMAr3pReNWLQUFE8jygJMwZ8mnh05ygKA-5F_pBWMQJwAlAKUCpsbyGVkHNa63yhnE3LUpBiPp_KN1WQl-q2kKHeuGe4OVlISStxF_8csu3mheXVl220KavApR2VKk5JljlTcUhiK4BSiEsGskW7g-stXihlkPgoy0VEuAY4AReAnILLZdGaUCW_pv3VhDs2noBAAe0qhSjEJAb2OFadC29BBBd00qUcsulbQeFPnT6F6EPopv2a_daK99Jx0sIMDG10C8LY5WmJV-zihoDyPK5e75uioJrQG7dP8cDOiT8raYyX5sNrfkYz7R9QOxc5Rq5-TznA8ENVI2tG7sbGVz7u84z4IRCWjWW4f0aW6-lmLV94i9qhZILq9adsY6oI_3luZ3PHvGFHpLmttFyhyw9ORJEN84nu79Tv11qajYwo-y71fRYWDze3abPt9A02VZYSGHWlC6KlLYO25dDWBjTcAPwClKZQyFZ1eQc2g2HbIpkAVD6bCn7DvNmW3e40AKg5FGrUtMtpLpsnIebNrXg1UZtOcCrV6W_50Ifzpw1osrdp4u01QLg1Rcj3hkOQfSGEEJBiHBMIsK8IIZtP0kBSc276b48aiFtC_9bq1YcD4M0fV0rYzWnW4BD5xFC2jZuXfj-Ag-Ar9Gbh3PiBXGX-RxkbwY5YRE_Bvmpkc-ilLT6PyrzimuzyyZnQoVYxAdUeK7ILPTgZH6A41YvS2hEKWSh1hbg1D2_KJG3X5P-DbNgtXMR1P7vJiD9BFHhc8KC2A8w6rlUIgN49RaH69C_rIRs3i5L2XQdbGHUImwx-zjAaEDsTwXmcVIwWNuN5jRffxdV9TXpSZgUbJAezOH6UQhL09L7Kmw_CgfB4VRwSKOCQJq5-P2SWBxHBRnERlP74Ziz4lyukhWcFcNU8XiqMOAsSwI3FZVKvm9VY6CkW27qNs6SzpnTdr15qO_UK9dCll1rtwrZXYbFsZu461oq-cK1EUo-Umu5lk_8VQvrRrUhOoy8cyKEktPWP2nV8GnTQ811P7L1VaaksfCeb5948U3d3f15f8RtkynZokAcj2S2vO7Ed_5QOwFTeltq2SaVeQ99wm8KZjlKAKnW9P2pXaTmdMjtlNHHStoxPIsX-F4SIo77Ag4Tb5p5qc-SwP8I2u9RyROV5T-qFy_gJAn8QS-T9B7GSRgk4Xn1MvT8fqv7OA-ScGA3WSbiggchxm3-H1nL1dIO7rqrtNrebu1qayg3hNGqcpXFupATm_aE0rquBKNW6XNrZ3kaZ6ZUm9kPBHQK7ZTbu9qnZH9JyNBxp0rBaPXETVPZH5PbJ1yA_TVqG-JKydL5xYFyZ-nO2ZfM7IuJVxyq9H_2-QX7nCcywyxKiFcMkenP8k4UovyzVXlvmztetkV2j73qH3_QkJ-l2xtBK87sMOyI4wXztBnS6Nja3QmxO6Sse_zJ0mFeEZwtZ4Y0GiwTzi0T-8WPU9t3m8mm5eiSOOFzRmfzfcxjf-Rs0YxSTpNsRInWdfX-SLUVtBqs8WVv-kZ1ye0ogsbDVlr9xXem7Q39fHL0IHSpZCHKM6qG-DTJBtUcVMcBzz6Lw1W_xx3XomMvNv2WUDfyQY401-4HPyhgHZ5pARuTIKZkpJicWyqqnU2-qYfaTZfmtN5nd93IWWYz5sBqp-2ZSlq9G2HuqaSlC8IldKncfTayPbLMz7rh9gljMSV7i2A000Do-fjLGngUNa-EnKdEN3RP7MPs8lMqmS6XxvwhjdXtKYvSR9bT8YBu5q6jx_5INZf2D1moXZScMesRlnv-sD_AszqYxInHZ2B39I962e_JzYQViccHlHiGEvEkgzXXhdLblB2m3cOzImPz_uBmQzXP17XVkxLhWTWa8ftSA3J7Ijnd3_3xtFTS8jd7YNT7SuiH2t5T0WeucUEBR72HoY_JnBwtCDxVvPxMtbPn3kjxr4YfcL_nW6Xfd7v7ka5yXtCmsuucV9zy0-90572TWmxugc83FSMl_agtfzufAV1fHD3xUhir3w-d4yMHOFHr_51MPrDMJ-45q1hzhsJgRNzUlbCpzB-1YtyY_RnRP0HtPzAkPhwx7nu2WsjSlZKnms9WKkUEhcGQfGc1P6ZRgI97_n9b3J5tNfOiYLTmhnOFUkROKrQvMNiGdqVE-lW3-EwbZ2RJ0aiei-YsmXfabb7C8m-jw7yR0eLpyb2XxXkBt1TIsx3f4zgf9m44mV1AZHnyxYsYnOQJ2gvc38HtBXIfwfXavbM2lmq7HrH54Sm4P5rCm-vIJwHshJ9PSz7pc1OaKW15e3rClObthSfP979d2N_GXuRXJE9IQi_4lRf5GOEwCLyLzRUOw4L7CLPQi-MC-QHlNPBwwCNMC8a8C3GFEQ4Q8QIUe0HgLZLEI4iiKMcRyXniAx_xLRXVwtFYKF1etBe1Vx7xfJJcVDTjldn90kNftWSzpjTAR5Uw1gzvWWGr9jchrsoEwU13r8tzqCQEIZpdwYQIvm64hI0RsnT9J-9fQ3TR6Orq5y-ceyovV_jfAQAA__8CbbGK">