This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/50182] Performance degradation from gcc 4.1 (x86_64)
- From: "xinliangli at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 24 Aug 2011 23:15:44 +0000
- Subject: [Bug target/50182] Performance degradation from gcc 4.1 (x86_64)
- Auto-submitted: auto-generated
- References: <bug-50182-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50182
davidxl <xinliangli at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |xinliangli at gmail dot com
--- Comment #2 from davidxl <xinliangli at gmail dot com> 2011-08-24 23:15:44 UTC ---
The problem is fixed in trunk compiler:
1) with 4.6 compiler:
test description absolute operations ratio with
number time per second test0
0 "int8_t constant add" 3.29 sec 486.32 M 1.00
RAT_STALLS.registers = 288249 (sampling count 10001)
2) with trunk compiler:
test description absolute operations ratio with
number time per second test0
0 "int8_t constant add" 1.34 sec 1194.03 M 1.00
No partial register stalls from user functions.
Inner loop from trunk compiler:
.L55:
movzbl 0(%rbp,%rcx), %r9d
addq $1, %rcx
cmpl %ecx, %ebx
leal 10(%r8,%r9), %r8d
jg .L55
Inner loop from 46 compiler:
.L43:
addl $10, %eax
addb (%rdx), %al
addq $1, %rdx
cmpq $data8+8000, %rdx
jne .L43
RAT stalls (not precise event so the instruction causing stalls is a little
off)
: 400e27: nopw 0x0(%rax,%rax,1)
127 0.0440 : 400e30: add $0xa,%eax
5869 2.0330 : 400e33: add (%rdx),%al
282125 97.7263 : 400e35: add $0x1,%rdx
: 400e39: cmp $0x404560,%rdx
: 400e40: jne 400e30 <main+0xd0>
David