<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/118223>118223</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm][Mips] After 677177bb60d, Assertion failed: (!NodePtr->isKnownSentinel()), function operator*
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:MIPS,
llvm:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DimitryAndric
</td>
</tr>
</table>
<pre>
After `llvmorg-20-init-06683-g`677177bb60d ("[Mips] Fix mfhi/mflo hazard miscompilation about div and mult (#91449)") by @yingopq, building parts of libzfs on FreeBSD for mips asserts with:
```text
Assertion failed: (!NodePtr->isKnownSentinel()), function operator*, file /home/dim/src/llvm/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h, line 168.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang -cc1 -triple mips-unknown-freebsd13.4 -S -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu mips2 -target-feature -noabicalls -target-feature +soft-float -target-abi o32 -msoft-float -mfloat-abi soft -mllvm -mips-ssection-threshold=0 -mllvm -enable-shrink-wrap-region-split=false -O2 -Werror -Wall -std=iso9899:1999 -ferror-limit 19 -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -faddrsig arc-cacfd2.i
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'arc-cacfd2.c'.
4. Running pass 'Mips Branch Expansion Pass' on function '@arc_init'
#0 0x000000000469d6d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x469d6d8)
#1 0x000000000469b4b9 llvm::sys::RunSignalHandlers() (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x469b4b9)
#2 0x000000000469de9e SignalHandler(int) Signals.cpp:0:0
#3 0x000000082a71057c handle_signal /usr/src/lib/libthr/thread/thr_sig.c:0:3
#4 0x000000082a70fb4b thr_sighandler /usr/src/lib/libthr/thread/thr_sig.c:244:1
#5 0x00000008293402d3 ([vdso]+0x2d3)
#6 0x000000082e8d45ca __sys_thr_kill /usr/obj/usr/src/amd64.amd64/lib/libsys/thr_kill.S:4:0
#7 0x000000082e61d0b4 __raise /usr/src/lib/libc/gen/raise.c:0:10
#8 0x000000082e6d14f9 abort /usr/src/lib/libc/stdlib/abort.c:67:17
#9 0x000000082e600871 (/lib/libc.so.7+0x9c871)
#10 0x0000000003045032 (anonymous namespace)::MipsBranchExpansion::handleMFLO() MipsBranchExpansion.cpp:0:0
#11 0x0000000003043565 (anonymous namespace)::MipsBranchExpansion::runOnMachineFunction(llvm::MachineFunction&) MipsBranchExpansion.cpp:0:0
#12 0x0000000003bc9cee llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x3bc9cee)
#13 0x0000000004181a50 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x4181a50)
#14 0x0000000004189ed4 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x4189ed4)
#15 0x0000000004182552 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x4182552)
#16 0x0000000004e92f2f clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x4e92f2f)
#17 0x0000000004eb790d clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x4eb790d)
#18 0x000000000636b569 clang::ParseAST(clang::Sema&, bool, bool) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x636b569)
#19 0x00000000052edc93 clang::FrontendAction::Execute() (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x52edc93)
#20 0x0000000005279e3d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x5279e3d)
#21 0x00000000053cdefe clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x53cdefe)
#22 0x00000000029e8d64 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x29e8d64)
#23 0x00000000029e58d5 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#24 0x00000000029e4b82 clang_main(int, char**, llvm::ToolContext const&) (/home/dim/ins/llvmorg-20-init-12945-ga7427410dd7/bin/clang+0x29e4b82)
Abort trap
```
Minimized test case:
```c
// clang -cc1 -triple mips-- -S -target-cpu mips2 -O1 arc-min-2.c
int l2arc_feed_secs, l2arc_feed_min_ms, l2arc_write_interval_wrote, l2arc_write_interval_next;
void l2arc_write_interval() {
int interval;
if (l2arc_write_interval_wrote)
interval = l2arc_feed_min_ms / l2arc_feed_secs;
l2arc_write_interval_next = interval;
}
```
See also #118215.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEmV9z46iywD8NeaHkktA_6yEPShzfnbo7d1Lj3LOPLgQtmR0EWkDJZD79KZAc2U6yu7U1OWcqk9jQNL9uuhuEqLWiUwDXKL9B-eaKju6gzfVG9MKZ51pxI9hVo_nzdd06MBgVsZSPvTZdROJIKOGiuCjWadShIi7KMinLpilijhFZI0JQfvNZDBblG7wV33HfHgQi276VGh_oD2o47oVluh-EpE5ohWmjR4e5eMRUcdyP0k2a0irJsgqRyislFW6eMcriZ6E6PfyByC1uRiG5UB0eqHEW6xZL0fxoLdYKbw3AzW6DW21wLwaLqbXgpZ6EO6C0RnH4KeLpx8F3h-K6DkIeqqVCAkdpPbEk_6c53DsTofRO2P9V-kntQDmhQIb-CfMWt6NiYbwewFCnDSJ1aBcSMCLbg-4BkS0XPSJbaxgiW-_b-U80GP07MLe0CsXkyGFpqDcPvlkK6_bCTXOsDn4KKRTgpFivUFzf_3pX7-6wHZteOExxM3bYwKCNw07jg3OD9T4gW0S2nXCHsVkx3b8LI6wdwSKyDSs0M2F3AMwMtQfcUPbNGcrAcwwGBqMZWAscWz2aqdmPpNZqJqgDjs2osGVGDM7z7hxl3zAf-2FamniFw797oztDe0xNN_agnJ0W5NyNQtkZ-TREE1JledTRMiNllsScl4hsG6EQ2TJJVYcjxhIcOSMGCSFEolF98wsbtQagsTxJVxmOdjjiwtJGQmjHEZNATUStixpotYHIWw-KL3LBe49gRCvAhGZGDY8eqRwhUrQHi6PegNQsJEDUaw4SW0edYDjqW0N7iAYtlAOD0g2VEkdtO0RMK-9lh9KNVjhqlY6MHpVPgain7oCjnmllnRmZ0yaiUlDr52pH9SQUj5ynsyjdEBw5ajpwERvGYPvS0gJ1owEcKU0bwaiU9lUfIjdWty5qpabupZc2AuuU4Kg_7ezD39Dpm3HUe_fgKHjcWgjpErmDAXvQkqN0E7_IgAr-tAcj1LfoydAhMtB5eTtI4f3QUmkBR18Ijn4DY7TB0W_BX9Z5VcLqal1VKK2Tqqpw1AaZSPpShxPf0KmR-bWyQiuUbrIVWSU4egTvQfEDIqn1YE8brBxw1FLOjRUdpoZFjLKWk5VAcZ3McYvSW9AtSu98abJgMHXYh4huQyVAcU1myVvNAXegfCZ7hLhO556vo1JTcbMWI1Juj6Xl3jd8pop2YBApfbXrNR9DgSlPgBgipU-u7B2FvkrjG0MVO-C77wNV9qh91vpSzBApURZTw_Y-tfy32KdhGuP4e3z8lxUVL_gahxKS1iit7bOdPtwboVzI8YepSqwXIUOf9to6A7RHpPCVQijny32oqz8j0xG5ib_PdL5MT-zJBXuTNdVb7F9HtROdovIXqrgEY6d6__PxPMCCRy5dCxXgMxBE1rOnpma7YoMvn3H4P2lJFy1rQsskzkuGD2H83oZRvpqO1iy7kWim3-7gG31eUj598CNWbJ4hnWfIzmeI2yZr8Cw8TWT-yRQky3zSzpPkp5NUaRYTnoYFyG8eudUo3wQnEp4uDixOx8CaZzmjeL-3z3bvJ_om5Intuvn9ApL2vMhW4fcpsg-LidQrWO1QWmcn_i7PJi0SHjcZ3u8NFRbedYP_0oGPhyD34uLkqHV9rpUnWVv5U5Nxf6rTOj59D6JBbVF6vcf0rc71xvG6TOa4XhStrF6Vwb0VW5fJ5GCfP2fJn8ZZHqfEj6ZKq-dejxaHrW4ICV9NyeRLzlRxXgrO1DGFyuftr1_m9HpD8iK-PUNywZDmRf6PGcyovqjPlB2EgmOxPStVr_qKv096ls9pwyoGgN9VHYrwAvUmzQXGz61HM-Gy2ulZPUrWCc3jE_7tvUc-bkr_TfKZbSHPLsgr4NnfIP8cttTz9Z-bPobacy3U-QU1yXNyQi2ho-x53l0X_k_9IF9s-A-ye7qFvThjh4q0pMWTfGC564W7mQ7NX0Y3jA6R9Un3RtBOaesEs3eqEwrmc8GJyC9AOZgdUMMOXwYfSxaHo-9rUX_A-h9QfyH1EI6wfyH0K1XdWyKLl3fOCNV9hfa8-ej8-kLh7IR6zobTIZ-UM6MVj_AV2lvl7p1B6e3S_djO9WErJOyerYMepXdeRTj4-p79Ppk-jEr8McJ-uFDhD17DkxEO9sfj11ujObR0lG7PQYKDv9CQ3s0Ur4281cqOPUwPxD89BKcgW0KwPA_Bpqxi_mdQU1SFTejBUGWnq4n_D6fd09isdw-3WoXbgg9JpYl0sWN9akeRFk1eVKd23PvHi3r3cE65g57OsdloLZe_P5t3Jlp4q1PenABnVXrKuzXeey8hP5WD78BGBx9yrp4RXgBJfA5YVpDy83LRD0KC-aSso4rBGeIxUdfvW_QRUTFjLkacHXvylHFo4azATriLLY_zVcM5-itbPyI1Z7wF_uwkRCpY8yLDjCX7norzPas2hj77YpresgM1x5pbH2vMWRu5xY9a8A-xYaZcbEgvbMjXPMdHr98mDyHZTizZ9VTKf4U7hGmLfsOgi63E65hLzclmU2FuxCOY1ydMkl0wZc2aTEFx9Gx4XJz8FtxU_70Zf7ovPdnkyzo8xDhDh9PL2Olu9rNQohc_gGMH1mFGLby-t2XB-C0iW_zerV4U7vBe33d9ScLtTS9URFZej1AOS0IN27cAfG-B2eCgpakXat-fNE57X7ine6Ry_2S0g3d7ld800hsU1z5O35Q5lsDSS2HsgV660rmt9evxZ9OHB2CMX0ZilG5eG-GfHF9ZO8_xLn5QdU6Eys3rpdsBYCqtDvcsyZok-QrF9RW_TnmVVvQKrpMyTeOyJOv06nCdtzkwzuOCFHRdUV7GCa_SrGAxjwtgyZW4JjHJEhIHZSRdrdm6yXhbsaQhWdGuURZDT4Vc-ZBcadNdhSvray9P0itJG5A2vO8gZL6u9ceyT_e78G7hFhEy5wHTHMLDOEH55spch7vcZuwsymIprLPLFE44GV6ihKH55uTFx_Ti5OTdiI-KD3m5cDUaef3PL_RnBz1ek38HAAD__z_r-Rs">