This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/11708] [sh4-elf-gcc] Non-Optimal jump code generation.
- From: "olegendo at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 11 Jul 2012 20:56:00 +0000
- Subject: [Bug rtl-optimization/11708] [sh4-elf-gcc] Non-Optimal jump code generation.
- Auto-submitted: auto-generated
- References: <bug-11708-4@http.gcc.gnu.org/bugzilla/>
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.