[Bug middle-end/29256] [4.2 regression] loop performance regression
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Sep 28 14:35:00 GMT 2006
------- Comment #13 from pinskia at gcc dot gnu dot org 2006-09-28 14:34 -------
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #9)
> > > Oh, didn't I fix this? See PR26726.
> > This is unrelated to that as the trees produced is defined but just looks weird
> > and really the one IV selection is messed up. It should have chosen two IVs
> > for this loop instead of just one.
> > Actually unrolling is not need to produced the bad code:
> > .L2:
> > lwz 0,0(9)
> > stwx 0,11,9
> > addi 9,9,4
> > bdnz .L2
> > I bet a beer that loop.c actually fixed this crap up before.
>
> I am bad at reading ppc assembler; could you please explain what exactly is
> wrong with the code you present?
One, there are two adds still there (just one is implicated)
so why not do the loop as:
.L2:
lwz r0,0(r9)
stw r0,0(r11)
addi r9,r9,4
addi r11,r11,4
bdnz .L2
Or:
.L2:
lwxz r0,r9,r12
stwx r0,r11,r12
addi r12,r12,4
bdnz .L2
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29256
More information about the Gcc-bugs
mailing list