Diff for /gforth/vmgen-ex/profile.c between versions 1.3 and 1.7

version 1.3, 2002/06/02 15:46:17 version 1.7, 2007/12/31 18:40:26
Line 1 Line 1
 /* VM profiling support stuff  /* VM profiling support stuff
   
   Copyright (C) 2001 Free Software Foundation, Inc.    Copyright (C) 2001,2003 Free Software Foundation, Inc.
   
   This file is part of Gforth.    This file is part of Gforth.
   
   Gforth is free software; you can redistribute it and/or    Gforth is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License    modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2    as published by the Free Software Foundation, either version 3
   of the License, or (at your option) any later version.    of the License, or (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,    This program is distributed in the hope that it will be useful,
Line 15 Line 15
   GNU General Public License for more details.    GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License    You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software    along with this program; if not, see http://www.gnu.org/licenses/.
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
 */  */
   
 #include <stdlib.h>  #include <stdlib.h>
Line 29 Line 28
 #define HASH_SIZE (1<<20)  #define HASH_SIZE (1<<20)
 #define hash(p) ((((Cell)(p))/sizeof(Inst))&(HASH_SIZE-1))  #define hash(p) ((((Cell)(p))/sizeof(Inst))&(HASH_SIZE-1))
   
   #ifdef __GNUC__
   typedef long long long_long;
   #else
   typedef long long_long;
   #endif
   
 typedef struct block_count {  typedef struct block_count {
   struct block_count *next; /* next in hash table */    struct block_count *next; /* next in hash table */
   struct block_count *fallthrough; /* the block that this one falls    struct block_count *fallthrough; /* the block that this one falls
                                        through to without SUPER_END */                                         through to without SUPER_END */
   Inst *ip;    Inst *ip;
   long long count;    long_long count;
   char **insts;    char **insts;
   size_t ninsts;    size_t ninsts;
 } block_count;  } block_count;
Line 63  block_count *block_insert(Inst *ip) Line 68  block_count *block_insert(Inst *ip)
   new->next = blocks[hash(ip)];    new->next = blocks[hash(ip)];
   new->fallthrough = NULL;    new->fallthrough = NULL;
   new->ip = ip;    new->ip = ip;
   new->count = 0LL;    new->count = (long_long)0;
   new->insts = malloc(0);    new->insts = malloc(1);
   assert(new->insts != NULL);    assert(new->insts != NULL);
   new->ninsts = 0;    new->ninsts = 0;
   blocks[hash(ip)] = new;    blocks[hash(ip)] = new;

Removed from v.1.3  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>