<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/130019>130019</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `scf-forall-to-parallel` pass triggers Segmentation fault.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RiRi114
</td>
</tr>
</table>
<pre>
Test on commit: 0f9720a6
steps to reproduce:
`mlir-opt temp.mlir -pass-pipeline='builtin.module(func.func(scf-forall-to-parallel))' `
test case:
```mlir
module {
func.func @process_elements(%range_x: index, %range_y: index) {
scf.forall (%x, %y) in (%range_x, %range_y) {
llvm.return
}
return
}
}
```
crash trace:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/fuzzing/llvm-project/build/bin/mlir-opt temp.mlir -pass-pipeline=builtin.module(func.func(scf-forall-to-parallel))
1. MLIR Parser: custom op parser 'builtin.module'
2. MLIR Parser: custom op parser 'func.func'
3. MLIR Parser: custom op parser 'scf.forall'
#0 0x000000000113ce77 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113ce77)
#1 0x000000000113aa0e llvm::sys::RunSignalHandlers() (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113aa0e)
#2 0x000000000113d855 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007b2d50421520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000000003046fc7 mlir::scf::ForallOp::ensureTerminator(mlir::Region&, mlir::OpBuilder&, mlir::Location) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x3046fc7)
#5 0x0000000003046d37 mlir::scf::ForallOp::parse(mlir::OpAsmParser&, mlir::OperationState&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x3046d37)
#6 0x00000000069b881e (anonymous namespace)::OperationParser::parseOperation() Parser.cpp:0:0
#7 0x00000000069c3d01 (anonymous namespace)::OperationParser::parseBlock(mlir::Block*&) Parser.cpp:0:0
#8 0x00000000069c1b2a (anonymous namespace)::OperationParser::parseRegion(mlir::Region&, llvm::ArrayRef<mlir::OpAsmParser::Argument>, bool) Parser.cpp:0:0
#9 0x00000000069bfbf9 (anonymous namespace)::CustomOpAsmParser::parseRegion(mlir::Region&, llvm::ArrayRef<mlir::OpAsmParser::Argument>, bool) Parser.cpp:0:0
#10 0x00000000069bfc3c (anonymous namespace)::CustomOpAsmParser::parseOptionalRegion(mlir::Region&, llvm::ArrayRef<mlir::OpAsmParser::Argument>, bool) Parser.cpp:0:0
#11 0x0000000006ac872b mlir::function_interface_impl::parseFunctionOp(mlir::OpAsmParser&, mlir::OperationState&, bool, mlir::StringAttr, llvm::function_ref<mlir::Type (mlir::Builder&, llvm::ArrayRef<mlir::Type>, llvm::ArrayRef<mlir::Type>, mlir::function_interface_impl::VariadicFlag, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>, mlir::StringAttr, mlir::StringAttr) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x6ac872b)
#12 0x00000000017e4928 mlir::func::FuncOp::parse(mlir::OpAsmParser&, mlir::OperationState&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x17e4928)
#13 0x00000000069b881e (anonymous namespace)::OperationParser::parseOperation() Parser.cpp:0:0
#14 0x00000000069c3d01 (anonymous namespace)::OperationParser::parseBlock(mlir::Block*&) Parser.cpp:0:0
#15 0x00000000069c198e (anonymous namespace)::OperationParser::parseRegion(mlir::Region&, llvm::ArrayRef<mlir::OpAsmParser::Argument>, bool) Parser.cpp:0:0
#16 0x00000000069bfbf9 (anonymous namespace)::CustomOpAsmParser::parseRegion(mlir::Region&, llvm::ArrayRef<mlir::OpAsmParser::Argument>, bool) Parser.cpp:0:0
#17 0x00000000043648ce mlir::ModuleOp::parse(mlir::OpAsmParser&, mlir::OperationState&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x43648ce)
#18 0x00000000069b881e (anonymous namespace)::OperationParser::parseOperation() Parser.cpp:0:0
#19 0x00000000069b7108 mlir::parseAsmSourceFile(llvm::SourceMgr const&, mlir::Block*, mlir::ParserConfig const&, mlir::AsmParserState*, mlir::AsmParserCodeCompleteContext*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x69b7108)
#20 0x000000000424207f mlir::parseSourceFile(std::shared_ptr<llvm::SourceMgr> const&, mlir::Block*, mlir::ParserConfig const&, mlir::LocationAttr*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424207f)
#21 0x0000000004240f8e mlir::parseSourceFileForTool(std::shared_ptr<llvm::SourceMgr> const&, mlir::ParserConfig const&, bool) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x4240f8e)
#22 0x0000000004240793 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#23 0x0000000004240503 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&)::$_3>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#24 0x00000000042ec4e8 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/fuzzing/llvm-project/build/bin/mlir-opt+0x42ec4e8)
#25 0x000000000423a151 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a151)
#26 0x000000000423a403 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a403)
#27 0x000000000423a612 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a612)
#28 0x000000000111a8d7 main (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x111a8d7)
#29 0x00007b2d50408d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#30 0x00007b2d50408e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#31 0x000000000111a435 _start (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x111a435)
Segmentation fault (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWltP6zoW_jXui0XlOPeHPoSyqznSRiBA81q5jhM8O7EztrMHzq8f2UmbSylwoLPZZypoE1-_71vLazl1ida8FIytQHgJwqsFac2jVKs7fsc9L1jsZP68emDaQCkglXXNDfAziIo0xohEAGUAZdqwRkMjoWKNknlLGfi2AZdrkNpaEKG64upCNgZCw-pmaW8hvGiI1hcNb1jFBQP-FcDxruWV4WJZy7ytGMBJ0Qq6tG8AJ5oWF4VUpKoujLxoiL1iFcCp-4shBBHqABkLmBLNgN8j6P7sxABl3egQxJcAZRBCeJgFggA1SlKm9ZZVrGbCaIATgENFRMm2T5Y8Fzl7AngND8XPo-J0NK59aVosO9SwG2nf9dm25QJOx58OezSafVXVz3qpmGmVGNWA-Gp0N6nuqvr3vRadUlQR_QiNInSuFUDZ7fdv2f03qNtdzQ0kcNeW1sRSGWvsR2MabTvhDcCbkpvHdreksgZ4YxH2HxeNkv9i1AC84Vq3TAO8gUTkkAtatTmD5pHBDsWO0B8OyRKg7N4Q-gPmbd10uNCyI3arZKlIDYkq2848fgYB3jzKmgG8Kdo__-SiPJ7celZuP7kAeHNwyMEfj9zx476IMq9He_39jzt4S5RmyuKkrTayhrKBjSuDL7h8DFCG3999BMr29N_fc3DMrisE2EcQPaH9y_N8yuLY-Zs1gp_pZ91d3CoujDPRg3MdnAyNFPnPVmqjGKkBjqxDc2GcJ1tH_6ChAL5ETz2gTmIL15vBJQSxl-DeteKel4JU_yAir5jq1vR5ENk5B0R4hihPwhBO5gY4cXqsoeYlF4XcGoAze_9T8txdpn0PvaSNdX_k_rsJ_H6CeIfzEAXYCzHqeVR8B_DmKYm2UXBRcdE-XZSi7SroUstl5DAHOMRoQByMEfsoiAoaQxcoOw1p0V1snKvcNN0dE7pV7IGpmgtipGU19LljJZeiN_5QfNNcWiWtBLOa75IS47qcwSY9h4FhOGeY--9g6BbKhNZNk-m6X1PH3JhyFO4NMcxVn4lK7o-oRGMqUbpLEo_ZaYiQ4rmWrYaC1Ew3bk2mM2iHcLBnd6jpl0PX4AWni6fTUj9H3senvawk_TFRti_Jet1O4khmOLwdJh_HsXfTU547BJJMKfJ8xwrgr192h75Vl5KA_81230lZvcomnRmz2BXpW2zWLpAfTf3lfGwwRnM-1Kef4XPTWLOR6qt5TbJMRGgS491o6dvka4FuuTBMFYSyLa-bakRk07e4aT4TT_ZIx83ujeKizIxRUyEOmNRMjIfnxgWM0dqbxOQ3tLTde9ne3_KdUv2TKE5yTjcVKV16NHlXsd3SpyfP6252RHO61Y438Nf0kahJY1uwNYpwuzPsqjsUhxakqmy6kWqoh65N5Lzy22sKv1x-hkjfu1UX6a3TTTcSMQtSnMyU7LNWK-jvlLN6rAMT_9fnLDtt8BvkLIsjnOesNPkE_a-OhfMNyN89Z012NoEfBQlloyVy7R7Kfqfl1WMcllfyNctrvnmJPTSOT26wTNf3slWUbXg1fUbsiq9LBakU2hxpNyyucWkHZi1FwcsTHQ_m6EXPTlSvZc7Wsm4qZthaCsOeTP_o9flQ3olxsBCe7IsCHGAUF3OpJjodUpV-JIrl28bYXPWCejZ1nVnA_aNYl9nOo0jPeVDEmymCioSdVmQj1YNbx-cQ5qQE-1BxDraWz8AWz9nGqQ8bpgqp6szth_QbX6Ccgff19z_uxo4-qau4umnMNeHiSJgUjmqP4wD25-RC5I-i9ndZcmq38LqtzOkN6qkOY5u3gv-7ZUfcr1kt1fNlWxRsuhPMWUHaymxzZhf56T777d842cxN4PaF3f6SVNWO0B_bQkwy0Uil9xrzf09ogHfFScWosblVG_V87B6vuUDXBOBg67uBk0qK8hdTecU2b3hoMPVQRgM2zlS6qbjJRH7bfe2_B_s1fvd3XBavthjXdY9Mdgt3qvgs0dcZeIi-4dT8PvFC72XH_79bt-dQ0-k1qBnN1QyQf1LN_nvu7hk969POX_GHt5Q4E8MA-QPDeM4w8vBZGP4SKpGHByrJ9DDCI0kew5rszxw_d_DhRhvmSqfnEijJ0794LoHTPEWHAQ9HUYcBWYDgdmv7bLUhymxHTN49BQtGU3hzfQI_hN3g51Eo8MNutntW2qdSt7OGLhrYCahUzB1xsrwHtT98XeQrP0_9lCzYyosDD4degrzF4yr2w5AVcZGmO-wXcRImIUsjnEQsDVGUoAVfYYRD5KMIpcjH3tJP8jDxqcdyRoIdCkCAWE14tXTHyFKVC3cuu_J8hLx0UZEdq7T7NQDGzmUxBuHVQq0c9V1bahCgimujhxEMN5X7BYHdZYLwCoIInTghjRBsiNbQKF6WTGl4LM1y0apq9fHj5Z7JzxX-bwAAAP__Q-gJ7w">