[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