[Bug rtl-optimization/11708] [sh4-elf-gcc] Non-Optimal jump code generation.
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 11 20:56:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11708
Oleg Endo <olegendo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |olegendo at gcc dot gnu.org
--- Comment #7 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-07-11 20:56:00 UTC ---
As of rev. 189427 this seems to have improved. At least I could not spot
branch sequences such as
! basic block 1
cmp/pl r3
mov.w .L147,r1
bt .L3 <--- conditional branch C1
mov #0,r1
bra .L208 <--- Branch B1
mov r1,r3 <--- delay slot
.L3:
! basic block 2
mov r1,r3
.L208:
mov.w .L149,r2
mov.w .L150,r1
cmp/gt r1,r3
bt .L7
However, there are a couple of sequences such as:
cmp/gt r2,r1
bt .L47
bra .L43
nop ! 1189
.L47:
mov.w .L105,r0
which would be better as:
cmp/gt r2,r1
bt .L47
bra .L43
.L47:
nop
mov.w .L105,r0
to utilize zero-displacement branches.
More information about the Gcc-bugs
mailing list