diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-25 18:10:45 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-25 18:10:45 -0700 |
commit | 94a75fe6d8f8709603dbf9e5bf959174dc3342ac (patch) | |
tree | a74f1e34183c94b4a2a93d83f821f8134d5c9951 /src/opt/mfs | |
parent | f47cc6cefccb859b0b64eb89648c5126b8ccbf22 (diff) | |
download | abc-94a75fe6d8f8709603dbf9e5bf959174dc3342ac.tar.gz abc-94a75fe6d8f8709603dbf9e5bf959174dc3342ac.tar.bz2 abc-94a75fe6d8f8709603dbf9e5bf959174dc3342ac.zip |
New MFS package.
Diffstat (limited to 'src/opt/mfs')
-rw-r--r-- | src/opt/mfs/mfsCore.c | 4 | ||||
-rw-r--r-- | src/opt/mfs/mfsDiv.c | 4 | ||||
-rw-r--r-- | src/opt/mfs/mfsMan.c | 4 | ||||
-rw-r--r-- | src/opt/mfs/mfsResub.c | 8 |
4 files changed, 10 insertions, 10 deletions
diff --git a/src/opt/mfs/mfsCore.c b/src/opt/mfs/mfsCore.c index 22a28e22..d652d8cd 100644 --- a/src/opt/mfs/mfsCore.c +++ b/src/opt/mfs/mfsCore.c @@ -48,7 +48,7 @@ void Abc_NtkMfsParsDefault( Mfs_Par_t * pPars ) { memset( pPars, 0, sizeof(Mfs_Par_t) ); pPars->nWinTfoLevs = 2; - pPars->nFanoutsMax = 10; + pPars->nFanoutsMax = 30; pPars->nDepthMax = 20; pPars->nDivMax = 250; pPars->nWinSizeMax = 300; @@ -406,7 +406,7 @@ int Abc_NtkMfs( Abc_Ntk_t * pNtk, Mfs_Par_t * pPars ) } } // perform the network sweep - Abc_NtkSweep( pNtk, 0 ); +// Abc_NtkSweep( pNtk, 0 ); // convert into the AIG if ( !Abc_NtkToAig(pNtk) ) { diff --git a/src/opt/mfs/mfsDiv.c b/src/opt/mfs/mfsDiv.c index 1473580e..0b29673e 100644 --- a/src/opt/mfs/mfsDiv.c +++ b/src/opt/mfs/mfsDiv.c @@ -214,7 +214,7 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi // (3) the node's fanins (these are treated as a special case) Abc_NtkIncrementTravId( pNode->pNtk ); Abc_MfsWinSweepLeafTfo_rec( pNode, nLevDivMax ); - Abc_MfsWinVisitMffc( pNode ); +// Abc_MfsWinVisitMffc( pNode ); Abc_ObjForEachFanin( pNode, pObj, k ) Abc_NodeSetTravIdCurrent( pObj ); @@ -244,7 +244,7 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi Abc_ObjForEachFanout( pObj, pFanout, f ) { // stop if there are too many fanouts - if ( f > 20 ) + if ( p->pPars->nFanoutsMax && f > p->pPars->nFanoutsMax ) break; // skip nodes that are already added if ( Abc_NodeIsTravIdPrevious(pFanout) ) diff --git a/src/opt/mfs/mfsMan.c b/src/opt/mfs/mfsMan.c index 3ed6436f..401c6edd 100644 --- a/src/opt/mfs/mfsMan.c +++ b/src/opt/mfs/mfsMan.c @@ -113,7 +113,7 @@ void Mfs_ManPrint( Mfs_Man_t * p ) if ( p->pPars->fResub ) { printf( "Nodes = %d. Try = %d. Resub = %d. Div = %d. SAT calls = %d. Timeouts = %d.\n", - Abc_NtkNodeNum(p->pNtk), p->nNodesTried, p->nNodesResub, p->nTotalDivs, p->nSatCalls, p->nTimeOuts ); + p->nTotalNodesBeg, p->nNodesTried, p->nNodesResub, p->nTotalDivs, p->nSatCalls, p->nTimeOuts ); printf( "Attempts : " ); printf( "Remove %6d out of %6d (%6.2f %%) ", p->nRemoves, p->nTryRemoves, 100.0*p->nRemoves/Abc_MaxInt(1, p->nTryRemoves) ); @@ -137,7 +137,7 @@ void Mfs_ManPrint( Mfs_Man_t * p ) else { printf( "Nodes = %d. Try = %d. Total mints = %d. Local DC mints = %d. Ratio = %5.2f.\n", - Abc_NtkNodeNum(p->pNtk), p->nNodesTried, p->nMintsTotal, p->nMintsTotal-p->nMintsCare, + p->nTotalNodesBeg, p->nNodesTried, p->nMintsTotal, p->nMintsTotal-p->nMintsCare, 1.0 * (p->nMintsTotal-p->nMintsCare) / p->nMintsTotal ); // printf( "Average ratio of sequential DCs in the global space = %5.2f.\n", // 1.0-(p->dTotalRatios/p->nNodesTried) ); diff --git a/src/opt/mfs/mfsResub.c b/src/opt/mfs/mfsResub.c index 0ecd0f67..85eb8140 100644 --- a/src/opt/mfs/mfsResub.c +++ b/src/opt/mfs/mfsResub.c @@ -164,7 +164,7 @@ p->timeGia += clock() - clk; ***********************************************************************/ int Abc_NtkMfsSolveSatResub( Mfs_Man_t * p, Abc_Obj_t * pNode, int iFanin, int fOnlyRemove, int fSkipUpdate ) { - int fVeryVerbose = p->pPars->fVeryVerbose && Vec_PtrSize(p->vDivs) < 200;// || pNode->Id == 556; + int fVeryVerbose = 0;//p->pPars->fVeryVerbose && Vec_PtrSize(p->vDivs) < 200;// || pNode->Id == 556; unsigned * pData; int pCands[MFS_FANIN_MAX]; int RetValue, iVar, i, nCands, nWords, w; @@ -180,9 +180,9 @@ int Abc_NtkMfsSolveSatResub( Mfs_Man_t * p, Abc_Obj_t * pNode, int iFanin, int f if ( p->pPars->fVeryVerbose ) { // printf( "\n" ); - printf( "Node %5d : Level = %2d. Divs = %3d. Fanin = %d (out of %d). MFFC = %d\n", - pNode->Id, pNode->Level, Vec_PtrSize(p->vDivs)-Abc_ObjFaninNum(pNode), - iFanin, Abc_ObjFaninNum(pNode), + printf( "%5d : Lev =%3d. Leaf =%3d. Node =%3d. Divs =%3d. Fanin = %4d (%d/%d), MFFC = %d\n", + pNode->Id, pNode->Level, Vec_PtrSize(p->vSupp), Vec_PtrSize(p->vNodes), Vec_PtrSize(p->vDivs)-Abc_ObjFaninNum(pNode), + Abc_ObjFaninId(pNode, iFanin), iFanin, Abc_ObjFaninNum(pNode), Abc_ObjFanoutNum(Abc_ObjFanin(pNode, iFanin)) == 1 ? Abc_NodeMffcLabel(Abc_ObjFanin(pNode, iFanin)) : 0 ); } |