This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
3.2 vs 3.1 speed
- From: Dan Nicolaescu <dann at godzilla dot ICS dot UCI dot EDU>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 04 Jun 2002 18:38:29 -0700
- Subject: 3.2 vs 3.1 speed
I did a little test on the speed of 3.2 and 3.1 using the example
posted earlier today on a Sparc machine with 1GB RAM.
3.2 was last updated on May 25.
3.2 is _slower_ than 3.1 at compiling the same preprocessed file.
It looks like the main reasons for the speed decrease are: garbage
collection, expand and scheduling.
The times are the ones reported by -ftime-report
Results for -O1
g++-3.2 -O1 g++-3.1 -O1
Execution times (seconds)
garbage collection : 30.28 (25%) garbage collection : 27.53 (26%)
cfg construction : 1.36 ( 1%) cfg construction : 1.05 ( 1%)
cfg cleanup : 3.64 ( 3%) cfg cleanup : 3.43 ( 3%)
trivially dead code : 0.94 ( 1%)
life analysis : 7.77 ( 6%) life analysis : 6.59 ( 6%)
life info update : 1.34 ( 1%) life info update : 0.88 ( 1%)
preprocessing : 1.13 ( 1%) preprocessing : 0.97 ( 1%)
lexical analysis : 1.63 ( 1%) lexical analysis : 1.96 ( 2%)
parser : 35.49 (29%) parser : 37.18 (35%)
expand : 15.89 (13%) expand : 7.71 ( 7%)
varconst : 0.25 ( 0%) varconst : 0.42 ( 0%)
integration : 2.03 ( 2%) integration : 1.87 ( 2%)
jump : 2.28 ( 2%) jump : 0.41 ( 0%)
CSE : 3.16 ( 3%) CSE : 3.24 ( 3%)
loop analysis : 0.46 ( 0%) loop analysis : 0.38 ( 0%)
CSE 2 : 0.00 ( 0%)
branch prediction : 1.54 ( 1%)
flow analysis : 0.45 ( 0%) flow analysis : 0.54 ( 1%)
combiner : 1.47 ( 1%) combiner : 1.40 ( 1%)
if-conversion : 0.09 ( 0%) if-conversion : 0.04 ( 0%)
local alloc : 1.45 ( 1%) local alloc : 1.16 ( 1%)
global alloc : 2.97 ( 2%) global alloc : 2.63 ( 2%)
reload CSE regs : 1.37 ( 1%) reload CSE regs : 1.66 ( 2%)
flow 2 : 0.28 ( 0%) flow 2 : 0.18 ( 0%)
if-conversion 2 : 0.07 ( 0%) if-conversion 2 : 0.04 ( 0%)
rename registers : 2.30 ( 2%) rename registers : 1.98 ( 2%)
delay branch sched : 1.07 ( 1%) delay branch sched : 0.90 ( 1%)
shorten branches : 0.15 ( 0%) shorten branches : 0.09 ( 0%)
final : 0.49 ( 0%) final : 0.54 ( 1%)
symout : 0.03 ( 0%) symout : 0.08 ( 0%)
rest of compilation : 1.69 ( 1%) rest of compilation : 1.33 ( 1%)
TOTAL : 123.10 TOTAL : 106.24
Results for -O2
g++-3.2 -O2 g++-3.1 -O2
Execution times (seconds)
garbage collection : 33.53 (20%) garbage collection : 30.54 (22%)
cfg construction : 1.19 ( 1%) cfg construction : 1.41 ( 1%)
cfg cleanup : 3.36 ( 2%) cfg cleanup : 3.52 ( 2%)
trivially dead code : 1.99 ( 1%)
life analysis : 7.84 ( 5%) life analysis : 6.72 ( 5%)
life info update : 1.74 ( 1%) life info update : 1.38 ( 1%)
preprocessing : 0.95 ( 1%) preprocessing : 1.00 ( 1%)
lexical analysis : 1.63 ( 1%) lexical analysis : 1.70 ( 1%)
parser : 35.45 (22%) parser : 37.95 (27%)
expand : 16.66 (10%) expand : 8.54 ( 6%)
varconst : 0.32 ( 0%) varconst : 0.38 ( 0%)
integration : 1.97 ( 1%) integration : 1.68 ( 1%)
jump : 3.47 ( 2%) jump : 1.27 ( 1%)
CSE : 10.81 ( 7%) CSE : 11.87 ( 8%)
global CSE : 2.86 ( 2%) global CSE : 2.07 ( 1%)
loop analysis : 0.93 ( 1%) loop analysis : 0.71 ( 1%)
CSE 2 : 4.00 ( 2%) CSE 2 : 4.52 ( 3%)
branch prediction : 1.55 ( 1%)
flow analysis : 0.29 ( 0%) flow analysis : 0.33 ( 0%)
combiner : 1.19 ( 1%) combiner : 1.12 ( 1%)
if-conversion : 0.09 ( 0%) if-conversion : 0.05 ( 0%)
regmove : 0.43 ( 0%) regmove : 0.39 ( 0%)
scheduling : 16.24 (10%) scheduling : 10.21 ( 7%)
local alloc : 1.61 ( 1%) local alloc : 1.42 ( 1%)
global alloc : 3.04 ( 2%) global alloc : 2.66 ( 2%)
reload CSE regs : 2.37 ( 1%) reload CSE regs : 3.01 ( 2%)
flow 2 : 0.25 ( 0%) flow 2 : 0.20 ( 0%)
if-conversion 2 : 0.02 ( 0%) if-conversion 2 : 0.04 ( 0%)
peephole 2 : 0.49 ( 0%) peephole 2 : 0.52 ( 0%)
rename registers : 2.33 ( 1%) rename registers : 2.13 ( 2%)
scheduling 2 : 1.77 ( 1%) scheduling 2 : 1.44 ( 1%)
delay branch sched : 1.43 ( 1%) delay branch sched : 0.95 ( 1%)
reorder blocks : 0.22 ( 0%) reorder blocks : 0.20 ( 0%)
shorten branches : 0.19 ( 0%) shorten branches : 0.13 ( 0%)
final : 0.51 ( 0%) final : 0.50 ( 0%)
symout : 0.01 ( 0%) symout : 0.04 ( 0%)
rest of compilation : 1.62 ( 1%) rest of compilation : 1.13 ( 1%)
TOTAL : 164.43 TOTAL : 141.80
The source code used is at: http://www.ics.uci.edu/~dann/orb.i.bz2
Hope somebody can figure out what is going on...