diff options
| -rw-r--r-- | src/aig/gia/gia.h | 2 | ||||
| -rw-r--r-- | src/aig/gia/giaHash.c | 6 | ||||
| -rw-r--r-- | src/aig/gia/giaMan.c | 1 | ||||
| -rw-r--r-- | src/base/abc/abcHieNew.c | 3 | 
4 files changed, 10 insertions, 2 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 ); diff --git a/src/base/abc/abcHieNew.c b/src/base/abc/abcHieNew.c index 09de8709..0712c574 100644 --- a/src/base/abc/abcHieNew.c +++ b/src/base/abc/abcHieNew.c @@ -369,7 +369,8 @@ int Au_NtkAllocObj( Au_Ntk_t * p, int nFanins, int Type )      {          int nObjInt2 = 63 + 64 * (((nObjInt-63) >> 6) + (((nObjInt-63) & 63) > 0));          assert( nObjInt2 >= nObjInt ); -        p->nUseful += nObjInt - nObjInt2; +//        if ( nObjInt2 + 64 < (1 << 12) ) +//            p->nUseful += nObjInt - nObjInt2;          nObjInt = nObjInt2;      }  | 
