------- Comment #1 from pinskia at gcc dot gnu dot org  2006-06-10 22:32 -------
PPC gives:
_foo:
        lwz r2,4(r3)
        b L2
L7:
        mr r2,r0
L2:
        lwz r0,0(r4)
        addi r4,r4,4
        add r0,r2,r0
        cmpw cr7,r0,r5
        blt+ cr7,L7
        stw r2,0(r3)
        blr

The tree level is:
<bb 2>:
  s = *(v + 4B);

<L0>:;
  s.31 = s + MEM[base: d];
  d = d + 4B;
  if (s.31 < g) goto <L6>; else goto <L1>;

<L6>:;
  s = s.31;
  goto <bb 3> (<L0>);

<L1>:;
  *v = s;


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|pending                     |middle-end
  GCC build triplet|x86_64-linux-gnu            |
   GCC host triplet|x86_64-linux-gnu            |
 GCC target triplet|x86_64-linux-gnu            |
           Keywords|                            |missed-optimization
            Summary|unnecessary jump to middle  |jump to middle of loop on
                   |of loop on entry            |entry with using old version
                   |                            |of an variable


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27986

Reply via email to