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