<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/130015>130015</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `scf-forall-to-for ` 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-for))'
`
test case:
```mlir
module {
func.func @example_function(%upper_bound: index) {
scf.forall (%i) in (%upper_bound) {
// Possible processing can happen here, like a function call or operation
// Here's a sample operation for illustration
affine.yield %i : index
}
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-for))
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 0x00007b4f87119520 (/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 0x00007b4f87100d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#30 0x00007b4f87100e40 __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/eJzcWltv2zja_jXMDRGDoiRLuvCFktSYARokSIrv1qAoSuZXitSSVDeZX78gJVsHx22m9badLdLE4ul9nofvgQpDjOG1ZGwD4hsQ312Rzu6V3jzxJx4E0VWhytfNJ2YsVBJS1TTcgjCHqMoSjMgaoByg3FjWGmgV1KzVquwoAx-24OYWZK4XrBFAeSO4vlathdCypl25RwivW2LMdctbJrhkILwDOCk6LiyXq0aVnWAAp1Un6cp9Azg1tLqulCZCXFvlPgGc-a8EQni0BVBuHWRKDAPhAYP_cnYdGr84BMkNQDmERxMQRIi9kKYVbOeeLVcS4BTguGtbpneF6mTpBOCyZC8AZ8clIDS0WvXYYD-Fu34u4ekCs3kQArwFeAsflTG8EAy2WlFmDJc1pETCPWlbJuGeaQbwLRT8M4MEHuBB6iwqDVXLNPGAF-v-4ScmBhJoPLVxKKyUhlyIztjFXFJVXLLVK2eihI4MHGn3Y0ByN3zSzHa6n9o3Dt8PovdbQjUxe2g1octNASh__Pghf_4ATVc03EICi6523qS0dX61t7Y1bpInVHO774oVVQ3AWyG-HH5ct1r9P6MW4C03pmPGkSeyhFxS0ZUM2j2DPYqC0M8eyQqg_NkS-hmWXdP2uNCql-BRq1qTBhJddw2T1iFwmu5VwwDeVt1ff3FZnxp3Hly6n1wCvD06_uj3J27_XT6P8mAAev_xzyf4SLRh2kGknbGqgaqFrW-Db0RVAlCO3z99gsfNDN8_c4yKfioEOEQQvaDDvyAIKUsS6DcyzEGYm1fTf3jUXFq_O5-81-B0HKTJv3fKWM1IA_DaxQWX1geWi7bv3COAb9DLAKiX2MENFnAJQewtuE-dfOa1JOIPIkvBtPFQLoPI2RwR4QWiMo1jOLMNcOr1uIWG11xWamcBzt3zF8VL_zEbZpgVbZ3nI_-_NxAOBpIiqtIkCLIYo4GH4AXA25d0vVtH14LL7uW6ll3fQVdGrdYec4RjjEbE0RRxiKJ1RRPok3GvIa36D1vvKg9t_8Sk6TT7xHTDJbHO89NxzhOrfXb2mz82P7Q3TkknwaLno6J9jrvEngwcRobxkmEZvoOhD5QZrYc2N80QU6fchrz9bIllvvtCVMpwQmU9pbLOijQNmDNDpJKvjeoMlKRhpvUxmS2gHdPBgd2xZwiHfsAbTpfMzdKwRMH3m70Rin6eKTu05INuZ3GkCxxBgcn34zi46TnPHRNJrjV5fWIVCG_fdodhVF-NQPjBTS-UEl9lky02syqq7Ftsbn0iPzH9y_m4ZIyWfGhIf4TPQ-u2jYhfzWtWZdaEpgkuJqF_OO7tuLRMV4SyHW9aMSGyHUY8tD-STw5Ip8Oereayzq3VcyGOmPRCjE-vrU8Yk9ib5eRvaOmmD7K9f-Q7pfo_ojkpOd0KUvvyaMu-Y7ejLy9B0D8UxHC6M543CG_pnujZYNews5pwdyjsu3sUxxFECFdulB77oR-z9l754WsKv91-gUw_uFWf6Z3TzQ8SCYsynC6UHKpWJ-nvVLMGrCOT8OfXLGc2-g1qlsMRL2tWlv4A_V-dC5cHkH96zZqdbKJwHaWUTULk3r-U_U7hNWAcwyv9NeG1PLwkAZrmJ79Ybppn1WnKtlzM3xH75vtaQ6qksSfajcE1be3B3CpZ8frMxON2DKLnZ7pvVcluVdMKZtmtkpa92OHV68dTeS_GcYfw7FwU4QijpFpKNdPpWKrMnmhW7lrratUb6rnSdWEBD69ifWW7jCID51GRYKEIqlJ2XpGt0p98HF9CmLMSHFLFJdg6PiNbvGSbZCFsma6UbnJ_HjLf-AXKBXjff_zzaerosz7B9UNr7wmXJ8JkcNJ7mgdwuCQXo3CStT-qmlN3hDedsOcPqOcmTPe8k_xfHTvhfs8apV9vuqpi85NgySrSCbsrmQvy83MOx79psVlugT8X9udLIkRB6OddJWeVaKLSezfzv09ohHfHiWDUutpqrH49dY-vuUA_BOBoF_qFU6Fk_ZOpfGVvvuGh0dxDGY3YtFKZVnCby_Kx_9X-Aeyv8bt_Ylh8dcS0r39lcke4c80Xyb5-g8fsG8-3PyRBHLzt-P9zcXsJNb1eo5rrpZoRCs-qOfyeu39Hz4ey83f84VtKXIhhhMKRYbJkuA7wRRj-FCrrAI9U0vllREDSMoENOVx8_tjFh19ttJXN7yUQKrO_eS-BszJDxwWPV1HHBVmE4G7n5uyMJdruJkzebYJFExPBUp8ojGG_-GUUisK4t_bMavdWOtzskiGHU6WZv91k5QDqcO96VW7CMgszcsU2QRIFOA7iNLrabwjCESsZQgkuUxoXKMpYkUZRRigraLK-4huMcIxCtEZpnEXRCgVBVYUMxzRMYpxgECHWEC5WjspK6frKX8lughChIL4SpGDC-L85wNi7LMYgvrvSG0-96GoDIiS4sWZcwXIr_N8puFMmiO8gWKOTy1HXCFtiDLSa1zXTBs5k2TpZVledFpvvv1UeWHzZ4P8EAAD__780Lik">