[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