diff options
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r-- | src/aig/gia/giaIf.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c index 1733b4b2..51668cba 100644 --- a/src/aig/gia/giaIf.c +++ b/src/aig/gia/giaIf.c @@ -1496,6 +1496,17 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp, int fNormalized ) Gia_ManStop( p ); return NULL; } + // compute switching for the IF objects + if ( pPars->fPower ) + { + Gia_Obj_t * pObj; int i; + assert( pIfMan->vSwitching == NULL ); + pIfMan->vSwitching = Vec_IntStart( If_ManObjNum(pIfMan) ); + Gia_ManForEachObj( p, pObj, i ) + if ( ~Gia_ObjValue(pObj) ) + Vec_IntWriteEntry( pIfMan->vSwitching, Gia_ObjValue(pObj), Vec_IntEntry(p->vSwitching, i) ); +// Vec_IntFreeP( &p->vSwitching ); + } if ( p->pManTime ) pIfMan->pManTim = Tim_ManDup( (Tim_Man_t *)p->pManTime, 0 ); if ( !If_ManPerformMapping( pIfMan ) ) |