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.

Reply via email to