https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84111
Michael Matz <matz at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |matz at gcc dot gnu.org --- Comment #5 from Michael Matz <matz at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > Seems during cunroll we end up with: > y_8 = PHI <y_29(20), y_29(13)> > ... > y_29 = PHI <y_37(5)> > ... > y_37 = PHI <y_8(11), y_37(14)> > > where all 3 PHIs are degenerate and thus: This is invalid SSA form. PHI operand definitions must dominate their use, but the above forms a cycle. Probably a result of unroll-jam not carefully dealing with unreachable code after the infinite loops; but we shouldn't generate such code. Adding hacks to follow_copies_to_constant doesn't seem a good idea; that one is supposed to be able to rely on correct SSA form. I'll take a look.