From 4bd7efa6cda58e3e108b800d72438b707d56dd47 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 13 Jan 2012 19:31:13 -0800 Subject: Added counting hits and misses during structural hashing. --- src/aig/gia/gia.h | 2 ++ src/aig/gia/giaHash.c | 6 +++++- src/aig/gia/giaMan.c | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/aig') 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 ); -- cgit v1.2.3