This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26854] Inordinate compile times on large routines
- From: "lucier at math dot purdue dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Apr 2006 03:18:02 -0000
- Subject: [Bug tree-optimization/26854] Inordinate compile times on large routines
- References: <bug-26854-271@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from lucier at math dot purdue dot edu 2006-04-20 03:18 -------
Subject: Re: Inordinate compile times on large routines
Thanks a lot. Here are the timing statistics (with --disable-
checking) after your patch.
PS: I'm sorry it took 9 hours to compile on your box.
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 16k 14k 480
16 52k 12k 1144
64 1276k 1239k 19k
256 484k 452k 6776
512 36k 25k 504
1024 220k 216k 3080
2048 24k 20k 336
4096 68k 68k 952
8192 56k 56k 392
16384 16k 16k 56
32768 288k 288k 504
65536 64k 64k 56
131072 128k 128k 56
262144 512k 512k 112
524288 512k 512k 56
1048576 1024k 1024k 56
2097152 4096k 4096k 112
112 34M 16M 484k
208 40k 38k 560
192 3344k 3287k 45k
160 28k 6240 392
176 564k 261k 7896
48 2088k 1165k 32k
32 144k 68k 2592
80 35M 2063k 499k
Total 85M 32M 1107k
String pool
entries 158128
identifiers 158128 (100.00%)
slots 262144
bytes 1981k (169k overhead)
table size 2048k
coll/search 1.1434
ins/search 0.1946
avg. entry 12.83 bytes (+/- 7.82)
longest entry 67
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 598 elements, 0.900368 collisions
DECL_DEBUG_EXPR hash: size 8191, 0 elements, 1.140991 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
garbage collection : 1.84 ( 0%) usr 0.04 ( 0%) sys 2.47
( 0%) wall 0 kB ( 0%) ggc
callgraph construction: 1.79 ( 0%) usr 0.35 ( 0%) sys 2.67
( 0%) wall 21241 kB ( 2%) ggc
callgraph optimization: 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05
( 0%) wall 0 kB ( 0%) ggc
ipa reference : 0.42 ( 0%) usr 0.14 ( 0%) sys 0.71
( 0%) wall 7 kB ( 0%) ggc
cfg construction : 0.31 ( 0%) usr 0.00 ( 0%) sys 0.48
( 0%) wall 7224 kB ( 1%) ggc
cfg cleanup : 95.98 ( 9%) usr 0.62 ( 0%) sys 125.14
( 8%) wall 2098 kB ( 0%) ggc
trivially dead code : 2.49 ( 0%) usr 0.06 ( 0%) sys 3.46
( 0%) wall 0 kB ( 0%) ggc
life analysis : 5.86 ( 1%) usr 3.35 ( 3%) sys 11.86
( 1%) wall 18686 kB ( 2%) ggc
life info update : 0.95 ( 0%) usr 0.02 ( 0%) sys 1.18
( 0%) wall 526 kB ( 0%) ggc
alias analysis : 1.67 ( 0%) usr 0.03 ( 0%) sys 2.07
( 0%) wall 16385 kB ( 2%) ggc
register scan : 0.93 ( 0%) usr 0.01 ( 0%) sys 1.29
( 0%) wall 4 kB ( 0%) ggc
rebuild jump labels : 0.30 ( 0%) usr 0.00 ( 0%) sys 0.37
( 0%) wall 0 kB ( 0%) ggc
preprocessing : 7.27 ( 1%) usr 13.04 (10%) sys 25.28
( 2%) wall 2197 kB ( 0%) ggc
lexical analysis : 13.10 ( 1%) usr 25.59 (20%) sys 47.58
( 3%) wall 0 kB ( 0%) ggc
parser : 9.44 ( 1%) usr 12.84 (10%) sys 28.21
( 2%) wall 72677 kB ( 7%) ggc
tree gimplify : 1.51 ( 0%) usr 0.08 ( 0%) sys 2.02
( 0%) wall 30969 kB ( 3%) ggc
tree eh : 0.17 ( 0%) usr 0.01 ( 0%) sys 0.22
( 0%) wall 0 kB ( 0%) ggc
tree CFG construction : 0.56 ( 0%) usr 0.14 ( 0%) sys 1.02
( 0%) wall 76077 kB ( 8%) ggc
tree CFG cleanup : 5.77 ( 1%) usr 0.06 ( 0%) sys 7.60
( 0%) wall 955 kB ( 0%) ggc
tree copy propagation : 5.43 ( 0%) usr 0.39 ( 0%) sys 7.83
( 0%) wall 10484 kB ( 1%) ggc
tree store copy prop : 0.73 ( 0%) usr 0.04 ( 0%) sys 0.96
( 0%) wall 1088 kB ( 0%) ggc
tree find ref. vars : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.23
( 0%) wall 2502 kB ( 0%) ggc
tree PTA : 5.49 ( 0%) usr 0.57 ( 0%) sys 7.86
( 0%) wall 16435 kB ( 2%) ggc
tree alias analysis : 6.82 ( 1%) usr 10.23 ( 8%) sys 18.62
( 1%) wall 12810 kB ( 1%) ggc
tree PHI insertion : 1.05 ( 0%) usr 0.21 ( 0%) sys 1.62
( 0%) wall 24377 kB ( 2%) ggc
tree SSA rewrite : 2.50 ( 0%) usr 0.16 ( 0%) sys 3.34
( 0%) wall 39166 kB ( 4%) ggc
tree SSA other : 1.10 ( 0%) usr 1.49 ( 1%) sys 3.69
( 0%) wall 0 kB ( 0%) ggc
tree SSA incremental : 13.99 ( 1%) usr 3.74 ( 3%) sys 22.60
( 1%) wall 19165 kB ( 2%) ggc
tree operand scan : 626.32 (57%) usr 12.24 (10%) sys 833.21
(52%) wall 23910 kB ( 2%) ggc
dominator optimization: 6.09 ( 1%) usr 0.35 ( 0%) sys 8.22
( 1%) wall 63874 kB ( 7%) ggc
tree STORE-CCP : 0.67 ( 0%) usr 0.02 ( 0%) sys 0.87
( 0%) wall 513 kB ( 0%) ggc
tree CCP : 0.74 ( 0%) usr 0.02 ( 0%) sys 1.03
( 0%) wall 514 kB ( 0%) ggc
tree split crit edges : 0.37 ( 0%) usr 0.21 ( 0%) sys 0.85
( 0%) wall 40362 kB ( 4%) ggc
tree reassociation : 0.56 ( 0%) usr 0.02 ( 0%) sys 0.69
( 0%) wall 0 kB ( 0%) ggc
tree FRE : 12.83 ( 1%) usr 0.67 ( 1%) sys 17.70
( 1%) wall 40945 kB ( 4%) ggc
tree code sinking : 0.98 ( 0%) usr 0.06 ( 0%) sys 1.45
( 0%) wall 0 kB ( 0%) ggc
tree linearize phis : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.30
( 0%) wall 0 kB ( 0%) ggc
tree forward propagate: 0.16 ( 0%) usr 0.00 ( 0%) sys 0.20
( 0%) wall 0 kB ( 0%) ggc
tree conservative DCE : 1.87 ( 0%) usr 0.03 ( 0%) sys 2.54
( 0%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.87 ( 0%) usr 0.01 ( 0%) sys 1.17
( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.73 ( 0%) usr 0.04 ( 0%) sys 0.91
( 0%) wall 0 kB ( 0%) ggc
PHI merge : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02
( 0%) wall 49 kB ( 0%) ggc
tree loop bounds : 0.35 ( 0%) usr 0.01 ( 0%) sys 0.41
( 0%) wall 0 kB ( 0%) ggc
loop invariant motion : 0.56 ( 0%) usr 0.01 ( 0%) sys 0.72
( 0%) wall 0 kB ( 0%) ggc
tree canonical iv : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.21
( 0%) wall 0 kB ( 0%) ggc
scev constant prop : 1.47 ( 0%) usr 0.04 ( 0%) sys 2.02
( 0%) wall 1973 kB ( 0%) ggc
complete unrolling : 0.08 ( 0%) usr 0.01 ( 0%) sys 0.08
( 0%) wall 0 kB ( 0%) ggc
tree loop init : 5.15 ( 0%) usr 5.40 ( 4%) sys 14.04
( 1%) wall 58726 kB ( 6%) ggc
tree loop fini : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 0 kB ( 0%) ggc
tree copy headers : 0.24 ( 0%) usr 0.01 ( 0%) sys 0.31
( 0%) wall 0 kB ( 0%) ggc
tree SSA uncprop : 0.44 ( 0%) usr 0.01 ( 0%) sys 0.52
( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 171.82 (16%) usr 1.31 ( 1%) sys 224.37
(14%) wall 101554 kB (10%) ggc
tree rename SSA copies: 0.60 ( 0%) usr 0.07 ( 0%) sys 1.05
( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.54 ( 0%) usr 0.02 ( 0%) sys 0.67
( 0%) wall 0 kB ( 0%) ggc
expand : 7.37 ( 1%) usr 4.05 ( 3%) sys 14.98
( 1%) wall 122832 kB (13%) ggc
varconst : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.00
( 0%) wall 7 kB ( 0%) ggc
jump : 0.66 ( 0%) usr 0.04 ( 0%) sys 0.88
( 0%) wall 0 kB ( 0%) ggc
CSE : 1.98 ( 0%) usr 1.16 ( 1%) sys 4.00
( 0%) wall 2442 kB ( 0%) ggc
loop analysis : 1.55 ( 0%) usr 0.13 ( 0%) sys 2.17
( 0%) wall 7001 kB ( 1%) ggc
branch prediction : 2.97 ( 0%) usr 0.18 ( 0%) sys 4.00
( 0%) wall 7022 kB ( 1%) ggc
flow analysis : 0.20 ( 0%) usr 0.00 ( 0%) sys 0.38
( 0%) wall 0 kB ( 0%) ggc
combiner : 3.85 ( 0%) usr 0.10 ( 0%) sys 5.14
( 0%) wall 31575 kB ( 3%) ggc
if-conversion : 1.82 ( 0%) usr 0.10 ( 0%) sys 2.31
( 0%) wall 325 kB ( 0%) ggc
local alloc : 2.72 ( 0%) usr 0.11 ( 0%) sys 3.65
( 0%) wall 13500 kB ( 1%) ggc
global alloc : 25.23 ( 2%) usr 21.24 (17%) sys 58.29
( 4%) wall 30563 kB ( 3%) ggc
reload CSE regs : 28.86 ( 3%) usr 0.35 ( 0%) sys 37.86
( 2%) wall 12947 kB ( 1%) ggc
flow 2 : 0.61 ( 0%) usr 0.00 ( 0%) sys 0.91
( 0%) wall 19 kB ( 0%) ggc
if-conversion 2 : 0.68 ( 0%) usr 0.06 ( 0%) sys 0.86
( 0%) wall 14 kB ( 0%) ggc
rename registers : 0.89 ( 0%) usr 0.17 ( 0%) sys 1.46
( 0%) wall 24 kB ( 0%) ggc
scheduling 2 : 3.47 ( 0%) usr 0.18 ( 0%) sys 4.52
( 0%) wall 35672 kB ( 4%) ggc
shorten branches : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.17
( 0%) wall 0 kB ( 0%) ggc
final : 2.08 ( 0%) usr 0.13 ( 0%) sys 2.74
( 0%) wall 4096 kB ( 0%) ggc
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 0 kB ( 0%) ggc
TOTAL :1106.93 125.15
1593.33 977727 kB
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854