mirror of https://github.com/YosysHQ/abc.git
Making selecting duplication procedure creates a smaller AIG.
This commit is contained in:
parent
e5ae3f28f7
commit
eddb194ce0
|
|
@ -906,8 +906,11 @@ Gia_Man_t * Gia_ManDupMarked( Gia_Man_t * p )
|
||||||
Gia_Man_t * pNew;
|
Gia_Man_t * pNew;
|
||||||
Gia_Obj_t * pObj;
|
Gia_Obj_t * pObj;
|
||||||
int i, nRos = 0, nRis = 0;
|
int i, nRos = 0, nRis = 0;
|
||||||
|
int CountMarked = 0;
|
||||||
|
Gia_ManForEachObj1( p, pObj, i )
|
||||||
|
CountMarked += pObj->fMark0;
|
||||||
Gia_ManFillValue( p );
|
Gia_ManFillValue( p );
|
||||||
pNew = Gia_ManStart( Gia_ManObjNum(p) );
|
pNew = Gia_ManStart( Gia_ManObjNum(p) - CountMarked );
|
||||||
if ( p->pMuxes )
|
if ( p->pMuxes )
|
||||||
pNew->pMuxes = ABC_CALLOC( unsigned, pNew->nObjsAlloc );
|
pNew->pMuxes = ABC_CALLOC( unsigned, pNew->nObjsAlloc );
|
||||||
pNew->nConstrs = p->nConstrs;
|
pNew->nConstrs = p->nConstrs;
|
||||||
|
|
@ -917,8 +920,10 @@ Gia_Man_t * Gia_ManDupMarked( Gia_Man_t * p )
|
||||||
Gia_ManForEachObj1( p, pObj, i )
|
Gia_ManForEachObj1( p, pObj, i )
|
||||||
{
|
{
|
||||||
if ( pObj->fMark0 )
|
if ( pObj->fMark0 )
|
||||||
|
{
|
||||||
|
pObj->fMark0 = 0;
|
||||||
continue;
|
continue;
|
||||||
pObj->fMark0 = 0;
|
}
|
||||||
if ( Gia_ObjIsAnd(pObj) )
|
if ( Gia_ObjIsAnd(pObj) )
|
||||||
{
|
{
|
||||||
if ( Gia_ObjIsXor(pObj) )
|
if ( Gia_ObjIsXor(pObj) )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue