version 1.7, 2002/12/24 23:40:30
|
version 1.12, 2003/11/02 18:18:35
|
Line 1
|
Line 1
|
/* VM profiling support stuff |
/* VM profiling support stuff |
|
|
Copyright (C) 2001 Free Software Foundation, Inc. |
Copyright (C) 2001,2002,2003 Free Software Foundation, Inc. |
|
|
This file is part of Gforth. |
This file is part of Gforth. |
|
|
Line 85 void vm_count_block(Xt *ip)
|
Line 85 void vm_count_block(Xt *ip)
|
} |
} |
|
|
#ifdef DIRECT_THREADED |
#ifdef DIRECT_THREADED |
#define VM_IS_INST(inst, n) ((inst) == vm_prims[(n)+DOESJUMP+1]) |
#define VM_IS_INST(inst, n) ((inst) == vm_prims[n]) |
#else |
#else |
#define VM_IS_INST(inst, n) ((inst) == &(vm_prims[(n)+DOESJUMP+1])) |
#define VM_IS_INST(inst, n) ((inst) == &(vm_prims[n])) |
#endif |
#endif |
|
|
void postprocess_block(block_count *b) |
void postprocess_block(block_count *b) |
Line 96 void postprocess_block(block_count *b)
|
Line 96 void postprocess_block(block_count *b)
|
block_count *next_block; |
block_count *next_block; |
|
|
do { |
do { |
#include "profile.i" |
#include PROFILE_I |
/* else */ |
/* else */ |
{ |
{ |
add_inst(b,"unknown"); |
add_inst(b,"unknown"); |
Line 128 void postprocess(void)
|
Line 128 void postprocess(void)
|
} |
} |
} |
} |
|
|
#if 0 |
#if 1 |
/* full basic blocks only */ |
/* full basic blocks only */ |
void print_block(FILE *file, block_count *b) |
void print_block(FILE *file, block_count *b) |
{ |
{ |
Line 158 void print_block(FILE *file, block_count
|
Line 158 void print_block(FILE *file, block_count
|
{ |
{ |
size_t i,j,k; |
size_t i,j,k; |
|
|
for (i=2; i<12; i++) |
for (i=1; i<2; i++) |
for (j=0; i+j<=b->ninsts; j++) { |
for (j=0; i+j<=b->ninsts; j++) { |
fprintf(file,"%14lld\t",b->count); |
fprintf(file,"%14lld\t",b->count); |
for (k=j; k<i+j; k++) |
for (k=j; k<i+j; k++) |