possible gcse failure: not able to eliminate redundant loads
Dan Nicolaescu
dann@godzilla.ics.uci.edu
Thu Dec 12 21:44:00 GMT 2002
"Sanjiv Kumar Gupta, Noida" <sanjivg@noida.hcltech.com> writes:
>
> >> We have the code for it, but alias.c isn't helping.
>
> >It looks like memrefs_conflict_p is supposed to be able to prove that
> a[2] and a[4] don't alias, I wonder why it's not working?
>
> It can detect different offsets in 'reg+offset' forms of addresses
> but can not distinguish between two pointer regs.
> In this case, the machine (sh4) doesn't support reg+offset addressing
> for double-precision values.
> I am working on memrefs_conflict_p to handle this.
It works just fine on SPARC, so it might be something specific to your
port...
ldd [%o0+8], %f8
cmp %o2, 2 ! i
bg .LL8
std %f8, [%o1+16]
add %o2, 8, %o2 ! i, i
.LL10:
cmp %o2, 2 ! i
ble,a .LL10
add %o2, 8, %o2 ! i, i
std %f8, [%o0+32]
.LL8:
nop
retl
nop
More information about the Gcc
mailing list