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