------- Comment #9 from pcarlini at suse dot de 2005-12-23 20:12 ------- FWIW, on x86-linux at least, we are making progress on the compiler side.
With 4.0.2 I get (-O2): 00000000 <_Z1fRKSt6vectorIbSaIbEEj>: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 53 push %ebx 4: 8b 5d 08 mov 0x8(%ebp),%ebx 7: 8b 55 0c mov 0xc(%ebp),%edx a: 8b 43 04 mov 0x4(%ebx),%eax d: 01 d0 add %edx,%eax f: 89 c1 mov %eax,%ecx 11: c1 f9 1f sar $0x1f,%ecx 14: c1 e9 1b shr $0x1b,%ecx 17: 8d 04 01 lea (%ecx,%eax,1),%eax 1a: 89 c2 mov %eax,%edx 1c: 83 e0 1f and $0x1f,%eax 1f: c1 fa 05 sar $0x5,%edx 22: c1 e2 02 shl $0x2,%edx 25: 03 13 add (%ebx),%edx 27: 29 c8 sub %ecx,%eax 29: 89 c1 mov %eax,%ecx 2b: 78 13 js 40 <_Z1fRKSt6vectorIbSaIbEEj+0x40> 2d: b8 01 00 00 00 mov $0x1,%eax 32: d3 e0 shl %cl,%eax 34: 85 02 test %eax,(%edx) 36: 5b pop %ebx 37: 5d pop %ebp 38: 0f 95 c0 setne %al 3b: 83 e0 01 and $0x1,%eax 3e: c3 ret 3f: 90 nop 40: 83 c1 20 add $0x20,%ecx 43: b8 01 00 00 00 mov $0x1,%eax 48: d3 e0 shl %cl,%eax 4a: 83 ea 04 sub $0x4,%edx 4d: 85 02 test %eax,(%edx) 4f: 5b pop %ebx 50: 5d pop %ebp 51: 0f 95 c0 setne %al 54: 83 e0 01 and $0x1,%eax 57: c3 ret With current 4_1-branch: 00000000 <_Z1fRKSt6vectorIbSaIbEEj>: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 53 push %ebx 4: 8b 5d 08 mov 0x8(%ebp),%ebx 7: 8b 45 0c mov 0xc(%ebp),%eax a: 8b 53 04 mov 0x4(%ebx),%edx d: 01 d0 add %edx,%eax f: 89 c1 mov %eax,%ecx 11: c1 f9 1f sar $0x1f,%ecx 14: c1 e9 1b shr $0x1b,%ecx 17: 8d 04 01 lea (%ecx,%eax,1),%eax 1a: 89 c2 mov %eax,%edx 1c: 83 e0 1f and $0x1f,%eax 1f: c1 fa 05 sar $0x5,%edx 22: c1 e2 02 shl $0x2,%edx 25: 03 13 add (%ebx),%edx 27: 29 c8 sub %ecx,%eax 29: 89 c1 mov %eax,%ecx 2b: 78 13 js 40 <_Z1fRKSt6vectorIbSaIbEEj+0x40> 2d: b8 01 00 00 00 mov $0x1,%eax 32: d3 e0 shl %cl,%eax 34: 85 02 test %eax,(%edx) 36: 5b pop %ebx 37: 5d pop %ebp 38: 0f 95 c0 setne %al 3b: 83 e0 01 and $0x1,%eax 3e: c3 ret 3f: 90 nop 40: 83 c1 20 add $0x20,%ecx 43: 83 ea 04 sub $0x4,%edx 46: eb e5 jmp 2d <_Z1fRKSt6vectorIbSaIbEEj+0x2d> -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16611