diff options
| author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-03-25 23:10:35 -0700 | 
|---|---|---|
| committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-03-25 23:10:35 -0700 | 
| commit | 45f07795ef18d66d74f67f939d0998bed06cf703 (patch) | |
| tree | e2d523219e3ce675d043b7a1411f2c5b14200786 /src | |
| parent | 8ed3e40a52479fe802325bf24415c31d423adedc (diff) | |
| download | abc-45f07795ef18d66d74f67f939d0998bed06cf703.tar.gz abc-45f07795ef18d66d74f67f939d0998bed06cf703.tar.bz2 abc-45f07795ef18d66d74f67f939d0998bed06cf703.zip  | |
Logic sharing for multi-input gates.
Diffstat (limited to 'src')
| -rw-r--r-- | src/base/abci/abcExtract.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/src/base/abci/abcExtract.c b/src/base/abci/abcExtract.c index 2d3c4a6c..1a543eaa 100644 --- a/src/base/abci/abcExtract.c +++ b/src/base/abci/abcExtract.c @@ -95,7 +95,7 @@ void Abc_ShaManStop( Abc_ShaMan_t * p )  Vec_Wrd_t * Abc_NtkShareSuperXor( Abc_Obj_t * pObj, int * pfCompl, int * pCounter )  {      Abc_Ntk_t * pNtk = Abc_ObjNtk(pObj); -    Abc_Obj_t * pObjC, * pObj0, * pObj1, * pRoot; +    Abc_Obj_t * pObjC, * pObj0, * pObj1, * pRoot = NULL;      Vec_Wrd_t * vSuper;      word Num, NumNext;      int i, k, fCompl = 0; @@ -159,7 +159,7 @@ Vec_Wrd_t * Abc_NtkShareSuperXor( Abc_Obj_t * pObj, int * pfCompl, int * pCounte  Vec_Wrd_t * Abc_NtkShareSuperAnd( Abc_Obj_t * pObj, int * pCounter )  {      Abc_Ntk_t * pNtk = Abc_ObjNtk(pObj); -    Abc_Obj_t * pObj0, * pObj1, * pRoot; +    Abc_Obj_t * pObj0, * pObj1, * pRoot = NULL;      Vec_Wrd_t * vSuper;      word Num, NumNext;      int i, k; @@ -245,7 +245,7 @@ void Abc_NtkTraverseSupersXor_rec( Abc_ShaMan_t * p, Abc_Obj_t * pObj, Vec_Ptr_t          int k, fCompl;          word Num;          vSuper = Abc_NtkShareSuperXor( pObj, &fCompl, &p->nFoundGates ); -        if ( Vec_WrdSize(vSuper) >= p->nMultiSize ) +        if ( Vec_WrdSize(vSuper) <= 1 || Vec_WrdSize(vSuper) >= p->nMultiSize )          {              Vec_WrdForEachEntry( vSuper, Num, k )              { @@ -285,7 +285,7 @@ void Abc_NtkTraverseSupersAnd_rec( Abc_ShaMan_t * p, Abc_Obj_t * pObj, Vec_Ptr_t          return;      assert( Abc_ObjIsNode(pObj) );      vSuper = Abc_NtkShareSuperAnd( pObj, &p->nFoundGates ); -    if ( Vec_WrdSize(vSuper) == 0 || Vec_WrdSize(vSuper) >= p->nMultiSize ) +    if ( Vec_WrdSize(vSuper) <= 1 || Vec_WrdSize(vSuper) >= p->nMultiSize )      {          Vec_WrdForEachEntry( vSuper, Num, k )          {  | 
