[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 8 14:19:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hum.  We outline  bb 6 and bb 7 in the following (but not bb 8).


   |  /
  <bb 6>
    ptr_1 = ...;
   if ()
   |   \
   |   <bb 7>
   |    /
  <bb 8>
   *ptr_1 = ...;
   returnl

so the split part computes ptr_1 but the main part uses it.

Honza - is IPA split supposed to ever generate such split parts?  The
split part has two returns as well.

See also the other PR where it splits on a loop header rather than
the preheader leading to it (thus leaving fallthru code to the split
part in the main function).  It seems to me it would need to consider
returning all set_ssa_names names if they are used outside of the split
part.  OTOH I don't know why the articulation at BB 6 doesn't include BB 8...

I'm really not very familiar with IPA split and the code-gen part looks
like a huge mess  to me.


More information about the Gcc-bugs mailing list