https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103721
--- Comment #9 from Jeffrey A. Law <law at gcc dot gnu.org> --- I think Andrew has raised a really interesting issue. If the relation code is designed around seeing things in dominator order, then don't we have to stop using it once we traverse any edge where the edge source does not dominate the edge destination (assume this is a partial graph rather than a multi-entry function ;-) 1 2 3 | \ / | 4 | / \ +->5 6 / \ 7 8 Note how BB4 does not dominate BB5. If we try to thread something like 2->4->5->?, then can't we run into problems with the equivalence handling as well, even though we're not dealing with a loop?