<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108159>108159</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][openmp] -convert-openmp-to-llvm crashes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
axeabc
</td>
</tr>
</table>
<pre>
git version: 761bf333e378b52614c
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -convert-openmp-to-llvm a.mlir`
a.mlir:
```
func.func @omp_target_update_data_depend(%a: memref<?xf32>) {
%0 = omp.map.info var_ptr(%a: memref<?xf32>, tensor<?xf32>) map_clauses(to) capture(ByRef) -> memref<?xf32>
omp.target_update map_entries(%0: memref<?xf32>) {
omp.terminator
}
return
}
```
stack trace:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -convert-openmp-to-llvm a.mlir
#0 0x0000562eb81ab128 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d7128)
#1 0x0000562eb81a8c3e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d4c3e)
#2 0x0000562eb81ababd SignalHandler(int) Signals.cpp:0:0
#3 0x00007f98e9647420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x0000562ebb45fcd3 mlir::Type::getContext() const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x438bcd3)
#5 0x0000562ebb387f28 mlir::TypeAttr::get(mlir::Type) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42b3f28)
#6 0x0000562ebab99432 (anonymous namespace)::MapInfoOpConversion::matchAndRewrite(mlir::omp::MapInfoOp, mlir::omp::MapInfoOpAdaptor, mlir::ConversionPatternRewriter&) const OpenMPToLLVM.cpp:0:0
#7 0x0000562ebab99122 mlir::ConvertOpToLLVMPattern<mlir::omp::MapInfoOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3ac5122)
#8 0x0000562ebb2fbb11 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4227b11)
#9 0x0000562ebdc86c91 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
#10 0x0000562ebdc8394b 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&)>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x6baf94b)
#11 0x0000562ebb2fcb53 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#12 0x0000562ebb2fbbb7 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4227bb7)
#13 0x0000562ebb2fcd7f mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4228d7f)
#14 0x0000562ebb30496b mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x423096b)
#15 0x0000562ebab97395 (anonymous namespace)::ConvertOpenMPToLLVMPass::runOnOperation() OpenMPToLLVM.cpp:0:0
#16 0x0000562ebb29d2d6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c92d6)
#17 0x0000562ebb29dc40 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c9c40)
#18 0x0000562ebb2a0282 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41cc282)
#19 0x0000562ebb298ab1 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x0000562ebb29870b 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
#21 0x0000562ebb3453a5 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) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42713a5)
#22 0x0000562ebb293b35 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41bfb35)
#23 0x0000562ebb293ddf mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41bfddf)
#24 0x0000562ebb29410e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41c010e)
#25 0x0000562eb818bd67 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b7d67)
#26 0x00007f98e8c65083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#27 0x0000562eb818b8ee _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10b78ee)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWstu4zoS_RpmQ8SgSD0XXjgPYxpIkCDJ3K3Bl2zOlSgNSaWT_voBJdmWZOfVt90XMxig27ZEqnhO1WGxKIZaq9ZayjmILkB0dUYbt6nMnL5IyvgZq8TrfK0cfJbGqkoDsoBJHLCcECJJkrIIx0HIAboCaNF92lfrZOk7ghj9kzXaNTBIZyicxfDm6RHEaNjbyNpUouESfldu0z9VFsqcV7WD57zSz9K486qWuqzPXXVeFM8lpDPfZWKqv0n6S9_a_oPddd5oPvMfEISoKuuVo2Yt3aqpBXVyJaijKyFrqQXAKcAR9WBKWRqZA3IJyPIlJxiQa4AzCJKLziiEAEcIAnIFq7KelbSeKZ1X8JmaVe3MR5YuoZPaVuZggJLWK17QxkoLcOoqf4_T2jVGApxevD7I3N86B-T6qOUenMc0otkaltoZ1Rr24D9FszUkTak0dZXZcU-utj-NdI3Rvee3t48HwjrK_4TOUC73wTra8_7mevF4DW3DSuUghaxZQyPryjjoKrhxrrbeAl4CvFwrt2nYjFclwEsvkv7rvDbVvyR3AC-VtY2nvYRUC6g0LxohodtIyA21G8go_7OFNeuGf2yBiqasdzjRDKDs3lRrQ0tIzboppXa2lS1eegkBvLQ_XgFe3t58e9hCMLKQ1MpDRKxRhfDfSgO8_KzsO5cDTBBELwghFMVYsjSgLMApbLmTBSB-JnY_7o3SrmXz1Hodp_tOhn5fVdYZSUuAYy9JpV0bfC-PX8YJ4Av0EiCRBN5stucQTDiknMhjHB4a_ajWmhb_oFoU0nTyPRXMkBM5gomnrqZMwBEggNPec91tO-O1Fw5q_-8Mkd5QkmepzOIwCTGCq5WR1lVGrozrGRWKAbx8SeNVHJ4XSjcv52vddA212xhJxcxWM9QhDkOMRnjDIV4WRjkXBG7zI1k8vday-7WW7rLSTr643qG80tadwq0hSRkXZAQzGsEkaZLjdAJz4ZzZQQU4nZA4jQRCzEg-UWo8xEpZloUE-7GprvRrWTUWalpKW7czLOsg3tL6m86ru_qyndH9EgrIoqSObxZaPMjvRjk54lV1CWfwtJ-W77UvBK19Xh512w95T52TRvdjmXaebwN9V0t9e_9U3dz8cXtcscmUd4DxwTDuru5s9GMBcvkuIXL9sR_uammo8y7DC09tnxUWxtB2DRyO8gctGtkvq1_1wgkkRCiPAoxHEkpHcsc5Y0HwHtav-2jf8pvphhgnLAhGdLMhXcHTmGcBfK6UGITSV2Qe_6orQNrWLhPtNMJpUfi1eZWPZdUzXNR1oXhbl_xid12-jZNVVQFHpnsDnYc7b_di_JDsXzKyb7ip1orT4kHapnCfs9unKYDDFWpvpEWl114oB849TA5-9UaTEJMsZIde_X-I_kKITjFbY0bzLGS72epDGUySE2cR-Wh92wXrRq5poX7InkzRX34ysh8l6StFC8ndvttxMeKD9MoSeGT8fsnagu2r7RHW9xFdHrPasjpRNYITxpJRtMg0WiLJP89112xHm4Gj6-qI4MkUGWKciiQfcRwXsQSFWTxMLrSui9d7apyixaC--qrkntoN8mDeDbstTfVDboPfS-Hxzd57o5eVztX6ZL4iKIvHszeaVGkJyaKPZu-udNuXgPfU9hsu0-g7PfBfuzl4v1r0OOKxLjOBRTzwkJCOqmIbnKfqrvYjbuvX7cCTxGjtQfjeDuxC0-LVKntLNV3Ltib2K4H_bnT7rkuccIsbBjzDIh6FJpm6hIfoyy65V7UslJ5mVN91x_TdzPRTPhovv9Z-09aZ9qWH320crM_DDt3IXUOP_Z4aqZ3fAWznz8kyZsAzHqJRGCbFN0U4xRP0W38c1eHvSPQB5zjFI9jZRD0pZQGspckrUy74YQ4_fKFjnehfpmyokaJ9MTksSh6rxnB5uzaAXL-R2Dyx3WuCSdhvC2XuandLVZ_1hiUMHLQeTRgYTfkliMG3KqafKbF29But_t3IA_q3sqzM60WT591M2PUXMqdN4VZCFtLJt5_x-5RJATgNwsebmYGfPhvOk_PZo-sLsAe5VtaZ10N9vKeBN_YYv5PJO5H5WKHjwpiEEaHRgLutC-UWWtybiktrt3D_Ft39F86Kd3sM2x6dUXrdnny8cftExVYSEBoNczKebDQywkh0fDb8r83l06x6LGdk7GEy9bAQ-Zse7ksVvqFdUbL4qnA-cs_JaAsx2vHgcEI7DJD8JbT_Fn4cBUiO-EXjY5SUiTiBJVX6NOc4LBHxaNuM4-HxS8rjCKUErlaFYnxlHTVu1aPZGV77tvMb_g2jl90lnpEA4CW3DcDL2Wz3s21s7cw4IAsSYv-5Hz6Z8k-lhN3Ap_JAKgch2B2wnok5ERnJ6JmcBwmOURigFJ1t5mkoMKNCZigKBWNpGiVJmvlqOmUsDrIzNccIhygLApREAUazCCecZGEYk5zEOBcgRLKkqph5nLPKrM_ag9d5gNIgys4KymRht39uYOYtG9asLQhRoayz--ecckX7hwmteqMrEF10J6IgunrzkLQ9y5X2rDHF_OePiHuwz3P8nwAAAP__6gg-Fg">