<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131441>131441</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `ModuleOp` crashed with assertion failure: `matcherFunc && rewriterModule && "invalid PDL Interpreter module"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</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 --mlir-debug-counter=pass-execution-skip=1 --test-dialect-conversion-pdll
```
test case:
```
func.func @main() {
return
}
```
Crash backtrace:
```
mlir-opt: /home/workdir/llvm-project/mlir/lib/Rewrite/ByteCode.cpp:505: void (anonymous namespace)::Generator::generate(ModuleOp): Assertion `matcherFunc && rewriterModule && "invalid PDL Interpreter module"' failed.
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 --mlir-debug-counter=pass-execution-skip=1 --test-dialect-conversion-pdll
#0 0x0000561b01ecf158 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12d3158)
#1 0x0000561b01eccc7e llvm::sys::RunSignalHandlers() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12d0c7e)
#2 0x0000561b01ecfb61 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007fc151341520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fc1513959fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007fc151341476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007fc1513277f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007fc15132771b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007fc151338e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000561b0777b3fc mlir::detail::PDLByteCode::PDLByteCode(mlir::ModuleOp, llvm::SmallVector<std::unique_ptr<mlir::PDLPatternConfigSet, std::default_delete<mlir::PDLPatternConfigSet>>, 6u>, llvm::DenseMap<mlir::Operation*, mlir::PDLPatternConfigSet*, llvm::DenseMapInfo<mlir::Operation*, void>, llvm::detail::DenseMapPair<mlir::Operation*, mlir::PDLPatternConfigSet*>> const&, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x6b7f3fc)
#10 0x0000561b07772d7b std::_MakeUniq<mlir::detail::PDLByteCode>::__single_object std::make_unique<mlir::detail::PDLByteCode, mlir::ModuleOp&, llvm::SmallVector<std::unique_ptr<mlir::PDLPatternConfigSet, std::default_delete<mlir::PDLPatternConfigSet>>, 6u>, llvm::DenseMap<mlir::Operation*, mlir::PDLPatternConfigSet*, llvm::DenseMapInfo<mlir::Operation*, void>, llvm::detail::DenseMapPair<mlir::Operation*, mlir::PDLPatternConfigSet*>>&, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>>(mlir::ModuleOp&, llvm::SmallVector<std::unique_ptr<mlir::PDLPatternConfigSet, std::default_delete<mlir::PDLPatternConfigSet>>, 6u>&&, llvm::DenseMap<mlir::Operation*, mlir::PDLPatternConfigSet*, llvm::DenseMapInfo<mlir::Operation*, void>, llvm::detail::DenseMapPair<mlir::Operation*, mlir::PDLPatternConfigSet*>>&, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>&&, llvm::StringMap<std::function<llvm::LogicalResult (mlir::PatternRewriter&, mlir::PDLResultList&, llvm::ArrayRef<mlir::PDLValue>)>, llvm::MallocAllocator>&&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x6b76d7b)
#11 0x0000561b077721ea mlir::FrozenRewritePatternSet::FrozenRewritePatternSet(mlir::RewritePatternSet&&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x6b761ea)
#12 0x0000561b056780a1 (anonymous namespace)::TestDialectConversionPDLLPass::initialize(mlir::MLIRContext*) TestDialectConversion.cpp:0:0
#13 0x0000561b04fc82ad mlir::OpPassManager::initialize(mlir::MLIRContext*, unsigned int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cc2ad)
#14 0x0000561b04fcb73d mlir::PassManager::run(mlir::Operation*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cf73d)
#15 0x0000561b04fc3e9b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#16 0x0000561b04fc3af3 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
#17 0x0000561b0506f065 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)
#18 0x0000561b04fbd752 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)
#19 0x0000561b04fbda03 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c1a03)
#20 0x0000561b04fbdc12 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c1c12)
#21 0x0000561b01eae8df main (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12b28df)
#22 0x00007fc151328d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x00007fc151328e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x0000561b01eae435 _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/eJzsWklv4zgW_jXMhbBBkVoPPjh2eaaBBBWkevpqUOSTzYlEqUmqkvSvH2hxJMtOUpl2b4UCslhcHr_3vY0mxa1VOw2wQME1CtZXvHb70izsIwCXV2kpnxcOrMOiLArlEFtiFFynqfTS1EfBGtF471xlEVsiukF0s1NuX6dzURaIbvL86-HfrDLlf0E4RDe9KLrpxZAgYlIGnIVSEJ9nPpeMRDIEL_SDMIsTRBNElogsrYMKuxIbqEwpawHNsmSJQtL_kGWRKzMrK4cb1PPmCc9mbaOEtN7NRFlrBwaxdcWtncETiNqpUs_sg6oQW3t4NmumzqTiOQg3E6X-CsY2QyqZ55PlEFl29HB7BgzGWa3FvPmDkU8KrjSiMaIJRtF124-xAVcb3T6gaH0qfmW43eOUiwdn-Fsat7ahm31ZAKKbx9I8SGVO2W-GN60qRXRzD49GuWb89bODVSlhLqoKsWVAgkbe11JJjGjMdamfi7K2WPMCbNUAoUmDhS3_BRoMd6XpHnfdIyAa35ayzuFz1Q3FS2vBNFxjFJKCO7EHs2mpoSGiITYdGNNNO7QiSpX-ynMl8d36Bv_UWK8y4MDgoh2IKEU0whlXOcg5Isu7m0_LL5-wrdNCOcxxWu8ajymNa3znw-6qrK3BIrrBXEustMhrCdjtAYtj0zRrf3FcPGBZF1VnKDJHJLkz5c7wAnOzqwvQzn6jqdJa5bL537jNZt4b7w_2bowoI5g8EUJIEHop8UBkXhDjlp3WxPbZdh_ujNKuVfnn1jdpPAwy_HFbWmeAF60lV1hp17p-EwG_Q3dEr8mTRyXzgrjLDA1kbwJZiAjOQb6v9Re10zz_N9cyB2MPAXkhVEREMKCiUyLT0MNH6yMat7yssFU7pbNy6xBdNs9N7LUfk36G7WOTtL_dAqxfIMqEF3jM9wJKel26CH-Kw23oz3Kl66fZTtddh5jbch62mH0aUDIg9o8FJkGSCVy5vQEutw8qzz8mPQmTTAzSgylcPwrxzrbqfRS2H4WD4PBYMI2ijGGeNjH_IbE0jjI2iI1OxHrphwV66SAwPhbIYkjCjwlkCSQjxZOxh0VRlLJM4DbHt-4uwXGV99G6vjlk-dMGGg-Thry9GoXQl4Ln-S8g2ky_sk52zbVWv9awrVzTOsi4W9_ccefA6FWpM7X7Ap2TH6ZJyHidu62EHBy8O5V9an7oCod1_2EAtgZt4ZZXR0I-V00VUqXuo-kdZMvzIn_SWfmm2DZIp4DGpB8k3XFlfh_AlgIsSm1dn1BHtnFG6V3HwQvFzbajXYCthpE35U4Jnt-DrfM2Nkbrdov2ewLTL3KEq5t2o85AWBrDn-8hm5ryF57X0FKUnBB1y_O8FMvmT7eB-PTdqnWhChOmUcYOGbUpe2QS_1RG6RBl21v-AP_R6tcj-K8mhU_9rK1VepfDtkwbVIO4gj_Atgv4bxJ4xPOQVabO-yOx_PWJ5UdK-aep1Qw5W7T_zuEVnsD7EWTfhTeesex3p9zlangoo3So4d60hnvARypuTPkbHBjo-Whj663OMYdnek-tNaJq2D5sxdOT53UPKbdKbG1rVMRWYs_NUWZoGrbOcOXsobuj9mUEHzh96X9JEH8XJBc0sgd8MPLRUUAQRjHh3ntHaz-DdevupGb1clBzt765ueO2P89QWjnFc_Xb5CvczU_3q1I7eHL9GcJZWZMThQYnG-P0MxFTLvE48TVr33LNd2A-BGGFa92eNcuLngT5TAjK5UC0P1EgjdhYgRP4ptZHuI9T--VQZhEboQwmKBkkKa7AZKUplm2GtO8cp704s91zA7Kv5KP0W9ZGwO3OTL82vmWiUV-uzOfK3XLVF7KRjASPes_4UDhVjmcMv5buh_ZDbdiaNvjfqA_ndzGjHA5FaZ6v6ywD8_b25ZU5Z9LS1ALJy_clwfM85eJhm-mjQjMi6Vtt-YfrM6Drk8E97JR15vnUOd5ygG4Iov6WdBvRvNS7P1eTNyzzjntGR6mYhBkJg5HitsqVW2p5Z0oB1h6w_iVO9w8MiTdHnO4Pm0L_WvOlkq8fMRIGQ_KNj_NTKqOAnvf87y1uL1bNvCigA6HJlFBO2KuE9vcd3bZtefLt7X23eI-NC2rJCXvRkpKplsJ73W0-ouWfpo7wBqPRyZUZh1hmuOBKX-oyLKWxzIb16OQyJZbJB--qaCITMghkU4HgE7zdNnO21nHjtiNtvnkJ8EdL-FOOfBbgTvjlWPJZn5uWaWkctDfuojTQ3iPDYdN4uPK_kgsmE5bwK1h4kU8JjQM_vtovvIT4LAh4EnNG_dRPQkkkTSAL_CSAkF2pBSU0IMwLSOwnJJ6nEIMkIac8FYxTgnwCBVf5vNFhXprdVXv5vfCY5_veVc5TyG37pgil3XsEFAXrK7NodU7rnUU-yZV1dpDglMvbt0uazSYK1hiF5OWsKiTdJTpI_KjcHvOXVwQyrvLaQHtTfuG3Ba5qky_-_9cAejK-Luj_AgAA__-lU91O">