This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
- From: "rguenth at tat dot physik dot uni-tuebingen dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Mar 2004 14:21:03 -0000
- Subject: [Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
- References: <20040120183908.13776.kgardas@objectsecurity.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2004-03-12 14:20 -------
Subject: Re: [tree-ssa] Many C++ compile-time regression in
3.5-tree-ssa 040120
Compilation times in mode that matters to me (leafify enabled) degraded
half an order of magnitude:
g++-ssa (GCC) 3.5-tree-ssa 20040311 (merged 20040307)
bellatrix:/tmp$ g++-ssa -O2 -o tramp3d-v2 tramp3d-v2.cpp -static
-ftime-report
Execution times (seconds)
garbage collection : 38.48 ( 3%) usr 0.15 ( 1%) sys 38.90 ( 3%)
wall
callgraph construction: 1.49 ( 0%) usr 0.00 ( 0%) sys 1.49 ( 0%)
wall
callgraph optimization: 1.54 ( 0%) usr 0.08 ( 0%) sys 1.63 ( 0%)
wall
cfg construction : 1.35 ( 0%) usr 0.17 ( 1%) sys 1.52 ( 0%)
wall
cfg cleanup : 5.68 ( 0%) usr 0.03 ( 0%) sys 5.74 ( 0%)
wall
trivially dead code : 5.11 ( 0%) usr 0.01 ( 0%) sys 5.16 ( 0%)
wall
life analysis : 9.41 ( 1%) usr 0.05 ( 0%) sys 9.59 ( 1%)
wall
life info update : 5.78 ( 0%) usr 0.00 ( 0%) sys 5.81 ( 0%)
wall
alias analysis : 7.50 ( 1%) usr 0.03 ( 0%) sys 7.58 ( 1%)
wall
register scan : 3.92 ( 0%) usr 0.01 ( 0%) sys 3.95 ( 0%)
wall
rebuild jump labels : 1.37 ( 0%) usr 0.00 ( 0%) sys 1.41 ( 0%)
wall
preprocessing : 0.51 ( 0%) usr 0.10 ( 0%) sys 0.64 ( 0%)
wall
parser : 18.60 ( 2%) usr 1.47 ( 7%) sys 20.14 ( 2%)
wall
name lookup : 6.55 ( 1%) usr 1.53 ( 7%) sys 8.10 ( 1%)
wall
integration : 67.76 ( 6%) usr 1.46 ( 7%) sys 69.59 ( 6%)
wall
tree gimplify : 3.44 ( 0%) usr 0.04 ( 0%) sys 3.50 ( 0%)
wall
tree eh : 7.64 ( 1%) usr 0.25 ( 1%) sys 7.96 ( 1%)
wall
tree CFG construction : 4.54 ( 0%) usr 0.53 ( 3%) sys 5.07 ( 0%)
wall
tree CFG cleanup : 9.67 ( 1%) usr 0.08 ( 0%) sys 9.81 ( 1%)
wall
tree PTA : 1.26 ( 0%) usr 0.05 ( 0%) sys 1.31 ( 0%)
wall
tree alias analysis : 1.37 ( 0%) usr 0.01 ( 0%) sys 1.38 ( 0%)
wall
tree PHI insertion : 74.91 ( 6%) usr 0.24 ( 1%) sys 75.62 ( 6%)
wall
tree SSA rewrite : 7.46 ( 1%) usr 0.21 ( 1%) sys 7.72 ( 1%)
wall
tree SSA other : 10.67 ( 1%) usr 0.79 ( 4%) sys 11.58 ( 1%)
wall
tree operand scan : 6.77 ( 1%) usr 0.61 ( 3%) sys 7.41 ( 1%)
wall
dominator optimization: 46.56 ( 4%) usr 1.54 ( 8%) sys 48.39 ( 4%)
wall
tree SRA : 0.79 ( 0%) usr 0.02 ( 0%) sys 0.83 ( 0%)
wall
tree CCP : 4.88 ( 0%) usr 0.02 ( 0%) sys 4.97 ( 0%)
wall
tree split crit edges : 0.64 ( 0%) usr 0.06 ( 0%) sys 0.70 ( 0%)
wall
tree PRE : 583.13 (49%) usr 6.18 (30%) sys 592.99 (48%)
wall
tree linearize phis : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%)
wall
tree forward propagate: 3.51 ( 0%) usr 0.00 ( 0%) sys 3.53 ( 0%)
wall
tree conservative DCE : 6.95 ( 1%) usr 0.08 ( 0%) sys 7.05 ( 1%)
wall
tree aggressive DCE : 2.89 ( 0%) usr 0.03 ( 0%) sys 2.93 ( 0%)
wall
tree DSE : 6.33 ( 1%) usr 0.19 ( 1%) sys 6.56 ( 1%)
wall
tree copy headers : 5.00 ( 0%) usr 0.05 ( 0%) sys 5.09 ( 0%)
wall
tree SSA to normal : 9.60 ( 1%) usr 0.42 ( 2%) sys 10.09 ( 1%)
wall
tree rename SSA copies: 2.11 ( 0%) usr 0.05 ( 0%) sys 2.17 ( 0%)
wall
dominance frontiers : 0.86 ( 0%) usr 0.00 ( 0%) sys 0.89 ( 0%)
wall
control dependences : 0.49 ( 0%) usr 0.00 ( 0%) sys 0.51 ( 0%)
wall
expand : 42.02 ( 3%) usr 1.38 ( 7%) sys 43.63 ( 4%)
wall
varconst : 0.82 ( 0%) usr 0.01 ( 0%) sys 0.83 ( 0%)
wall
jump : 8.24 ( 1%) usr 0.36 ( 2%) sys 8.64 ( 1%)
wall
CSE : 14.22 ( 1%) usr 0.08 ( 0%) sys 14.39 ( 1%)
wall
global CSE : 67.80 ( 6%) usr 0.84 ( 4%) sys 69.06 ( 6%)
wall
loop analysis : 11.90 ( 1%) usr 0.02 ( 0%) sys 12.02 ( 1%)
wall
bypass jumps : 2.48 ( 0%) usr 0.12 ( 1%) sys 2.60 ( 0%)
wall
CSE 2 : 6.33 ( 1%) usr 0.04 ( 0%) sys 6.38 ( 1%)
wall
branch prediction : 8.78 ( 1%) usr 0.03 ( 0%) sys 8.88 ( 1%)
wall
flow analysis : 0.28 ( 0%) usr 0.00 ( 0%) sys 0.29 ( 0%)
wall
combiner : 6.32 ( 1%) usr 0.08 ( 0%) sys 6.46 ( 1%)
wall
if-conversion : 1.72 ( 0%) usr 0.02 ( 0%) sys 1.74 ( 0%)
wall
regmove : 2.47 ( 0%) usr 0.00 ( 0%) sys 2.48 ( 0%)
wall
local alloc : 6.16 ( 1%) usr 0.03 ( 0%) sys 6.25 ( 1%)
wall
global alloc : 13.97 ( 1%) usr 0.21 ( 1%) sys 14.22 ( 1%)
wall
reload CSE regs : 5.61 ( 0%) usr 0.07 ( 0%) sys 5.75 ( 0%)
wall
flow 2 : 1.31 ( 0%) usr 0.07 ( 0%) sys 1.41 ( 0%)
wall
if-conversion 2 : 0.90 ( 0%) usr 0.00 ( 0%) sys 0.91 ( 0%)
wall
peephole 2 : 0.94 ( 0%) usr 0.02 ( 0%) sys 0.97 ( 0%)
wall
rename registers : 1.66 ( 0%) usr 0.07 ( 0%) sys 1.75 ( 0%)
wall
scheduling 2 : 8.51 ( 1%) usr 0.13 ( 1%) sys 8.67 ( 1%)
wall
machine dep reorg : 1.74 ( 0%) usr 0.00 ( 0%) sys 1.76 ( 0%)
wall
reorder blocks : 1.06 ( 0%) usr 0.04 ( 0%) sys 1.10 ( 0%)
wall
shorten branches : 1.87 ( 0%) usr 0.05 ( 0%) sys 1.94 ( 0%)
wall
reg stack : 0.36 ( 0%) usr 0.00 ( 0%) sys 0.36 ( 0%)
wall
final : 2.55 ( 0%) usr 0.18 ( 1%) sys 2.74 ( 0%)
wall
symout : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%)
wall
rest of compilation : 4.92 ( 0%) usr 0.07 ( 0%) sys 4.99 ( 0%)
wall
TOTAL :1201.61 20.47 1229.69
Look at the PRE times!!!
Also the resulting binary segfaults and such is miscompiled (for both
leafify enabled and disabled compilation). Ugh.
For reference, the leafify patch still sits at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/leafify-ssa-2
Building an instrumented compiler now.
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13776