summaryrefslogtreecommitdiffstats
path: root/src/map/if/ifMap.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-07-20 18:23:10 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-07-20 18:23:10 +0700
commitee261ef3f21851ea8aab05c89f81fdab8c3f5c71 (patch)
treefba36e049db605cf3b8f799196f6ddec605d06c8 /src/map/if/ifMap.c
parentbb86d9142ebb31d31392c3472d6b49f7989e46b6 (diff)
downloadabc-ee261ef3f21851ea8aab05c89f81fdab8c3f5c71.tar.gz
abc-ee261ef3f21851ea8aab05c89f81fdab8c3f5c71.tar.bz2
abc-ee261ef3f21851ea8aab05c89f81fdab8c3f5c71.zip
Other changes to enable new features in the mapper (bug fix).
Diffstat (limited to 'src/map/if/ifMap.c')
-rw-r--r--src/map/if/ifMap.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c
index 8b00ab01..86ecfd99 100644
--- a/src/map/if/ifMap.c
+++ b/src/map/if/ifMap.c
@@ -94,8 +94,11 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
If_Cut_t * pCut0, * pCut1, * pCut;
int i, k;
- assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin0) || pObj->pFanin0->pCutSet->nCuts > 1 );
- assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin1) || pObj->pFanin1->pCutSet->nCuts > 1 );
+// assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin0) || pObj->pFanin0->pCutSet->nCuts > 1 );
+// assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin1) || pObj->pFanin1->pCutSet->nCuts > 1 );
+
+ assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin0) || pObj->pFanin0->pCutSet->nCuts > 0 );
+ assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin1) || pObj->pFanin1->pCutSet->nCuts > 0 );
// prepare
if ( !p->pPars->fSeqMap )
@@ -232,8 +235,11 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
assert( pCutSet->nCuts > 0 );
// add the trivial cut to the set
- If_ManSetupCutTriv( p, pCutSet->ppCuts[pCutSet->nCuts++], pObj->Id );
- assert( pCutSet->nCuts <= pCutSet->nCutsMax+1 );
+ if ( !pObj->fSkipCut )
+ {
+ If_ManSetupCutTriv( p, pCutSet->ppCuts[pCutSet->nCuts++], pObj->Id );
+ assert( pCutSet->nCuts <= pCutSet->nCutsMax+1 );
+ }
// update the best cut
if ( !fPreprocess || pCutSet->ppCuts[0]->Delay <= pObj->Required + p->fEpsilon )
@@ -325,8 +331,11 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP
assert( pCutSet->nCuts > 0 );
// add the trivial cut to the set
- If_ManSetupCutTriv( p, pCutSet->ppCuts[pCutSet->nCuts++], pObj->Id );
- assert( pCutSet->nCuts <= pCutSet->nCutsMax+1 );
+ if ( !pObj->fSkipCut )
+ {
+ If_ManSetupCutTriv( p, pCutSet->ppCuts[pCutSet->nCuts++], pObj->Id );
+ assert( pCutSet->nCuts <= pCutSet->nCutsMax+1 );
+ }
// update the best cut
if ( !fPreprocess || pCutSet->ppCuts[0]->Delay <= pObj->Required + p->fEpsilon )