This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Compilation performance comparison of gcc3.4.1 and gcc3.5.02004-08-30 on MICO sources
- From: Karel Gardas <kgardas at objectsecurity dot com>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: Steven Bosscher <stevenb at suse dot de>, GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Tue, 31 Aug 2004 12:52:29 +0200 (CEST)
- Subject: Re: Compilation performance comparison of gcc3.4.1 and gcc3.5.02004-08-30 on MICO sources
On Tue, 31 Aug 2004, Paolo Bonzini wrote:
> The -O2 times for 3.5 would help as well, I suspect -funit-at-a-time is
> helping a lot.
Here are reports for -O2 for both trunk and gcc3.4.1:
Trunk:
Execution times (seconds)
garbage collection : 1.21 ( 4%) usr 0.00 ( 0%) sys 1.23 ( 4%) wall
callgraph construction: 0.19 ( 1%) usr 0.01 ( 1%) sys 0.20 ( 1%) wall
callgraph optimization: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
cfg construction : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
cfg cleanup : 0.28 ( 1%) usr 0.00 ( 0%) sys 0.31 ( 1%) wall
trivially dead code : 0.38 ( 1%) usr 0.01 ( 1%) sys 0.34 ( 1%) wall
life analysis : 0.76 ( 2%) usr 0.01 ( 1%) sys 0.68 ( 2%) wall
life info update : 0.35 ( 1%) usr 0.00 ( 0%) sys 0.44 ( 1%) wall
alias analysis : 0.38 ( 1%) usr 0.00 ( 0%) sys 0.46 ( 1%) wall
register scan : 0.31 ( 1%) usr 0.00 ( 0%) sys 0.35 ( 1%) wall
rebuild jump labels : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
preprocessing : 0.38 ( 1%) usr 0.17 ( 9%) sys 0.56 ( 2%) wall
parser : 3.89 (13%) usr 0.53 (27%) sys 4.81 (14%) wall
name lookup : 1.25 ( 4%) usr 0.58 (30%) sys 1.66 ( 5%) wall
integration : 0.86 ( 3%) usr 0.00 ( 0%) sys 0.95 ( 3%) wall
tree gimplify : 0.53 ( 2%) usr 0.03 ( 2%) sys 0.59 ( 2%) wall
tree eh : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
tree CFG construction : 0.16 ( 1%) usr 0.02 ( 1%) sys 0.16 ( 0%) wall
tree CFG cleanup : 0.17 ( 1%) usr 0.00 ( 0%) sys 0.25 ( 1%) wall
tree PTA : 0.23 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall
tree alias analysis : 0.43 ( 1%) usr 0.01 ( 1%) sys 0.51 ( 2%) wall
tree PHI insertion : 0.59 ( 2%) usr 0.02 ( 1%) sys 0.56 ( 2%) wall
tree SSA rewrite : 0.68 ( 2%) usr 0.00 ( 0%) sys 0.72 ( 2%) wall
tree SSA other : 1.14 ( 4%) usr 0.11 ( 6%) sys 1.41 ( 4%) wall
tree operand scan : 0.75 ( 2%) usr 0.15 ( 8%) sys 0.77 ( 2%) wall
dominator optimization: 1.79 ( 6%) usr 0.06 ( 3%) sys 1.69 ( 5%) wall
tree SRA : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
tree CCP : 0.24 ( 1%) usr 0.00 ( 0%) sys 0.23 ( 1%) wall
tree split crit edges : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
tree PRE : 0.42 ( 1%) usr 0.02 ( 1%) sys 0.52 ( 2%) wall
tree forward propagate: 0.02 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
tree conservative DCE : 0.32 ( 1%) usr 0.01 ( 1%) sys 0.33 ( 1%) wall
tree aggressive DCE : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall
tree DSE : 0.29 ( 1%) usr 0.00 ( 0%) sys 0.38 ( 1%) wall
loop invariant motion : 0.21 ( 1%) usr 0.00 ( 0%) sys 0.18 ( 1%) wall
tree copy headers : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
tree SSA to normal : 0.28 ( 1%) usr 0.02 ( 1%) sys 0.34 ( 1%) wall
tree rename SSA copies: 0.10 ( 0%) usr 0.01 ( 1%) sys 0.11 ( 0%) wall
dominance frontiers : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
control dependences : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
expand : 2.25 ( 7%) usr 0.02 ( 1%) sys 2.33 ( 7%) wall
varconst : 0.09 ( 0%) usr 0.03 ( 2%) sys 0.11 ( 0%) wall
jump : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
CSE : 1.72 ( 6%) usr 0.01 ( 1%) sys 1.86 ( 5%) wall
loop analysis : 0.17 ( 1%) usr 0.01 ( 1%) sys 0.13 ( 0%) wall
global CSE : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
CPROP 1 : 0.22 ( 1%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
PRE : 0.37 ( 1%) usr 0.01 ( 1%) sys 0.43 ( 1%) wall
CPROP 2 : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
LSM : 0.35 ( 1%) usr 0.01 ( 1%) sys 0.38 ( 1%) wall
bypass jumps : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 1%) wall
web : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall
CSE 2 : 0.94 ( 3%) usr 0.00 ( 0%) sys 0.94 ( 3%) wall
branch prediction : 0.17 ( 1%) usr 0.01 ( 1%) sys 0.23 ( 1%) wall
flow analysis : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
combiner : 0.55 ( 2%) usr 0.00 ( 0%) sys 0.54 ( 2%) wall
if-conversion : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
regmove : 0.19 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall
local alloc : 0.43 ( 1%) usr 0.01 ( 1%) sys 0.49 ( 1%) wall
global alloc : 1.16 ( 4%) usr 0.00 ( 0%) sys 1.14 ( 3%) wall
reload CSE regs : 0.53 ( 2%) usr 0.01 ( 1%) sys 0.46 ( 1%) wall
flow 2 : 0.11 ( 0%) usr 0.01 ( 1%) sys 0.13 ( 0%) wall
if-conversion 2 : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
peephole 2 : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
rename registers : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.15 ( 0%) wall
scheduling 2 : 0.81 ( 3%) usr 0.00 ( 0%) sys 0.97 ( 3%) wall
machine dep reorg : 0.24 ( 1%) usr 0.00 ( 0%) sys 0.18 ( 1%) wall
reorder blocks : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
shorten branches : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
final : 0.31 ( 1%) usr 0.03 ( 2%) sys 0.32 ( 1%) wall
symout : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
rest of compilation : 0.15 ( 0%) usr 0.01 ( 1%) sys 0.14 ( 0%) wall
TOTAL : 31.01 1.94 33.84
# cc1plus 31.02 1.97
# as 0.36 0.02
GCC 3.4.1:
Execution times (seconds)
garbage collection : 1.20 ( 4%) usr 0.00 ( 0%) sys 1.22 ( 3%) wall
callgraph construction: 0.14 ( 0%) usr 0.00 ( 0%) sys 0.16 ( 0%) wall
callgraph optimization: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
cfg construction : 0.40 ( 1%) usr 0.00 ( 0%) sys 0.43 ( 1%) wall
cfg cleanup : 0.46 ( 1%) usr 0.02 ( 1%) sys 0.44 ( 1%) wall
trivially dead code : 0.48 ( 1%) usr 0.00 ( 0%) sys 0.53 ( 1%) wall
life analysis : 0.74 ( 2%) usr 0.00 ( 0%) sys 0.76 ( 2%) wall
life info update : 0.36 ( 1%) usr 0.00 ( 0%) sys 0.39 ( 1%) wall
alias analysis : 0.68 ( 2%) usr 0.00 ( 0%) sys 0.59 ( 2%) wall
register scan : 0.40 ( 1%) usr 0.01 ( 0%) sys 0.37 ( 1%) wall
rebuild jump labels : 0.19 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall
preprocessing : 0.47 ( 1%) usr 0.18 ( 8%) sys 0.66 ( 2%) wall
parser : 4.21 (13%) usr 0.76 (33%) sys 5.18 (14%) wall
name lookup : 1.41 ( 4%) usr 0.99 (42%) sys 2.34 ( 6%) wall
expand : 8.79 (26%) usr 0.01 ( 0%) sys 8.90 (24%) wall
varconst : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
integration : 1.54 ( 5%) usr 0.00 ( 0%) sys 1.78 ( 5%) wall
jump : 0.69 ( 2%) usr 0.11 ( 5%) sys 0.70 ( 2%) wall
CSE : 2.72 ( 8%) usr 0.00 ( 0%) sys 2.84 ( 8%) wall
global CSE : 2.13 ( 6%) usr 0.12 ( 5%) sys 2.41 ( 7%) wall
loop analysis : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall
bypass jumps : 0.23 ( 1%) usr 0.02 ( 1%) sys 0.37 ( 1%) wall
CSE 2 : 0.80 ( 2%) usr 0.00 ( 0%) sys 0.78 ( 2%) wall
branch prediction : 0.46 ( 1%) usr 0.00 ( 0%) sys 0.54 ( 1%) wall
flow analysis : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
combiner : 0.44 ( 1%) usr 0.00 ( 0%) sys 0.43 ( 1%) wall
if-conversion : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall
regmove : 0.19 ( 1%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall
local alloc : 0.37 ( 1%) usr 0.02 ( 1%) sys 0.39 ( 1%) wall
global alloc : 0.88 ( 3%) usr 0.02 ( 1%) sys 0.95 ( 3%) wall
reload CSE regs : 0.41 ( 1%) usr 0.01 ( 0%) sys 0.49 ( 1%) wall
flow 2 : 0.09 ( 0%) usr 0.01 ( 0%) sys 0.11 ( 0%) wall
if-conversion 2 : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
peephole 2 : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall
rename registers : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall
scheduling 2 : 0.67 ( 2%) usr 0.03 ( 1%) sys 0.64 ( 2%) wall
reorder blocks : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
shorten branches : 0.10 ( 0%) usr 0.01 ( 0%) sys 0.10 ( 0%) wall
final : 0.17 ( 1%) usr 0.00 ( 0%) sys 0.23 ( 1%) wall
symout : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
rest of compilation : 0.93 ( 3%) usr 0.01 ( 0%) sys 0.90 ( 2%) wall
TOTAL : 33.50 2.33 36.75
# cc1plus 33.50 2.35
# as 0.29 0.02
Karel
--
Karel Gardas kgardas@objectsecurity.com
ObjectSecurity Ltd. http://www.objectsecurity.com