summaryrefslogtreecommitdiffstats
path: root/src/aig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-01-13 19:31:13 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-01-13 19:31:13 -0800
commit4bd7efa6cda58e3e108b800d72438b707d56dd47 (patch)
treeaf0981c51113fa1c013727f0a93e90b0905e462d /src/aig
parentedbff75fff4666c6683f448068aa76a59c3de555 (diff)
downloadabc-4bd7efa6cda58e3e108b800d72438b707d56dd47.tar.gz
abc-4bd7efa6cda58e3e108b800d72438b707d56dd47.tar.bz2
abc-4bd7efa6cda58e3e108b800d72438b707d56dd47.zip
Added counting hits and misses during structural hashing.
Diffstat (limited to 'src/aig')
-rw-r--r--src/aig/gia/gia.h2
-rw-r--r--src/aig/gia/giaHash.c6
-rw-r--r--src/aig/gia/giaMan.c1
3 files changed, 8 insertions, 1 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h
index d97276f5..4ca6930b 100644
--- a/src/aig/gia/gia.h
+++ b/src/aig/gia/gia.h
@@ -149,6 +149,8 @@ struct Gia_Man_t_
Vec_Flt_t * vTiming; // arrival/required/slack
void * pManTime; // the timing manager
void * pLutLib; // LUT library
+ word nHashHit; // hash table hit
+ word nHashMiss; // hash table miss
};
diff --git a/src/aig/gia/giaHash.c b/src/aig/gia/giaHash.c
index 6561ca13..c610bc9c 100644
--- a/src/aig/gia/giaHash.c
+++ b/src/aig/gia/giaHash.c
@@ -490,8 +490,12 @@ int Gia_ManHashAnd( Gia_Man_t * p, int iLit0, int iLit1 )
iLit0 ^= iLit1, iLit1 ^= iLit0, iLit0 ^= iLit1;
{
int * pPlace = Gia_ManHashFind( p, iLit0, iLit1 );
- if ( *pPlace )
+ if ( *pPlace )
+ {
+ p->nHashHit++;
return *pPlace;
+ }
+ p->nHashMiss++;
if ( p->nObjs < p->nObjsAlloc )
return *pPlace = Gia_ManAppendAnd( p, iLit0, iLit1 );
else
diff --git a/src/aig/gia/giaMan.c b/src/aig/gia/giaMan.c
index f09ca7b5..d290113f 100644
--- a/src/aig/gia/giaMan.c
+++ b/src/aig/gia/giaMan.c
@@ -70,6 +70,7 @@ Gia_Man_t * Gia_ManStart( int nObjsMax )
***********************************************************************/
void Gia_ManStop( Gia_Man_t * p )
{
+ printf( "Hash table hits = %12u. Hash table misses = %12u.\n", (int)p->nHashHit, (int)p->nHashMiss );
Tim_ManStopP( (Tim_Man_t **)&p->pManTime );
assert( p->pManTime == NULL );
Vec_PtrFreeFree( p->vNamesIn );