<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128333>128333</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR]`-test-last-modified` triggers Assertion Failure `lastMods && "expected a dense lattice"'
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
xisang0
</td>
</tr>
</table>
<pre>
Test on commit: https://github.com/llvm/llvm-project/commit/dca2ed31278c444f839e3e04fde0c21b62451d4a
steps to reproduce:
```
mlir-opt test.mlir -test-last-modified
```
test case:
```
module {
func.func private @private2(%0 : i32) -> () {
%cond = arith.index_cast %0 {tag = "in_private2"} : i32 to index
return
}
}
```
crash trace:
```
test_tag: in_private2:
mlir-opt: /home/workdir/llvm-project-19/mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp:248: auto (anonymous namespace)::TestLastModifiedPass::runOnOperation()::(anonymous class)::operator()(Operation *) const: Assertion `lastMods && "expected a dense lattice"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: ./mlir-opt /home/workdir/test.mlir -test-last-modified
#0 0x0000618e1a45a258 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./mlir-opt+0x10b5258)
#1 0x0000618e1a457d7e llvm::sys::RunSignalHandlers() (./mlir-opt+0x10b2d7e)
#2 0x0000618e1a45ac68 SignalHandler(int) Signals.cpp:0:0
#3 0x00007893d57c2520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007893d58169fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007893d57c2476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007893d57a87f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007893d57a871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007893d57b9e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000618e1d3016cc void llvm::function_ref<void (mlir::Operation*)>::callback_fn<(anonymous namespace)::TestLastModifiedPass::runOnOperation()::'lambda'(mlir::Operation*)>(long, mlir::Operation*) TestDenseForwardDataFlowAnalysis.cpp:0:0
#10 0x0000618e1a56e04e void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x11c904e)
#11 0x0000618e1a56e04e void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x11c904e)
#12 0x0000618e1d2ff48a (anonymous namespace)::TestLastModifiedPass::runOnOperation() TestDenseForwardDataFlowAnalysis.cpp:0:0
#13 0x0000618e1d84fbcf mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x44aabcf)
#14 0x0000618e1d850352 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (./mlir-opt+0x44ab352)
#15 0x0000618e1d852ade mlir::PassManager::run(mlir::Operation*) (./mlir-opt+0x44adade)
#16 0x0000618e1d84b62b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#17 0x0000618e1d84b283 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
#18 0x0000618e1d8f49e5 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) (./mlir-opt+0x454f9e5)
#19 0x0000618e1d844ee2 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (./mlir-opt+0x449fee2)
#20 0x0000618e1d845193 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x44a0193)
#21 0x0000618e1d8453a2 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x44a03a2)
#22 0x0000618e1a439477 main (./mlir-opt+0x1094477)
#23 0x00007893d57a9d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#24 0x00007893d57a9e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#25 0x0000618e1a438fe5 _start (./mlir-opt+0x1093fe5)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWNtv4ywW_2vIC2qEAd8e8pBeoh1pqlbtSPsYYcAOWwJewNP2v19hJ3XiSaZfZr_RXr6qTVzD-Z3fuYIO8141RsoFSK9BejtjXdhYt3hTnpkGzSor3hffpA_QGsjtdqsCIEu4CaH1gCwBXgG8alTYdNWc2y3AK62_77-uWmf_IXkAeLUTxSvBGZaCJDgvOKW0LkgpiUS0FhJxnFQZpmkiKANo6YNsPQwWOtk6Kzouo0a0BBna_aLlVit3ZdsAg_RhHv-DV_HxSjMfrrZWqFpJMRGKGyBn_hSeFZ2WEOTXAC0hrDvD5_EDtk59Z0FCQNHuEQNcAJwiGB2iCAa4hFeA3MH-fbnHADjl1ggIyC1kToXNXBkh39ac-QAH-fw6sKbfADBWZj0qwCC_3eNHT_SiEdXJ0DnTcwT5bTRi-DwwhTvmNzA4dspv0QXrwJoe-0Bjv3Hv1LgI8GpjtxLg1at1L0K5SWyvkhLgVZQAeBVR47qqAF4tDdPvXnmAV7cssJW2rwCvYi7dSuPlyrpX5sR-ab97ztsWkCWmRdTOumCjP5mx5n1rOw8N20rfRptwGdmSZUT8yny43wX7kXk_rLjOPJiHVjoWlDVDWIaVI0iuo8R-yfb7rdttx8UHAAR4GQPLrfG9b5beSzesZEgPFDwEOAM4i6GUb63kQQrIoIgmQ81CUJE6BjiHNVNaijlAy8evd8vnO-i7aqsCZLDqmpj01oUY9IuLTXnfyeh3yIyAynDdCQnDRsIhJyrGX_q8iLqfA-MvUHTbdgg-msP-59HZxrEtZK7pttKEyADOd7HuS-5UanxWhhBggiB6QwihLClkwmjKcFrA3pI-AP59F75Hp0zo6X3rkxgX4ybHXtfWByfZtvf3DVQm9FWHi0OSAF-jtwRVKU77cA4MkgmDXOTyFIOnzjyrxjD9N2aEls7vS_u0EixyOSrBUzN5VsAjOICLHevh9T75Uf83oJAdSl6URKQ5xylGQ4fZldlbka0zeqWV6d6uGtMNC3zu7TzridEoMtKiR4BFkpU1h23YOMnE-kVpfRl6GeVH9HRKl-YZbHxv3qW0aZ6NwNkxMCvymkBWxRK5CBZHwRE2_wE2qS4GTKoRsDgGrEpZZpcBkigyApaHaSQISjLO4XerxEHCxhMq9qG1kzUgN_0qwEXflfsNB01w2Xe6u-E9Z1rHbrCuDSA3v6XR5pptK8EAzj9jhAttTRNr-ew2-AePj30FxVo_bjdpJhGVgwNHNUIGpvTw_Mr0CyA34-JO1ZewOxh6quco3vybYTmy_u9Mvzw4ETvFmaaT8BLRXdOJxiZ_JWOPOqzAdU0L9ufeFn4l38gRq4LWFa_PeP-h_WYf2khhKVjbu3vH5MhzPcfB3-cjMa7sud0zw5rozhtYWavjd2f627742WlJKWMVr0c302ODUkRSfLFBj6qVWhk5SYm49YNn9qdbeCgUVX0xPrj-OhMveMufbRg0Dws77o_MSRO-mNru7oBDTzrjxIqkeHRiOnEiZkJOdO-tOZkD00Z4Rqlg4qBAskkqVhmuYCtdbd122Ver_-RW5YPY3Yk2zEmxboMD5GaUeLad4_K-iY1i75RJGO-_fnm6sSbIt_CDy--1cg9tuGfK3FhTq-YAo4QHqyfqLJ8ahwty0I--2kZxpp-k73Q436fOCQBcfNjeGfXPTv5g-73cWvd-3dX1kIIf-4WsWafDWkgtgzwvE0_hu-MuOo3AuaP6pAv_aCx_uz0ju1vFtOThSTbKB_f-Y3L8LAH2Vwi6Rsf3g_-KyHySnsVxeta0lOmB4b7VKiyNeHSWS-_3XP8jSfc_WBI_3XG49hycMs2TrM--PtNLU1qXMh17aTlpN1RKfDqR_9_K8MxZU9ZSjgccRhP_pElJzvpndzjzDRuO4eWlQfvMuLMHJEpKMpJOpqQJOx_US0j_KjvCDlw6mSCQkuY53DJlzgwgSkrzfBSfjA5YKcoLRwc4ioyAdAooKYLrdZRZ-8BcWO_JXaJC0gMV6cTkopYpHMDPGU3qjzLdDzhnYkFESUo2k4skpwgnJC3IbLNAOa-yAlVIpmWecUFpUXCRsSonWZUndKYWGOEUYYxRQUpK5jTN07RGnCQZLVlWAIrklik9j4GfW9fM-mnbIsEFIWSmWSW174fpGA9TUQzS25lb9DO6qms8oEgrH_yIEFTQ_QA-XpVAegsydGp6liEYnGoa6fzB6HHFlO6c_KUR5KxzevHr48Wdzd8X-F8BAAD__3ZQW_M">