33 assert( !Ivy_IsComplement(pObj) );
34 assert( !Ivy_IsComplement(pFanout) );
35 if ( pFanout == NULL )
37 if ( Ivy_ObjFanin0(pFanout) == pObj )
39 assert( Ivy_ObjFanin1(pFanout) == pObj );
46 assert( !Ivy_IsComplement(pObj) );
47 assert( !Ivy_IsComplement(pFanout) );
48 if ( pFanout == NULL )
50 if ( Ivy_ObjFanin0(pFanout) == pObj )
52 assert( Ivy_ObjFanin1(pFanout) == pObj );
59 assert( !Ivy_IsComplement(pObj) );
60 assert( !Ivy_IsComplement(pFanout) );
61 if ( Ivy_ObjFanin0(pFanout) == pObj )
63 assert( Ivy_ObjFanin1(pFanout) == pObj );
70 assert( !Ivy_IsComplement(pObj) );
71 assert( !Ivy_IsComplement(pFanout) );
72 if ( Ivy_ObjFanin0(pFanout) == pObj )
74 assert( Ivy_ObjFanin1(pFanout) == pObj );
82 assert( !Ivy_IsComplement(pObj) );
83 assert( !Ivy_IsComplement(pFanout) );
84 pTemp = Ivy_ObjPrevFanout(pObj, pFanout);
87 if ( Ivy_ObjFanin0(pTemp) == pObj )
89 assert( Ivy_ObjFanin1(pTemp) == pObj );
97 assert( !Ivy_IsComplement(pObj) );
98 assert( !Ivy_IsComplement(pFanout) );
99 pTemp = Ivy_ObjNextFanout(pObj, pFanout);
102 if ( Ivy_ObjFanin0(pTemp) == pObj )
104 assert( Ivy_ObjFanin1(pTemp) == pObj );
109#define Ivy_ObjForEachFanoutInt( pObj, pFanout ) \
110 for ( pFanout = (pObj)->pFanout; pFanout; \
111 pFanout = Ivy_ObjNextFanout(pObj, pFanout) )
114#define Ivy_ObjForEachFanoutIntSafe( pObj, pFanout, pFanout2 ) \
115 for ( pFanout = (pObj)->pFanout, \
116 pFanout2 = Ivy_ObjNextFanout(pObj, pFanout); \
118 pFanout = pFanout2, \
119 pFanout2 = Ivy_ObjNextFanout(pObj, pFanout) )
144 if ( Ivy_ObjFanin0(pObj) )
146 if ( Ivy_ObjFanin1(pObj) )
188 *Ivy_ObjNextFanoutPlace(pFanin, pFanout) = pFanin->
pFanout;
189 *Ivy_ObjPrevFanoutPlace(pFanin, pFanin->
pFanout) = pFanout;
207 Ivy_Obj_t ** ppPlace1, ** ppPlace2, ** ppPlaceN;
210 ppPlace1 = Ivy_ObjNextFanoutPlace(pFanin, pFanout);
211 ppPlaceN = Ivy_ObjPrevNextFanoutPlace(pFanin, pFanout);
212 assert( *ppPlaceN == pFanout );
214 *ppPlaceN = *ppPlace1;
216 ppPlace2 = Ivy_ObjPrevFanoutPlace(pFanin, pFanout);
217 ppPlaceN = Ivy_ObjNextPrevFanoutPlace(pFanin, pFanout);
218 assert( ppPlaceN == NULL || *ppPlaceN == pFanout );
220 *ppPlaceN = *ppPlace2;
240 ppPlace = Ivy_ObjPrevNextFanoutPlace(pFanin, pFanoutOld);
241 assert( *ppPlace == pFanoutOld );
243 *ppPlace = pFanoutNew;
244 ppPlace = Ivy_ObjNextPrevFanoutPlace(pFanin, pFanoutOld);
245 assert( ppPlace == NULL || *ppPlace == pFanoutOld );
247 *ppPlace = pFanoutNew;
266 assert( !Ivy_IsComplement(pObj) );
267 Vec_PtrClear( vArray );
269 Vec_PtrPush( vArray, pFanout );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Ivy_ObjAddFanout(Ivy_Man_t *p, Ivy_Obj_t *pFanin, Ivy_Obj_t *pFanout)
void Ivy_ObjPatchFanout(Ivy_Man_t *p, Ivy_Obj_t *pFanin, Ivy_Obj_t *pFanoutOld, Ivy_Obj_t *pFanoutNew)
#define Ivy_ObjForEachFanoutInt(pObj, pFanout)
void Ivy_ObjDeleteFanout(Ivy_Man_t *p, Ivy_Obj_t *pFanin, Ivy_Obj_t *pFanout)
int Ivy_ObjFanoutNum(Ivy_Man_t *p, Ivy_Obj_t *pObj)
void Ivy_ObjCollectFanouts(Ivy_Man_t *p, Ivy_Obj_t *pObj, Vec_Ptr_t *vArray)
void Ivy_ManStopFanout(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_ObjReadFirstFanout(Ivy_Man_t *p, Ivy_Obj_t *pObj)
void Ivy_ManStartFanout(Ivy_Man_t *p)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Ivy_Man_t_ Ivy_Man_t
INCLUDES ///.
#define Ivy_ManForEachObj(p, pObj, i)
struct Ivy_Obj_t_ Ivy_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.