From e04ded5640c3383294f5269228404e44651f39b6 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 17 May 2013 12:05:28 -0700 Subject: Undoing commit from Nov 12, 2012: Extending GIA to represent pintypes and pins. --- src/aig/gia/gia.h | 20 -------------------- src/aig/gia/giaAiger.c | 9 ++------- src/aig/gia/giaDup.c | 4 +--- src/aig/gia/giaHash.c | 2 +- src/aig/gia/giaMan.c | 2 +- src/base/abci/abcTim.c | 3 +++ 6 files changed, 8 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h index d9d885e3..a7ab5c75 100644 --- a/src/aig/gia/gia.h +++ b/src/aig/gia/gia.h @@ -115,8 +115,6 @@ struct Gia_Man_t_ int nConstrs; // the number of constraints int nTravIds; // the current traversal ID int nFront; // frontier size - int nPinTypes; // the number of pintypes - int nPins; // the number of pins int * pReprsOld; // representatives (for CIs and ANDs) Gia_Rpr_t * pReprs; // representatives (for CIs and ANDs) int * pNexts; // next nodes in the equivalence classes @@ -324,8 +322,6 @@ static inline int Gia_ObjIsAndOrConst0( Gia_Obj_t * pObj ) { static inline int Gia_ObjIsCi( Gia_Obj_t * pObj ) { return pObj->fTerm && pObj->iDiff0 == GIA_NONE; } static inline int Gia_ObjIsCo( Gia_Obj_t * pObj ) { return pObj->fTerm && pObj->iDiff0 != GIA_NONE; } static inline int Gia_ObjIsAnd( Gia_Obj_t * pObj ) { return!pObj->fTerm && pObj->iDiff0 != GIA_NONE; } -static inline int Gia_ObjIsPinType( Gia_Obj_t * pObj ) { return Gia_ObjIsAnd(pObj) && pObj->iDiff0 == pObj->iDiff1; } -static inline int Gia_ObjIsPin( Gia_Obj_t * pObj ) { return Gia_ObjIsAnd(pObj) && (Gia_ObjIsPinType(pObj - pObj->iDiff0) || Gia_ObjIsPinType(pObj - pObj->iDiff1)); } static inline int Gia_ObjIsCand( Gia_Obj_t * pObj ) { return Gia_ObjIsAnd(pObj) || Gia_ObjIsCi(pObj); } static inline int Gia_ObjIsConst0( Gia_Obj_t * pObj ) { return pObj->iDiff0 == GIA_NONE && pObj->iDiff1 == GIA_NONE; } static inline int Gia_ManObjIsConst0( Gia_Man_t * p, Gia_Obj_t * pObj){ return pObj == p->pObjs; } @@ -498,22 +494,6 @@ static inline int Gia_ManAppendAnd( Gia_Man_t * p, int iLit0, int iLit1 ) } return Gia_ObjId( p, pObj ) << 1; } -static inline int Gia_ManAppendPinType( Gia_Man_t * p, int iLit ) -{ - Gia_Obj_t * pObj = Gia_ManAppendObj( p ); - assert( iLit >= 0 && Abc_Lit2Var(iLit) < Gia_ManObjNum(p) ); - pObj->iDiff0 = Gia_ObjId(p, pObj) - Abc_Lit2Var(iLit); - pObj->fCompl0 = Abc_LitIsCompl(iLit); - pObj->iDiff1 = Gia_ObjId(p, pObj) - Abc_Lit2Var(iLit); - pObj->fCompl1 = Abc_LitIsCompl(iLit); - if ( p->pFanData ) - { - Gia_ObjAddFanout( p, Gia_ObjFanin0(pObj), pObj ); - Gia_ObjAddFanout( p, Gia_ObjFanin1(pObj), pObj ); - } - p->nPinTypes++; - return Gia_ObjId( p, pObj ) << 1; -} static inline int Gia_ManAppendCo( Gia_Man_t * p, int iLit0 ) { Gia_Obj_t * pObj; diff --git a/src/aig/gia/giaAiger.c b/src/aig/gia/giaAiger.c index 587146ba..11b56eda 100644 --- a/src/aig/gia/giaAiger.c +++ b/src/aig/gia/giaAiger.c @@ -294,12 +294,7 @@ Gia_Man_t * Gia_AigerReadFromMemory( char * pContents, int nFileSize, int fSkipS iNode1 = Abc_LitNotCond( Vec_IntEntry(vNodes, uLit1 >> 1), uLit1 & 1 ); assert( Vec_IntSize(vNodes) == i + 1 + nInputs + nLatches ); if ( fSkipStrash ) - { - if ( iNode0 == 1 && iNode1 == 1 ) - Vec_IntPush( vNodes, Gia_ManAppendPinType(pNew, 1) ); - else - Vec_IntPush( vNodes, Gia_ManAppendAnd(pNew, iNode0, iNode1) ); - } + Vec_IntPush( vNodes, Gia_ManAppendAnd(pNew, iNode0, iNode1) ); else Vec_IntPush( vNodes, Gia_ManHashAnd(pNew, iNode0, iNode1) ); } @@ -1091,7 +1086,7 @@ void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int uLit = Abc_Var2Lit( i, 0 ); uLit0 = Gia_ObjFaninLit0( pObj, i ); uLit1 = Gia_ObjFaninLit1( pObj, i ); - assert( p->nPinTypes || uLit0 < uLit1 ); + assert( uLit0 < uLit1 ); Pos = Gia_AigerWriteUnsignedBuffer( pBuffer, Pos, uLit - uLit1 ); Pos = Gia_AigerWriteUnsignedBuffer( pBuffer, Pos, uLit1 - uLit0 ); if ( Pos > nBufferSize - 10 ) diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index 86a7fad1..15d77dea 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -761,9 +761,7 @@ Gia_Man_t * Gia_ManDupMarked( Gia_Man_t * p ) if ( pObj->fMark0 ) continue; pObj->fMark0 = 0; - if ( p->nPinTypes && Gia_ObjIsPinType(pObj) ) - pObj->Value = Gia_ManAppendPinType( pNew, Gia_ObjFanin0Copy(pObj) ); - else if ( Gia_ObjIsAnd(pObj) ) + if ( Gia_ObjIsAnd(pObj) ) pObj->Value = Gia_ManAppendAnd( pNew, Gia_ObjFanin0Copy(pObj), Gia_ObjFanin1Copy(pObj) ); else if ( Gia_ObjIsCi(pObj) ) { diff --git a/src/aig/gia/giaHash.c b/src/aig/gia/giaHash.c index 81980b40..f0204089 100644 --- a/src/aig/gia/giaHash.c +++ b/src/aig/gia/giaHash.c @@ -193,7 +193,7 @@ void Gia_ManHashResize( Gia_Man_t * p ) Counter++; } Counter2 = Gia_ManAndNum(p); - assert( p->nPinTypes || Counter == Counter2 ); + assert( Counter == Counter2 ); ABC_FREE( pHTableOld ); // if ( p->fVerbose ) // printf( "Resizing GIA hash table: %d -> %d.\n", nHTableOld, p->nHTable ); diff --git a/src/aig/gia/giaMan.c b/src/aig/gia/giaMan.c index 587680c8..823941a8 100644 --- a/src/aig/gia/giaMan.c +++ b/src/aig/gia/giaMan.c @@ -311,7 +311,7 @@ void Gia_ManPrintStats( Gia_Man_t * p, int fTents, int fSwitch, int fCut ) printf( " ff =%7d", Gia_ManRegNum(p) ); printf( " and =%8d", Gia_ManAndNum(p) ); printf( " lev =%5d", Gia_ManLevelNum(p) ); Vec_IntFreeP( &p->vLevels ); - if ( fCut && p->nPinTypes == 0 ) + if ( fCut ) printf( " cut = %d(%d)", Gia_ManCrossCut(p, 0), Gia_ManCrossCut(p, 1) ); // printf( " mem =%5.2f MB", 1.0*(sizeof(Gia_Obj_t)*p->nObjs + sizeof(int)*(Vec_IntSize(p->vCis) + Vec_IntSize(p->vCos)))/(1<<20) ); printf( " mem =%5.2f MB", 1.0*(sizeof(Gia_Obj_t)*p->nObjsAlloc + sizeof(int)*(Vec_IntCap(p->vCis) + Vec_IntCap(p->vCos)))/(1<<20) ); diff --git a/src/base/abci/abcTim.c b/src/base/abci/abcTim.c index 504e6bc8..1f1b28f4 100644 --- a/src/base/abci/abcTim.c +++ b/src/base/abci/abcTim.c @@ -87,6 +87,8 @@ int Abc_NtkTestTimNodeStrash( Gia_Man_t * pGia, Abc_Obj_t * pNode ) } +#if 0 + /**Function************************************************************* Synopsis [Derives GIA manager using special pins to denote box boundaries.] @@ -174,6 +176,7 @@ void Abc_NtkTestPinGia( Abc_Ntk_t * pNtk, int fWhiteBoxOnly, int fVerbose ) Abc_NtkName(pNtk), pFileName ); } +#endif /**Function************************************************************* -- cgit v1.2.3