This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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



------- Comment #31 from lucier at math dot purdue dot edu  2007-11-14 13:37 -------
Subject: Re:  Inordinate compile times on large routines

To answer Steven's original question, here is a run with

euler-20% /pkgs/gcc-mainline/bin/gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../../mainline/configure --prefix=/pkgs/gcc-mainline  
--enable-languages=c --enable-checking=release --with-gmp=/pkgs/ 
gmp-4.2.2 --with-mpfr=/pkgs/gmp-4.2.2
Thread model: posix
gcc version 4.3.0 20071026 (experimental) [trunk revision 129664] (GCC)

Memory usage peaked at 10.3GB (just from monitoring top).

Brad

euler-19% time /pkgs/gcc-mainline/bin/gcc -Wall -W -Wno-unused -O1 - 
fno-math-errno -fschedule-insns2 -fno-trapping-math -fno-strict- 
aliasing -fwrapv -fomit-frame-pointer -fPIC -I/usr/local/Gambit-C/ 
include/ -ftime-report -fmem-report -c all.i
Memory still allocated at the end of the compilation process
Size   Allocated        Used    Overhead
8           4096          16         120
16           108k         18k       2376
128         8192        2816         112
256          504k        464k       7056
512         4096        1024          56
1024         112k        110k       1568
2048          28k         22k        392
4096          76k         76k       1064
8192          48k         48k        336
16384         32k         32k        112
32768         32k         32k         56
131072        256k        256k        112
262144        512k        512k        112
524288       1024k       1024k        112
1048576       2048k       2048k        112
160         2764k       2669k         37k
176          144k        126k       2016
432           28k         21k        392
96            65M         14M        918k
48          2100k       1171k         32k
208          688k        325k       9632
64          1288k       1237k         20k
32           172k         64k       3096
80            30M       2060k        421k
Total        107M         26M       1459k

String pool
entries         159078
identifiers     159078 (100.00%)
slots           262144
bytes           1992k (170k overhead)
table size      2048k
coll/search     0.8632
ins/search      0.2065
avg. entry      12.83 bytes (+/- 7.80)
longest entry   67

??? tree nodes created

(No per-node statistics)
Type hash: size 2039, 919 elements, 0.860792 collisions
DECL_DEBUG_EXPR  hash: size 16381, 0 elements, 1.211012 collisions
DECL_VALUE_EXPR  hash: size 1021, 0 elements, 0.000000 collisions

Execution times (seconds)
garbage collection    :   1.19 ( 0%) usr   0.00 ( 0%) sys   1.19  
( 0%) wall       0 kB ( 0%) ggc
callgraph construction:   0.76 ( 0%) usr   0.11 ( 1%) sys   0.88  
( 0%) wall   33780 kB ( 4%) ggc
callgraph optimization:   1.23 ( 1%) usr   0.00 ( 0%) sys   1.23  
( 0%) wall       6 kB ( 0%) ggc
ipa reference         :   0.22 ( 0%) usr   0.03 ( 0%) sys   0.25  
( 0%) wall       7 kB ( 0%) ggc
cfg cleanup           :   2.17 ( 1%) usr   0.01 ( 0%) sys   2.17  
( 1%) wall     162 kB ( 0%) ggc
trivially dead code   :   0.36 ( 0%) usr   0.00 ( 0%) sys   0.37  
( 0%) wall       0 kB ( 0%) ggc
df reaching defs      :  10.08 ( 4%) usr   4.09 (24%) sys  14.18  
( 6%) wall       0 kB ( 0%) ggc
df live regs          :   7.77 ( 3%) usr   0.01 ( 0%) sys   7.77  
( 3%) wall       0 kB ( 0%) ggc
df live&initialized regs:  82.60 (35%) usr   2.60 (15%) sys  85.23  
(33%) wall       0 kB ( 0%) ggc
df use-def / def-use chains:   8.23 ( 3%) usr   2.51 (14%) sys  10.73  
( 4%) wall       0 kB ( 0%) ggc
df reg dead/unused notes:   0.97 ( 0%) usr   0.00 ( 0%) sys   0.97  
( 0%) wall   10939 kB ( 1%) ggc
register information  :   0.52 ( 0%) usr   0.00 ( 0%) sys   0.55  
( 0%) wall       0 kB ( 0%) ggc
alias analysis        :   0.90 ( 0%) usr   0.00 ( 0%) sys   0.89  
( 0%) wall    7168 kB ( 1%) ggc
register scan         :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.10  
( 0%) wall       4 kB ( 0%) ggc
rebuild jump labels   :   0.34 ( 0%) usr   0.00 ( 0%) sys   0.34  
( 0%) wall       0 kB ( 0%) ggc
preprocessing         :   0.62 ( 0%) usr   0.96 ( 6%) sys   1.66  
( 1%) wall    2932 kB ( 0%) ggc
lexical analysis      :   0.62 ( 0%) usr   1.98 (11%) sys   2.31  
( 1%) wall       0 kB ( 0%) ggc
parser                :   1.29 ( 1%) usr   0.86 ( 5%) sys   2.37  
( 1%) wall   68897 kB ( 8%) ggc
inline heuristics     :   0.67 ( 0%) usr   0.17 ( 1%) sys   0.84  
( 0%) wall       0 kB ( 0%) ggc
tree gimplify         :   1.11 ( 0%) usr   0.06 ( 0%) sys   1.16  
( 0%) wall   63192 kB ( 8%) ggc
tree eh               :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.12  
( 0%) wall       0 kB ( 0%) ggc
tree CFG construction :   0.51 ( 0%) usr   0.06 ( 0%) sys   0.57  
( 0%) wall   68527 kB ( 8%) ggc
tree CFG cleanup      :   7.12 ( 3%) usr   0.00 ( 0%) sys   7.10  
( 3%) wall    3525 kB ( 0%) ggc
tree copy propagation :   2.01 ( 1%) usr   0.05 ( 0%) sys   2.06  
( 1%) wall    5125 kB ( 1%) ggc
tree store copy prop  :   0.49 ( 0%) usr   0.00 ( 0%) sys   0.49  
( 0%) wall     576 kB ( 0%) ggc
tree find ref. vars   :   0.14 ( 0%) usr   0.00 ( 0%) sys   0.15  
( 0%) wall    1826 kB ( 0%) ggc
tree PTA              :   1.93 ( 1%) usr   0.13 ( 1%) sys   2.06  
( 1%) wall    3734 kB ( 0%) ggc
tree alias analysis   :   0.11 ( 0%) usr   0.08 ( 0%) sys   0.20  
( 0%) wall       0 kB ( 0%) ggc
tree call clobbering  :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02  
( 0%) wall       0 kB ( 0%) ggc
tree flow sensitive alias:   0.17 ( 0%) usr   0.00 ( 0%) sys   0.17  
( 0%) wall    2146 kB ( 0%) ggc
tree memory partitioning:   1.24 ( 1%) usr   0.00 ( 0%) sys   1.25  
( 0%) wall       0 kB ( 0%) ggc
tree PHI insertion    :   0.61 ( 0%) usr   0.04 ( 0%) sys   0.65  
( 0%) wall   18541 kB ( 2%) ggc
tree SSA rewrite      :   1.94 ( 1%) usr   0.03 ( 0%) sys   1.95  
( 1%) wall   35021 kB ( 4%) ggc
tree SSA other        :   0.17 ( 0%) usr   0.12 ( 1%) sys   0.30  
( 0%) wall       0 kB ( 0%) ggc
tree SSA incremental  :   8.55 ( 4%) usr   0.08 ( 0%) sys   8.64  
( 3%) wall   14256 kB ( 2%) ggc
tree operand scan     :   0.71 ( 0%) usr   0.22 ( 1%) sys   0.91  
( 0%) wall   28110 kB ( 3%) ggc
dominator optimization:   2.73 ( 1%) usr   0.02 ( 0%) sys   2.75  
( 1%) wall   42635 kB ( 5%) ggc
tree SRA              :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01  
( 0%) wall       0 kB ( 0%) ggc
tree STORE-CCP        :   0.57 ( 0%) usr   0.00 ( 0%) sys   0.57  
( 0%) wall    1024 kB ( 0%) ggc
tree CCP              :   1.18 ( 0%) usr   0.01 ( 0%) sys   1.19  
( 0%) wall    1537 kB ( 0%) ggc
tree PHI const/copy prop:   0.24 ( 0%) usr   0.00 ( 0%) sys   0.23  
( 0%) wall      11 kB ( 0%) ggc
tree split crit edges :   0.11 ( 0%) usr   0.02 ( 0%) sys   0.13  
( 0%) wall   33706 kB ( 4%) ggc
tree reassociation    :   0.61 ( 0%) usr   0.00 ( 0%) sys   0.62  
( 0%) wall       1 kB ( 0%) ggc
tree FRE              :   2.72 ( 1%) usr   0.06 ( 0%) sys   2.77  
( 1%) wall   49006 kB ( 6%) ggc
tree code sinking     :   0.47 ( 0%) usr   0.00 ( 0%) sys   0.48  
( 0%) wall       6 kB ( 0%) ggc
tree linearize phis   :   0.29 ( 0%) usr   0.00 ( 0%) sys   0.27  
( 0%) wall       0 kB ( 0%) ggc
tree forward propagate:   0.32 ( 0%) usr   0.00 ( 0%) sys   0.33  
( 0%) wall     426 kB ( 0%) ggc
tree conservative DCE :   1.60 ( 1%) usr   0.00 ( 0%) sys   1.61  
( 1%) wall       0 kB ( 0%) ggc
tree aggressive DCE   :   0.35 ( 0%) usr   0.00 ( 0%) sys   0.35  
( 0%) wall       0 kB ( 0%) ggc
tree DSE              :   0.35 ( 0%) usr   0.00 ( 0%) sys   0.36  
( 0%) wall       1 kB ( 0%) ggc
PHI merge             :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.06  
( 0%) wall    7192 kB ( 1%) ggc
tree loop bounds      :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.17  
( 0%) wall       2 kB ( 0%) ggc
loop invariant motion :   0.32 ( 0%) usr   0.00 ( 0%) sys   0.32  
( 0%) wall       0 kB ( 0%) ggc
tree canonical iv     :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.03  
( 0%) wall       0 kB ( 0%) ggc
scev constant prop    :   0.63 ( 0%) usr   0.01 ( 0%) sys   0.64  
( 0%) wall   17787 kB ( 2%) ggc
complete unrolling    :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01  
( 0%) wall       0 kB ( 0%) ggc
tree loop init        :   3.12 ( 1%) usr   0.08 ( 0%) sys   3.22  
( 1%) wall   45438 kB ( 6%) ggc
tree loop fini        :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01  
( 0%) wall       0 kB ( 0%) ggc
tree copy headers     :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.06  
( 0%) wall       0 kB ( 0%) ggc
tree SSA uncprop      :   0.26 ( 0%) usr   0.00 ( 0%) sys   0.26  
( 0%) wall       0 kB ( 0%) ggc
tree SSA to normal    :  11.49 ( 5%) usr   0.08 ( 0%) sys  11.56  
( 5%) wall   83279 kB (10%) ggc
tree rename SSA copies:   0.53 ( 0%) usr   0.02 ( 0%) sys   0.56  
( 0%) wall       0 kB ( 0%) ggc
dominance frontiers   :   0.46 ( 0%) usr   0.00 ( 0%) sys   0.47  
( 0%) wall       0 kB ( 0%) ggc
dominance computation :   2.40 ( 1%) usr   0.03 ( 0%) sys   2.40  
( 1%) wall       0 kB ( 0%) ggc
expand                :  14.26 ( 6%) usr   1.89 (11%) sys  16.13  
( 6%) wall   92077 kB (11%) ggc
lower subreg          :   0.24 ( 0%) usr   0.00 ( 0%) sys   0.24  
( 0%) wall       0 kB ( 0%) ggc
jump                  :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.04  
( 0%) wall       0 kB ( 0%) ggc
CSE                   :   0.78 ( 0%) usr   0.00 ( 0%) sys   0.77  
( 0%) wall    1426 kB ( 0%) ggc
dead code elimination :   0.51 ( 0%) usr   0.00 ( 0%) sys   0.51  
( 0%) wall       0 kB ( 0%) ggc
dead store elim1      :   0.42 ( 0%) usr   0.06 ( 0%) sys   0.48  
( 0%) wall    7944 kB ( 1%) ggc
dead store elim2      :   0.48 ( 0%) usr   0.02 ( 0%) sys   0.49  
( 0%) wall    8878 kB ( 1%) ggc
loop analysis         :   0.60 ( 0%) usr   0.01 ( 0%) sys   0.63  
( 0%) wall      70 kB ( 0%) ggc
branch prediction     :   0.96 ( 0%) usr   0.02 ( 0%) sys   0.97  
( 0%) wall    1541 kB ( 0%) ggc
combiner              :   2.64 ( 1%) usr   0.04 ( 0%) sys   2.67  
( 1%) wall   27876 kB ( 3%) ggc
if-conversion         :   1.36 ( 1%) usr   0.01 ( 0%) sys   1.37  
( 1%) wall     667 kB ( 0%) ggc
local alloc           :   4.09 ( 2%) usr   0.02 ( 0%) sys   4.11  
( 2%) wall    7074 kB ( 1%) ggc
global alloc          :  26.15 (11%) usr   0.38 ( 2%) sys  26.54  
(10%) wall    5112 kB ( 1%) ggc
reload CSE regs       :   1.20 ( 1%) usr   0.01 ( 0%) sys   1.21  
( 0%) wall   12243 kB ( 1%) ggc
thread pro- & epilogue:   0.10 ( 0%) usr   0.00 ( 0%) sys   0.10  
( 0%) wall       4 kB ( 0%) ggc
if-conversion 2       :   0.38 ( 0%) usr   0.00 ( 0%) sys   0.38  
( 0%) wall      82 kB ( 0%) ggc
rename registers      :   0.61 ( 0%) usr   0.04 ( 0%) sys   0.65  
( 0%) wall      31 kB ( 0%) ggc
scheduling 2          :   2.61 ( 1%) usr   0.07 ( 0%) sys   2.70  
( 1%) wall       0 kB ( 0%) ggc
machine dep reorg     :   0.51 ( 0%) usr   0.00 ( 0%) sys   0.51  
( 0%) wall     146 kB ( 0%) ggc
reorder blocks        :   0.26 ( 0%) usr   0.01 ( 0%) sys   0.26  
( 0%) wall    6770 kB ( 1%) ggc
final                 :   1.20 ( 1%) usr   0.03 ( 0%) sys   1.22  
( 0%) wall       0 kB ( 0%) ggc
tree if-combine       :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.06  
( 0%) wall     228 kB ( 0%) ggc
TOTAL                 : 238.24            17.40            
255.72             824659 kB
239.030u 17.901s 4:17.09 99.9%  0+0k 0+0io 0pf+0w
euler-20% 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]