diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-11-09 12:43:03 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-11-09 12:43:03 -0800 |
commit | fdcbb2cf374a456ffdef088a2f09d3acbbc86201 (patch) | |
tree | 940b0de3522e9006f37bdb6fb14b9f74534ed0e5 /src/aig | |
parent | aa2c7c05466c9e0a4beb5e536a6ea2cd70333433 (diff) | |
download | abc-fdcbb2cf374a456ffdef088a2f09d3acbbc86201.tar.gz abc-fdcbb2cf374a456ffdef088a2f09d3acbbc86201.tar.bz2 abc-fdcbb2cf374a456ffdef088a2f09d3acbbc86201.zip |
Performance bug fix in choice generation.
Diffstat (limited to 'src/aig')
-rw-r--r-- | src/aig/aig/aigDfs.c | 15 | ||||
-rw-r--r-- | src/aig/gia/giaIf.c | 1 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/aig/aig/aigDfs.c b/src/aig/aig/aigDfs.c index c55cbedd..5334aac0 100644 --- a/src/aig/aig/aigDfs.c +++ b/src/aig/aig/aigDfs.c @@ -392,7 +392,20 @@ Vec_Ptr_t * Aig_ManDfsChoices( Aig_Man_t * p ) { Vec_Ptr_t * vNodes; Aig_Obj_t * pObj; - int i; + int i, Counter = 0; + + Aig_ManForEachNode( p, pObj, i ) + { + if ( Aig_ObjEquiv(p, pObj) == NULL ) + continue; + + Counter = 0; + for ( pObj = Aig_ObjEquiv(p, pObj) ; pObj; pObj = Aig_ObjEquiv(p, pObj) ) + Counter++; + printf( "%d ", Counter ); + } + printf( "\n" ); + assert( p->pEquivs != NULL ); Aig_ManIncrementTravId( p ); // mark constant and PIs diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c index 463732a4..a1df0e50 100644 --- a/src/aig/gia/giaIf.c +++ b/src/aig/gia/giaIf.c @@ -299,6 +299,7 @@ If_Man_t * Gia_ManToIf( Gia_Man_t * p, If_Par_t * pPars ) for ( pPrev = pObj, pSibl = Gia_ObjSiblObj(p, i); pSibl; pPrev = pSibl, pSibl = Gia_ObjSiblObj(p, Gia_ObjId(p, pSibl)) ) If_ObjSetChoice( If_ManObj(pIfMan, Gia_ObjValue(pObj)), If_ManObj(pIfMan, Gia_ObjValue(pSibl)) ); If_ManCreateChoice( pIfMan, If_ManObj(pIfMan, Gia_ObjValue(pObj)) ); + pPars->fExpRed = 0; } // assert( If_ObjLevel(pIfObj) == Gia_ObjLevel(pNode) ); } |