[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