http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244
Oleg Endo <olegendo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #30689|0 |1 is obsolete| | --- Comment #68 from Oleg Endo <olegendo at gcc dot gnu.org> --- Created attachment 30889 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30889&action=edit RTL pass An updated patch that adds an SH specific RTL pass against current trunk (rev 202873), not fully tested. CSiBE for '-m2a-single -O2' and '-m4-single -mpretend-cmove -O2' look OK. There are only 2 cases that got actually worse in the set: linux-2.4.23-pre3-testplatform/fs/lockd/host.s (nlm_lookup_host): before: .L142: bt .L60 mov.l @(20,r11),r6 cmp/eq r6,r10 bf .L58 add r1,r13 after: .L142: bt .L60 mov.l @(20,r11),r6 mov r10,r5 cmp/eq r6,r5 bf .L58 add r1,r13 linux-2.4.23-pre3-testplatform/net/ipv4/igmp.s (add_grec): before: .L459: bt .L294 mov.l @(24,r13),r1 tst r1,r1 bt/s .L295 add #64,r1 mov r13,r2 add #64,r2 mov.l @(36,r1),r1 mov.l @(32,r2),r2 sub r2,r1 mov #11,r2 cmp/hs r1,r2 .L296: bf/s .L294 mov r13,r4 mov.l .L408,r0 jsr @r0 mov #0,r13 after: .L459: bt .L294 mov.l @(24,r13),r1 tst r1,r1 bt .L295 add #64,r1 mov r13,r2 add #64,r2 mov.l @(36,r1),r1 mov.l @(32,r2),r2 sub r2,r1 mov #11,r2 cmp/hs r1,r2 movt r1 .L296: tst r1,r1 bt/s .L294 mov r13,r4 mov.l .L408,r0 jsr @r0 mov #0,r13