[Bug tree-optimization/26854] Inordinate compile times on large routines
lucier at math dot purdue dot edu
gcc-bugzilla@gcc.gnu.org
Thu Dec 7 21:51:00 GMT 2006
------- Comment #21 from lucier at math dot purdue dot edu 2006-12-07 21:51 -------
Subject: Re: Inordinate compile times on large routines
I reran things on mainline on my patched RHEL box. It took almost
7GB of memory, peak, to compile this routine (this was very near the
end of cc1).
All things considered, on mainline the CPU time for this routine is
not so bad (alias analysis and FRE are two obvious hot-spots), but
the memory required is very large.
Back to 4.2.0 branch for more testing ...
euler-157% time /pkgs/gcc-mainline/bin/gcc -no-cpp-precomp -Wall -W -
Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math -
fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common -
ftime-report -fmem-report -c all.i
gcc: unrecognized option '-no-cpp-precomp'
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 16k 13k 480
16 8472k 8083k 182k
64 39M 22M 625k
256 4096 2816 56
512 4096 1024 56
1024 236k 236k 3304
2048 40k 26k 560
4096 80k 80k 1120
8192 64k 64k 448
16384 16k 16k 56
32768 64k 64k 112
65536 960k 960k 840
131072 512k 512k 224
262144 768k 768k 168
1048576 7168k 5120k 392
2097152 2048k 2048k 56
112 144k 92k 2016
208 44k 41k 616
192 14M 10094k 198k
160 40k 37k 560
176 7972k 4786k 108k
96 18M 16M 263k
448 28k 27k 392
128 9696k 6860k 132k
48 30M 13M 484k
224 424k 385k 5936
32 72M 72M 1296k
80 65M 38M 923k
Total 278M 201M 4231k
String pool
entries 125055
identifiers 125055 (100.00%)
slots 262144
bytes 1675k (137k overhead)
table size 2048k
coll/search 0.8888
ins/search 0.1979
avg. entry 13.72 bytes (+/- 8.99)
longest entry 71
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 577 elements, 0.695294 collisions
DECL_DEBUG_EXPR hash: size 8191, 2893 elements, 1.005820 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
garbage collection : 1.01 ( 0%) usr 0.00 ( 0%) sys 1.01
( 0%) wall 0 kB ( 0%) ggc
callgraph construction: 0.61 ( 0%) usr 0.09 ( 1%) sys 0.72
( 0%) wall 17017 kB ( 2%) ggc
callgraph optimization: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03
( 0%) wall 0 kB ( 0%) ggc
ipa reference : 0.17 ( 0%) usr 0.05 ( 0%) sys 0.23
( 0%) wall 7 kB ( 0%) ggc
cfg cleanup : 7.69 ( 2%) usr 0.00 ( 0%) sys 8.03
( 2%) wall 37 kB ( 0%) ggc
trivially dead code : 0.96 ( 0%) usr 0.00 ( 0%) sys 1.00
( 0%) wall 0 kB ( 0%) ggc
life analysis : 19.95 ( 4%) usr 0.01 ( 0%) sys 20.77
( 4%) wall 12767 kB ( 2%) ggc
life info update : 0.57 ( 0%) usr 0.00 ( 0%) sys 0.57
( 0%) wall 0 kB ( 0%) ggc
alias analysis : 0.80 ( 0%) usr 0.00 ( 0%) sys 0.80
( 0%) wall 7174 kB ( 1%) ggc
register scan : 0.42 ( 0%) usr 0.00 ( 0%) sys 0.46
( 0%) wall 1 kB ( 0%) ggc
rebuild jump labels : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.10
( 0%) wall 0 kB ( 0%) ggc
preprocessing : 0.51 ( 0%) usr 0.90 ( 8%) sys 1.26
( 0%) wall 1794 kB ( 0%) ggc
lexical analysis : 0.57 ( 0%) usr 1.42 (12%) sys 2.33
( 0%) wall 0 kB ( 0%) ggc
parser : 1.29 ( 0%) usr 0.95 ( 8%) sys 2.29
( 0%) wall 59589 kB ( 8%) ggc
integration : 0.24 ( 0%) usr 0.09 ( 1%) sys 0.35
( 0%) wall 0 kB ( 0%) ggc
tree gimplify : 0.74 ( 0%) usr 0.04 ( 0%) sys 0.83
( 0%) wall 42732 kB ( 6%) ggc
tree eh : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.08
( 0%) wall 0 kB ( 0%) ggc
tree CFG construction : 0.30 ( 0%) usr 0.05 ( 0%) sys 0.35
( 0%) wall 59312 kB ( 8%) ggc
tree CFG cleanup : 3.53 ( 1%) usr 0.00 ( 0%) sys 3.51
( 1%) wall 3716 kB ( 1%) ggc
tree copy propagation : 1.21 ( 0%) usr 0.00 ( 0%) sys 1.22
( 0%) wall 2220 kB ( 0%) ggc
tree store copy prop : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.41
( 0%) wall 576 kB ( 0%) ggc
tree find ref. vars : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11
( 0%) wall 1186 kB ( 0%) ggc
tree PTA : 2.52 ( 1%) usr 0.03 ( 0%) sys 2.57
( 1%) wall 2280 kB ( 0%) ggc
tree alias analysis : 121.67 (27%) usr 0.50 ( 4%) sys 123.10
(26%) wall 18481 kB ( 3%) ggc
tree PHI insertion : 1.40 ( 0%) usr 0.07 ( 1%) sys 1.54
( 0%) wall 69532 kB ( 9%) ggc
tree SSA rewrite : 2.40 ( 1%) usr 0.02 ( 0%) sys 2.47
( 1%) wall 28127 kB ( 4%) ggc
tree SSA other : 0.09 ( 0%) usr 0.10 ( 1%) sys 0.23
( 0%) wall 0 kB ( 0%) ggc
tree SSA incremental : 8.18 ( 2%) usr 0.09 ( 1%) sys 8.20
( 2%) wall 19181 kB ( 3%) ggc
tree operand scan : 1.47 ( 0%) usr 0.58 ( 5%) sys 2.01
( 0%) wall 26491 kB ( 4%) ggc
dominator optimization: 2.51 ( 1%) usr 0.01 ( 0%) sys 2.55
( 1%) wall 46004 kB ( 6%) ggc
tree STORE-CCP : 0.58 ( 0%) usr 0.00 ( 0%) sys 0.58
( 0%) wall 1024 kB ( 0%) ggc
tree CCP : 0.61 ( 0%) usr 0.00 ( 0%) sys 0.61
( 0%) wall 1024 kB ( 0%) ggc
tree PHI const/copy prop: 0.19 ( 0%) usr 0.00 ( 0%) sys 0.20
( 0%) wall 9 kB ( 0%) ggc
tree split crit edges : 0.09 ( 0%) usr 0.02 ( 0%) sys 0.12
( 0%) wall 27005 kB ( 4%) ggc
tree reassociation : 0.45 ( 0%) usr 0.01 ( 0%) sys 0.45
( 0%) wall 0 kB ( 0%) ggc
tree FRE : 194.08 (42%) usr 0.18 ( 2%) sys 202.72
(42%) wall 23470 kB ( 3%) ggc
tree code sinking : 0.46 ( 0%) usr 0.00 ( 0%) sys 0.48
( 0%) wall 0 kB ( 0%) ggc
tree linearize phis : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.13
( 0%) wall 0 kB ( 0%) ggc
tree forward propagate: 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11
( 0%) wall 0 kB ( 0%) ggc
tree conservative DCE : 1.14 ( 0%) usr 0.00 ( 0%) sys 1.15
( 0%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.40 ( 0%) usr 0.00 ( 0%) sys 0.41
( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.32 ( 0%) usr 0.00 ( 0%) sys 0.31
( 0%) wall 0 kB ( 0%) ggc
PHI merge : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00
( 0%) wall 2 kB ( 0%) ggc
tree loop bounds : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.14
( 0%) wall 0 kB ( 0%) ggc
loop invariant motion : 0.29 ( 0%) usr 0.00 ( 0%) sys 0.30
( 0%) wall 0 kB ( 0%) ggc
tree canonical iv : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.08
( 0%) wall 0 kB ( 0%) ggc
scev constant prop : 0.58 ( 0%) usr 0.00 ( 0%) sys 0.57
( 0%) wall 1756 kB ( 0%) ggc
complete unrolling : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04
( 0%) wall 0 kB ( 0%) ggc
tree iv optimization : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00
( 0%) wall 0 kB ( 0%) ggc
tree loop init : 2.07 ( 0%) usr 0.07 ( 1%) sys 2.17
( 0%) wall 41825 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.11 ( 0%) usr 0.00 ( 0%) sys 0.11
( 0%) wall 1 kB ( 0%) ggc
tree SSA uncprop : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.21
( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 30.22 ( 7%) usr 0.07 ( 1%) sys 30.74
( 6%) wall 54480 kB ( 7%) ggc
tree rename SSA copies: 0.33 ( 0%) usr 0.00 ( 0%) sys 0.34
( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.40
( 0%) wall 0 kB ( 0%) ggc
dominance computation : 2.01 ( 0%) usr 0.01 ( 0%) sys 2.04
( 0%) wall 0 kB ( 0%) ggc
expand : 5.02 ( 1%) usr 0.12 ( 1%) sys 5.29
( 1%) wall 93938 kB (13%) ggc
varconst : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 6 kB ( 0%) ggc
jump : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06
( 0%) wall 0 kB ( 0%) ggc
CSE : 0.55 ( 0%) usr 0.01 ( 0%) sys 0.58
( 0%) wall 130 kB ( 0%) ggc
loop analysis : 17.46 ( 4%) usr 5.59 (48%) sys 24.20
( 5%) wall 5483 kB ( 1%) ggc
branch prediction : 0.75 ( 0%) usr 0.00 ( 0%) sys 0.74
( 0%) wall 1532 kB ( 0%) ggc
flow analysis : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.15
( 0%) wall 0 kB ( 0%) ggc
combiner : 1.66 ( 0%) usr 0.01 ( 0%) sys 1.68
( 0%) wall 21082 kB ( 3%) ggc
if-conversion : 0.53 ( 0%) usr 0.00 ( 0%) sys 0.54
( 0%) wall 350 kB ( 0%) ggc
mode switching : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 0 kB ( 0%) ggc
local alloc : 1.29 ( 0%) usr 0.00 ( 0%) sys 1.30
( 0%) wall 7039 kB ( 1%) ggc
global alloc : 7.10 ( 2%) usr 0.41 ( 3%) sys 7.52
( 2%) wall 6574 kB ( 1%) ggc
reload CSE regs : 0.75 ( 0%) usr 0.00 ( 0%) sys 0.73
( 0%) wall 10842 kB ( 1%) ggc
flow 2 : 0.37 ( 0%) usr 0.00 ( 0%) sys 0.38
( 0%) wall 3114 kB ( 0%) ggc
if-conversion 2 : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.21
( 0%) wall 9 kB ( 0%) ggc
rename registers : 0.54 ( 0%) usr 0.04 ( 0%) sys 0.58
( 0%) wall 24 kB ( 0%) ggc
scheduling 2 : 2.36 ( 1%) usr 0.04 ( 0%) sys 2.40
( 0%) wall 10954 kB ( 1%) ggc
machine dep reorg : 0.44 ( 0%) usr 0.00 ( 0%) sys 0.44
( 0%) wall 135 kB ( 0%) ggc
final : 1.06 ( 0%) usr 0.01 ( 0%) sys 1.08
( 0%) wall 2050 kB ( 0%) ggc
TOTAL : 456.98 11.72
481.71 734771 kB
457.718u 12.529s 8:03.35 97.2% 0+0k 0+0io 0pf+0w
euler-158% /pkgs/gcc-mainline/bin/gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/pkgs/gcc-mainline --with-gmp=/
pkgs/gmp-4.2.1 --with-mpfr=/pkgs/gmp-4.2.1 --enable-checking=no --
enable-languages=c
Thread model: posix
gcc version 4.3.0 20061207 (experimental)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
More information about the Gcc-bugs
mailing list