reload_cse() missed opportunities
tm_gccmail@mail.kloo.net
tm_gccmail@mail.kloo.net
Wed Jan 29 07:21:00 GMT 2003
I've been looking at GCC-SH4 output for stress-1.17/layer3.i and I've
noticed that reload_cse() (cselib) is missing some optimization cases.
Consider:
mov #64,r1
fmov fr15,fr3
add r14,r1
mov.l @(0,r1),r1
mov #64,r2 <- redundant
add r14,r2 <- redundant
add #4,r1
fdiv dr0,dr2
Both r1 and r2 contain "r14 + 64" yet reload_cse() fails to convert
this to:
mov #64,r1
fmov fr15,fr3
add r14,r1
mov r1,r2 <- replacement
mov.l @(0,r1),r1
add #4,r1
fdiv dr0,dr2
Is it reasonable to expect reload_cse/cselib to perform this optimization?
Toshi
More information about the Gcc-bugs
mailing list