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.