[gambit-list] Re: More inlining notes
Bradley Lucier
lucier at math.purdue.edu
Fri Mar 24 16:47:09 EST 2006
On Mar 24, 2006, at 12:04 PM, Bradley Lucier wrote:
> I'm thinking more and more that OPTIMIZE_SPACE should be defined by
> default in the .c file if any of the mostly-* declarations are in
> effect; there are just too man
Marc:
I think that you could modify the calling convention for
___OPTIMIZE_SPACE in a way that would save a *lot* in compile time
and space.
I used ediff in emacs to compare two expanded call sequences when
___OPTIMIZE_SPACE is defined:
{___ps->na=1; ___r4=___G_newline.val; if (((((___temp=(___r4)))&
((1<<2)-1))==1&&((((*((long*)((___temp)-(1)))))&(((1<<5)-1)<<3))==
(((14))<<3)))) {___pc=((___label_struct*)(___r4-1))-
>entry_or_descr;goto ___jump;} ___ps->temp4=(long)&___G_newline;
{ {___pc=___ps->handler_not_proc_glo;goto ___jumpext;}}}
and
{___ps->na=2; ___r4=___G__2a_.val; if (((((___temp=(___r4)))&
((1<<2)-1))==1&&((((*((long*)((___temp)-(1)))))&(((1<<5)-1)<<3))==
(((14))<<3)))) {___pc=((___label_struct*)(___r4-1))-
>entry_or_descr;goto ___jump;} ___ps->temp4=(long)&___G__2a_;
{ {___pc=___ps->handler_not_proc_glo;goto ___jumpext;}}}
and at the bottom we have:
___jump: {void *___host_label=((void*)(((___label_struct*)(___pc-1))-
>host_label)); if (((___label_struct*)(___pc-1))->host ==
___H__20_all_2e_o1) goto *___host_label;} ___jumpext:
___ps->pc=___pc; ___ps->hp=___hp; ___ps->fp=___fp; ___ps->r[0]=___r0;
___ps->r[1]=___r1; ___ps->r[2]=___r2; ___ps->r[3]=___r3; ___ps->r[4]
=___r4; return ___pc; }
Wouldn't it be better to have for these two examples
{___ps->na=1; ___r4=___G_newline.val; ___ps->temp4=(long)
&___G_newline; goto ___jump;}
and
{___ps->na=2; ___r4=___G__2a_.val; ___ps->temp4=(long)&___G__2a_;
goto ___jump;}
with
___jump:
if (((((___temp=(___r4)))&((1<<2)-1))==1&&((((*((long*)((___temp)-
(1)))))&(((1<<5)-1)<<3))==(((14))<<3))))
{___pc=((___label_struct*)(___r4-1))->entry_or_descr;
{void *___host_label=((void*)(((___label_struct*)(___pc-1))-
>host_label));
if (((___label_struct*)(___pc-1))->host == ___H__20_all_2e_o1)
goto *___host_label;}}
___pc=___ps->handler_not_proc_glo;
___jumpext:
___ps->pc=___pc;
___ps->hp=___hp;
___ps->fp=___fp;
___ps->r[0]=___r0; ___ps->r[1]=___r1; ___ps->r[2]=___r2; ___ps->r[3]
=___r3; ___ps->r[4]=___r4;
return ___pc;
This would get rid of a lot of duplicated code, nearly half the jumps
to ___jumpext, etc.
OK, here's the difference between defining ___OPTIMIZE_SPACE or not
with a 64-bit gcc-4.1.0 on a 2GHz Mac G5. There's not much
difference with the way the C macros are currently expanded.
Brad
On this file:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: all.c.gz
Type: application/x-gzip
Size: 392971 bytes
Desc: not available
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20060324/ddbb2d4b/attachment.bin>
-------------- next part --------------
when you don't define ___OPTIMIZE_SPACE
[lindv2:Arrays/srfi3/gsc-test] lucier% /pkgs/gcc-4.1.0/bin/gcc -
mcpu=970 -m64 -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 -bundle -flat_namespace
-undefined suppress -I/usr/local/Gambit-C/include/ -ftime-report -
fmem-report all.c -c -D___SINGLE_HOST -D___DYNAMIC
gcc: unrecognized option '-no-cpp-precomp'
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 16k 14k 480
16 52k 12k 1144
64 1276k 1239k 19k
256 484k 452k 6776
512 36k 25k 504
1024 220k 216k 3080
2048 24k 20k 336
4096 68k 68k 952
8192 56k 56k 392
16384 16k 16k 56
32768 288k 288k 504
65536 64k 64k 56
131072 128k 128k 56
262144 512k 512k 112
524288 512k 512k 56
1048576 1024k 1024k 56
2097152 4096k 4096k 112
112 34M 16M 484k
208 40k 38k 560
192 3344k 3287k 45k
160 28k 6240 392
176 564k 261k 7896
48 2088k 1165k 32k
32 148k 68k 2664
80 35M 2063k 495k
Total 84M 32M 1104k
String pool
entries 158178
identifiers 158178 (100.00%)
slots 262144
bytes 1982k (168k overhead)
table size 2048k
coll/search 1.1104
ins/search 0.1934
avg. entry 12.83 bytes (+/- 7.81)
longest entry 67
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 598 elements, 0.900368 collisions
DECL_DEBUG_EXPR hash: size 8191, 0 elements, 1.307819 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
garbage collection : 1.87 ( 0%) usr 0.03 ( 0%) sys 2.38
( 0%) wall 0 kB ( 0%) ggc
callgraph construction: 1.78 ( 0%) usr 0.36 ( 0%) sys 2.60
( 0%) wall 21241 kB ( 2%) ggc
callgraph optimization: 0.05 ( 0%) usr 0.00 ( 0%) sys 0.06
( 0%) wall 0 kB ( 0%) ggc
ipa reference : 0.42 ( 0%) usr 0.14 ( 0%) sys 0.65
( 0%) wall 7 kB ( 0%) ggc
cfg construction : 0.35 ( 0%) usr 0.00 ( 0%) sys 0.43
( 0%) wall 8421 kB ( 1%) ggc
cfg cleanup : 103.72 ( 7%) usr 0.71 ( 1%) sys 128.58
( 7%) wall 2170 kB ( 0%) ggc
trivially dead code : 2.60 ( 0%) usr 0.06 ( 0%) sys 3.32
( 0%) wall 0 kB ( 0%) ggc
life analysis : 6.42 ( 0%) usr 3.91 ( 3%) sys 12.64
( 1%) wall 19365 kB ( 2%) ggc
life info update : 1.04 ( 0%) usr 0.03 ( 0%) sys 1.32
( 0%) wall 525 kB ( 0%) ggc
alias analysis : 1.70 ( 0%) usr 0.07 ( 0%) sys 2.13
( 0%) wall 16385 kB ( 2%) ggc
register scan : 0.96 ( 0%) usr 0.02 ( 0%) sys 1.28
( 0%) wall 4 kB ( 0%) ggc
rebuild jump labels : 0.32 ( 0%) usr 0.00 ( 0%) sys 0.38
( 0%) wall 0 kB ( 0%) ggc
preprocessing : 8.05 ( 1%) usr 13.05 (10%) sys 25.54
( 1%) wall 2197 kB ( 0%) ggc
lexical analysis : 12.59 ( 1%) usr 25.04 (19%) sys 46.78
( 2%) wall 0 kB ( 0%) ggc
parser : 9.97 ( 1%) usr 13.25 (10%) sys 28.99
( 1%) wall 72677 kB ( 7%) ggc
tree gimplify : 1.50 ( 0%) usr 0.07 ( 0%) sys 1.93
( 0%) wall 30969 kB ( 3%) ggc
tree eh : 0.17 ( 0%) usr 0.01 ( 0%) sys 0.21
( 0%) wall 0 kB ( 0%) ggc
tree CFG construction : 0.55 ( 0%) usr 0.13 ( 0%) sys 0.81
( 0%) wall 76077 kB ( 8%) ggc
tree CFG cleanup : 5.82 ( 0%) usr 0.08 ( 0%) sys 7.25
( 0%) wall 955 kB ( 0%) ggc
tree copy propagation : 5.42 ( 0%) usr 0.44 ( 0%) sys 7.11
( 0%) wall 12020 kB ( 1%) ggc
tree store copy prop : 0.75 ( 0%) usr 0.05 ( 0%) sys 0.97
( 0%) wall 1600 kB ( 0%) ggc
tree find ref. vars : 0.23 ( 0%) usr 0.01 ( 0%) sys 0.24
( 0%) wall 2502 kB ( 0%) ggc
tree PTA : 5.85 ( 0%) usr 0.60 ( 0%) sys 7.92
( 0%) wall 16435 kB ( 2%) ggc
tree alias analysis : 6.98 ( 0%) usr 11.11 ( 8%) sys 15.83
( 1%) wall 11736 kB ( 1%) ggc
tree PHI insertion : 1.06 ( 0%) usr 0.21 ( 0%) sys 1.59
( 0%) wall 24377 kB ( 2%) ggc
tree SSA rewrite : 2.46 ( 0%) usr 0.16 ( 0%) sys 3.29
( 0%) wall 39166 kB ( 4%) ggc
tree SSA other : 1.22 ( 0%) usr 1.51 ( 1%) sys 3.38
( 0%) wall 0 kB ( 0%) ggc
tree SSA incremental : 14.15 ( 1%) usr 3.76 ( 3%) sys 22.12
( 1%) wall 19167 kB ( 2%) ggc
tree operand scan : 628.65 (44%) usr 12.18 ( 9%) sys 814.05
(42%) wall 23896 kB ( 2%) ggc
dominator optimization: 307.01 (21%) usr 2.88 ( 2%) sys 380.36
(20%) wall 63887 kB ( 7%) ggc
tree STORE-CCP : 0.67 ( 0%) usr 0.02 ( 0%) sys 0.87
( 0%) wall 513 kB ( 0%) ggc
tree CCP : 0.74 ( 0%) usr 0.03 ( 0%) sys 0.95
( 0%) wall 514 kB ( 0%) ggc
tree split crit edges : 0.37 ( 0%) usr 0.24 ( 0%) sys 0.74
( 0%) wall 40362 kB ( 4%) ggc
tree reassociation : 0.57 ( 0%) usr 0.02 ( 0%) sys 0.73
( 0%) wall 0 kB ( 0%) ggc
tree FRE : 12.97 ( 1%) usr 0.75 ( 1%) sys 17.03
( 1%) wall 40945 kB ( 4%) ggc
tree code sinking : 0.98 ( 0%) usr 0.06 ( 0%) sys 1.27
( 0%) wall 0 kB ( 0%) ggc
tree linearize phis : 0.15 ( 0%) usr 0.01 ( 0%) sys 0.20
( 0%) wall 0 kB ( 0%) ggc
tree forward propagate: 0.16 ( 0%) usr 0.01 ( 0%) sys 0.18
( 0%) wall 0 kB ( 0%) ggc
tree conservative DCE : 1.86 ( 0%) usr 0.03 ( 0%) sys 2.39
( 0%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.86 ( 0%) usr 0.02 ( 0%) sys 1.09
( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.73 ( 0%) usr 0.03 ( 0%) sys 0.95
( 0%) wall 0 kB ( 0%) ggc
PHI merge : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.04
( 0%) wall 49 kB ( 0%) ggc
tree loop bounds : 0.32 ( 0%) usr 0.01 ( 0%) sys 0.39
( 0%) wall 0 kB ( 0%) ggc
loop invariant motion : 0.57 ( 0%) usr 0.01 ( 0%) sys 0.70
( 0%) wall 0 kB ( 0%) ggc
tree canonical iv : 0.15 ( 0%) usr 0.01 ( 0%) sys 0.20
( 0%) wall 0 kB ( 0%) ggc
scev constant prop : 1.47 ( 0%) usr 0.04 ( 0%) sys 1.87
( 0%) wall 1973 kB ( 0%) ggc
complete unrolling : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.07
( 0%) wall 0 kB ( 0%) ggc
tree loop init : 5.14 ( 0%) usr 5.80 ( 4%) sys 13.36
( 1%) wall 58726 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.24 ( 0%) usr 0.01 ( 0%) sys 0.31
( 0%) wall 0 kB ( 0%) ggc
tree SSA uncprop : 0.43 ( 0%) usr 0.01 ( 0%) sys 0.54
( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 172.90 (12%) usr 1.50 ( 1%) sys 215.20
(11%) wall 92392 kB ( 9%) ggc
tree rename SSA copies: 0.60 ( 0%) usr 0.08 ( 0%) sys 0.78
( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.53 ( 0%) usr 0.00 ( 0%) sys 0.64
( 0%) wall 0 kB ( 0%) ggc
expand : 7.54 ( 1%) usr 4.20 ( 3%) sys 14.47
( 1%) wall 129307 kB (13%) ggc
varconst : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00
( 0%) wall 7 kB ( 0%) ggc
jump : 0.73 ( 0%) usr 0.03 ( 0%) sys 0.90
( 0%) wall 0 kB ( 0%) ggc
CSE : 2.19 ( 0%) usr 1.67 ( 1%) sys 4.78
( 0%) wall 2169 kB ( 0%) ggc
loop analysis : 1.69 ( 0%) usr 0.15 ( 0%) sys 2.25
( 0%) wall 8645 kB ( 1%) ggc
branch prediction : 3.22 ( 0%) usr 0.22 ( 0%) sys 4.17
( 0%) wall 5998 kB ( 1%) ggc
flow analysis : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.27
( 0%) wall 0 kB ( 0%) ggc
combiner : 4.03 ( 0%) usr 0.11 ( 0%) sys 5.07
( 0%) wall 31600 kB ( 3%) ggc
if-conversion : 2.01 ( 0%) usr 0.11 ( 0%) sys 2.58
( 0%) wall 344 kB ( 0%) ggc
local alloc : 2.87 ( 0%) usr 0.10 ( 0%) sys 3.63
( 0%) wall 13500 kB ( 1%) ggc
global alloc : 25.97 ( 2%) usr 21.91 (17%) sys 57.82
( 3%) wall 31337 kB ( 3%) ggc
reload CSE regs : 42.61 ( 3%) usr 0.54 ( 0%) sys 52.45
( 3%) wall 12846 kB ( 1%) ggc
flow 2 : 0.66 ( 0%) usr 0.00 ( 0%) sys 0.82
( 0%) wall 19 kB ( 0%) ggc
if-conversion 2 : 0.77 ( 0%) usr 0.06 ( 0%) sys 1.03
( 0%) wall 14 kB ( 0%) ggc
rename registers : 0.95 ( 0%) usr 0.20 ( 0%) sys 1.37
( 0%) wall 24 kB ( 0%) ggc
scheduling 2 : 3.51 ( 0%) usr 0.18 ( 0%) sys 4.47
( 0%) wall 36103 kB ( 4%) ggc
shorten branches : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.21
( 0%) wall 0 kB ( 0%) ggc
final : 2.35 ( 0%) usr 0.14 ( 0%) sys 3.36
( 0%) wall 4096 kB ( 0%) ggc
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02
( 0%) wall 0 kB ( 0%) ggc
TOTAL :1438.01 131.69
1949.05 979456 kB
With ___OPTIMIZE_SPACE:
[lindv2:Arrays/srfi3/gsc-test] lucier% /pkgs/gcc-4.1.0/bin/gcc -
mcpu=970 -m64 -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 -bundle -flat_namespace
-undefined suppress -I/usr/local/Gambit-C/include/ -ftime-report -
fmem-report all.c -D___SINGLE_HOST -D___OPTIMIZE_SPACE -
D___SINGLE_HOST -c -save-temps
gcc: unrecognized option '-no-cpp-precomp'
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 20k 16k 600
16 16k 12k 352
64 4096 640 64
128 16k 15k 224
256 436k 432k 6104
512 296k 292k 4144
1024 144k 141k 2016
2048 120k 120k 1680
4096 92k 92k 1288
8192 40k 40k 280
16384 16k 16k 56
112 2600k 2556k 35k
208 12k 9984 168
192 16k 13k 224
160 40k 36k 560
176 152k 147k 2128
48 220k 218k 3520
32 148k 145k 2664
80 8192 5840 112
Total 4396k 4311k 61k
String pool
entries 23172
identifiers 23172 (100.00%)
slots 32768
bytes 641k (30k overhead)
table size 256k
coll/search 0.3775
ins/search 0.0643
avg. entry 28.35 bytes (+/- 12.47)
longest entry 67
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 351 elements, 0.255196 collisions
DECL_DEBUG_EXPR hash: size 1021, 0 elements, 0.000000 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
TOTAL : 1.65 0.13
2.10 4255 kB
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 16k 14k 480
16 112k 12k 2464
64 1188k 1163k 18k
256 484k 452k 6776
512 36k 24k 504
1024 220k 215k 3080
2048 24k 20k 336
4096 68k 68k 952
8192 56k 56k 392
16384 16k 16k 56
32768 288k 288k 504
65536 64k 64k 56
131072 128k 128k 56
262144 768k 768k 168
1048576 1024k 1024k 56
2097152 4096k 4096k 112
112 24M 13M 348k
208 40k 38k 560
192 3344k 3287k 45k
160 28k 6240 392
176 548k 311k 7672
48 2192k 1173k 34k
32 780k 80k 13k
80 26M 2055k 367k
Total 66M 28M 852k
String pool
entries 124847
identifiers 124847 (100.00%)
slots 262144
bytes 1674k (135k overhead)
table size 2048k
coll/search 0.8988
ins/search 0.1804
avg. entry 13.73 bytes (+/- 8.99)
longest entry 71
??? tree nodes created
(No per-node statistics)
Type hash: size 1021, 557 elements, 0.658802 collisions
DECL_DEBUG_EXPR hash: size 8191, 0 elements, 1.051271 collisions
DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions
Execution times (seconds)
garbage collection : 1.66 ( 0%) usr 1.05 ( 1%) sys 3.29
( 0%) wall 0 kB ( 0%) ggc
callgraph construction: 1.39 ( 0%) usr 0.37 ( 0%) sys 2.11
( 0%) wall 17018 kB ( 2%) ggc
callgraph optimization: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03
( 0%) wall 0 kB ( 0%) ggc
ipa reference : 0.31 ( 0%) usr 0.07 ( 0%) sys 0.48
( 0%) wall 7 kB ( 0%) ggc
cfg construction : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.27
( 0%) wall 6199 kB ( 1%) ggc
cfg cleanup : 67.38 ( 5%) usr 0.45 ( 0%) sys 83.19
( 5%) wall 57 kB ( 0%) ggc
trivially dead code : 1.42 ( 0%) usr 0.04 ( 0%) sys 1.74
( 0%) wall 0 kB ( 0%) ggc
life analysis : 4.73 ( 0%) usr 3.20 ( 3%) sys 9.99
( 1%) wall 14907 kB ( 2%) ggc
life info update : 0.67 ( 0%) usr 0.01 ( 0%) sys 0.81
( 0%) wall 527 kB ( 0%) ggc
alias analysis : 1.23 ( 0%) usr 0.05 ( 0%) sys 1.54
( 0%) wall 18444 kB ( 2%) ggc
register scan : 0.73 ( 0%) usr 0.03 ( 0%) sys 0.96
( 0%) wall 2 kB ( 0%) ggc
rebuild jump labels : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.33
( 0%) wall 0 kB ( 0%) ggc
preprocessing : 6.45 ( 1%) usr 11.01 (10%) sys 23.16
( 1%) wall 2082 kB ( 0%) ggc
lexical analysis : 11.37 ( 1%) usr 21.93 (20%) sys 43.56
( 3%) wall 0 kB ( 0%) ggc
parser : 8.69 ( 1%) usr 11.40 (11%) sys 24.06
( 1%) wall 58777 kB ( 7%) ggc
tree gimplify : 1.08 ( 0%) usr 0.06 ( 0%) sys 1.52
( 0%) wall 22756 kB ( 3%) ggc
tree eh : 0.14 ( 0%) usr 0.01 ( 0%) sys 0.19
( 0%) wall 0 kB ( 0%) ggc
tree CFG construction : 0.43 ( 0%) usr 0.10 ( 0%) sys 0.70
( 0%) wall 59315 kB ( 7%) ggc
tree CFG cleanup : 5.08 ( 0%) usr 0.07 ( 0%) sys 6.35
( 0%) wall 769 kB ( 0%) ggc
tree copy propagation : 4.37 ( 0%) usr 0.33 ( 0%) sys 5.80
( 0%) wall 10991 kB ( 1%) ggc
tree store copy prop : 0.65 ( 0%) usr 0.04 ( 0%) sys 0.92
( 0%) wall 1600 kB ( 0%) ggc
tree find ref. vars : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.19
( 0%) wall 1497 kB ( 0%) ggc
tree PTA : 3.75 ( 0%) usr 0.44 ( 0%) sys 5.69
( 0%) wall 12519 kB ( 1%) ggc
tree alias analysis : 5.64 ( 0%) usr 9.67 ( 9%) sys 13.57
( 1%) wall 6874 kB ( 1%) ggc
tree PHI insertion : 9.43 ( 1%) usr 0.61 ( 1%) sys 12.71
( 1%) wall 124865 kB (14%) ggc
tree SSA rewrite : 3.98 ( 0%) usr 0.19 ( 0%) sys 5.83
( 0%) wall 31517 kB ( 4%) ggc
tree SSA other : 0.95 ( 0%) usr 1.31 ( 1%) sys 2.80
( 0%) wall 0 kB ( 0%) ggc
tree SSA incremental : 16.59 ( 1%) usr 3.48 ( 3%) sys 24.92
( 1%) wall 16732 kB ( 2%) ggc
tree operand scan : 588.39 (48%) usr 10.34 (10%) sys 752.59
(45%) wall 18424 kB ( 2%) ggc
dominator optimization: 286.13 (23%) usr 2.87 ( 3%) sys 359.55
(21%) wall 59799 kB ( 7%) ggc
tree STORE-CCP : 0.59 ( 0%) usr 0.02 ( 0%) sys 0.81
( 0%) wall 520 kB ( 0%) ggc
tree CCP : 0.82 ( 0%) usr 0.02 ( 0%) sys 0.98
( 0%) wall 528 kB ( 0%) ggc
tree split crit edges : 0.24 ( 0%) usr 0.16 ( 0%) sys 0.61
( 0%) wall 26250 kB ( 3%) ggc
tree reassociation : 0.41 ( 0%) usr 0.02 ( 0%) sys 0.52
( 0%) wall 0 kB ( 0%) ggc
tree FRE : 11.31 ( 1%) usr 0.55 ( 1%) sys 14.83
( 1%) wall 29214 kB ( 3%) ggc
tree code sinking : 0.78 ( 0%) usr 0.05 ( 0%) sys 1.03
( 0%) wall 0 kB ( 0%) ggc
tree linearize phis : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.15
( 0%) wall 0 kB ( 0%) ggc
tree forward propagate: 0.12 ( 0%) usr 0.00 ( 0%) sys 0.15
( 0%) wall 0 kB ( 0%) ggc
tree conservative DCE : 1.57 ( 0%) usr 0.04 ( 0%) sys 1.99
( 0%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.67 ( 0%) usr 0.01 ( 0%) sys 0.86
( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.66 ( 0%) usr 0.03 ( 0%) sys 0.87
( 0%) wall 0 kB ( 0%) ggc
PHI merge : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03
( 0%) wall 23 kB ( 0%) ggc
tree loop bounds : 0.25 ( 0%) usr 0.01 ( 0%) sys 0.31
( 0%) wall 0 kB ( 0%) ggc
loop invariant motion : 0.46 ( 0%) usr 0.01 ( 0%) sys 0.61
( 0%) wall 0 kB ( 0%) ggc
tree canonical iv : 0.13 ( 0%) usr 0.01 ( 0%) sys 0.18
( 0%) wall 0 kB ( 0%) ggc
scev constant prop : 1.17 ( 0%) usr 0.04 ( 0%) sys 1.49
( 0%) wall 1751 kB ( 0%) ggc
complete unrolling : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07
( 0%) wall 0 kB ( 0%) ggc
tree loop init : 3.59 ( 0%) usr 5.28 ( 5%) sys 10.90
( 1%) wall 33356 kB ( 4%) ggc
tree loop fini : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.03
( 0%) wall 0 kB ( 0%) ggc
tree copy headers : 0.21 ( 0%) usr 0.01 ( 0%) sys 0.28
( 0%) wall 1 kB ( 0%) ggc
tree SSA uncprop : 0.36 ( 0%) usr 0.00 ( 0%) sys 0.48
( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 115.06 ( 9%) usr 1.06 ( 1%) sys 144.86
( 9%) wall 61182 kB ( 7%) ggc
tree rename SSA copies: 0.48 ( 0%) usr 0.08 ( 0%) sys 0.63
( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.43 ( 0%) usr 0.02 ( 0%) sys 0.56
( 0%) wall 0 kB ( 0%) ggc
expand : 5.91 ( 0%) usr 4.21 ( 4%) sys 12.57
( 1%) wall 107898 kB (12%) ggc
jump : 0.37 ( 0%) usr 0.03 ( 0%) sys 0.54
( 0%) wall 0 kB ( 0%) ggc
CSE : 1.76 ( 0%) usr 1.17 ( 1%) sys 3.58
( 0%) wall 1269 kB ( 0%) ggc
loop analysis : 1.04 ( 0%) usr 0.13 ( 0%) sys 1.39
( 0%) wall 6982 kB ( 1%) ggc
branch prediction : 2.33 ( 0%) usr 0.19 ( 0%) sys 3.07
( 0%) wall 4743 kB ( 1%) ggc
flow analysis : 0.15 ( 0%) usr 0.01 ( 0%) sys 0.27
( 0%) wall 0 kB ( 0%) ggc
combiner : 3.14 ( 0%) usr 0.18 ( 0%) sys 4.13
( 0%) wall 24031 kB ( 3%) ggc
if-conversion : 1.33 ( 0%) usr 0.08 ( 0%) sys 1.79
( 0%) wall 345 kB ( 0%) ggc
local alloc : 2.12 ( 0%) usr 0.08 ( 0%) sys 2.70
( 0%) wall 11213 kB ( 1%) ggc
global alloc : 18.25 ( 1%) usr 9.60 ( 9%) sys 33.92
( 2%) wall 26534 kB ( 3%) ggc
reload CSE regs : 22.25 ( 2%) usr 0.38 ( 0%) sys 28.78
( 2%) wall 11472 kB ( 1%) ggc
flow 2 : 0.45 ( 0%) usr 0.01 ( 0%) sys 0.56
( 0%) wall 19 kB ( 0%) ggc
if-conversion 2 : 0.44 ( 0%) usr 0.04 ( 0%) sys 0.57
( 0%) wall 13 kB ( 0%) ggc
rename registers : 0.72 ( 0%) usr 0.16 ( 0%) sys 1.05
( 0%) wall 10 kB ( 0%) ggc
scheduling 2 : 2.66 ( 0%) usr 0.07 ( 0%) sys 3.42
( 0%) wall 28856 kB ( 3%) ggc
shorten branches : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.17
( 0%) wall 0 kB ( 0%) ggc
final : 1.78 ( 0%) usr 0.11 ( 0%) sys 2.32
( 0%) wall 2050 kB ( 0%) ggc
TOTAL :1237.93 108.22
1679.82 866064 kB
More information about the Gambit-list
mailing list