This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Oct 2005 11:17:55 -0000
- Subject: [Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
- References: <bug-15855-8424@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #49 from rguenth at gcc dot gnu dot org 2005-10-07 11:17 -------
So trying to get some updated comparison I noticed that the testcase fails to
compile with 3.3.x and compared to 3.4.x we have improved a lot wrt -O2
compile-time:
3.4: 1m32s, peak at 230MB
4.1: 48s, peak at 480MB
Still we are using too much memory. Time-report for 4.1 does no longer show
obvious problems:
Execution times (seconds)
garbage collection : 0.50 ( 1%) usr 0.00 ( 0%) sys 0.50 ( 1%) wall
0 kB ( 0%) ggc
callgraph construction: 0.17 ( 0%) usr 0.01 ( 0%) sys 0.19 ( 0%) wall
1898 kB ( 0%) ggc
callgraph optimization: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
422 kB ( 0%) ggc
ipa reference : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
97 kB ( 0%) ggc
ipa pure const : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
ipa type escape : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
0 kB ( 0%) ggc
cfg construction : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
589 kB ( 0%) ggc
cfg cleanup : 0.26 ( 1%) usr 0.00 ( 0%) sys 0.27 ( 1%) wall
511 kB ( 0%) ggc
trivially dead code : 0.19 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall
0 kB ( 0%) ggc
life analysis : 1.43 ( 3%) usr 0.00 ( 0%) sys 1.41 ( 3%) wall
91 kB ( 0%) ggc
life info update : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
11 kB ( 0%) ggc
alias analysis : 0.19 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall
3249 kB ( 1%) ggc
register scan : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall
49 kB ( 0%) ggc
rebuild jump labels : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
0 kB ( 0%) ggc
preprocessing : 0.52 ( 1%) usr 0.29 (11%) sys 0.78 ( 1%) wall
732 kB ( 0%) ggc
parser : 3.27 ( 7%) usr 0.42 (15%) sys 3.84 ( 7%) wall
121022 kB (21%) ggc
name lookup : 0.65 ( 1%) usr 0.48 (18%) sys 1.15 ( 2%) wall
9424 kB ( 2%) ggc
inline heuristics : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall
1163 kB ( 0%) ggc
integration : 0.90 ( 2%) usr 0.02 ( 1%) sys 0.93 ( 2%) wall
46704 kB ( 8%) ggc
tree gimplify : 0.41 ( 1%) usr 0.01 ( 0%) sys 0.47 ( 1%) wall
7205 kB ( 1%) ggc
tree eh : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
1725 kB ( 0%) ggc
tree CFG construction : 0.04 ( 0%) usr 0.03 ( 1%) sys 0.06 ( 0%) wall
5236 kB ( 1%) ggc
tree CFG cleanup : 0.25 ( 1%) usr 0.02 ( 1%) sys 0.29 ( 1%) wall
332 kB ( 0%) ggc
tree VRP : 0.37 ( 1%) usr 0.05 ( 2%) sys 0.44 ( 1%) wall
2375 kB ( 0%) ggc
tree copy propagation : 1.22 ( 2%) usr 0.23 ( 8%) sys 1.43 ( 3%) wall
997 kB ( 0%) ggc
tree store copy prop : 0.09 ( 0%) usr 0.06 ( 2%) sys 0.16 ( 0%) wall
202 kB ( 0%) ggc
tree find ref. vars : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
6215 kB ( 1%) ggc
tree PTA : 1.80 ( 4%) usr 0.03 ( 1%) sys 1.88 ( 4%) wall
4061 kB ( 1%) ggc
tree alias analysis : 3.18 ( 6%) usr 0.08 ( 3%) sys 3.40 ( 6%) wall
5523 kB ( 1%) ggc
tree PHI insertion : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
459 kB ( 0%) ggc
tree SSA rewrite : 1.80 ( 4%) usr 0.14 ( 5%) sys 2.00 ( 4%) wall
120115 kB (21%) ggc
tree SSA other : 0.17 ( 0%) usr 0.03 ( 1%) sys 0.19 ( 0%) wall
0 kB ( 0%) ggc
tree SSA incremental : 4.90 (10%) usr 0.05 ( 2%) sys 4.86 ( 9%) wall
5152 kB ( 1%) ggc
tree operand scan : 3.98 ( 8%) usr 0.29 (11%) sys 4.21 ( 8%) wall
58117 kB (10%) ggc
dominator optimization: 1.70 ( 3%) usr 0.04 ( 1%) sys 1.81 ( 3%) wall
100326 kB (17%) ggc
tree SRA : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
17 kB ( 0%) ggc
tree STORE-CCP : 0.15 ( 0%) usr 0.02 ( 1%) sys 0.11 ( 0%) wall
193 kB ( 0%) ggc
tree CCP : 0.54 ( 1%) usr 0.03 ( 1%) sys 0.56 ( 1%) wall
923 kB ( 0%) ggc
tree split crit edges : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
820 kB ( 0%) ggc
tree reassociation : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree PRE : 0.34 ( 1%) usr 0.00 ( 0%) sys 0.30 ( 1%) wall
2854 kB ( 0%) ggc
tree FRE : 0.32 ( 1%) usr 0.03 ( 1%) sys 0.33 ( 1%) wall
3726 kB ( 1%) ggc
tree code sinking : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
78 kB ( 0%) ggc
tree linearize phis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
63 kB ( 0%) ggc
tree forward propagate: 0.19 ( 0%) usr 0.00 ( 0%) sys 0.19 ( 0%) wall
1127 kB ( 0%) ggc
tree conservative DCE : 0.49 ( 1%) usr 0.00 ( 0%) sys 0.52 ( 1%) wall
0 kB ( 0%) ggc
tree aggressive DCE : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
tree DSE : 0.28 ( 1%) usr 0.00 ( 0%) sys 0.29 ( 1%) wall
28 kB ( 0%) ggc
tree loop bounds : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
47 kB ( 0%) ggc
scev constant prop : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
18 kB ( 0%) ggc
tree iv optimization : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
194 kB ( 0%) ggc
tree loop init : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree copy headers : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.00 ( 0%) wall
190 kB ( 0%) ggc
tree SSA uncprop : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
tree SSA to normal : 0.18 ( 0%) usr 0.05 ( 2%) sys 0.29 ( 1%) wall
2239 kB ( 0%) ggc
tree rename SSA copies: 0.14 ( 0%) usr 0.08 ( 3%) sys 0.18 ( 0%) wall
2 kB ( 0%) ggc
control dependences : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
expand : 1.41 ( 3%) usr 0.05 ( 2%) sys 1.52 ( 3%) wall
27273 kB ( 5%) ggc
varconst : 0.06 ( 0%) usr 0.05 ( 2%) sys 0.10 ( 0%) wall
488 kB ( 0%) ggc
jump : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
959 kB ( 0%) ggc
CSE : 5.51 (11%) usr 0.01 ( 0%) sys 5.39 (10%) wall
844 kB ( 0%) ggc
loop analysis : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
776 kB ( 0%) ggc
global CSE : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
CPROP 1 : 0.16 ( 0%) usr 0.01 ( 0%) sys 0.08 ( 0%) wall
1463 kB ( 0%) ggc
PRE : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall
536 kB ( 0%) ggc
CPROP 2 : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
191 kB ( 0%) ggc
bypass jumps : 0.13 ( 0%) usr 0.01 ( 0%) sys 0.14 ( 0%) wall
195 kB ( 0%) ggc
CSE 2 : 3.13 ( 6%) usr 0.00 ( 0%) sys 3.22 ( 6%) wall
423 kB ( 0%) ggc
branch prediction : 0.19 ( 0%) usr 0.01 ( 0%) sys 0.13 ( 0%) wall
375 kB ( 0%) ggc
flow analysis : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
combiner : 0.39 ( 1%) usr 0.00 ( 0%) sys 0.41 ( 1%) wall
1802 kB ( 0%) ggc
if-conversion : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
36 kB ( 0%) ggc
regmove : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall
82 kB ( 0%) ggc
local alloc : 0.39 ( 1%) usr 0.01 ( 0%) sys 0.37 ( 1%) wall
778 kB ( 0%) ggc
global alloc : 0.87 ( 2%) usr 0.00 ( 0%) sys 0.90 ( 2%) wall
2306 kB ( 0%) ggc
reload CSE regs : 2.34 ( 5%) usr 0.00 ( 0%) sys 2.47 ( 5%) wall
2413 kB ( 0%) ggc
flow 2 : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
706 kB ( 0%) ggc
if-conversion 2 : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
peephole 2 : 0.11 ( 0%) usr 0.01 ( 0%) sys 0.12 ( 0%) wall
1729 kB ( 0%) ggc
rename registers : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall
13 kB ( 0%) ggc
scheduling 2 : 1.33 ( 3%) usr 0.01 ( 0%) sys 1.35 ( 3%) wall
10690 kB ( 2%) ggc
machine dep reorg : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall
13 kB ( 0%) ggc
reorder blocks : 0.06 ( 0%) usr 0.01 ( 0%) sys 0.06 ( 0%) wall
522 kB ( 0%) ggc
final : 0.35 ( 1%) usr 0.00 ( 0%) sys 0.41 ( 1%) wall
1457 kB ( 0%) ggc
symout : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.02 ( 0%) wall
173 kB ( 0%) ggc
TOTAL : 49.18 2.74 52.57
573794 kB
With gc memory use the worst offenders are tree SSA rewrite and DOM.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855