This is the mail archive of the gcc-patches@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]

Re: [PING][PATCH][REVISED] Fix PR middle-end/PR28690, modify swap_commutative_operands_p


"H. J. Lu" <hjl@lucon.org> wrote on 06/26/2007 06:01:26 PM:

> I got followings on Linux/Intel64:
>
> New: r125740 + r125920 patch + PR28690 patch
> Old: r125740 + r125920 patch
>
>                              (New - Old)/Old
> 200.sixtrack                     -7.37606%

I did some looking into sixtrack using HJ's binaries. Looks like most of
the degradation is coming from a single loop.  I've included oprofile
annotations of the two different versions of the loop measuring cycles, but
the main difference appears isolated to the following lines.  Hopefully
someone with more knowledge of the architecture than myself can comment on
the reason one code sequence is better than the other.


Hits      %
------  ------
Base:
 50709  2.8611 :  4afd4b:       movsd  %xmm2,15326069(%rip)        #
134d8c8 <crkveuk.2248>
     2 1.1e-04 :  4afd53:       mulsd  0x35eed00(,%rax,8),%xmm0
101904  5.7495 :  4afd5c:       addsd  %xmm1,%xmm0

Patched:
100275  5.4151 :  4b01ba:       movapd %xmm7,%xmm1
 12062  0.6514 :  4b01be:       mulsd  0x3441800(,%rax,8),%xmm1
 96240  5.1972 :  4b01c7:       addsd  %xmm1,%xmm0



(See attached file: HJ_sixtrack_base.txt)       (See attached file:
HJ_sixtrack_patched.txt)

Attachment: HJ_sixtrack_base.txt
Description: Binary data

Attachment: HJ_sixtrack_patched.txt
Description: Binary data


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