<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140857>140857</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `-sparsifier="vl=8"` triggers Assertion `!returnOps.empty() && "expected at least one ReturnOp"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Lambor24
</td>
</tr>
</table>
<pre>
Test on commit: [a21986b](https://github.com/llvm/llvm-project/commit/a21986b152927b368eb9c7516ebeaa0b5fbd3167).
steps to reproduce:
```
mlir-opt test.mlir -sparsifier="vl=8"
```
test case:
```
module {
func.func @main() {
spirv.Return
}
}
```
crash trace:
```
mlir-opt: /home/projects/project/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:137: LogicalResult (anonymous namespace)::aliasingFuncOpBBArgsAnalysis(FuncOp, OneShotAnalysisState &, FuncAnalysisState &): Assertion `!returnOps.empty() && "expected at least one ReturnOp"' 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/projects/project/llvm-project/build/bin/mlir-opt ./test.mlir -sparsifier=vl=8
#0 0x0000643424c275dd llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:11
#1 0x0000643424c27b5b PrintStackTraceSignalHandler(void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:888:1
#2 0x0000643424c25b36 llvm::sys::RunSignalHandlers() /home/projects/project/llvm-project/llvm/lib/Support/Signals.cpp:105:5
#3 0x0000643424c2833d SignalHandler(int, siginfo_t*, void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:7
#4 0x0000766f02672520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x0000766f026c69fc pthread_kill (/usr/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#6 0x0000766f02672476 gsignal (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#7 0x0000766f026587f3 abort (/usr/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#8 0x0000766f0265871b (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#9 0x0000766f02669e96 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x000064342574aa1e (anonymous namespace)::aliasingFuncOpBBArgsAnalysis(mlir::func::FuncOp, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::func_ext::FuncAnalysisState&) /home/projects/project/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:140:37
#11 0x000064342574a125 mlir::bufferization::analyzeModuleOp(mlir::ModuleOp, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::BufferizationStatistics*) /home/projects/project/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:478:16
#12 0x000064342576a083 mlir::bufferization::insertTensorCopies(mlir::Operation*, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) /home/projects/project/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/TensorCopyInsertion.cpp:37:16
#13 0x0000643428960705 mlir::sparse_tensor::SparsificationAndBufferizationPass::runOnOperation() /home/projects/project/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/SparsificationAndBufferizationPass.cpp:152:16
#14 0x000064342a5773ab mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#15 0x000064342a577345 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#16 0x0000643424c4d879 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#17 0x000064342a57b015 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#18 0x000064342a572c1a mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:534:17
#19 0x000064342a5731a4 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:594:16
#20 0x000064342a574c08 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:907:10
#21 0x000064342a574b32 mlir::PassManager::run(mlir::Operation*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:887:60
#22 0x000064342a563a5a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:484:17
#23 0x000064342a5635fc processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:552:12
#24 0x000064342a5633ac mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:636:12
#25 0x000064342a563346 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&) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#26 0x000064342a6f7b62 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#27 0x000064342a6f714c 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/projects/project/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#28 0x000064342a55f788 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:639:10
#29 0x000064342a55fb49 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:680:14
#30 0x000064342a55fd18 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:696:10
#31 0x0000643424b96d7c main /home/projects/project/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:335:33
#32 0x0000766f02659d90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#33 0x0000766f02659e40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#34 0x0000643424b96965 _start (/home/projects/project/llvm-project/build/bin/mlir-opt+0x30b8965)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWl9P4zj3_jTmxprKcRInueAiFKofEggE7HXlJE7r36Z2XtuZF_bTv7LjtkmgDBSGndkdjdriP8fnefz4-Dgx1ZqvBGOnID4D8fkJ7cxaqtMruimkwtFJIaun0wemDZQClnKz4QaEOQTxGcVBlpICxOcAp2tjWg3CHOAFwIsVN-uumJVyA_Ciab5vv761Sv4_Kw3AC28KL7yZIMYZToqQpKzIyiQOCCsYpaiI66IKA5IAnM0gQDlAuTas1dBIqFirZNWVzI7sqiAgyP9H-abh6ptsDTRMm5n9C37TLVWa15wpEJ4DjL83IDxPAca2_6AvQLntBUuq99ZHxmXVNQyC5MwOC-tOlDP7AUGENpQLgFOAs109hLrl6vvsjplOCVcEknNrs_8cD10qqtfQKFoeGNwjc1OBF2u5YQAvPLt6__M577anLeUFwItzTpu--Kyra6b4X9RwKQBePCgqdC3Vxhq7Eex-Lc21Q7xtyWZl24IwD8LEenElV7ykzR3TXWMgwCkVUjxtZKehoBumWwsFZxZNmNOGU83FatGJ8qY9O8vVSueCNk-aa4DTvhjgOfQjb-vuDTUMAkxsnW31QoUdAuZaM2WhOD3gQDnWb1o9Y5vWPG3nxrYnEGDMHltWGlZBamDDqFM7g3e-l1UHTmBNecOqGUD57dVFfn8BdVdsuIEUFt3KalEqY1X57rXAte6YJRpSUUEuyqarGDRrBnsdFLT802nBjn1vaPknrLpN2ysDzaD7d6vkStENpGrVbZgw-v3aKDreVPbbqnexWz0zgBeHVpBfPnbh4RBB9IgQQiQKIxyVOImrCjrIbtb1k-5_3CoujMPx4BSO030jRf-7lNooRjd-nrkw_WS9B8qWaCfz-661cwPw4g_BH20BXwna6BkXJQjzFEVWx4FHEUxRFHEBJy73Bv6PiqphCuD0u-QVwPlP9jNNrZ_eTTxxMy5C8hLZd50Yeat34v8EP7cO-lCAYhDmsXcwnDiYhmEFp8S5yZ1DzVdc1HJpHIlz-CV8RoHlM_HuRt7dhJAaYZLgGCPouFp0eh8yH1OyJNG3hovu8dtKdH1FOdNyRgA-Q4-R7WjDUG82HpstSVaXsDVrxWi1_JM3zTFjZNbKfgwydT1KCFxpB_Y4CFFC9uaTsfk4TeoQ0sJGuyOMY9t9bzx9ZjwojjQbFHuz2dgsyVhGjjEb2o69WRsaRhEuTiJKA_bBzc5tyK6hzR76X_sNcF9bjHZoV_TS7uiD5qv97EBL9mj2gz038d6F9_l5RYRAmIeJZz6YMh_g-HWU1GL6i_XWLZsDqveFP4niEW7bi2vDS31UTPt0aqPEbSTEU4vH1BKK0vB1dFzY9OqBCS3VXLacjYV80zLlvcrfyvAIzU1rPzUspdDmd6B7R8XTpfCZp-faZcc7qkd7YpoRlKChil1qxZbGWeuL7n22Vbpxc1GN_Lil2m_zqhM3YkD8EXv8AeDOA9YjnOL-sXfb1RzjIQ_RkAcaJ0lIiwEPFTOUN1sxPcib1prKK9qaLS-qEyPNOSamcjssxO2CvqaCrmwmMoeFlI397oQ7EVc-8ezbAxwtg_6ndEYtF5Zjz7RT6kf47v1fDCiz4S_Yhr_4GWFR7LKkQcpnw7oFu1SsBuHc1Xonw4u-SUmbxp4mlrUA4fw3IPzCHg6kWB2dCfrT1L4gP3-wwn24Wni6aHPxaBTVs7UNjcRnsJZ0Ms5goypNsvfx_WlaOQ4NyQZokomEChR4CQ32xavLu7kUZpccsEdWdoblZR9r5-P5v3C1duX39aMZ7wVC_By-kTU8HxCcK0Wf7lyzvdnLuz8EN77t89GOjXp7Zn3B5R3AiwEfjlCc2iAQekbTCaO4DOgvGsU-NzTFYTQMTtmEhzCg0bt5uOUta7hgk0zCNt3BI59OzFRCl0Ib5Z6f2EWbv9ZgkH5sfb-liglzKWq5TV0-mn-8wH0WDXZSjCbcRyVKJy5vSdgxTbV-c8b2jMlPhpMhlyAhDyeYwilC_AM4rwD5ZF_T1PpKtr7isa8kpDGFLVM2OeoDov7Boy1tKp_4rali1bI1CoTzfY972amSXa8UCC8OJMPDiD2du-uGq5vWXFMu5lLUfDWw8SFqHqRs9OARoY2U-7G2p4x0GCRwOGUrrkvYKlkyrfus8a1kdYL_p2PPyLpmG6metqYG7StW064xy4o1zLDDfeymffF2BoftfLZ8x1ZcG_Xk6_fjPLjnPbdSNpfCMFW75wMfFeibZiHuE2_sZyGazkJIy5fx_oKz8TLLb9T7Pq1EB3Kzr4N0mNhPOEm8SRYkJENZxM9kEQ0fJo9f7hzM5Q51-FW4_eEx6N8i__2p6iuRvKb6Lzvb7SQ_OtxRUicFwf8Aaf-DotoHzry7WU6msxxE5eiBW8NNLqrbSR7yd5D2Gyru1RbDunujuFjZo_yh4g9lQvsXfXbz-8PwhhvOtmk7ToaKmBza4zpJ039HBvQFSUU2PMtlU6aLKDvItD-Nl2van7vz9wroRzR9AfzUPbKNevghmsKvgsNCew_8vx1nRgbTPLkvUWSkSkq4oVwc54h57sL25_aVShi7Tz8-nrxBzqrsqBf32HbcverdXV_YmWURgsul7bPUhiqz9BiPGIhFg4GiKX8ZiWE_hLf-4Ss8_atsVKQZifuB80Iqw9yT11Iq5u4Tsco7Nb6LdlKdhlUWZvSEnQZJlKRBgFF8sj4tqziNAooDhKu6SOMIlzjIElKGZVkHZX3CTzHCMYpxgBJEoniWpCTMChJWiMRZimsQIbahvJlZFDOpVifuKtRpEKE0Tk4aWrBGu5uJGPfywCA-P1GnDnXRrTSIUMO10XsLhpvG3Wa8vrq8A_E5BAS9cuuPIGgUX62Y0j_11thJp5rT42-GeUa-n-L_BQAA___frQ5C">