[Bug tree-optimization/26854] Inordinate compile times on large routines

lucier at math dot purdue dot edu gcc-bugzilla@gcc.gnu.org
Thu Apr 20 03:18:00 GMT 2006



------- 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



More information about the Gcc-bugs mailing list