This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/50182] Performance degradation from gcc 4.1 (x86_64)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]