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: 8 Dec 2006 01:24:07 -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 #22 from lucier at math dot purdue dot edu 2006-12-08 01:24 -------
Subject: Re: Inordinate compile times on large routines
And here's the same data for 4.2.0 branch; Dan, your changes have
clearly helped a lot.
It seems to take about 5% more memory at the maximum, though, on
4.3.0 (6.9GB vs 6.6GB); but both these numbers are just from visual
inspection of "top" as things were running, so they are likely not
accurate.
Brad
euler-56% time /pkgs/gcc-4.2.0-test/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 8556k 7998k 183k
64 36M 22M 587k
256 4096 2816 56
512 4096 1536 56
1024 224k 222k 3136
2048 40k 26k 560
4096 76k 76k 1064
8192 64k 64k 448
16384 16k 16k 56
32768 64k 64k 112
65536 704k 704k 616
131072 512k 512k 224
262144 768k 768k 168
1048576 6144k 5120k 336
2097152 2048k 2048k 56
112 144k 92k 2016
208 44k 40k 616
192 14M 10M 209k
160 40k 37k 560
176 7996k 4802k 109k
96 19M 16M 267k
416 28k 23k 392
128 10M 7187k 142k
48 18M 9508k 302k
224 420k 384k 5880
32 71M 71M 1279k
80 62M 46M 880k
Total 261M 205M 3979k
String pool
entries 125047
identifiers 125047 (100.00%)
slots 262144
bytes 1675k (137k overhead)
table size 2048k
coll/search 0.8967
ins/search 0.1974
avg. entry 13.72 bytes (+/- 8.99)
longest entry 71
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 573 elements, 0.687728 collisions
DECL_DEBUG_EXPR hash: size 8191, 2981 elements, 0.983076 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
garbage collection : 1.10 ( 0%) usr 0.00 ( 0%) sys 1.10
( 0%) wall 0 kB ( 0%) ggc
callgraph construction: 0.60 ( 0%) usr 0.12 ( 1%) sys 0.74
( 0%) wall 17017 kB ( 2%) ggc
callgraph optimization: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04
( 0%) wall 0 kB ( 0%) ggc
ipa reference : 0.17 ( 0%) usr 0.05 ( 0%) sys 0.25
( 0%) wall 7 kB ( 0%) ggc
cfg cleanup : 7.68 ( 0%) usr 0.00 ( 0%) sys 7.69
( 0%) wall 38 kB ( 0%) ggc
trivially dead code : 1.13 ( 0%) usr 0.00 ( 0%) sys 1.10
( 0%) wall 0 kB ( 0%) ggc
life analysis : 20.05 ( 1%) usr 0.01 ( 0%) sys 20.10
( 1%) wall 12032 kB ( 2%) ggc
life info update : 0.61 ( 0%) usr 0.00 ( 0%) sys 0.61
( 0%) wall 0 kB ( 0%) ggc
alias analysis : 0.92 ( 0%) usr 0.00 ( 0%) sys 0.89
( 0%) wall 7174 kB ( 1%) ggc
register scan : 0.51 ( 0%) usr 0.00 ( 0%) sys 0.50
( 0%) wall 1 kB ( 0%) ggc
rebuild jump labels : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.20
( 0%) wall 0 kB ( 0%) ggc
preprocessing : 0.63 ( 0%) usr 0.92 ( 8%) sys 1.50
( 0%) wall 1794 kB ( 0%) ggc
lexical analysis : 0.61 ( 0%) usr 1.67 (14%) sys 2.39
( 0%) wall 0 kB ( 0%) ggc
parser : 1.27 ( 0%) usr 0.82 ( 7%) sys 2.30
( 0%) wall 59584 kB ( 8%) ggc
integration : 0.27 ( 0%) usr 0.10 ( 1%) sys 0.39
( 0%) wall 0 kB ( 0%) ggc
tree gimplify : 0.68 ( 0%) usr 0.02 ( 0%) sys 0.75
( 0%) wall 23041 kB ( 3%) ggc
tree eh : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.10
( 0%) wall 0 kB ( 0%) ggc
tree CFG construction : 0.32 ( 0%) usr 0.06 ( 0%) sys 0.40
( 0%) wall 59313 kB ( 8%) ggc
tree CFG cleanup : 4.18 ( 0%) usr 0.00 ( 0%) sys 4.20
( 0%) wall 3716 kB ( 1%) ggc
tree copy propagation : 1.51 ( 0%) usr 0.01 ( 0%) sys 1.55
( 0%) wall 2219 kB ( 0%) ggc
tree store copy prop : 0.50 ( 0%) usr 0.00 ( 0%) sys 0.51
( 0%) wall 576 kB ( 0%) ggc
tree find ref. vars : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.13
( 0%) wall 1186 kB ( 0%) ggc
tree PTA : 857.74 (53%) usr 0.47 ( 4%) sys 859.20
(53%) wall 2331 kB ( 0%) ggc
tree alias analysis : 383.35 (24%) usr 0.64 ( 5%) sys 385.19
(24%) wall 15963 kB ( 2%) ggc
tree PHI insertion : 1.57 ( 0%) usr 0.10 ( 1%) sys 1.75
( 0%) wall 69532 kB (10%) ggc
tree SSA rewrite : 3.05 ( 0%) usr 0.03 ( 0%) sys 3.07
( 0%) wall 28127 kB ( 4%) ggc
tree SSA other : 0.18 ( 0%) usr 0.10 ( 1%) sys 0.26
( 0%) wall 0 kB ( 0%) ggc
tree SSA incremental : 9.45 ( 1%) usr 0.07 ( 1%) sys 9.53
( 1%) wall 20443 kB ( 3%) ggc
tree operand scan : 6.22 ( 0%) usr 0.53 ( 4%) sys 7.09
( 0%) wall 26490 kB ( 4%) ggc
dominator optimization: 3.86 ( 0%) usr 0.05 ( 0%) sys 3.92
( 0%) wall 48855 kB ( 7%) ggc
tree STORE-CCP : 0.47 ( 0%) usr 0.00 ( 0%) sys 0.47
( 0%) wall 8 kB ( 0%) ggc
tree CCP : 0.63 ( 0%) usr 0.00 ( 0%) sys 0.63
( 0%) wall 16 kB ( 0%) ggc
tree PHI const/copy prop: 0.25 ( 0%) usr 0.00 ( 0%) sys 0.26
( 0%) wall 9 kB ( 0%) ggc
tree split crit edges : 0.12 ( 0%) usr 0.04 ( 0%) sys 0.17
( 0%) wall 27005 kB ( 4%) ggc
tree reassociation : 0.53 ( 0%) usr 0.00 ( 0%) sys 0.53
( 0%) wall 0 kB ( 0%) ggc
tree FRE : 181.71 (11%) usr 0.02 ( 0%) sys 181.71
(11%) wall 18940 kB ( 3%) ggc
tree code sinking : 0.57 ( 0%) usr 0.00 ( 0%) sys 0.58
( 0%) wall 0 kB ( 0%) ggc
tree linearize phis : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13
( 0%) wall 0 kB ( 0%) ggc
tree forward propagate: 0.14 ( 0%) usr 0.00 ( 0%) sys 0.15
( 0%) wall 0 kB ( 0%) ggc
tree conservative DCE : 1.32 ( 0%) usr 0.00 ( 0%) sys 1.31
( 0%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.52 ( 0%) usr 0.00 ( 0%) sys 0.51
( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.40
( 0%) wall 1 kB ( 0%) ggc
PHI merge : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 2 kB ( 0%) ggc
tree loop bounds : 0.24 ( 0%) usr 0.00 ( 0%) sys 0.23
( 0%) wall 0 kB ( 0%) ggc
loop invariant motion : 0.37 ( 0%) usr 0.00 ( 0%) sys 0.37
( 0%) wall 0 kB ( 0%) ggc
tree canonical iv : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12
( 0%) wall 0 kB ( 0%) ggc
scev constant prop : 0.67 ( 0%) usr 0.00 ( 0%) sys 0.66
( 0%) wall 1756 kB ( 0%) ggc
complete unrolling : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06
( 0%) wall 0 kB ( 0%) ggc
tree iv optimization : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 0 kB ( 0%) ggc
tree loop init : 2.35 ( 0%) usr 0.08 ( 1%) sys 2.47
( 0%) wall 45903 kB ( 6%) ggc
tree copy headers : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13
( 0%) wall 1 kB ( 0%) ggc
tree SSA uncprop : 0.27 ( 0%) usr 0.00 ( 0%) sys 0.26
( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 56.18 ( 4%) usr 0.05 ( 0%) sys 56.26
( 3%) wall 55617 kB ( 8%) ggc
tree rename SSA copies: 0.45 ( 0%) usr 0.00 ( 0%) sys 0.45
( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.49 ( 0%) usr 0.00 ( 0%) sys 0.51
( 0%) wall 0 kB ( 0%) ggc
dominance computation : 2.43 ( 0%) usr 0.01 ( 0%) sys 2.39
( 0%) wall 0 kB ( 0%) ggc
expand : 7.24 ( 0%) usr 0.08 ( 1%) sys 7.44
( 0%) wall 95504 kB (13%) ggc
jump : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11
( 0%) wall 0 kB ( 0%) ggc
CSE : 0.82 ( 0%) usr 0.00 ( 0%) sys 0.83
( 0%) wall 1108 kB ( 0%) ggc
loop analysis : 18.66 ( 1%) usr 5.45 (45%) sys 24.87
( 2%) wall 5844 kB ( 1%) ggc
branch prediction : 0.92 ( 0%) usr 0.01 ( 0%) sys 0.93
( 0%) wall 1532 kB ( 0%) ggc
flow analysis : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.15
( 0%) wall 0 kB ( 0%) ggc
combiner : 1.60 ( 0%) usr 0.02 ( 0%) sys 1.63
( 0%) wall 19153 kB ( 3%) ggc
if-conversion : 0.63 ( 0%) usr 0.01 ( 0%) sys 0.65
( 0%) wall 365 kB ( 0%) ggc
mode switching : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01
( 0%) wall 0 kB ( 0%) ggc
local alloc : 1.32 ( 0%) usr 0.01 ( 0%) sys 1.32
( 0%) wall 5154 kB ( 1%) ggc
global alloc : 7.14 ( 0%) usr 0.37 ( 3%) sys 7.57
( 0%) wall 9514 kB ( 1%) ggc
reload CSE regs : 0.82 ( 0%) usr 0.00 ( 0%) sys 0.83
( 0%) wall 11516 kB ( 2%) ggc
flow 2 : 0.40 ( 0%) usr 0.00 ( 0%) sys 0.41
( 0%) wall 2940 kB ( 0%) ggc
if-conversion 2 : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.25
( 0%) wall 1 kB ( 0%) ggc
rename registers : 0.58 ( 0%) usr 0.03 ( 0%) sys 0.60
( 0%) wall 15 kB ( 0%) ggc
scheduling 2 : 2.33 ( 0%) usr 0.03 ( 0%) sys 2.38
( 0%) wall 10644 kB ( 1%) ggc
machine dep reorg : 0.49 ( 0%) usr 0.00 ( 0%) sys 0.49
( 0%) wall 91 kB ( 0%) ggc
final : 1.23 ( 0%) usr 0.02 ( 0%) sys 1.25
( 0%) wall 2050 kB ( 0%) ggc
TOTAL :1604.05 12.16
1620.25 716501 kB
1604.799u 13.117s 27:05.13 99.5% 0+0k 0+0io 0pf+0w
euler-57% /pkgs/gcc-4.2.0-test/bin/gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/pkgs/gcc-4.2.0-test --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.2.0 20061207 (prerelease)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854