------- 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