This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] 20% compile time regression vs. 3.4
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 3 Mar 2004 15:46:01 +0100 (CET)
- Subject: [tree-ssa] 20% compile time regression vs. 3.4
Hi!
I thought it was time for another 3.4 vs. tree-ssa compile-time
comparison. For -O2 compile-time we regressed quite a bit (20%) with the
main problem areas are (first 3.4, second tree-ssa):
garbage collection : 12.19 ( 7%) usr 0.00 ( 0%) sys 12.50 ( 7%) wall
garbage collection : 17.26 ( 8%) usr 0.02 ( 0%) sys 17.45 ( 8%) wall
tree-ssa uses about double amount of memory
parser : 14.59 ( 9%) usr 1.26 (27%) sys 16.41 ( 9%) wall
parser : 18.29 ( 8%) usr 1.42 (27%) sys 19.94 ( 9%) wall
I cannot make any sense out of this - are there significant changes to the
parser!? Maybe that-much larger libstdc++?
integration : 17.86 (11%) usr 0.29 ( 6%) sys 18.34 (10%) wall
integration : 21.62 (10%) usr 0.18 ( 3%) sys 22.19 (10%) wall
probably different inlining choices
and finally some tree-ssa optimizer numbers stick out
tree gimplify : 3.39 ( 2%) usr 0.04 ( 1%) sys 3.48 ( 1%) wall
tree eh : 2.71 ( 1%) usr 0.01 ( 0%) sys 2.77 ( 1%) wall
tree CFG construction : 1.69 ( 1%) usr 0.12 ( 2%) sys 1.87 ( 1%) wall
tree CFG cleanup : 2.89 ( 1%) usr 0.02 ( 0%) sys 2.98 ( 1%) wall
tree PTA : 0.49 ( 0%) usr 0.03 ( 1%) sys 0.52 ( 0%) wall
tree alias analysis : 0.71 ( 0%) usr 0.01 ( 0%) sys 0.75 ( 0%) wall
tree PHI insertion : 2.14 ( 1%) usr 0.04 ( 1%) sys 2.25 ( 1%) wall
tree SSA rewrite : 2.94 ( 1%) usr 0.01 ( 0%) sys 3.03 ( 1%) wall
tree SSA other : 3.77 ( 2%) usr 0.33 ( 6%) sys 4.17 ( 2%) wall
tree operand scan : 2.95 ( 1%) usr 0.46 ( 8%) sys 3.51 ( 2%) wall
dominator optimization: 14.06 ( 6%) usr 0.20 ( 4%) sys 14.60 ( 6%) wall
tree SRA : 0.29 ( 0%) usr 0.00 ( 0%) sys 0.31 ( 0%) wall
tree CCP : 2.29 ( 1%) usr 0.00 ( 0%) sys 2.39 ( 1%) wall
tree split crit edges : 0.27 ( 0%) usr 0.00 ( 0%) sys 0.28 ( 0%) wall
tree PRE : 6.11 ( 3%) usr 0.06 ( 1%) sys 6.40 ( 3%) wall
tree linearize phis : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
tree forward propagate: 1.37 ( 1%) usr 0.00 ( 0%) sys 1.42 ( 1%) wall
tree conservative DCE : 2.71 ( 1%) usr 0.02 ( 0%) sys 2.80 ( 1%) wall
tree aggressive DCE : 1.40 ( 1%) usr 0.00 ( 0%) sys 1.45 ( 1%) wall
tree DSE : 3.30 ( 2%) usr 0.03 ( 1%) sys 3.42 ( 1%) wall
tree copy headers : 1.80 ( 1%) usr 0.01 ( 0%) sys 1.84 ( 1%) wall
tree SSA to normal : 3.18 ( 1%) usr 0.13 ( 2%) sys 3.39 ( 1%) wall
tree NRV optimization : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
tree rename SSA copies: 0.83 ( 0%) usr 0.03 ( 1%) sys 0.88 ( 0%) wall
namely DOM (again) and PRE.
This is with the famous tramp3d-v2.cpp testcase you can find at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d-v2.cpp.gz
g++-ssa (GCC) 3.5-tree-ssa 20040303 (merged 20040227)
g++ (GCC) 3.4.0 20040301 (prerelease)
compiled with -O2 -c tramp3d-v2.cpp -Dleafify=fooblah -ftime-report to
disable leafify effects. The 3.4 compiler was profiledbootstrapped while
the ssa one was only bootstrapped. Of course checking was disabled.
Thanks,
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/