summaryrefslogtreecommitdiffstats
path: root/src/opt/sfm/sfmWin.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-05-24 22:35:22 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-05-24 22:35:22 -0700
commitd5234332fb29b7b50220df6a09d913d6832a425c (patch)
treee53657c8789830bee75166c61df9eee3f97d06d3 /src/opt/sfm/sfmWin.c
parent283abd4795bd5c45d7dc51abd2e097a1794bad5d (diff)
downloadabc-d5234332fb29b7b50220df6a09d913d6832a425c.tar.gz
abc-d5234332fb29b7b50220df6a09d913d6832a425c.tar.bz2
abc-d5234332fb29b7b50220df6a09d913d6832a425c.zip
New MFS package.
Diffstat (limited to 'src/opt/sfm/sfmWin.c')
-rw-r--r--src/opt/sfm/sfmWin.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/opt/sfm/sfmWin.c b/src/opt/sfm/sfmWin.c
index e0baa96f..893a4592 100644
--- a/src/opt/sfm/sfmWin.c
+++ b/src/opt/sfm/sfmWin.c
@@ -245,6 +245,7 @@ int Sfm_NtkCreateWindow( Sfm_Ntk_t * p, int iNode, int fVerbose )
assert( Sfm_ObjIsNode( p, iNode ) );
Vec_IntClear( p->vLeaves ); // leaves
Vec_IntClear( p->vNodes ); // internal
+ Vec_IntClear( p->vDivs ); // divisors
// collect transitive fanin
Sfm_NtkIncrementTravId( p );
Sfm_NtkCollectTfi_rec( p, iNode );
@@ -266,12 +267,13 @@ int Sfm_NtkCreateWindow( Sfm_Ntk_t * p, int iNode, int fVerbose )
p->timeWin += clock() - clk;
// collect divisors of the TFI nodes
clk = clock();
- Vec_IntClear( p->vDivs );
Vec_IntAppend( p->vDivs, p->vLeaves );
Vec_IntAppend( p->vDivs, p->vNodes );
Sfm_NtkIncrementTravId2( p );
Vec_IntForEachEntry( p->vDivs, iTemp, i )
- Sfm_NtkAddDivisors( p, iTemp );
+ if ( Vec_IntSize(p->vDivs) < p->pPars->nDivNumMax )
+ Sfm_NtkAddDivisors( p, iTemp );
+ p->nTotalDivs += Vec_IntSize(p->vDivs);
p->timeDiv += clock() - clk;
if ( !fVerbose )
return 1;