From 0985491dceaa917ccf625c6cf9707bd3c9a2da99 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 25 Jun 2013 19:46:07 -0700 Subject: Improving integration of the 'if' mapper with GIA. --- src/aig/gia/giaIf.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/aig/gia/giaIf.c') diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c index e3a78ac9..2e8805ae 100644 --- a/src/aig/gia/giaIf.c +++ b/src/aig/gia/giaIf.c @@ -1107,7 +1107,7 @@ void Gia_ManTransferPacking( Gia_Man_t * pGia, Gia_Man_t * p ) SeeAlso [] ***********************************************************************/ -Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp ) +Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp, int fNormalized ) { Gia_Man_t * pNew; If_Man_t * pIfMan; @@ -1120,16 +1120,19 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp ) assert( pPars->pTimesReq == NULL ); if ( p->pManTime ) { - pNew = Gia_ManDupUnnormalize( p ); - if ( pNew == NULL ) - return NULL; - pNew->pManTime = p->pManTime; p->pManTime = NULL; - pNew->pAigExtra = p->pAigExtra; p->pAigExtra = NULL; - pNew->nAnd2Delay = p->nAnd2Delay; p->nAnd2Delay = 0; - p = pNew; - // set arrival and required times - pPars->pTimesArr = Tim_ManGetArrTimes( (Tim_Man_t *)p->pManTime ); - pPars->pTimesReq = Tim_ManGetReqTimes( (Tim_Man_t *)p->pManTime ); + if ( fNormalized ) + { + pNew = Gia_ManDupUnnormalize( p ); + if ( pNew == NULL ) + return NULL; + pNew->pManTime = p->pManTime; p->pManTime = NULL; + pNew->pAigExtra = p->pAigExtra; p->pAigExtra = NULL; + pNew->nAnd2Delay = p->nAnd2Delay; p->nAnd2Delay = 0; + p = pNew; + // set arrival and required times + pPars->pTimesArr = Tim_ManGetArrTimes( (Tim_Man_t *)p->pManTime ); + pPars->pTimesReq = Tim_ManGetReqTimes( (Tim_Man_t *)p->pManTime ); + } } else p = Gia_ManDup( p ); -- cgit v1.2.3