summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaIf.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-07-14 23:12:05 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-07-14 23:12:05 -0700
commitdd29ca30a6afe0ba384a8985957a5bbead031911 (patch)
treec34dac29afa1b2d7fef39d0cfd93f885b62fd409 /src/aig/gia/giaIf.c
parentc0ac159888963dae8dabeb2ee9215f3efdf48a1a (diff)
downloadabc-dd29ca30a6afe0ba384a8985957a5bbead031911.tar.gz
abc-dd29ca30a6afe0ba384a8985957a5bbead031911.tar.bz2
abc-dd29ca30a6afe0ba384a8985957a5bbead031911.zip
New technology mapper.
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r--src/aig/gia/giaIf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c
index 72c65da0..f3820ab4 100644
--- a/src/aig/gia/giaIf.c
+++ b/src/aig/gia/giaIf.c
@@ -409,6 +409,7 @@ If_Man_t * Gia_ManToIf( Gia_Man_t * p, If_Par_t * pPars )
// create levels with choices
Gia_ManChoiceLevel( p );
// mark representative nodes
+ if ( p->pSibls )
Gia_ManMarkFanoutDrivers( p );
// start the mapping manager and set its parameters
pIfMan = If_ManStart( pPars );
@@ -445,12 +446,13 @@ If_Man_t * Gia_ManToIf( Gia_Man_t * p, If_Par_t * pPars )
{
Gia_Obj_t * pSibl, * pPrev;
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_ObjSetChoice( If_ManObj(pIfMan, Gia_ObjValue(pPrev)), 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) );
}
+ if ( p->pSibls )
Gia_ManCleanMark0( p );
return pIfMan;
}