<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/129019>129019</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            opt: ../include/llvm/Support/GenericDomTree.h:403: [...] Assertion `(!BB || Parent == NodeTrait::getParent(const_cast<NodeT *>(BB))) && "cannot get DomTreeNode of block with different parent"' failed.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mikaelholmen
      </td>
    </tr>
</table>

<pre>
    llvm commit: 7521207e415b
Reproduce with:
```
opt -verify-scev -passes="loop-unroll-full" bbi-104544.ll -o /dev/null
```
Result:
```
opt: ../include/llvm/Support/GenericDomTree.h:403: DomTreeNodeBase<NodeT> *llvm::DominatorTreeBase<llvm::BasicBlock, false>::getNode(const NodeT *) const [NodeT = llvm::BasicBlock, IsPostDom = false]: Assertion `(!BB || Parent == NodeTrait::getParent(const_cast<NodeT *>(BB))) && "cannot get DomTreeNode of block with different parent"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: build-all/bin/opt -verify-scev -passes=loop-unroll-full bbi-104544.ll -o /dev/null
1.      Running pass "function(loop(loop-unroll-full))" on module "bbi-104544.ll"
2.      Running pass "loop(loop-unroll-full)" on function "main"
 #0 0x0000564dfe0db856 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x4631856)
 #1 0x0000564dfe0d929e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x462f29e)
 #2 0x0000564dfe0dc0d9 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007f6d7e62ad10 __restore_rt (/lib64/libpthread.so.0+0x12d10)
 #4 0x00007f6d7bfca52f raise (/lib64/libc.so.6+0x4e52f)
 #5 0x00007f6d7bf9de65 abort (/lib64/libc.so.6+0x21e65)
 #6 0x00007f6d7bf9dd39 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d39)
 #7 0x00007f6d7bfc2e86 (/lib64/libc.so.6+0x46e86)
 #8 0x0000564dfe70cc01 llvm::DominatorTreeBase<llvm::BasicBlock, false>::properlyDominates(llvm::BasicBlock const*, llvm::BasicBlock const*) const (build-all/bin/opt+0x4c62c01)
 #9 0x0000564dfe88ef13 llvm::ScalarEvolution::computeBlockDisposition(llvm::SCEV const*, llvm::BasicBlock const*) (build-all/bin/opt+0x4de4f13)
#10 0x0000564dfe892b84 llvm::ScalarEvolution::verify() const (build-all/bin/opt+0x4de8b84)
#11 0x0000564dff7c00ff llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x5d160ff)
#12 0x0000564dff5511cd llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#13 0x0000564dfe3002a7 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x48562a7)
#14 0x0000564dff55366d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#15 0x0000564dfe304e7e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x485ae7e)
#16 0x0000564dff54f6ad llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilderPipelines.cpp:0:0
#17 0x0000564dfe2fef97 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x4854f97)
#18 0x0000564dff4dc32c llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (build-all/bin/opt+0x5a3232c)
#19 0x0000564dfe09e412 optMain (build-all/bin/opt+0x45f4412)
#20 0x00007f6d7bfb67e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5)
#21 0x0000564dfe09c02e _start (build-all/bin/opt+0x45f202e)
Abort (core dumped)
```

[bbi-104544.ll.gz](https://github.com/user-attachments/files/19004737/bbi-104544.ll.gz)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUWFtv47oR_jX0C2GBou4PfvAlbhfdbYMkOK8GRY5sdilRIKnsSX99QUmOLa8TZ_fsQU8BGTJ4-eabmY8jksxauW8AFihZoWQzY507aLOo5VcG6qBVDc2s1OJlodRzjbmua-lQtMRZQkNKMojDpERk-QCt0aLjgL9Jd0DREpElSsn4kKVuHZ4_g5HVy9xyeMbzllkLFkUbRKnSup13jdFKzatOKUQpLks5D0mcxHGgFJ5rjOhWwDOi28aPmMI_gO2Uu2rWkw0CRLey4aoTgOjWu4Lo9rFrW20cotu_QQNG8o2unwxA4PnHJPIzx6Z_agErZgFFa__3CUV3GNFlDxQtUbTc6Fo2zGnjR48jT70rZiVfKc2_IrrGFVO-_27o24PzkIjmXDfW4R7fgyNa4KEJJauxNdrgt1A_2Xtt3UbX_ajBRrLxPiytBeOkbrAPCs0RDVcrjLI1ytb4nhlonJ_jp_VmDOtTPHAb-o_sdpxZdwxCTzK6QzRfrRAthgcjmiKaYkQpZ02jHd6DOw8j1hUuPeleKVjIqoKeQjtaoohmuGJSgQgQWd5_vls-3mHblbV0mOGy22MDPnHYaXxwrrWeLN0iut1Ld-jKgOv6lGX_mrdG_xu4T7W0tgOL6BazRuBRE9gdAHPD7AGXjH91hnHwth8d41-x6Op2kBYJECnujd4bVmNm9l0NjfPmcdlJJebMS3dbygbR7TuKv5T7ba2H3vBD1zSy2WOP4-NbdQ33aUU094jja7qOhqxQrBtca9Ep8BMn5nzAyZJeM_Aeag95ZOAH18y77bEwohHB5HdCCEnSWFRARJkn6Zl07Ysd_twb2bg-zE8-6N7a6yDDvu20dQZY3YtqjaXXh5dYfjXeiK7I73EahXmSepIDlfCCSkELuEbloWse5b5h6u-sEQqM7ZfKTWu0ogWcrNELa5yIAk9wEc17P9bYyr1sKr1z_Wpf42ctxbjwhxk24K2XHul_g4FoNJBVqcggpUyEBO92BqzTBnbG4Z73VskyjYd36w4GmAisDkjPOqQiJCfO8TlkWXGW0AobJi18j8U9Sjr4DgmtTijJFKUQkCaYlfoaozMUGkKanFDSSxQRFXjXqJ3STOyE9jILuFYiIDdgRVScYLMLFynk6fvOpZCfiSifpDUjnJMQ_4ry3xrdglEvI4IvTfm1mcOnYBTKjQGv3413lctTykl4crGYuJjnUIXRmaVHzhQzd89adX3R6Ru5rtvOQU9gI22rrTxWpNPE9d1vP8b-fd4C4iqMBt5-eU9LTV7QMo9v8R7q8rjAPxIsAXmZxyejk6JSZZyQqjozuh0L45P-rHV7z6xdCtY6bcbK1k1DtH2t5Ok0QMuGqRcr7RfWsD2YiapeJ_lPcHozbokIU1JVJxcmlapKkjDk4sy0AMekGqs0s_aLFqCuE5hQftv1n_LsuE7-pJB5fisfMzD3sgUlG7gsuj5W0URjESGUZWc2-_i8Z--v6Pr7gs-TlLLspJb4Qi1Rmv4KtfxpkfsrRvyDYksuxBZDdr5h-dLv4570Ef9mdRkm_BD3ccqHtcIgg5NW0qlW4iplP6aVI-P1B93-Cb_eSvUvCNYH05xN0kwrqIqP1JRrsfmfu3xLH3FVnNWSyWaqigWPKD8zbLo-ucfYTTcTzshm_wDVNXF858ITM3twXxg_9DjLa72fZWmYefnUVPpT3arvR2mt_tW5tnNbqa6A_KHuN9xZGsNefOt5zPuYqG4vm-_r22m8dWJoez0dRmt_rsCTMJ5JdMjgtaqpW7dzWo8rdfDiH7IR7436zW-sJJjjuNL3_PD71laGRTSi_CSo6daVFBCHFOvWfWGyuaHNpIrjkL5CUTI9KJRpBgne7fzhYGcdM25Xj6BvHh0ilkFyQrw4fxacUMAD1k1ulNCxri6PBymuDfRXEiBGG2f3Xf5JVpPzfbD_D0o2iObvXJV0FsycOcf4YbjRoNtKqv6aJCwIibMo8-wuYWkxE4tIFFHBZrAIs5ikcUSjfHZYhEVW5DwjcQk0LyNKwiITIixJmHCa5ulMLiihCaE0IzkhUR4UhJZhEZM4znmY5hmKCdRMqsBLLdBmP-uvbhYhLUhYzBQrQdn-1pLSBr7hvhdRipLNzPS3lfOy21sUEyWtsycYJ52CxR--GUTJKggClGz-n-_XZp1Ri5-_Qxtz8byg_w0AAP___KXDZg">