[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 --- Comment #7 from Jakub Jelinek --- Author: jakub Date: Fri Feb 12 11:57:54 2016 New Revision: 233374 URL: https://gcc.gnu.org/viewcvs?rev=233374=gcc=rev Log: PR ipa/68672 * ipa-split.c (split_function): Don't compute/use main_part_return_p. Compute retval and retbnd early in all cases if split_part_return_p and return_bb is not EXIT. Remove all clobber stmts and reset all debug stmts that refer to SSA_NAMEs defined in split part, except if it is retval, in that case replace the old retval with the lhs of the call to the split part. * g++.dg/ipa/pr68672-1.C: New test. * g++.dg/ipa/pr68672-2.C: New test. * g++.dg/ipa/pr68672-3.C: New test. Added: trunk/gcc/testsuite/g++.dg/ipa/pr68672-1.C trunk/gcc/testsuite/g++.dg/ipa/pr68672-2.C trunk/gcc/testsuite/g++.dg/ipa/pr68672-3.C Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-split.c trunk/gcc/testsuite/ChangeLog
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 Jakub Jelinek changed: What|Removed |Added Attachment #37657|0 |1 is obsolete|| --- Comment #6 from Jakub Jelinek --- Created attachment 37664 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37664=edit gcc6-pr68672.patch Untested fix.
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 --- Comment #5 from Jakub Jelinek --- Created attachment 37657 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37657=edit gcc6-pr68672-wip.patch WIP patch.
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- I believe this started with r197375. And why is this happening is fairly obvious, we want to ignore clobbers in the decisions made by fnsplit, and thus we recognize bb8 as the return_bb. When clobbers could have just decls on the LHS, this could not be a problem. It is ok to ignore the clobbers in the decision making, but we really need to adjust them/remove them/move them somewhere else.
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 Jan Hubicka changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |hubicka at gcc dot gnu.org --- Comment #3 from Jan Hubicka --- mine.
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 --- Comment #2 from Richard Biener --- Hum. We outline bb 6 and bb 7 in the following (but not bb 8). | / ptr_1 = ...; if () | \ | |/ *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.
[Bug ipa/68672] [4.9/5/6 Regression] g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68672 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-12-03 CC||hubicka at gcc dot gnu.org, ||rguenth at gcc dot gnu.org Component|middle-end |ipa Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Confirmed. Looks similar to PR68470, IPA split messes up.