<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/74301>74301</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] --inline crashed in AffineForEmptyLoopFolder::matchAndRewrite with assertion failure "must be defined outside of the loop".
</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>
git version: e9c6f3f5e7e23b23de4eeaa182ebfcb7d2188495
system: ```Ubuntu 20.04.6 LTS (Focal Fossa)```
reproduced with: ```mlir-opt --inline a.mlir```
a.mlir:
```
func.func private @func2() {
%cst_12 = arith.constant dense<23> : vector<15xindex>
%cst_13 = arith.constant dense<false> : vector<15xi1>
%cst_18 = arith.constant 1.000000e+00 : f16
%c0 = arith.constant 0 : index
%c7 = arith.constant 7 : index
%c18 = arith.constant 18 : index
%alloc_27 = memref.alloc(%c18, %c7) : memref<?x?xf16>
%10 = affine.for %arg3 = 0 to 114 iter_args(%arg4 = %c18) -> (index) {
affine.yield %arg3 : index
}
%13 = memref.alloca_scope -> (f16) {
memref.alloca_scope.return %cst_18 : f16
}
memref.alloca_scope {
%16 = vector.broadcast %13 : f16 to vector<15xf16>
vector.scatter %alloc_27[%10, %c0] [%cst_12], %cst_13, %16 : memref<?x?xf16>, vector<15xindex>, vector<15xi1>, vector<15xf16>
}
return
}
```
trace:
```
mlir-opt: /data/bin/llvm-project/mlir/lib/Dialect/Affine/IR/AffineOps.cpp:2276: virtual mlir::LogicalResult {anonymous}::AffineForEmptyLoopFolder::matchAndRewrite(mlir::affine::AffineForOp, mlir::PatternRewriter&) const: Assertion `forOp.isDefinedOutsideOfLoop(val) && "must be defined outside of the loop"' 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/bin/llvm-project/build/bin/mlir-opt --inline a.mlir
#0 0x0000555f2494de6f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/bin/llvm-project/build/bin/mlir-opt+0x1640e6f)
#1 0x0000555f2494aec4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f1f6f4ae420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f1f6ef9900b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007f1f6ef78859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007f1f6ef78729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007f1f6ef89fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x0000555f24a3ee91 (anonymous namespace)::AffineForEmptyLoopFolder::matchAndRewrite(mlir::affine::AffineForOp, mlir::PatternRewriter&) const AffineOps.cpp:0:0
#8 0x0000555f2a3021d8 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/bin/llvm-project/build/bin/mlir-opt+0x6ff51d8)
#9 0x0000555f276759fc (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() GreedyPatternRewriteDriver.cpp:0:0
#10 0x0000555f27679e6b mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/data/bin/llvm-project/build/bin/mlir-opt+0x436ce6b)
#11 0x0000555f275df13a (anonymous namespace)::Canonicalizer::runOnOperation() Canonicalizer.cpp:0:0
#12 0x0000555f275c008e mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/bin/llvm-project/build/bin/mlir-opt+0x42b308e)
#13 0x0000555f275c056a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/bin/llvm-project/build/bin/mlir-opt+0x42b356a)
#14 0x0000555f275c1633 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (mlir::OpPassManager&, mlir::Operation*)>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::'lambda'(mlir::OpPassManager&, mlir::Operation*)>(long, mlir::OpPassManager&, mlir::Operation*) Pass.cpp:0:0
#15 0x0000555f275ef323 (anonymous namespace)::InlinerPass::optimizeCallable(mlir::CallGraphNode*, llvm::StringMap<mlir::OpPassManager, llvm::MallocAllocator>&) Inliner.cpp:0:0
#16 0x0000555f275f8256 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult ((anonymous namespace)::CallGraphSCC&)>::callback_fn<(anonymous namespace)::InlinerPass::runOnOperation()::'lambda'((anonymous namespace)::CallGraphSCC&)>(long, (anonymous namespace)::CallGraphSCC&) Inliner.cpp:0:0
#17 0x0000555f275f9043 (anonymous namespace)::InlinerPass::runOnOperation() Inliner.cpp:0:0
#18 0x0000555f275c008e mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/bin/llvm-project/build/bin/mlir-opt+0x42b308e)
#19 0x0000555f275c056a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/bin/llvm-project/build/bin/mlir-opt+0x42b356a)
#20 0x0000555f275c0d94 mlir::PassManager::run(mlir::Operation*) (/data/bin/llvm-project/build/bin/mlir-opt+0x42b3d94)
#21 0x0000555f275b1b03 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#22 0x0000555f275b2fd4 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 0x0000555f275b3184 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 0x0000555f276b2474 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/bin/llvm-project/build/bin/mlir-opt+0x43a5474)
#25 0x0000555f275ab9e7 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/bin/llvm-project/build/bin/mlir-opt+0x429e9e7)
#26 0x0000555f275b32d1 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/bin/llvm-project/build/bin/mlir-opt+0x42a62d1)
#27 0x0000555f275b3736 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/bin/llvm-project/build/bin/mlir-opt+0x42a6736)
#28 0x0000555f248854eb main (/data/bin/llvm-project/build/bin/mlir-opt+0x15784eb)
#29 0x00007f1f6ef7a083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#30 0x0000555f2491e1ce _start (/data/bin/llvm-project/build/bin/mlir-opt+0x16111ce)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltT4zgW_jXmRUXKlu8PPKQDme2qZqGgt_YxJVvHiXZkySvJDMyv35LsJLZxuDTsTO-F6oaKfPTpXL5zdGSFaM22AuDCi7948eUZac1OqgsipHiqZauvV_dnhaRPF1tm0AMozaTwwiWCvEyqsIohBRwWOKQQARASZBiKqixSioMsi_LY8y89f9n91k_aQG1ne4nf_ftb0QrTIuwv_GiRoG_f75GHs7UsCUdrqTXxcH4QHmIpaJSkbQkU_cbMbgRac6bOZWPQ-TkTnAlAZGHHZoH6R2H_cSJTtaJc2F-oUeyBGEBe5NvP2MOZh3PkpV86SYQ8HJfabAKMvPASEcXMblFKoQ0RBlEQGrxwhUMvvEJW3QcojVReuAriRyYoPHrh1RQqfAmqItz-nUELZqCyOahg4bsf8PAX33dAVZAMp_pz0zrJTumBbDonm87LntAnm5UmnMtygzv8GmoF1cKNuSBYMA-vOhVcTMJlL-WFKy9cP9r_1q6RV4LetKpiAhaVVG4lte187iMjURBEiBlQG6K2uluLqG3kBPbr5ujcxQBnndZjTqA9_hMDTgcrTI1ML4eqhc8sJRtdygbQYTVrz2itGemFAtMqMeLAOMLHZecWGxli9UqcXh3XFoWShJZEm4PKDts6bsjGkeP7qbokxoAaxtbWHxuUfSR9L75E3WCXVV58uX_mUqP_4HQ6HW-8mk-06XgwMzihzMFXnVf7erEfnS0u3W-jSAmnKsy-WLkKhteUGOLhdcGEh9ecP9TnjZL_gNJ4eO0KFV5zVnh4fckI74aXjmEeXn-9O3y6afSibBovXGKcJq5AMGVawtG-2oXLb3LLSsLvQLfc2Fgfir41yol0YGuprurGPH2TsllLTqEHqIkpd0tB7-A3xQx4ODuCd7SfoNw01sVHoVvHAtHPVx52lHbVwKq81BqUYVLY0l7Z6QumL8GC0ZvWaEbhprJKeTh7INylg4VIkIdx3WqDCkC0k0eym4BkhcwOEHfTsIdTVBHGgS66cNx-u1reXyHdFjUziKCi3SIFjVTG8npnTKOt7njt4fWWmV1bLEpZ97F6HjKmdQvaw2tEBEVMlLyl4BQoFdE7VJDyV0ePfvl7Q8pfEW3r5sAXf4Hcz62SW0VqRNS2rUEY_QbGFC3j9PDw5L7Y0drDoY_8R7sfxHFc4SiPKCQVcpa5eOkn3QdOMWGcrt8dt3F2FFLkt43URgGpXTRWiAnTxSb7IXXt3vQYJJEPSWXbgYO2wURbAmWE7tlWEP4XIii3jMr6xbvhfVL47v8BCPdAaRVUSRURiLCPNhsF2kgFG2V63bvMe8ySTRKdcybax_OtaLsHjdkpIHSh5cLvNI4i7I_0DYfLQJXnvl8gRZiGN-CXFjlxyFHo-8UIORojp1kW54gU8k2aD5AxzuJ8hBxPkdNDJN-MmeIxZjLGzPKKJu_DDMOKJiPMdMQFEgLkgcU81DQkSA26cWzN_-zqhqZVekLIbGgNCX0c0Ow58rJpOCuJ269e0_imAUVsLfXw8nU1V4Okt92unbjp9tdCSo5G0D1AX7edlf1mehLkQTL6YZCTO9lbcD9YjpKqigOajSiYD4OWJmmcV-VrFPxFAdCncQguFXvYk7BRsgSt_y7Vr5xZA1zHeXrWczrZOulPNMshKQYMIE3D92h6KajNArcE408jZ97B1jEoGTNoreTvsNejx7kHM_D5ULpTvpdeSVGxrRWwvHLc_GBkojApITmWR2v_aKNIY1oFIXktMiv70LKK_b4PhmrFjRgkkovFSG7e_Xi8fOn7GQwcQsEQxvdp-l3eNLdE6yUlzSGzVSsmrNb6WSKfTvGlIPxJM31NBNnaFN-7e4Va4c7_9FM26QgXoZ_ByPfh1Pg4Ie82_pY1wF2TOyppVvRgU_Lp3hhXSa2_Cm2U672kmimjQ4Fu5e5Br_stUSDMV1HJfWJ8AtlxEcYJGTk8mjg8SMLwZNf_seL6ngi4suvGS8K57Xs3lRgt9DPlQSfv4ZSTuqDEw-nHDMcZl2I7FXsHCLKy8-UlHgccqhCHr1W3r67_V85_bkA2htXsd1gRzknBx5lmB39RpNn9VVLovXpkzr1RTGyvSTOK5sS64YRrd-ZfujcNLrRXfW_UazVvZjI2s8pwnHwqr1_dEHon3K9Wx0ZihtHvdf3ctjLLvx9S8Mi8d09_OR7pJB65H72fdrNb6ovLZv_Lm2n-_830D91MsT91OM2jiZ57y2e5Na3iH1aQ5tFIwUlrWwSFH6IGVCVVvXSFT7_ydkYb2r_d2REFdNMY5YWrQXmXrSrhemvr9ImW_vrb17uVFAYezbNQXnOmbhpzTZjomv3hUQwNns6mO570zgWuaIT6U9GXtqrcO543mdcK9s8Wnpl3DbVUT3uogTyFirTcbChwMHB6jt0Ert5u81Cuf4drj1XaqKdnR-_v7pXS7fFk9Kq7Jt12EQZZ9Kmb5B_nztNBfb2VHPjpJ6THfNjfmDKzncFPE5Vjt_FTqPR6woxPS0mBo3SYMLrhzCwFvZ1UnD_Duv_AJH1R4tgpdH8__OKHxFE63h0nRyNS5JDOJ9p_W5n4aKeRQw7pyJfJdGvBNDjpy77lK3eka-5mj4x3UL0w_LIjPmwgSTANRgamUwPTMPkUA__tlqRhMrJkdEaKsiyOoEA1YeKDd3BxmkUwerWK88n9EPGzEG02nBXlRhuizGaw7ltvjCI_C4erTO8lAwhKQB3-R68VgyAoj4esZSGVAXc3UUoF7iYW6FGX_d39Gb0IaR7m5AwugtQPkizDaXq2u_CDBFcUAgIkjdOshJLSIkoyvwxiXPj-GbvAPg4D7EeB_UkXUVhEaRUUOIG4wFnuRT7UhPGFtWIh1fbMXSJfpFHoB2ecFMC1-7YWxt0XArAXX56pC2d00W61F_mcaaOPAIYZ7r7h5SbEl8cLYHcL7Y5o6F23Ye5LV4gcLugrwnir4O0X74uzVvGLH79Pd974VwAAAP__DbvKAQ">