Experimenting with tree inliner parameter settings

John David Anglin dave@hiauly1.hia.nrc.ca
Sun May 4 23:21:00 GMT 2003


> So the question is: What do these numbers do for your code,
> both in terms of compile time and in runtime performance?  
> Richard, Dave, Gerald, can you please test the settings 
> below on your favorite code and on the test case for
> PR 10160 and PR 8361 (and maybe PR 10316)?
> 
> max-inline-insns-single=230
> max-inline-insns-auto=230
> max-inline-insns=500
> min-inline-insns=80
> max-inline-slope=20

Here is some testing on the PA under hpux.

xforms/Dialogs.ii:

# time /opt/gnu64/lib/gcc-lib/hppa64-hp-hpux11.11/3.3/cc1plus -O2 --param max-inline-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet Dialogs.ii

real    2m8.141s
user    2m3.470s
sys     0m4.300s

# time /opt/gnu/lib/gcc-lib/hppa2.0w-hp-hpux11.11/3.3/cc1plus -O2 --param max-in
line-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns
=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet Dialogs.ii

real    1m37.622s
user    1m34.940s
sys     0m1.800s

qt/Dialogs.ii (PR 10160):

# time /opt/gnu64/lib/gcc-lib/hppa64-hp-hpux11.11/3.3/cc1plus -O2 --param max-in
line-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns
=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet Dialogs.ii

real    2m58.762s
user    2m52.770s
sys     0m5.600s

# time /opt/gnu/lib/gcc-lib/hppa2.0w-hp-hpux11.11/3.3/cc1plus -O2 --param max-in
line-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns
=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet Dialogs.ii

real    2m22.571s
user    2m18.980s
sys     0m2.510s

# time /opt/gnu/lib/gcc-lib/hppa2.0w-hp-hpux11.11/3.3/cc1plus -O2 --param max-inline-insns-single=150 --param max-inline-insns-auto=230 --param max-inline-insns
=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet Dialogs.ii

real    0m48.808s
user    0m47.120s
sys     0m1.580s

As noted previously, the change in compilation time is largely due to
a quadratic or worse behavior of the life analysis pass.  At
max-inline-insns-single=150, life analysis takes up an insignificant
fraction of the total compile time.  At 230, it takes up 34%.

generate.ii (PR 8361):

# time /opt/gnu64/lib/gcc-lib/hppa64-hp-hpux11.11/3.3/cc1plus -O2 --param max-in
line-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns
=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet generate.ii

real    2m48.966s
user    2m6.230s
sys     0m30.540s

# time /opt/gnu/lib/gcc-lib/hppa2.0w-hp-hpux11.11/3.3/cc1plus -O2 --param max-inline-insns-single=230 --param max-inline-insns-auto=230 --param max-inline-insns=500 --param min-inline-insns=80 --param max-inline-slope=20 -quiet generate.ii

real    1m18.442s
user    1m16.170s
sys     0m2.220s

>From looking at the memory usage, I think that this parameter set may
still be slightly too aggressive.  This is more so for the 64-bit port,
but at least there one can add more memory.  However, all the testcases
build with this set in a reasonable amount of time.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)



More information about the Gcc mailing list