This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
reorder_block space requirements (was Re: test patch for computed gotos)
- From: Brad Lucier <lucier at math dot purdue dot edu>
- To: matz at suse dot de
- Cc: lucier at math dot purdue dot edu (Brad Lucier), gcc-patches at gcc dot gnu dot org, rth at redhat dot com (Richard Henderson), feeley at iro dot umontreal dot ca
- Date: Fri, 7 Mar 2003 10:01:28 -0500 (EST)
- Subject: reorder_block space requirements (was Re: test patch for computed gotos)
> It would be *great* to have this patch installed and -freorder-blocks
> actually enabled at -O1, since this would put the computed gotos back
> to their original spots.
Ah, maybe having -freorder-blocks enabled at -O1 would be premature ...
I tried it on all.i, and cc1 took almost 1GB of virtual memory; since I
have only 1GB or so of RAM in my machine, it led to lots of swapping
and high system times:
popov-115% /export/home/lucier/programs/gcc/objdir/gcc/cc1 -fPIC -O1 -fno-trapping-math -fomit-frame-pointer -mieee -fno-math-errno -mcpu=ev6 -fschedule-insns2 -fno-strict-aliasing -freorder-blocks all.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor ___H__20_all ___init_proc ____20_all
Execution times (seconds)
cfg construction : 1.18 ( 1%) usr 0.42 ( 0%) sys 1.60 ( 0%) wall
cfg cleanup : 13.96 ( 7%) usr 0.56 ( 0%) sys 14.52 ( 1%) wall
trivially dead code : 1.66 ( 1%) usr 0.00 ( 0%) sys 1.66 ( 0%) wall
life analysis : 14.63 ( 7%) usr 0.12 ( 0%) sys 14.75 ( 1%) wall
life info update : 7.08 ( 4%) usr 46.26 ( 4%) sys 54.39 ( 4%) wall
alias analysis : 1.26 ( 1%) usr 0.34 ( 0%) sys 1.60 ( 0%) wall
register scan : 0.73 ( 0%) usr 0.00 ( 0%) sys 0.73 ( 0%) wall
rebuild jump labels : 0.39 ( 0%) usr 0.00 ( 0%) sys 0.40 ( 0%) wall
preprocessing : 1.21 ( 1%) usr 2.31 ( 0%) sys 3.72 ( 0%) wall
lexical analysis : 1.67 ( 1%) usr 1.54 ( 0%) sys 3.30 ( 0%) wall
parser : 5.12 ( 3%) usr 12.48 ( 1%) sys 17.96 ( 1%) wall
expand : 1.77 ( 1%) usr 18.74 ( 2%) sys 21.33 ( 2%) wall
varconst : 0.29 ( 0%) usr 3.21 ( 0%) sys 3.66 ( 0%) wall
integration : 0.49 ( 0%) usr 0.03 ( 0%) sys 0.53 ( 0%) wall
jump : 0.21 ( 0%) usr 0.24 ( 0%) sys 0.47 ( 0%) wall
CSE : 2.64 ( 1%) usr 3.76 ( 0%) sys 6.54 ( 0%) wall
loop analysis : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
branch prediction : 10.05 ( 5%) usr 0.03 ( 0%) sys 10.16 ( 1%) wall
flow analysis : 0.22 ( 0%) usr 0.01 ( 0%) sys 0.26 ( 0%) wall
combiner : 5.38 ( 3%) usr 0.07 ( 0%) sys 5.45 ( 0%) wall
if-conversion : 5.82 ( 3%) usr 0.01 ( 0%) sys 5.82 ( 0%) wall
local alloc : 1.98 ( 1%) usr 0.59 ( 0%) sys 2.59 ( 0%) wall
global alloc : 6.94 ( 3%) usr 0.74 ( 0%) sys 7.70 ( 1%) wall
reload CSE regs : 55.24 (28%) usr 3.87 ( 0%) sys 59.17 ( 4%) wall
flow 2 : 0.44 ( 0%) usr 0.07 ( 0%) sys 0.51 ( 0%) wall
if-conversion 2 : 11.24 ( 6%) usr 0.12 ( 0%) sys 11.36 ( 1%) wall
rename registers : 4.43 ( 2%) usr 0.18 ( 0%) sys 4.60 ( 0%) wall
scheduling 2 : 4.14 ( 2%) usr 239.38 (22%) sys 277.61 (20%) wall
machine dep reorg : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
reorder blocks : 24.00 (12%) usr 42.49 ( 4%) sys 80.78 ( 6%) wall
shorten branches : 0.44 ( 0%) usr 1.01 ( 0%) sys 1.51 ( 0%) wall
final : 4.36 ( 2%) usr 142.77 (13%) sys 154.28 (11%) wall
rest of compilation : 10.02 ( 5%) usr 556.84 (52%) sys 599.88 (44%) wall
TOTAL : 199.14 1079.23 1370.09
And without -freorder-blocks:
popov-116% /export/home/lucier/programs/gcc/objdir/gcc/cc1 -fPIC -O1 -fno-trapping-math -fomit-frame-pointer -mieee -fno-math-errno -mcpu=ev6 -fschedule-insns2 -fno-strict-aliasing all.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor ___H__20_all ___init_proc ____20_all
Execution times (seconds)
cfg construction : 1.18 ( 1%) usr 0.43 (14%) sys 1.61 ( 1%) wall
cfg cleanup : 4.71 ( 3%) usr 0.00 ( 0%) sys 4.71 ( 3%) wall
trivially dead code : 1.66 ( 1%) usr 0.00 ( 0%) sys 1.66 ( 1%) wall
life analysis : 15.05 (10%) usr 0.01 ( 0%) sys 15.05 (10%) wall
life info update : 6.10 ( 4%) usr 0.00 ( 0%) sys 6.10 ( 4%) wall
alias analysis : 1.24 ( 1%) usr 0.01 ( 0%) sys 1.25 ( 1%) wall
register scan : 0.73 ( 1%) usr 0.00 ( 0%) sys 0.73 ( 0%) wall
rebuild jump labels : 0.39 ( 0%) usr 0.00 ( 0%) sys 0.39 ( 0%) wall
preprocessing : 1.23 ( 1%) usr 0.30 (10%) sys 1.59 ( 1%) wall
lexical analysis : 1.70 ( 1%) usr 0.67 (22%) sys 2.33 ( 2%) wall
parser : 5.25 ( 4%) usr 0.53 (17%) sys 5.79 ( 4%) wall
expand : 1.76 ( 1%) usr 0.08 ( 3%) sys 1.83 ( 1%) wall
varconst : 0.28 ( 0%) usr 0.01 ( 0%) sys 0.29 ( 0%) wall
integration : 0.48 ( 0%) usr 0.01 ( 0%) sys 0.49 ( 0%) wall
jump : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.21 ( 0%) wall
CSE : 2.66 ( 2%) usr 0.00 ( 0%) sys 2.66 ( 2%) wall
loop analysis : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
branch prediction : 10.35 ( 7%) usr 0.03 ( 1%) sys 10.38 ( 7%) wall
flow analysis : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall
combiner : 5.35 ( 4%) usr 0.06 ( 2%) sys 5.41 ( 4%) wall
if-conversion : 5.86 ( 4%) usr 0.01 ( 0%) sys 5.87 ( 4%) wall
local alloc : 1.95 ( 1%) usr 0.02 ( 1%) sys 1.97 ( 1%) wall
global alloc : 6.54 ( 4%) usr 0.55 (18%) sys 7.08 ( 5%) wall
reload CSE regs : 57.70 (40%) usr 0.06 ( 2%) sys 57.74 (39%) wall
flow 2 : 0.44 ( 0%) usr 0.06 ( 2%) sys 0.50 ( 0%) wall
if-conversion 2 : 0.82 ( 1%) usr 0.00 ( 0%) sys 0.82 ( 1%) wall
rename registers : 4.39 ( 3%) usr 0.02 ( 1%) sys 4.41 ( 3%) wall
scheduling 2 : 3.55 ( 2%) usr 0.05 ( 2%) sys 3.60 ( 2%) wall
shorten branches : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.41 ( 0%) wall
final : 1.47 ( 1%) usr 0.04 ( 1%) sys 1.50 ( 1%) wall
rest of compilation : 2.09 ( 1%) usr 0.09 ( 3%) sys 2.18 ( 1%) wall
TOTAL : 145.91 3.05 148.97