This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/18316] Missed IV optimization


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-08 18:19 -------
We still have either a ra issue (or ivopts issue which our current ra cannot resolve).
On the tree level we get the following difference.
strength_test2:
<L0>:;
  *(data + (int *) ((unsigned int) *pretmp.9 * 4)) = 2;
  D.1276 = (int) ivtmp.14;
  ivtmp.14 = ivtmp.14 + ivtmp.17;
  if (*pretmp.11 > D.1276) goto <L0>; else goto <L1>;

strength_result2:
<L0>:;
  *(data + (int *) ((unsigned int) *pretmp.27 * 4)) = 2;
  i = (int) ((unsigned int) i + (unsigned int) k);
  if (*pretmp.28 > i) goto <L0>; else goto <L1>;


The PPC asm is:
test:
L2:
        lwz r0,0(r7)
        mr r9,r11
        add r11,r11,r8
        slwi r0,r0,2
        stwx r6,r3,r0
        lwz r2,0(r10)
        cmpw cr7,r2,r9
        bgt+ cr7,L2

result:
L9:
        lwz r0,0(r10)
        add r9,r9,r8
        slwi r0,r0,2
        stwx r7,r3,r0
        lwz r2,0(r11)
        cmpw cr7,r2,r9
        bgt+ cr7,L9

Notice the extra mv.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|patch                       |ra


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]