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: 14 Nov 2007 13:37:54 -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 #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