From eddb194ce0b2a1a505cbf445a56dcaa27abdc270 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Thu, 5 Sep 2013 02:15:36 -0700 Subject: Making selecting duplication procedure creates a smaller AIG. --- src/aig/gia/giaDup.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index 85af8748..2e911ba8 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -906,8 +906,11 @@ Gia_Man_t * Gia_ManDupMarked( Gia_Man_t * p ) Gia_Man_t * pNew; Gia_Obj_t * pObj; int i, nRos = 0, nRis = 0; + int CountMarked = 0; + Gia_ManForEachObj1( p, pObj, i ) + CountMarked += pObj->fMark0; Gia_ManFillValue( p ); - pNew = Gia_ManStart( Gia_ManObjNum(p) ); + pNew = Gia_ManStart( Gia_ManObjNum(p) - CountMarked ); if ( p->pMuxes ) pNew->pMuxes = ABC_CALLOC( unsigned, pNew->nObjsAlloc ); pNew->nConstrs = p->nConstrs; @@ -917,8 +920,10 @@ Gia_Man_t * Gia_ManDupMarked( Gia_Man_t * p ) Gia_ManForEachObj1( p, pObj, i ) { if ( pObj->fMark0 ) + { + pObj->fMark0 = 0; continue; - pObj->fMark0 = 0; + } if ( Gia_ObjIsAnd(pObj) ) { if ( Gia_ObjIsXor(pObj) ) -- cgit v1.2.3