From 424b86a55673f53ec102687c04d2762b88ad5a47 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 5 Apr 2014 09:58:43 -0700 Subject: Performance bug fix in SOP balancing. --- src/map/if/ifMap.c | 5 +---- src/map/if/ifTime.c | 27 +-------------------------- 2 files changed, 2 insertions(+), 30 deletions(-) (limited to 'src/map') diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c index cd13ed34..c5e40dec 100644 --- a/src/map/if/ifMap.c +++ b/src/map/if/ifMap.c @@ -392,10 +392,7 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP if ( Mode && pCut->Delay > pObj->Required + p->fEpsilon ) continue; // set the phase attribute - assert( pCut->fCompl == 0 ); - pCut->fCompl ^= (pObj->fPhase ^ pTemp->fPhase); // why ^= ? - if ( p->pPars->fDelayOpt && pCut->fCompl ) - continue; + pCut->fCompl = pObj->fPhase ^ pTemp->fPhase; // compute area of the cut (this area may depend on the application specific cost) pCut->Area = (Mode == 2)? If_CutAreaDerefed( p, pCut ) : If_CutAreaFlow( p, pCut ); if ( p->pPars->fEdge ) diff --git a/src/map/if/ifTime.c b/src/map/if/ifTime.c index 7ad685b3..07258f95 100644 --- a/src/map/if/ifTime.c +++ b/src/map/if/ifTime.c @@ -267,33 +267,8 @@ Vec_Wrd_t * If_CutDelaySopArray( If_Man_t * p, If_Cut_t * pCut ) assert( RetValue == 0 || RetValue == 1 ); clk = Abc_Clock(); - vAnds = If_CutDelaySopAnds( p, pCut, p->vCover, RetValue ^ pCut->fCompl ); + vAnds = If_CutDelaySopAnds( p, pCut, p->vCover, RetValue ); s_timeOld += Abc_Clock() - clk; -/* - if ( pCut->nLeaves <= 5 ) - { - if ( *If_CutTruth(pCut) != (unsigned)If_AndVerifyArray(vAnds, pCut->nLeaves) ) - { - unsigned Truth0 = *If_CutTruth(pCut); - unsigned Truth1 = (unsigned)If_AndVerifyArray(vAnds, pCut->nLeaves); - - printf( "\n" ); - Extra_PrintBinary( stdout, &Truth0, 32 ); printf( "\n" ); - Extra_PrintBinary( stdout, &Truth1, 32 ); printf( "\n" ); - - printf( "Verification failed for %d vars.\n", pCut->nLeaves ); - } -// else -// printf( "Verification passed for %d vars.\n", pCut->nLeaves ); - } - else if ( pCut->nLeaves == 6 ) - { - if ( *((word *)If_CutTruth(pCut)) != If_AndVerifyArray(vAnds, pCut->nLeaves) ) - printf( "Verification failed for %d vars.\n", pCut->nLeaves ); -// else -// printf( "Verification passed for %d vars.\n", pCut->nLeaves ); - } -*/ return vAnds; } -- cgit v1.2.3