[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