Clean up functor counters

The functor counters were left over from the v0.8 release. Rework
the counters to be relevent to the current state of vvp.

Signed-off-by: Stephen Williams <steve@icarus.com>
This commit is contained in:
Stephen Williams 2007-12-02 08:47:06 -08:00
parent 680196953b
commit e5381feb85
6 changed files with 25 additions and 160 deletions

View File

@ -43,7 +43,7 @@
table_functor_s::table_functor_s(truth_t t)
: table(t)
{
count_functors_table += 1;
count_functors_logic += 1;
}
table_functor_s::~table_functor_s()
@ -125,6 +125,7 @@ void vvp_fun_boolean_::recv_vec4_pv(vvp_net_ptr_t ptr, const vvp_vector4_t&bit,
vvp_fun_and::vvp_fun_and(unsigned wid, bool invert)
: vvp_fun_boolean_(wid), invert_(invert)
{
count_functors_logic += 1;
}
vvp_fun_and::~vvp_fun_and()
@ -160,6 +161,7 @@ void vvp_fun_and::run_run()
vvp_fun_eeq::vvp_fun_eeq(unsigned wid, bool invert)
: vvp_fun_boolean_(wid), invert_(invert)
{
count_functors_logic += 1;
}
vvp_fun_eeq::~vvp_fun_eeq()
@ -188,7 +190,7 @@ void vvp_fun_eeq::run_run()
vvp_fun_buf::vvp_fun_buf()
{
net_ = 0;
count_functors_table += 1;
count_functors_logic += 1;
}
vvp_fun_buf::~vvp_fun_buf()
@ -227,7 +229,7 @@ void vvp_fun_buf::run_run()
vvp_fun_bufz::vvp_fun_bufz()
{
count_functors_table += 1;
count_functors_logic += 1;
}
vvp_fun_bufz::~vvp_fun_bufz()
@ -257,7 +259,7 @@ void vvp_fun_bufz::recv_real(vvp_net_ptr_t ptr, double bit)
vvp_fun_muxr::vvp_fun_muxr()
: a_(0.0), b_(0.0)
{
count_functors_table += 1;
count_functors_logic += 1;
select_ = 2;
}
@ -333,7 +335,7 @@ void vvp_fun_muxr::recv_real(vvp_net_ptr_t ptr, double bit)
vvp_fun_muxz::vvp_fun_muxz(unsigned wid)
: a_(wid), b_(wid)
{
count_functors_table += 1;
count_functors_logic += 1;
select_ = 2;
for (unsigned idx = 0 ; idx < wid ; idx += 1) {
a_.set_bit(idx, BIT4_X);
@ -408,7 +410,7 @@ void vvp_fun_muxz::recv_vec4(vvp_net_ptr_t ptr, const vvp_vector4_t&bit)
vvp_fun_not::vvp_fun_not()
{
net_ = 0;
count_functors_table += 1;
count_functors_logic += 1;
}
vvp_fun_not::~vvp_fun_not()
@ -452,6 +454,7 @@ void vvp_fun_not::run_run()
vvp_fun_or::vvp_fun_or(unsigned wid, bool invert)
: vvp_fun_boolean_(wid), invert_(invert)
{
count_functors_logic += 1;
}
vvp_fun_or::~vvp_fun_or()
@ -487,6 +490,7 @@ void vvp_fun_or::run_run()
vvp_fun_xor::vvp_fun_xor(unsigned wid, bool invert)
: vvp_fun_boolean_(wid), invert_(invert)
{
count_functors_logic += 1;
}
vvp_fun_xor::~vvp_fun_xor()

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001 Stephen Williams (steve@icarus.com)
* Copyright (c) 2001-2007 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
@ -16,9 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: main.cc,v 1.44 2007/02/16 23:30:14 steve Exp $"
#endif
# include "config.h"
# include "parse_misc.h"
@ -267,10 +264,10 @@ int main(int argc, char*argv[])
if (verbose_flag) {
vpi_mcd_printf(1, " ... %8lu functors\n", count_functors);
vpi_mcd_printf(1, " %8lu table\n", count_functors_table);
vpi_mcd_printf(1, " %8lu logic\n", count_functors_logic);
vpi_mcd_printf(1, " %8lu bufif\n", count_functors_bufif);
vpi_mcd_printf(1, " %8lu resolv\n",count_functors_resolv);
vpi_mcd_printf(1, " %8lu variable\n", count_functors_var);
vpi_mcd_printf(1, " %8lu signals\n", count_functors_sig);
vpi_mcd_printf(1, " ... %8lu opcodes (%lu bytes)\n",
count_opcodes, (unsigned long)size_opcodes);
vpi_mcd_printf(1, " ... %8lu nets\n", count_vpi_nets);
@ -306,89 +303,3 @@ int main(int argc, char*argv[])
return 0;
}
/*
* $Log: main.cc,v $
* Revision 1.44 2007/02/16 23:30:14 steve
* Get page size from sysconf.
*
* Revision 1.43 2006/04/28 15:44:37 steve
* Include math.h with lround implementation.
*
* Revision 1.42 2006/04/28 15:40:30 steve
* lround takes double, not float.
*
* Revision 1.41 2006/04/27 05:04:59 steve
* Detect missing lround function.
*
* Revision 1.40 2005/01/29 06:28:19 steve
* Add the -s flag to start up interactive.
*
* Revision 1.39 2004/10/04 01:10:59 steve
* Clean up spurious trailing white space.
*
* Revision 1.38 2003/06/25 04:04:19 steve
* Fix mingw portability problems.
*
* Revision 1.37 2003/06/13 19:51:08 steve
* Include verbose messages in log output.
*
* Revision 1.36 2003/05/15 16:51:09 steve
* Arrange for mcd id=00_00_00_01 to go to stdout
* as well as a user specified log file, set log
* file to buffer lines.
*
* Add vpi_flush function, and clear up some cunfused
* return codes from other vpi functions.
*
* Adjust $display and vcd/lxt messages to use the
* standard output/log file.
*
* Revision 1.35 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.34 2003/02/07 02:45:05 steve
* Mke getopt ignore options after the file name.
*
* Revision 1.33 2003/01/18 23:55:35 steve
* Add a means to clear the module search path.
*
* Revision 1.32 2003/01/06 23:57:26 steve
* Schedule wait lists of threads as a single event,
* to save on events. Also, improve efficiency of
* event_s allocation. Add some event statistics to
* get an idea where performance is really going.
*
* Revision 1.31 2002/09/18 03:34:07 steve
* printf size warning.
*
* Revision 1.30 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
* Revision 1.29 2002/07/15 00:21:42 steve
* Fix initialization of symbol table string heap.
*
* Revision 1.28 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.27 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*
* Revision 1.26 2002/07/05 03:47:06 steve
* Track opcode memory space.
*
* Revision 1.25 2002/07/05 02:50:58 steve
* Remove the vpi object symbol table after compile.
*
* Revision 1.24 2002/04/12 02:44:02 steve
* Formally define extended arguments to vvp.
*
* Revision 1.23 2002/03/01 05:43:14 steve
* Add cleanup to verbose messages.
*
* Revision 1.22 2002/01/09 03:15:23 steve
* Add vpi_get_vlog_info support.
*
* Revision 1.21 2001/10/20 01:03:42 steve
* Print memory usage information if requested (Stephan Boettcher)
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001-2004 Stephen Williams (steve@icarus.com)
* Copyright (c) 2001-2007 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
@ -16,9 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: resolv.cc,v 1.26 2005/06/22 18:30:12 steve Exp $"
#endif
# include "resolv.h"
# include "schedule.h"
@ -31,6 +28,7 @@
resolv_functor::resolv_functor(vvp_scalar_t hiz_value, const char*debug_l)
: hiz_(hiz_value), debug_label_(debug_l)
{
count_functors_resolv += 1;
}
resolv_functor::~resolv_functor()
@ -95,9 +93,3 @@ void resolv_functor::recv_vec8(vvp_net_ptr_t port, vvp_vector8_t bit)
vvp_send_vec8(ptr->out, out);
}
/*
* $Log: resolv.cc,v $
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002 Stephen Williams (steve@icarus.com)
* Copyright (c) 2002-2007 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
@ -16,9 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: statistics.cc,v 1.5 2002/08/12 01:35:08 steve Exp $"
#endif
# include "statistics.h"
@ -28,10 +25,10 @@
unsigned long count_opcodes = 0;
unsigned long count_functors = 0;
unsigned long count_functors_table = 0;
unsigned long count_functors_logic = 0;
unsigned long count_functors_bufif = 0;
unsigned long count_functors_resolv= 0;
unsigned long count_functors_var = 0;
unsigned long count_functors_sig = 0;
unsigned long count_vpi_nets = 0;
@ -41,23 +38,3 @@ unsigned long count_vpi_scopes = 0;
size_t size_opcodes = 0;
/*
* $Log: statistics.cc,v $
* Revision 1.5 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*
* Revision 1.2 2002/07/05 03:46:43 steve
* Track opcode memory space.
*
* Revision 1.1 2002/07/05 02:50:58 steve
* Remove the vpi object symbol table after compile.
*
*/

View File

@ -1,7 +1,7 @@
#ifndef __statistics_H
#define __statistics_H
/*
* Copyright (c) 2002 Stephen Williams (steve@icarus.com)
* Copyright (c) 2002-2007 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
@ -18,40 +18,19 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: statistics.h,v 1.5 2002/08/12 01:35:08 steve Exp $"
#endif
# include <stddef.h>
extern unsigned long count_opcodes;
extern unsigned long count_functors;
extern unsigned long count_functors_table;
extern unsigned long count_functors_logic;
extern unsigned long count_functors_bufif;
extern unsigned long count_functors_resolv;
extern unsigned long count_functors_var;
extern unsigned long count_functors_sig;
extern unsigned long count_vpi_nets;
extern unsigned long count_vpi_scopes;
extern unsigned long count_vpi_memories;
extern size_t size_opcodes;
/*
* $Log: statistics.h,v $
* Revision 1.5 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
* Revision 1.4 2002/07/05 20:08:44 steve
* Count different types of functors.
*
* Revision 1.3 2002/07/05 17:14:15 steve
* Names of vpi objects allocated as vpip_strings.
*
* Revision 1.2 2002/07/05 03:46:43 steve
* Track opcode memory space.
*
* Revision 1.1 2002/07/05 02:50:58 steve
* Remove the vpi object symbol table after compile.
*
*/
#endif

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004-2005 Stephen Williams (steve@icarus.com)
* Copyright (c) 2004-2007 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
@ -16,11 +16,11 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ident "$Id: vvp_net.cc,v 1.64 2007/06/12 02:36:58 steve Exp $"
# include "config.h"
# include "vvp_net.h"
# include "schedule.h"
# include "statistics.h"
# include <stdio.h>
# include <iostream>
# include <typeinfo>
@ -1406,6 +1406,7 @@ ostream& operator<<(ostream&out, const vvp_vector8_t&that)
vvp_net_fun_t::vvp_net_fun_t()
{
count_functors += 1;
}
vvp_net_fun_t::~vvp_net_fun_t()
@ -1477,6 +1478,7 @@ vvp_fun_signal_base::vvp_fun_signal_base()
continuous_assign_active_ = false;
force_link = 0;
cassign_link = 0;
count_functors_sig += 1;
}
void vvp_fun_signal_base::deassign()