[Patch, i386] Turn on -fschedule-insns and -fsched-pressure by default for x86-64

Jack Howarth howarth@bromo.med.uc.edu
Wed Dec 8 01:32:00 GMT 2010


On Tue, Dec 07, 2010 at 08:23:22PM +0100, Paolo Bonzini wrote:
> On 12/06/2010 09:04 PM, Fang, Changpeng wrote:
>> Hi,
>>
>> Attached is the patch that proposes to turn on -fschedule-insns and -fsched-pressure by default at
>> -O2 or higher (for speed-runs only) for x86-64 systems.  Enablement of these two flags could improve
>> the performance of floating point programs (For CFP2006, 2.29% under -O2, and  1.34% under -O3).
>> There is no apparent performance  impact on integer programs (as expected).
>>
>> We have investigated this optimization since 4.5, and it is the time to turn on these two flags to enjoy
>> the performance gains.
>
> I think enabling rename registers whenever schedule_insns2 is enabled  
> would achieve almost the same freedom without risking bugs like 46829.  
> There are just too many singleton register classes in i386 for  
> schedule-insns to work. :(
>
> Paolo

Paolo,
    The improvements in the Polyhedron benchmark from -frename-registers on x86_64-apple-darwin10
appear marginal.

gfortran -mtune=core2 -ffast-math -funroll-loops -O3 %n.f90 -o %n

benchmark        stock   -frename-registers %change
ac               8.81    8.80               -0.1
aermod          17.21   17.21                0.0
air              5.53    5.56                0.5
capacita        32.39   32.37               -0.1
channel          1.84    1.84                0.0
doduc           26.40   26.39                0.0
fatigue          8.14    8.11               -0.4
gas_dyn          4.31    4.32                0.2
induct          12.85   12.84               -0.1
linpk           15.47   15.48                0.1
mdbx            11.21   11.22                0.1
nf              29.98   29.94               -0.1
protein         34.03   32.04               -6.2
rnflow          23.13   23.12               -0.0
test_fpu         8.03    8.03                0.0
tfft             1.87    1.86               -0.5

Geometric Mean  10.84   10.80               -0.4

        Jack



More information about the Gcc-patches mailing list