[Bug c/16355] Duplicate function epilog

anton at samba dot org gcc-bugzilla@gcc.gnu.org
Sun Jul 4 07:44:00 GMT 2004


------- Additional Comments From anton at samba dot org  2004-07-04 07:44 -------
If we schedule it properly the branch should be free on POWER4, 970 etc.
futex_requeue is an example of what Im worried about, the duplication is a
rather big abuser of icache:

c000000000078d74:       38 21 01 10     addi    r1,r1,272
c000000000078d78:       7f 63 db 78     mr      r3,r27
c000000000078d7c:       e8 01 00 10     ld      r0,16(r1)
c000000000078d80:       ea a1 ff a8     ld      r21,-88(r1)
c000000000078d84:       ea c1 ff b0     ld      r22,-80(r1)
c000000000078d88:       ea e1 ff b8     ld      r23,-72(r1)
c000000000078d8c:       eb 01 ff c0     ld      r24,-64(r1)
c000000000078d90:       eb 21 ff c8     ld      r25,-56(r1)
c000000000078d94:       eb 41 ff d0     ld      r26,-48(r1)
c000000000078d98:       eb 61 ff d8     ld      r27,-40(r1)
c000000000078d9c:       eb 81 ff e0     ld      r28,-32(r1)
c000000000078da0:       eb a1 ff e8     ld      r29,-24(r1)
c000000000078da4:       7c 08 03 a6     mtlr    r0
c000000000078da8:       eb c1 ff f0     ld      r30,-16(r1)
c000000000078dac:       eb e1 ff f8     ld      r31,-8(r1)
c000000000078db0:       4e 80 00 20     blr
c000000000078db4:       3b 60 ff f2     li      r27,-14
c000000000078db8:       4b ff ff 80     b       c000000000078d38
<.futex_requeue+0x12c>
c000000000078dbc:       e8 7e 80 28     ld      r3,-32728(r30)
c000000000078dc0:       38 80 01 66     li      r4,358
c000000000078dc4:       4b fd 4f 85     bl      c00000000004dd48 <.__might_sleep>
c000000000078dc8:       60 00 00 00     nop
c000000000078dcc:       7f 6a db 78     mr      r10,r27
c000000000078dd0:       81 1d 00 00     lwz     r8,0(r29)
c000000000078dd4:       4b ff ff 48     b       c000000000078d1c
<.futex_requeue+0x110>
c000000000078dd8:       48 18 22 79     bl      c0000000001fb050 <.rwsem_wake>
c000000000078ddc:       60 00 00 00     nop
c000000000078de0:       38 21 01 10     addi    r1,r1,272
c000000000078de4:       7f 63 db 78     mr      r3,r27
c000000000078de8:       e8 01 00 10     ld      r0,16(r1)
c000000000078dec:       ea a1 ff a8     ld      r21,-88(r1)
c000000000078df0:       ea c1 ff b0     ld      r22,-80(r1)
c000000000078df4:       ea e1 ff b8     ld      r23,-72(r1)
c000000000078df8:       eb 01 ff c0     ld      r24,-64(r1)
c000000000078dfc:       eb 21 ff c8     ld      r25,-56(r1)
c000000000078e00:       eb 41 ff d0     ld      r26,-48(r1)
c000000000078e04:       eb 61 ff d8     ld      r27,-40(r1)
c000000000078e08:       eb 81 ff e0     ld      r28,-32(r1)
c000000000078e0c:       eb a1 ff e8     ld      r29,-24(r1)
c000000000078e10:       7c 08 03 a6     mtlr    r0
c000000000078e14:       eb c1 ff f0     ld      r30,-16(r1)
c000000000078e18:       eb e1 ff f8     ld      r31,-8(r1)
c000000000078e1c:       4e 80 00 20     blr


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16355



More information about the Gcc-bugs mailing list