summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaIf.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-06-25 19:46:07 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-06-25 19:46:07 -0700
commit0985491dceaa917ccf625c6cf9707bd3c9a2da99 (patch)
treefaae40f153f21c4d5e1388b851810b77fad757bf /src/aig/gia/giaIf.c
parented319531be61bb82204a4450db69de73eb9641e1 (diff)
downloadabc-0985491dceaa917ccf625c6cf9707bd3c9a2da99.tar.gz
abc-0985491dceaa917ccf625c6cf9707bd3c9a2da99.tar.bz2
abc-0985491dceaa917ccf625c6cf9707bd3c9a2da99.zip
Improving integration of the 'if' mapper with GIA.
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r--src/aig/gia/giaIf.c25
1 files changed, 14 insertions, 11 deletions
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 );