This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/43464] copy prop breaks loop closed SSA form
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Mar 2010 23:05:35 -0000
- Subject: [Bug middle-end/43464] copy prop breaks loop closed SSA form
- References: <bug-43464-7780@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from rguenth at gcc dot gnu dot org 2010-03-21 23:05 -------
(In reply to comment #7)
> The problem is that copyprop does this change:
>
> @@ -25,7 +25,7 @@
> <bb 12>:
> # .MEM_16 = PHI <.MEM_18(10), .MEM_20(11)>
> # s_66 = PHI <s_1(10), s_1(11)>
> - s_13 = s_66;
> + s_13 = s_1;
> goto <bb 16> (got_it);
>
> }
>
> then verify_loop_closed_ssa () complains about the fact that s_1 is
> defined in loop_1 and used outside loop_1 in a non close-phi node.
Ah, copyprop avoids _single_ arg PHIs because that may break loop-closed
SSA form. Why does loop closed SSA form suddenly have double-arg
loop-closed PHI nodes?
Indeed Sebastians patch is a non-suitable hammer. Copyprop already tries
to avoid breaking loop-closed SSA form.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43464