[Bug middle-end/27986] [4.0/4.1/4.2 Regression] jump to middle of loop on entry with using old version of an variable
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Sep 3 07:19:00 GMT 2006
------- Comment #2 from pinskia at gcc dot gnu dot org 2006-09-03 07:18 -------
Confirmed, Out of SSA should have created split the variable's range so that
the conflicting parts are not changed inside the loop.
before Out of SSA:
# s_2 = PHI <s_5(0), s_9(1)>;
# d_1 = PHI <d_6(0), d_10(1)>;
<L0>:;
D.1287_8 = MEM[base: d_1];
s_9 = s_2 + D.1287_8;
d_10 = d_1 + 4B;
if (s_9 < g_11) goto <L0>; else goto <L1>;
# s_7 = PHI <s_2(1)>;
<L1>:;
*v_3 = s_7;
We should have changed s_7 into s.1 and added a move inside the loop before s_2
gets clobbered.
I don't know the way of fixing out of SSA though.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|minor |normal
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Known to fail| |4.0.0 4.1.0 4.2.0
Known to work| |3.4.0
Last reconfirmed|0000-00-00 00:00:00 |2006-09-03 07:18:51
date| |
Summary|jump to middle of loop on |[4.0/4.1/4.2 Regression]
|entry with using old version|jump to middle of loop on
|of an variable |entry with using old version
| |of an variable
Target Milestone|--- |4.0.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27986
More information about the Gcc-bugs
mailing list