33#define Aig_ObjForEachFanoutStatic( pObj, pFan, i ) \
34 for ( i = 0; (i < (int)(pObj)->nRefs) && ((pFan) = Aig_ObjFanoutStatic(pObj, i)); i++ )
54 int i, nFanouts, nFanoutsAlloc;
56 nFanoutsAlloc = 2 * Aig_ManObjNumMax(
p) - Aig_ManCiNum(
p) - Aig_ManCoNum(
p);
62 pObj->
pData = ppFanouts + nFanouts;
63 nFanouts += pObj->
nRefs;
66 assert( nFanouts < nFanoutsAlloc );
70 if ( Aig_ObjChild0(pObj) )
71 Aig_ObjSetFanoutStatic( Aig_ObjFanin0(pObj), pObj );
72 if ( Aig_ObjChild1(pObj) )
73 Aig_ObjSetFanoutStatic( Aig_ObjFanin1(pObj), pObj );
93 if ( Aig_ObjIsTravIdCurrent(
p, pObj) )
95 Aig_ObjSetTravIdCurrent(
p, pObj);
161 if ( Aig_ObjIsTravIdPrevious(
p, pObj) )
162 Aig_ObjSetTravIdCurrent(
p, pObj);
168 if ( Aig_ObjIsTravIdCurrent(
p, Aig_ObjFanin0(pObj)) && Aig_ObjIsTravIdCurrent(
p, Aig_ObjFanin1(pObj)) )
170 Aig_ObjSetTravIdCurrent(
p, pObj);
175 Aig_ObjSetTravIdCurrent(
p, pObj);
177 vCut = Vec_PtrAlloc( 1000 );
181 if ( Aig_ObjIsTravIdPrevious(
p, pObj) )
183 pFanin = Aig_ObjFanin0(pObj);
184 if ( pFanin && Aig_ObjIsTravIdPrevious(
p, pFanin) )
186 Vec_PtrPush( vCut, pFanin );
187 Aig_ObjSetTravIdCurrent(
p, pFanin );
189 pFanin = Aig_ObjFanin1(pObj);
190 if ( pFanin && Aig_ObjIsTravIdPrevious(
p, pFanin) )
192 Vec_PtrPush( vCut, pFanin );
193 Aig_ObjSetTravIdCurrent(
p, pFanin );
216 int i, nRegFixed, nRegMoves = 1;
219 for ( i = 0; i < nMaxIters && nRegMoves > 0; i++ )
225 printf(
"%2d : And = %6d. Reg = %5d. Unret = %5d. Move = %6d. ",
226 i + 1, Aig_ManNodeNum(pTemp), Aig_ManRegNum(pTemp), nRegFixed, nRegMoves );
227 ABC_PRT(
"Time", Abc_Clock() - clk );
236 ABC_PRT(
"Register sharing time", Abc_Clock() - clk );
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define Aig_ManForEachObj(p, pObj, i)
void Aig_ManStop(Aig_Man_t *p)
Aig_Man_t * Aig_ManReduceLaches(Aig_Man_t *p, int fVerbose)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
struct Aig_Obj_t_ Aig_Obj_t
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Aig_ManMarkAutonomous_rec(Aig_Man_t *p, Aig_Obj_t *pObj)
#define Aig_ObjForEachFanoutStatic(pObj, pFan, i)
void Saig_ManMarkAutonomous(Aig_Man_t *p)
Aig_Man_t * Saig_ManRetimeForwardOne(Aig_Man_t *p, int *pnRegFixed, int *pnRegMoves)
Aig_Man_t * Saig_ManRetimeForward(Aig_Man_t *p, int nMaxIters, int fVerbose)
Aig_Obj_t ** Aig_ManStaticFanoutStart(Aig_Man_t *p)
FUNCTION DEFINITIONS ///.
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
Aig_Man_t * Saig_ManRetimeDupForward(Aig_Man_t *p, Vec_Ptr_t *vCut)
#define Saig_ManForEachLo(p, pObj, i)
#define Saig_ManForEachPi(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.