<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/74940>74940</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] --gpu-to-llvm crashed in AllocaScopeOpLowering with assertion failure "cast<Ty>() argument of incompatible type!".
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
anonymousMCS
</td>
</tr>
</table>
<pre>
It has similar stack trace as https://github.com/llvm/llvm-project/issues/64288 , and both of them use ```----gpu-to-llvm```
git version: 5fc76e6b6da7986574596134d83872b460c332cc
system: Ubuntu 20.04.6 LTS (Focal Fossa)
reproduced with: ```mlir-opt --gpu-to-llvm a.mlir```
a.mlir:
```
func.func @func2() {
%c2 = arith.constant 2 : index
%149 = memref.alloca_scope -> (tensor<?x25xi64>) {
memref.alloca_scope {
%239 = arith.cmpi eq, %c2, %c2 : index
cf.assert %239, ""
}
memref.alloca_scope -> (tensor<9xi16>) {
%alloc_169 = memref.alloc() {alignment = 64 : i64} : memref<9xi16>
%244 = bufferization.to_tensor %alloc_169 : memref<9xi16>
memref.alloca_scope.return %244 : tensor<9xi16>
}
%alloc_130 = memref.alloc(%c2) {alignment = 64 : i64} : memref<?x25xi64>
%201 = bufferization.to_tensor %alloc_130 : memref<?x25xi64>
memref.alloca_scope.return %201 : tensor<?x25xi64>
}
return
}
```
trace:
```
mlir-opt: /data/bin1/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = mlir::memref::AllocaScopeReturnOp; From = mlir::Operation]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' 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/bin1/llvm-project/build/bin/mlir-opt --gpu-to-llvm a.mlir
#0 0x00005588d71d23ff llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/bin1/llvm-project/build/bin/mlir-opt+0x16573ff)
#1 0x00005588d71cf454 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f1e8daa8420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f1e8d59300b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007f1e8d572859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007f1e8d572729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007f1e8d583fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x00005588d96467d5 (anonymous namespace)::AllocaScopeOpLowering::matchAndRewrite(mlir::memref::AllocaScopeOp, mlir::memref::AllocaScopeOpAdaptor, mlir::ConversionPatternRewriter&) const MemRefToLLVM.cpp:0:0
#8 0x00005588d9638d4d mlir::ConvertOpToLLVMPattern<mlir::memref::AllocaScopeOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/data/bin1/llvm-project/build/bin/mlir-opt+0x3abdd4d)
#9 0x00005588d9f0a7ea mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/bin1/llvm-project/build/bin/mlir-opt+0x438f7ea)
#10 0x00005588dcbca348 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&)>) (/data/bin1/llvm-project/build/bin/mlir-opt+0x704f348)
#11 0x00005588d9f1ae29 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#12 0x00005588d9f1e1e2 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>::callback_fn<(anonymous namespace)::OperationLegalizer::legalizeWithPattern(mlir::Operation*, mlir::ConversionPatternRewriter&)::'lambda1'(mlir::Pattern const&)>(long, mlir::Pattern const&) DialectConversion.cpp:0:0
#13 0x00005588dcbc9d23 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&)>) (/data/bin1/llvm-project/build/bin/mlir-opt+0x704ed23)
#14 0x00005588d9f1ae29 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#15 0x00005588d9f1b7b7 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#16 0x00005588d9f1dc24 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) (/data/bin1/llvm-project/build/bin/mlir-opt+0x43a2c24)
#17 0x00005588d94f67e4 (anonymous namespace)::GpuToLLVMConversionPass::runOnOperation() GPUToLLVMConversion.cpp:0:0
#18 0x00005588d9e733ee mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42f83ee)
#19 0x00005588d9e738ca mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42f88ca)
#20 0x00005588d9e740f4 mlir::PassManager::run(mlir::Operation*) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42f90f4)
#21 0x00005588d9e64e63 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#22 0x00005588d9e66334 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
#23 0x00005588d9e664e4 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
#24 0x00005588d9f657d4 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) (/data/bin1/llvm-project/build/bin/mlir-opt+0x43ea7d4)
#25 0x00005588d9e5ed47 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42e3d47)
#26 0x00005588d9e66631 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42eb631)
#27 0x00005588d9e66a96 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/bin1/llvm-project/build/bin/mlir-opt+0x42eba96)
#28 0x00005588d7109a7b main (/data/bin1/llvm-project/build/bin/mlir-opt+0x158ea7b)
#29 0x00007f1e8d574083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#30 0x00005588d71a275e _start (/data/bin1/llvm-project/build/bin/mlir-opt+0x162775e)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltT6zgS_jXmRUXKluTbAw_hktlTBQUFzOxjSrbbjnYcySPJc2B-_ZZkJ7GdBMLA7J7Z2lMcEuxWq7-vL1JbZlrzSgBceOGlF16fsdaspLpgQorXtWz13dXTWSaL14tvBq2YRpqvec0U0oblvyKjWA6IabQyptEemXt44eFFxc2qzWa5XHt4Ude_bz7OGyX_Bbnx8IJr3YL28CKiOEmQh68QEwXKpFkhWSKzgjVqNSAv8ruf8_Pz86ppz408dxo31z3_2vPn3e-KG_Q7KM2l8MgchWUeRxBlUcHiNInCmIZpFBBaJCSJcUYjPycE5_lQhX7VBtZ29M9ZK0yLsD_z6SxCt89PyMPJQuasRgupNfNwOhypoFGyaHMo0HduVlbF1sh1zdW5bAwaYUBsZm8chNLfIv2fE5myFfnM_kIe9e0n9nDi4RQhL77sRBDycJhj5JFrxBQ3q1kuhTZMGGQvzhEXBbwMZAOaOuE1rBWUM1bXMmdLncsG0LlHbix6A0JL5ZErjyxecPjCI-qRGzvxYF50UMVYws2ISTo0b91wBL_ZSHCWb7_sW2v_5eWMaQ3K9Jo6cWx_tlJefN3_cRKo9IUH0SE8zlo3dhlE-yz13HvxJat5JdYgjJOJaGd6RL342n3tRg2nmjBCqRuZtWUJiv_BDJdiZuSys3FqxnGFB_DOFJhWid00c7SP_AB1I_TEP4ze-etjFIxDaDgX9oMTWXDmvKPzHSrcXAMqDpq1Y6Mb2Sfl5urBDHa18VgCbwqCqxJ4UTDDPLzIuAj2S2VfQLnI67aA3YWntmmkshJXTBsuqpktOmGcWKUF5LV5bcDDCWuNtM5xw8jcI_OcaWNrmbIFeu4cF17aooWeZeffvvaQ-YZa-33uKHyyDD46Gu4bj1wiq2Yy6r4B5bzmhdfWmrnLVC6FLYlcM49cPUuXackvrHYG4MjDkc1gZxy5en7t7tubTFWtCylZIi5yuW6Y4VkNqEMYuLyPUcl4DcWsY_jh9mb-dIN0m625QQxlbYUUWMKQkZ9Yr9wy1fvCLlMoV0yvUMbyX53H--mf3PpYtOtmGwL-rMvzByUrxdZbVPqUIMhaXhfdXQ8v3l5Pukj1MPGR_-L7vh-GSVLEQYFJWQ7CQL_q7suD4sI4i59d0OJkJ6TY96XURgFbOx9dIS5M57Hkzxnt4Uv_JYjCmJTldg215gZjc_OShhQ98Uqw-h9MFDUoDyf97N1lPcsbS7Dv_m8V4V5RXAaQFIwlFPtouVSgjVSwdGuGNb7mmYcXL0m0jOh5zUX7cl6JtrvRmJUCVsy0nPmdxZRif2QvGU0TpsT3M6QYt9uWd_XnVnPkNFM7cKSZjjXHOAlTxDJ5kuUDzdgOHGkOp5rjrStP1hnjsc5orDMhZRF9TCexQ0Y642EspBGN4iK0OrcbUyTYGnTjwjXdq0_3za38DoqLqi9jzOSruSge4bvixkb4uyXuvrHBfoLYvGCNkWosfSVFvxN9YMaAEv3MyiVRitxmDN3B-hHKZ3l7-8vd4VBOxjyQpKDF3jTmvul09HN55OoUeOTmfXJ2ldwuFFeD6jFXir0-umV3J_4Lq1twhfvjZHyuoBCWFQUtRkGUjsgrfRYDe8usj9Oxu_PXIaMkKWMYtBuYBKPKnmc5IzTZN2beNDXPmQ3OL0Y2DATbf9iBy24PlklZo5HqXkFHRkdMHyJHlfwuefFpJbvBt7LiOasfQbe1OU3vZxe42KclocnIa8E4HgMG3TRvFbWtX26hYjX_A3q76_7PE534Xgpec1ZDbnZi--XIIsATBBAARsd4_ksc029g69ruuJalrXWfZPCf3Kw2BeBLyOyEPBzXbJ0VLPBwfFLIJbUU1cHcG4qe6ioyKRFpgcn_S8QPViKgwGRUIujfvkSEEwRZnMUnI-j3MxsE-WZ709_Wo9bk4A5khO_DIXTNWSWkNjwf-flE6NEEepFjOiCYNU39-sCU4azeqfqwd56ZqsAMonEotlDyD9h4rvfj00R6x8c1CA1PYI4zuC9-x5pvopRvDrHEumJ9s3m-8MkdEMM5pqNEGTcItIxioO-F2U9N2-2Th6Gu-yZYteJeDIC4Jw8_Pfw8HXHY9eN9OsSEAAzcUoBhvN6Q9SzvGzvxpnPYzD-pOlrvRcHx-JgLVr9qru-YYBW4bsSWWfvZCveMv_iazp3iMiEAI2ekU_RJzj6M_oE3UHMxLVdWdAsq-nI6xsuY1t-ENso9l7Et3d46NxToZu5u9LY_MAXC2PzYZNxXhD8ukyQfNQDYnzBO_ZJODN1APxhdY-a-wMLUL0cJisebXYgoRAQ1oEqp1vN8v5rvP2jSpugfVK2YgmLZGOWRq92IJ9mqHO4q5ZGbI-Xw7vbb45UUBl7MnjPvaq7uG3PHuF12Sl6NdlmDuwczHuMJvogQiholc9D60j25PhVeK_hvLezBu4O1VK8bVQP5AkrW1mZZQA0Gjo_pC_CpmIdy_YL3CBXXRr3uLRzP7uHYg8uo-Ul0kSldFOiXdg7_OTqPO_VYh3LQAT9geBx2-4kpM2l7uq7nh_HKrrv6IUx6P2EmnUAUxsUwYXRTczMXxcOk4vw30P0Nk_RNid1eofv8_P4VWFyMl8dxmwQhFDQ-nGn_a3Xi03sNIAWNR2RG08UlIsFRMvttX75i3QZv0uQ8GcVFZdvK45ffZuILEGYRCUYI4ylClkZfgvCvh8LSaAQlGR_z-SmLM7RmXHz2SDFMgMXZaK50ctxF_YSg5bLmWb7UhimzHEx86gGYVTKcZXrOynAcAur0f_qYFMdxuGu25plUBtxDi1wqcAfMsDv02L5lcFZckCIlKTuDiyD2cUCDMAnOVhdBEIQBpeD7eUqTIC-KxC98GtAEIMdlecYvsI9JgP00iP0IB7PSxzQjKYY4LxMalR71Yc14PbMoZlJVZ-5s_CKmKfXPapZBrd3bZBi72MLYC6_P1IUDnbWV9qhfc230ToHhpnZvoLkB4fXkWNudsLt-DR084nPvWyG2fcegZLxuFfz5lwlmZ62qL_78OwKOin8HAAD__zMpBHc">