abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mpmMig.h File Reference
#include "misc/vec/vec.h"

Go to the source code of this file.

Data Structures

struct  Mig_Fan_t_
 
struct  Mig_Obj_t_
 
struct  Mig_Man_t_
 

Macros

#define MIG_NONE   0x7FFFFFFF
 INCLUDES ///. More...
 
#define MIG_MASK   0x0000FFF
 
#define MIG_BASE   12
 
#define Mig_ManForEachObj(p, pObj)
 MACRO DEFINITIONS ///. More...
 
#define Mig_ManForEachObj1(p, pObj)
 
#define Mig_ManForEachObjReverse(p, pObj)
 
#define Mig_ManForEachObjVec(vVec, p, pObj, i)   for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Mig_ManObj(p, Vec_IntEntry(vVec,i))); i++ )
 
#define Mig_ManForEachNode(p, pObj)   Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsNode(pObj) ) {} else
 
#define Mig_ManForEachCand(p, pObj)   Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsCand(pObj) ) {} else
 
#define Mig_ManForEachCi(p, pObj, i)   for ( i = 0; (i < Vec_IntSize(&p->vCis)) && ((pObj) = Mig_ManCi(p, i)); i++ )
 
#define Mig_ManForEachCo(p, pObj, i)   for ( i = 0; (i < Vec_IntSize(&p->vCos)) && ((pObj) = Mig_ManCo(p, i)); i++ )
 
#define Mig_ObjForEachFaninId(p, iFanin, i)   for ( i = 0; Mig_ObjHasFanin(p, i) && ((iFanin) = Mig_ObjFaninId(p, i)); i++ )
 
#define Mig_ObjForEachFanin(p, pFanin, i)   for ( i = 0; Mig_ObjHasFanin(p, i) && ((pFanin) = Mig_ObjFanin(p, i)); i++ )
 

Typedefs

typedef struct Mig_Fan_t_ Mig_Fan_t
 BASIC TYPES ///. More...
 
typedef struct Mig_Obj_t_ Mig_Obj_t
 
typedef struct Mig_Man_t_ Mig_Man_t
 

Functions

static int Mig_IdPage (int v)
 
static int Mig_IdCell (int v)
 
static char * Mig_ManName (Mig_Man_t *p)
 
static int Mig_ManCiNum (Mig_Man_t *p)
 
static int Mig_ManCoNum (Mig_Man_t *p)
 
static int Mig_ManPiNum (Mig_Man_t *p)
 
static int Mig_ManPoNum (Mig_Man_t *p)
 
static int Mig_ManRegNum (Mig_Man_t *p)
 
static int Mig_ManObjNum (Mig_Man_t *p)
 
static int Mig_ManNodeNum (Mig_Man_t *p)
 
static int Mig_ManCandNum (Mig_Man_t *p)
 
static int Mig_ManChoiceNum (Mig_Man_t *p)
 
static void Mig_ManSetRegNum (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManPage (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManObj (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManCi (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManCo (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManPi (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManPo (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManRo (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManRi (Mig_Man_t *p, int v)
 
static Mig_Obj_tMig_ManConst0 (Mig_Man_t *p)
 
static int Mig_FanCompl (Mig_Obj_t *p, int i)
 
static int Mig_FanId (Mig_Obj_t *p, int i)
 
static int Mig_FanIsNone (Mig_Obj_t *p, int i)
 
static int Mig_FanSetCompl (Mig_Obj_t *p, int i, int v)
 
static int Mig_FanSetId (Mig_Obj_t *p, int i, int v)
 
static int Mig_ObjIsNone (Mig_Obj_t *p)
 
static int Mig_ObjIsConst0 (Mig_Obj_t *p)
 
static int Mig_ObjIsTerm (Mig_Obj_t *p)
 
static int Mig_ObjIsCi (Mig_Obj_t *p)
 
static int Mig_ObjIsCo (Mig_Obj_t *p)
 
static int Mig_ObjIsBuf (Mig_Obj_t *p)
 
static int Mig_ObjIsNode (Mig_Obj_t *p)
 
static int Mig_ObjIsNode2 (Mig_Obj_t *p)
 
static int Mig_ObjIsNode3 (Mig_Obj_t *p)
 
static int Mig_ObjIsAnd (Mig_Obj_t *p)
 
static int Mig_ObjIsXor (Mig_Obj_t *p)
 
static int Mig_ObjIsMux (Mig_Obj_t *p)
 
static int Mig_ObjIsCand (Mig_Obj_t *p)
 
static int Mig_ObjNodeType (Mig_Obj_t *p)
 
static int Mig_ObjId (Mig_Obj_t *p)
 
static void Mig_ObjSetId (Mig_Obj_t *p, int v)
 
static int Mig_ObjCioId (Mig_Obj_t *p)
 
static void Mig_ObjSetCioId (Mig_Obj_t *p, int v)
 
static int Mig_ObjPhase (Mig_Obj_t *p)
 
static void Mig_ObjSetPhase (Mig_Obj_t *p, int v)
 
static Mig_Man_tMig_ObjMan (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjObj (Mig_Obj_t *p, int i)
 
static int Mig_ManIdToCioId (Mig_Man_t *p, int Id)
 
static int Mig_ManCiIdToId (Mig_Man_t *p, int CiId)
 
static int Mig_ManCoIdToId (Mig_Man_t *p, int CoId)
 
static int Mig_ObjIsPi (Mig_Obj_t *p)
 
static int Mig_ObjIsPo (Mig_Obj_t *p)
 
static int Mig_ObjIsRo (Mig_Obj_t *p)
 
static int Mig_ObjIsRi (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjRoToRi (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjRiToRo (Mig_Obj_t *p)
 
static int Mig_ObjHasFanin (Mig_Obj_t *p, int i)
 
static int Mig_ObjFaninId (Mig_Obj_t *p, int i)
 
static int Mig_ObjFaninId0 (Mig_Obj_t *p)
 
static int Mig_ObjFaninId1 (Mig_Obj_t *p)
 
static int Mig_ObjFaninId2 (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjFanin (Mig_Obj_t *p, int i)
 
static Mig_Obj_tMig_ObjFanin0 (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjFanin1 (Mig_Obj_t *p)
 
static Mig_Obj_tMig_ObjFanin2 (Mig_Obj_t *p)
 
static int Mig_ObjFaninC (Mig_Obj_t *p, int i)
 
static int Mig_ObjFaninC0 (Mig_Obj_t *p)
 
static int Mig_ObjFaninC1 (Mig_Obj_t *p)
 
static int Mig_ObjFaninC2 (Mig_Obj_t *p)
 
static int Mig_ObjFaninLit (Mig_Obj_t *p, int i)
 
static void Mig_ObjFlipFaninC (Mig_Obj_t *p, int i)
 
static int Mig_ObjWhatFanin (Mig_Obj_t *p, int i)
 
static void Mig_ObjSetFaninLit (Mig_Obj_t *p, int i, int l)
 
static int Mig_ObjSiblId (Mig_Obj_t *p)
 
static void Mig_ObjSetSiblId (Mig_Obj_t *p, int s)
 
static Mig_Obj_tMig_ObjSibl (Mig_Obj_t *p)
 
static int Mig_ObjRefNum (Mig_Obj_t *p)
 
static void Mig_ManCleanCopy (Mig_Man_t *p)
 
static int Mig_ObjCopy (Mig_Obj_t *p)
 
static void Mig_ObjSetCopy (Mig_Obj_t *p, int i)
 
static void Mig_ManIncrementTravId (Mig_Man_t *p)
 
static void Mig_ObjIncrementTravId (Mig_Obj_t *p)
 
static void Mig_ObjSetTravIdCurrent (Mig_Obj_t *p)
 
static void Mig_ObjSetTravIdPrevious (Mig_Obj_t *p)
 
static int Mig_ObjIsTravIdCurrent (Mig_Obj_t *p)
 
static int Mig_ObjIsTravIdPrevious (Mig_Obj_t *p)
 
static void Mig_ObjSetTravIdCurrentId (Mig_Man_t *p, int Id)
 
static int Mig_ObjIsTravIdCurrentId (Mig_Man_t *p, int Id)
 
static Mig_Obj_tMig_ManAppendObj (Mig_Man_t *p)
 
static int Mig_ManAppendCi (Mig_Man_t *p)
 
static int Mig_ManAppendCo (Mig_Man_t *p, int iLit0)
 
static int Mig_ManAppendBuf (Mig_Man_t *p, int iLit0)
 
static int Mig_ManAppendAnd (Mig_Man_t *p, int iLit0, int iLit1)
 
static int Mig_ManAppendXor (Mig_Man_t *p, int iLit0, int iLit1)
 
static int Mig_ManAppendMux (Mig_Man_t *p, int iLit0, int iLit1, int iCtrl)
 
static int Mig_ManAppendMaj (Mig_Man_t *p, int iLit0, int iLit1, int iLit2)
 
Mig_Man_tMig_ManStart ()
 FUNCTION DECLARATIONS ///. More...
 
void Mig_ManStop (Mig_Man_t *p)
 
void Mig_ManSetRefs (Mig_Man_t *p)
 
int Mig_ManAndNum (Mig_Man_t *p)
 
int Mig_ManXorNum (Mig_Man_t *p)
 
int Mig_ManMuxNum (Mig_Man_t *p)
 

Macro Definition Documentation

#define MIG_BASE   12

Definition at line 41 of file mpmMig.h.

#define Mig_ManForEachCand (   p,
  pObj 
)    Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsCand(pObj) ) {} else

Definition at line 324 of file mpmMig.h.

#define Mig_ManForEachCi (   p,
  pObj,
 
)    for ( i = 0; (i < Vec_IntSize(&p->vCis)) && ((pObj) = Mig_ManCi(p, i)); i++ )

Definition at line 327 of file mpmMig.h.

#define Mig_ManForEachCo (   p,
  pObj,
 
)    for ( i = 0; (i < Vec_IntSize(&p->vCos)) && ((pObj) = Mig_ManCo(p, i)); i++ )

Definition at line 329 of file mpmMig.h.

#define Mig_ManForEachNode (   p,
  pObj 
)    Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsNode(pObj) ) {} else

Definition at line 322 of file mpmMig.h.

#define Mig_ManForEachObj (   p,
  pObj 
)
Value:
for ( p->iPage = 0; p->iPage < Vec_PtrSize(&p->vPages) && \
((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage++ ) \
for ( pObj = p->pPage; !Mig_ObjIsNone(pObj); pObj++ )
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static int Mig_ObjIsNone(Mig_Obj_t *p)
Definition: mpmMig.h:131
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
for(p=first;p->value< newval;p=p->next)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362

MACRO DEFINITIONS ///.

Definition at line 304 of file mpmMig.h.

#define Mig_ManForEachObj1 (   p,
  pObj 
)
Value:
for ( p->iPage = 0; p->iPage < Vec_PtrSize(&p->vPages) && \
((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage++ ) \
for ( pObj = p->pPage + (p->iPage == 0); !Mig_ObjIsNone(pObj); pObj++ )
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static int Mig_ObjIsNone(Mig_Obj_t *p)
Definition: mpmMig.h:131
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
for(p=first;p->value< newval;p=p->next)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362

Definition at line 308 of file mpmMig.h.

#define Mig_ManForEachObjReverse (   p,
  pObj 
)
Value:
for ( p->iPage = Vec_PtrSize(&p->vPages) - 1; p->iPage >= 0 && \
((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage-- ) \
for ( pObj = (p->iPage == Vec_PtrSize(&p->vPages) - 1) ? \
Mig_ManObj(p, Mig_ManObjNum(p)-1) : p->pPage + MIG_MASK; \
pObj - p->pPage >= 0; pObj-- )
static int Mig_ManObjNum(Mig_Man_t *p)
Definition: mpmMig.h:109
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
for(p=first;p->value< newval;p=p->next)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362
#define MIG_MASK
Definition: mpmMig.h:40

Definition at line 312 of file mpmMig.h.

#define Mig_ManForEachObjVec (   vVec,
  p,
  pObj,
 
)    for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Mig_ManObj(p, Vec_IntEntry(vVec,i))); i++ )

Definition at line 319 of file mpmMig.h.

#define MIG_MASK   0x0000FFF

Definition at line 40 of file mpmMig.h.

#define MIG_NONE   0x7FFFFFFF

INCLUDES ///.

CFile****************************************************************

FileName [mpmMig.h]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Configurable technology mapper.]

Synopsis [Internal declarations.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 1, 2013.]

Revision [

Id:
mpmMig.h,v 1.00 2013/06/01 00:00:00 alanmi Exp

]PARAMETERS ///

Definition at line 37 of file mpmMig.h.

#define Mig_ObjForEachFanin (   p,
  pFanin,
 
)    for ( i = 0; Mig_ObjHasFanin(p, i) && ((pFanin) = Mig_ObjFanin(p, i)); i++ )

Definition at line 335 of file mpmMig.h.

#define Mig_ObjForEachFaninId (   p,
  iFanin,
 
)    for ( i = 0; Mig_ObjHasFanin(p, i) && ((iFanin) = Mig_ObjFaninId(p, i)); i++ )

Definition at line 333 of file mpmMig.h.

Typedef Documentation

typedef struct Mig_Fan_t_ Mig_Fan_t

BASIC TYPES ///.

Definition at line 47 of file mpmMig.h.

typedef struct Mig_Man_t_ Mig_Man_t

Definition at line 60 of file mpmMig.h.

typedef struct Mig_Obj_t_ Mig_Obj_t

Definition at line 54 of file mpmMig.h.

Function Documentation

static int Mig_FanCompl ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 125 of file mpmMig.h.

125 { return p->pFans[i].fCompl; }
unsigned fCompl
Definition: mpmMig.h:50
Mig_Fan_t pFans[4]
Definition: mpmMig.h:57
static int Mig_FanId ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 126 of file mpmMig.h.

126 { return p->pFans[i].Id; }
unsigned Id
Definition: mpmMig.h:51
Mig_Fan_t pFans[4]
Definition: mpmMig.h:57
static int Mig_FanIsNone ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 127 of file mpmMig.h.

127 { return p->pFans[i].Id == MIG_NONE; }
unsigned Id
Definition: mpmMig.h:51
#define MIG_NONE
INCLUDES ///.
Definition: mpmMig.h:37
Mig_Fan_t pFans[4]
Definition: mpmMig.h:57
static int Mig_FanSetCompl ( Mig_Obj_t p,
int  i,
int  v 
)
inlinestatic

Definition at line 128 of file mpmMig.h.

128 { assert( !(v >> 1) ); return p->pFans[i].fCompl = v; }
unsigned fCompl
Definition: mpmMig.h:50
Mig_Fan_t pFans[4]
Definition: mpmMig.h:57
#define assert(ex)
Definition: util_old.h:213
static int Mig_FanSetId ( Mig_Obj_t p,
int  i,
int  v 
)
inlinestatic

Definition at line 129 of file mpmMig.h.

129 { assert(v >= 0 && v < MIG_NONE); return p->pFans[i].Id = v; }
unsigned Id
Definition: mpmMig.h:51
#define MIG_NONE
INCLUDES ///.
Definition: mpmMig.h:37
Mig_Fan_t pFans[4]
Definition: mpmMig.h:57
#define assert(ex)
Definition: util_old.h:213
static int Mig_IdCell ( int  v)
inlinestatic

Definition at line 101 of file mpmMig.h.

101 { return v & MIG_MASK; }
#define MIG_MASK
Definition: mpmMig.h:40
static int Mig_IdPage ( int  v)
inlinestatic

Definition at line 100 of file mpmMig.h.

100 { return v >> MIG_BASE; }
#define MIG_BASE
Definition: mpmMig.h:41
int Mig_ManAndNum ( Mig_Man_t p)

Definition at line 98 of file mpmMig.c.

99 {
100  return Mig_ManTypeNum(p, 1);
101 }
int Mig_ManTypeNum(Mig_Man_t *p, int Type)
Definition: mpmMig.c:90
static int Mig_ManAppendAnd ( Mig_Man_t p,
int  iLit0,
int  iLit1 
)
inlinestatic

Definition at line 262 of file mpmMig.h.

263 {
264  Mig_Obj_t * pObj = Mig_ManAppendObj( p );
265  assert( iLit0 != iLit1 );
266  Mig_ObjSetFaninLit( pObj, 0, iLit0 < iLit1 ? iLit0 : iLit1 );
267  Mig_ObjSetFaninLit( pObj, 1, iLit0 < iLit1 ? iLit1 : iLit0 );
268  return Mig_ObjId( pObj ) << 1;
269 }
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManAppendBuf ( Mig_Man_t p,
int  iLit0 
)
inlinestatic

Definition at line 255 of file mpmMig.h.

256 {
257  Mig_Obj_t * pObj;
258  pObj = Mig_ManAppendObj( p );
259  Mig_ObjSetFaninLit( pObj, 0, iLit0 );
260  return Mig_ObjId( pObj ) << 1;
261 }
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
static int Mig_ManAppendCi ( Mig_Man_t p)
inlinestatic

Definition at line 238 of file mpmMig.h.

239 {
240  Mig_Obj_t * pObj = Mig_ManAppendObj( p );
241  Mig_ObjSetCioId( pObj, Vec_IntSize(&p->vCis) );
242  Vec_IntPush( &p->vCis, Mig_ObjId(pObj) );
243  return Mig_ObjId(pObj) << 1;
244 }
static void Mig_ObjSetCioId(Mig_Obj_t *p, int v)
Definition: mpmMig.h:149
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
Vec_Int_t vCis
Definition: mpmMig.h:68
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Definition: bblif.c:468
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static int Mig_ManAppendCo ( Mig_Man_t p,
int  iLit0 
)
inlinestatic

Definition at line 245 of file mpmMig.h.

246 {
247  Mig_Obj_t * pObj;
248  assert( !Mig_ObjIsCo(Mig_ManObj(p, Abc_Lit2Var(iLit0))) );
249  pObj = Mig_ManAppendObj( p );
250  Mig_ObjSetFaninLit( pObj, 0, iLit0 );
251  Mig_ObjSetCioId( pObj, Vec_IntSize(&p->vCos) );
252  Vec_IntPush( &p->vCos, Mig_ObjId(pObj) );
253  return Mig_ObjId( pObj ) << 1;
254 }
static void Mig_ObjSetCioId(Mig_Obj_t *p, int v)
Definition: mpmMig.h:149
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Definition: bblif.c:468
Vec_Int_t vCos
Definition: mpmMig.h:69
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static int Abc_Lit2Var(int Lit)
Definition: abc_global.h:264
#define assert(ex)
Definition: util_old.h:213
static int Mig_ObjIsCo(Mig_Obj_t *p)
Definition: mpmMig.h:135
static int Mig_ManAppendMaj ( Mig_Man_t p,
int  iLit0,
int  iLit1,
int  iLit2 
)
inlinestatic

Definition at line 289 of file mpmMig.h.

290 {
291  Mig_Obj_t * pObj = Mig_ManAppendObj( p );
292  assert( iLit0 != iLit1 && iLit0 != iLit2 && iLit1 != iLit2 );
293  Mig_ObjSetFaninLit( pObj, 0, iLit0 < iLit1 ? iLit1 : iLit0 );
294  Mig_ObjSetFaninLit( pObj, 1, iLit0 < iLit1 ? iLit0 : iLit1 );
295  Mig_ObjSetFaninLit( pObj, 2, iLit2 );
296  return Mig_ObjId( pObj ) << 1;
297 }
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManAppendMux ( Mig_Man_t p,
int  iLit0,
int  iLit1,
int  iCtrl 
)
inlinestatic

Definition at line 279 of file mpmMig.h.

280 {
281  Mig_Obj_t * pObj = Mig_ManAppendObj( p );
282  assert( iLit0 != iLit1 && iLit0 != iCtrl && iLit1 != iCtrl );
283  assert( !Abc_LitIsCompl(iLit0) || !Abc_LitIsCompl(iLit1) );
284  Mig_ObjSetFaninLit( pObj, 0, iLit0 < iLit1 ? iLit0 : iLit1 );
285  Mig_ObjSetFaninLit( pObj, 1, iLit0 < iLit1 ? iLit1 : iLit0 );
286  Mig_ObjSetFaninLit( pObj, 2, iLit0 < iLit1 ? iCtrl : Abc_LitNot(iCtrl) );
287  return Mig_ObjId( pObj ) << 1;
288 }
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
static int Abc_LitIsCompl(int Lit)
Definition: abc_global.h:265
static int Abc_LitNot(int Lit)
Definition: abc_global.h:266
#define assert(ex)
Definition: util_old.h:213
static Mig_Obj_t* Mig_ManAppendObj ( Mig_Man_t p)
inlinestatic

Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 217 of file mpmMig.h.

218 {
219  Mig_Obj_t * pObj;
220  assert( p->nObjs < MIG_NONE );
221  if ( p->nObjs >= (Vec_PtrSize(&p->vPages) << MIG_BASE) )
222  {
223  Mig_Obj_t * pPage;// int i;
224  assert( p->nObjs == (Vec_PtrSize(&p->vPages) << MIG_BASE) );
225  pPage = ABC_FALLOC( Mig_Obj_t, MIG_MASK + 3 ); // 1 for mask, 1 for prefix, 1 for sentinel
226  *((void **)pPage) = p;
227 // *((void ***)(pPage + 1) - 1) = Vec_PtrArray(&p->vPages);
228  Vec_PtrPush( &p->vPages, pPage + 1 );
229 // if ( *((void ***)(pPage + 1) - 1) != Vec_PtrArray(&p->vPages) )
230 // Vec_PtrForEachEntry( Mig_Obj_t *, &p->vPages, pPage, i )
231 // *((void ***)pPage - 1) = Vec_PtrArray(&p->vPages);
232  }
233  pObj = Mig_ManObj( p, p->nObjs++ );
234  assert( Mig_ObjIsNone(pObj) );
235  Mig_ObjSetId( pObj, p->nObjs-1 );
236  return pObj;
237 }
static void Mig_ObjSetId(Mig_Obj_t *p, int v)
Definition: mpmMig.h:147
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static Llb_Mgr_t * p
Definition: llb3Image.c:950
#define MIG_NONE
INCLUDES ///.
Definition: mpmMig.h:37
static int Mig_ObjIsNone(Mig_Obj_t *p)
Definition: mpmMig.h:131
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
Definition: vecPtr.h:606
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
int nObjs
Definition: mpmMig.h:64
#define MIG_BASE
Definition: mpmMig.h:41
Vec_Ptr_t vPages
Definition: mpmMig.h:67
#define assert(ex)
Definition: util_old.h:213
#define MIG_MASK
Definition: mpmMig.h:40
#define ABC_FALLOC(type, num)
Definition: abc_global.h:231
static int Mig_ManAppendXor ( Mig_Man_t p,
int  iLit0,
int  iLit1 
)
inlinestatic

Definition at line 270 of file mpmMig.h.

271 {
272  Mig_Obj_t * pObj = Mig_ManAppendObj( p );
273  assert( iLit0 != iLit1 );
274  assert( !Abc_LitIsCompl(iLit0) && !Abc_LitIsCompl(iLit1) );
275  Mig_ObjSetFaninLit( pObj, 0, iLit0 < iLit1 ? iLit1 : iLit0 );
276  Mig_ObjSetFaninLit( pObj, 1, iLit0 < iLit1 ? iLit0 : iLit1 );
277  return Mig_ObjId( pObj ) << 1;
278 }
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetFaninLit(Mig_Obj_t *p, int i, int l)
Definition: mpmMig.h:186
static int Abc_LitIsCompl(int Lit)
Definition: abc_global.h:265
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManCandNum ( Mig_Man_t p)
inlinestatic

Definition at line 111 of file mpmMig.h.

111 { return Mig_ManCiNum(p) + Mig_ManNodeNum(p); }
static int Mig_ManNodeNum(Mig_Man_t *p)
Definition: mpmMig.h:110
static int Mig_ManCiNum(Mig_Man_t *p)
Definition: mpmMig.h:104
static int Mig_ManChoiceNum ( Mig_Man_t p)
inlinestatic

Definition at line 112 of file mpmMig.h.

112 { return p->nChoices; }
int nChoices
Definition: mpmMig.h:66
static Mig_Obj_t* Mig_ManCi ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 117 of file mpmMig.h.

117 { return Mig_ManObj( p, Vec_IntEntry(&p->vCis,v) ); }
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
Vec_Int_t vCis
Definition: mpmMig.h:68
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
static int Mig_ManCiIdToId ( Mig_Man_t p,
int  CiId 
)
inlinestatic

Definition at line 158 of file mpmMig.h.

158 { return Mig_ObjId( Mig_ManCi(p, CiId) ); }
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static Mig_Obj_t * Mig_ManCi(Mig_Man_t *p, int v)
Definition: mpmMig.h:117
static int Mig_ManCiNum ( Mig_Man_t p)
inlinestatic

Definition at line 104 of file mpmMig.h.

104 { return Vec_IntSize(&p->vCis); }
Vec_Int_t vCis
Definition: mpmMig.h:68
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static void Mig_ManCleanCopy ( Mig_Man_t p)
inlinestatic

Definition at line 193 of file mpmMig.h.

193 { if ( p->vCopies.pArray == NULL ) Vec_IntFill( &p->vCopies, Mig_ManObjNum(p), -1 ); }
static int Mig_ManObjNum(Mig_Man_t *p)
Definition: mpmMig.h:109
Vec_Int_t vCopies
Definition: mpmMig.h:79
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
Definition: bblif.c:356
static Mig_Obj_t* Mig_ManCo ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 118 of file mpmMig.h.

118 { return Mig_ManObj( p, Vec_IntEntry(&p->vCos,v) ); }
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
Vec_Int_t vCos
Definition: mpmMig.h:69
static int Mig_ManCoIdToId ( Mig_Man_t p,
int  CoId 
)
inlinestatic

Definition at line 159 of file mpmMig.h.

159 { return Mig_ObjId( Mig_ManCo(p, CoId) ); }
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static Mig_Obj_t * Mig_ManCo(Mig_Man_t *p, int v)
Definition: mpmMig.h:118
static Mig_Obj_t* Mig_ManConst0 ( Mig_Man_t p)
inlinestatic

Definition at line 123 of file mpmMig.h.

123 { return Mig_ManObj(p, 0); }
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static int Mig_ManCoNum ( Mig_Man_t p)
inlinestatic

Definition at line 105 of file mpmMig.h.

105 { return Vec_IntSize(&p->vCos); }
Vec_Int_t vCos
Definition: mpmMig.h:69
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static int Mig_ManIdToCioId ( Mig_Man_t p,
int  Id 
)
inlinestatic

Definition at line 157 of file mpmMig.h.

157 { return Mig_ObjCioId( Mig_ManObj(p, Id) ); }
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static void Mig_ManIncrementTravId ( Mig_Man_t p)
inlinestatic

Definition at line 197 of file mpmMig.h.

197 { if ( p->vTravIds.pArray == NULL ) Vec_IntFill( &p->vTravIds, Mig_ManObjNum(p)+500, 0 ); p->nTravIds++; }
static int Mig_ManObjNum(Mig_Man_t *p)
Definition: mpmMig.h:109
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
Definition: bblif.c:356
Vec_Int_t vTravIds
Definition: mpmMig.h:75
int nTravIds
Definition: mpmMig.h:74
int Mig_ManMuxNum ( Mig_Man_t p)

Definition at line 106 of file mpmMig.c.

107 {
108  return Mig_ManTypeNum(p, 3);
109 }
int Mig_ManTypeNum(Mig_Man_t *p, int Type)
Definition: mpmMig.c:90
static char* Mig_ManName ( Mig_Man_t p)
inlinestatic

Definition at line 103 of file mpmMig.h.

103 { return p->pName; }
char * pName
Definition: mpmMig.h:63
static int Mig_ManNodeNum ( Mig_Man_t p)
inlinestatic

Definition at line 110 of file mpmMig.h.

110 { return p->nObjs - Vec_IntSize(&p->vCis) - Vec_IntSize(&p->vCos) - 1; }
int nObjs
Definition: mpmMig.h:64
Vec_Int_t vCis
Definition: mpmMig.h:68
Vec_Int_t vCos
Definition: mpmMig.h:69
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static Mig_Obj_t* Mig_ManObj ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 116 of file mpmMig.h.

116 { assert(v >= 0 && v < p->nObjs); return Mig_ManPage(p, v) + Mig_IdCell(v); }
static int Mig_IdCell(int v)
Definition: mpmMig.h:101
static Mig_Obj_t * Mig_ManPage(Mig_Man_t *p, int v)
Definition: mpmMig.h:115
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManObjNum ( Mig_Man_t p)
inlinestatic

Definition at line 109 of file mpmMig.h.

109 { return p->nObjs; }
int nObjs
Definition: mpmMig.h:64
static Mig_Obj_t* Mig_ManPage ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 115 of file mpmMig.h.

115 { return (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, Mig_IdPage(v)); }
static int Mig_IdPage(int v)
Definition: mpmMig.h:100
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362
Vec_Ptr_t vPages
Definition: mpmMig.h:67
static Mig_Obj_t* Mig_ManPi ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 119 of file mpmMig.h.

119 { assert( v < Mig_ManPiNum(p) ); return Mig_ManCi( p, v ); }
static Mig_Obj_t * Mig_ManCi(Mig_Man_t *p, int v)
Definition: mpmMig.h:117
static int Mig_ManPiNum(Mig_Man_t *p)
Definition: mpmMig.h:106
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManPiNum ( Mig_Man_t p)
inlinestatic

Definition at line 106 of file mpmMig.h.

106 { return Vec_IntSize(&p->vCis) - p->nRegs; }
Vec_Int_t vCis
Definition: mpmMig.h:68
int nRegs
Definition: mpmMig.h:65
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static Mig_Obj_t* Mig_ManPo ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 120 of file mpmMig.h.

120 { assert( v < Mig_ManPoNum(p) ); return Mig_ManCo( p, v ); }
static int Mig_ManPoNum(Mig_Man_t *p)
Definition: mpmMig.h:107
#define assert(ex)
Definition: util_old.h:213
static Mig_Obj_t * Mig_ManCo(Mig_Man_t *p, int v)
Definition: mpmMig.h:118
static int Mig_ManPoNum ( Mig_Man_t p)
inlinestatic

Definition at line 107 of file mpmMig.h.

107 { return Vec_IntSize(&p->vCos) - p->nRegs; }
Vec_Int_t vCos
Definition: mpmMig.h:69
int nRegs
Definition: mpmMig.h:65
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static int Mig_ManRegNum ( Mig_Man_t p)
inlinestatic

Definition at line 108 of file mpmMig.h.

108 { return p->nRegs; }
int nRegs
Definition: mpmMig.h:65
static Mig_Obj_t* Mig_ManRi ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 122 of file mpmMig.h.

122 { assert( v < Mig_ManRegNum(p) ); return Mig_ManCo( p, Mig_ManPoNum(p)+v ); }
static int Mig_ManPoNum(Mig_Man_t *p)
Definition: mpmMig.h:107
#define assert(ex)
Definition: util_old.h:213
static Mig_Obj_t * Mig_ManCo(Mig_Man_t *p, int v)
Definition: mpmMig.h:118
static int Mig_ManRegNum(Mig_Man_t *p)
Definition: mpmMig.h:108
static Mig_Obj_t* Mig_ManRo ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 121 of file mpmMig.h.

121 { assert( v < Mig_ManRegNum(p) ); return Mig_ManCi( p, Mig_ManPiNum(p)+v ); }
static Mig_Obj_t * Mig_ManCi(Mig_Man_t *p, int v)
Definition: mpmMig.h:117
static int Mig_ManPiNum(Mig_Man_t *p)
Definition: mpmMig.h:106
#define assert(ex)
Definition: util_old.h:213
static int Mig_ManRegNum(Mig_Man_t *p)
Definition: mpmMig.h:108
void Mig_ManSetRefs ( Mig_Man_t p)

Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 123 of file mpmMig.c.

124 {
125  Mig_Obj_t * pObj;
126  int i, iFanin;
127  // increment references
128  Vec_IntFill( &p->vRefs, Mig_ManObjNum(p), 0 );
129  Mig_ManForEachObj( p, pObj )
130  {
131  Mig_ObjForEachFaninId( pObj, iFanin, i )
132  Vec_IntAddToEntry( &p->vRefs, iFanin, 1 );
133  if ( Mig_ObjSiblId(pObj) )
134  Vec_IntAddToEntry( &p->vRefs, Mig_ObjSiblId(pObj), 1 );
135  }
136 }
static int Mig_ManObjNum(Mig_Man_t *p)
Definition: mpmMig.h:109
Vec_Int_t vRefs
Definition: mpmMig.h:78
#define Mig_ManForEachObj(p, pObj)
MACRO DEFINITIONS ///.
Definition: mpmMig.h:304
static void Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
Definition: bblif.c:302
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
Definition: bblif.c:356
if(last==0)
Definition: sparse_int.h:34
#define Mig_ObjForEachFaninId(p, iFanin, i)
Definition: mpmMig.h:333
static int Mig_ObjSiblId(Mig_Obj_t *p)
Definition: mpmMig.h:188
static void Mig_ManSetRegNum ( Mig_Man_t p,
int  v 
)
inlinestatic

Definition at line 113 of file mpmMig.h.

113 { p->nRegs = v; }
int nRegs
Definition: mpmMig.h:65
Mig_Man_t* Mig_ManStart ( )

FUNCTION DECLARATIONS ///.

FUNCTION DECLARATIONS ///.

CFile****************************************************************

FileName [mpmMig.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Configurable technology mapper.]

Synopsis [Subject graph data structure.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 1, 2013.]

Revision [

Id:
mpmMig.c,v 1.00 2013/06/01 00:00:00 alanmi Exp

]FUNCTION DEFINITIONS /// Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 45 of file mpmMig.c.

46 {
47  Mig_Man_t * p;
48  assert( sizeof(Mig_Obj_t) >= 16 );
49  assert( (1 << MIG_BASE) == MIG_MASK + 1 );
50  p = ABC_CALLOC( Mig_Man_t, 1 );
51  Vec_IntGrow( &p->vCis, 1024 );
52  Vec_IntGrow( &p->vCos, 1024 );
53  Mig_ManAppendObj( p ); // const0
54  return p;
55 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static Mig_Obj_t * Mig_ManAppendObj(Mig_Man_t *p)
Definition: mpmMig.h:217
Vec_Int_t vCis
Definition: mpmMig.h:68
static void Vec_IntGrow(Vec_Int_t *p, int nCapMin)
Definition: bblif.c:336
#define MIG_BASE
Definition: mpmMig.h:41
Vec_Int_t vCos
Definition: mpmMig.h:69
#define ABC_CALLOC(type, num)
Definition: abc_global.h:230
#define assert(ex)
Definition: util_old.h:213
#define MIG_MASK
Definition: mpmMig.h:40
void Mig_ManStop ( Mig_Man_t p)

Definition at line 56 of file mpmMig.c.

57 {
58  if ( 0 )
59  printf( "Subject graph uses %d pages of %d objects with %d entries. Total memory = %.2f MB.\n",
60  Vec_PtrSize(&p->vPages), MIG_MASK + 1, p->nObjs,
61  1.0 * Vec_PtrSize(&p->vPages) * (MIG_MASK + 1) * 16 / (1 << 20) );
62  // attributes
63  ABC_FREE( p->vTravIds.pArray );
64  ABC_FREE( p->vCopies.pArray );
65  ABC_FREE( p->vLevels.pArray );
66  ABC_FREE( p->vRefs.pArray );
67  ABC_FREE( p->vSibls.pArray );
68  // pages
70  --p->pPage, ABC_FREE( p->pPage );
71  // objects
72  ABC_FREE( p->vPages.pArray );
73  ABC_FREE( p->vCis.pArray );
74  ABC_FREE( p->vCos.pArray );
75  ABC_FREE( p->pName );
76  ABC_FREE( p );
77 }
Vec_Int_t vLevels
Definition: mpmMig.h:76
Vec_Int_t vCopies
Definition: mpmMig.h:79
Vec_Int_t vRefs
Definition: mpmMig.h:78
int iPage
Definition: mpmMig.h:72
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
int nObjs
Definition: mpmMig.h:64
Vec_Int_t vCis
Definition: mpmMig.h:68
Vec_Int_t vSibls
Definition: mpmMig.h:77
Vec_Int_t vCos
Definition: mpmMig.h:69
Mig_Obj_t * pPage
Definition: mpmMig.h:71
Vec_Ptr_t vPages
Definition: mpmMig.h:67
char * pName
Definition: mpmMig.h:63
Vec_Int_t vTravIds
Definition: mpmMig.h:75
#define ABC_FREE(obj)
Definition: abc_global.h:232
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
Definition: vecPtr.h:55
#define MIG_MASK
Definition: mpmMig.h:40
int Mig_ManXorNum ( Mig_Man_t p)

Definition at line 102 of file mpmMig.c.

103 {
104  return Mig_ManTypeNum(p, 2);
105 }
int Mig_ManTypeNum(Mig_Man_t *p, int Type)
Definition: mpmMig.c:90
static int Mig_ObjCioId ( Mig_Obj_t p)
inlinestatic

Definition at line 148 of file mpmMig.h.

148 { assert( Mig_ObjIsTerm(p) ); return Mig_FanId( p, 2 ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjIsTerm(Mig_Obj_t *p)
Definition: mpmMig.h:133
#define assert(ex)
Definition: util_old.h:213
static int Mig_ObjCopy ( Mig_Obj_t p)
inlinestatic

Definition at line 194 of file mpmMig.h.

194 { return Vec_IntSize(&Mig_ObjMan(p)->vCopies) == 0 ? -1: Vec_IntEntry(&Mig_ObjMan(p)->vCopies, Mig_ObjId(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static Mig_Obj_t* Mig_ObjFanin ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 174 of file mpmMig.h.

174 { return Mig_ManObj( Mig_ObjMan(p), Mig_ObjFaninId(p, i) ); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static int Mig_ObjFaninId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:170
static Mig_Obj_t* Mig_ObjFanin0 ( Mig_Obj_t p)
inlinestatic

Definition at line 176 of file mpmMig.h.

176 { return Mig_FanIsNone(p, 0) ? NULL: Mig_ObjFanin(p, 0); }
static Mig_Obj_t * Mig_ObjFanin(Mig_Obj_t *p, int i)
Definition: mpmMig.h:174
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static Mig_Obj_t* Mig_ObjFanin1 ( Mig_Obj_t p)
inlinestatic

Definition at line 177 of file mpmMig.h.

177 { return Mig_FanIsNone(p, 1) ? NULL: Mig_ObjFanin(p, 1); }
static Mig_Obj_t * Mig_ObjFanin(Mig_Obj_t *p, int i)
Definition: mpmMig.h:174
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static Mig_Obj_t* Mig_ObjFanin2 ( Mig_Obj_t p)
inlinestatic

Definition at line 178 of file mpmMig.h.

178 { return Mig_FanIsNone(p, 2) ? NULL: Mig_ObjFanin(p, 2); }
static Mig_Obj_t * Mig_ObjFanin(Mig_Obj_t *p, int i)
Definition: mpmMig.h:174
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjFaninC ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 179 of file mpmMig.h.

179 { assert( i < 3 ); return Mig_FanCompl(p, i); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
#define assert(ex)
Definition: util_old.h:213
static int Mig_ObjFaninC0 ( Mig_Obj_t p)
inlinestatic

Definition at line 180 of file mpmMig.h.

180 { return Mig_FanCompl(p, 0); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static int Mig_ObjFaninC1 ( Mig_Obj_t p)
inlinestatic

Definition at line 181 of file mpmMig.h.

181 { return Mig_FanCompl(p, 1); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static int Mig_ObjFaninC2 ( Mig_Obj_t p)
inlinestatic

Definition at line 182 of file mpmMig.h.

182 { return Mig_FanCompl(p, 2); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static int Mig_ObjFaninId ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 170 of file mpmMig.h.

170 { assert( i < 3 && Mig_FanId(p, i) < Mig_ObjId(p) ); return Mig_FanId( p, i ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
#define assert(ex)
Definition: util_old.h:213
static int Mig_ObjFaninId0 ( Mig_Obj_t p)
inlinestatic

Definition at line 171 of file mpmMig.h.

171 { return Mig_FanId( p, 0 ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjFaninId1 ( Mig_Obj_t p)
inlinestatic

Definition at line 172 of file mpmMig.h.

172 { return Mig_FanId( p, 1 ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjFaninId2 ( Mig_Obj_t p)
inlinestatic

Definition at line 173 of file mpmMig.h.

173 { return Mig_FanId( p, 2 ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjFaninLit ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 183 of file mpmMig.h.

183 { return Abc_Var2Lit( Mig_FanId(p, i), Mig_FanCompl(p, i) ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Abc_Var2Lit(int Var, int fCompl)
Definition: abc_global.h:263
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static void Mig_ObjFlipFaninC ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 184 of file mpmMig.h.

184 { Mig_FanSetCompl( p, i, !Mig_FanCompl(p, i) ); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static int Mig_FanSetCompl(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:128
static int Mig_ObjHasFanin ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 169 of file mpmMig.h.

169 { return i < 3 && Mig_FanId(p, i) != MIG_NONE; }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
#define MIG_NONE
INCLUDES ///.
Definition: mpmMig.h:37
static int Mig_ObjId ( Mig_Obj_t p)
inlinestatic

Definition at line 146 of file mpmMig.h.

146 { return Mig_FanId( p, 3 ); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static void Mig_ObjIncrementTravId ( Mig_Obj_t p)
inlinestatic

Definition at line 198 of file mpmMig.h.

198 { if ( Mig_ObjMan(p)->vTravIds.pArray == NULL ) Vec_IntFill( &Mig_ObjMan(p)->vTravIds, Mig_ManObjNum(Mig_ObjMan(p))+500, 0 ); Mig_ObjMan(p)->nTravIds++; }
static int Mig_ManObjNum(Mig_Man_t *p)
Definition: mpmMig.h:109
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
Definition: bblif.c:356
int nTravIds
Definition: mpmMig.h:74
static int Mig_ObjIsAnd ( Mig_Obj_t p)
inlinestatic

Definition at line 140 of file mpmMig.h.

140 { return Mig_ObjIsNode2( p ) && Mig_FanId(p, 0) < Mig_FanId(p, 1); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjIsNode2(Mig_Obj_t *p)
Definition: mpmMig.h:138
static int Mig_ObjIsBuf ( Mig_Obj_t p)
inlinestatic

Definition at line 136 of file mpmMig.h.

136 { return Mig_FanIsNone( p, 1 ) && Mig_FanIsNone( p, 2 ) && !Mig_FanIsNone( p, 0 ); }
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsCand ( Mig_Obj_t p)
inlinestatic

Definition at line 143 of file mpmMig.h.

143 { return Mig_ObjIsNode(p) || Mig_ObjIsCi(p); }
static int Mig_ObjIsNode(Mig_Obj_t *p)
Definition: mpmMig.h:137
static int Mig_ObjIsCi(Mig_Obj_t *p)
Definition: mpmMig.h:134
static int Mig_ObjIsCi ( Mig_Obj_t p)
inlinestatic

Definition at line 134 of file mpmMig.h.

134 { return Mig_ObjIsTerm(p) && Mig_FanIsNone( p, 0 ); }
static int Mig_ObjIsTerm(Mig_Obj_t *p)
Definition: mpmMig.h:133
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsCo ( Mig_Obj_t p)
inlinestatic

Definition at line 135 of file mpmMig.h.

135 { return Mig_ObjIsTerm(p) && !Mig_FanIsNone( p, 0 ); }
static int Mig_ObjIsTerm(Mig_Obj_t *p)
Definition: mpmMig.h:133
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsConst0 ( Mig_Obj_t p)
inlinestatic

Definition at line 132 of file mpmMig.h.

132 { return Mig_FanId( p, 3 ) == 0; }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjIsMux ( Mig_Obj_t p)
inlinestatic

Definition at line 142 of file mpmMig.h.

142 { return Mig_ObjIsNode3( p ); }
static int Mig_ObjIsNode3(Mig_Obj_t *p)
Definition: mpmMig.h:139
static int Mig_ObjIsNode ( Mig_Obj_t p)
inlinestatic

Definition at line 137 of file mpmMig.h.

137 { return!Mig_FanIsNone( p, 1 ); }
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsNode2 ( Mig_Obj_t p)
inlinestatic

Definition at line 138 of file mpmMig.h.

138 { return Mig_ObjIsNode( p ) && Mig_FanIsNone( p, 2 ); }
static int Mig_ObjIsNode(Mig_Obj_t *p)
Definition: mpmMig.h:137
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsNode3 ( Mig_Obj_t p)
inlinestatic

Definition at line 139 of file mpmMig.h.

139 { return Mig_ObjIsNode( p ) && !Mig_FanIsNone( p, 2 ); }
static int Mig_ObjIsNode(Mig_Obj_t *p)
Definition: mpmMig.h:137
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsNone ( Mig_Obj_t p)
inlinestatic

Definition at line 131 of file mpmMig.h.

131 { return Mig_FanIsNone( p, 3 ); }
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsPi ( Mig_Obj_t p)
inlinestatic

Definition at line 161 of file mpmMig.h.

161 { return Mig_ObjIsCi(p) && Mig_ObjCioId(p) < Mig_ManPiNum(Mig_ObjMan(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjIsCi(Mig_Obj_t *p)
Definition: mpmMig.h:134
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManPiNum(Mig_Man_t *p)
Definition: mpmMig.h:106
static int Mig_ObjIsPo ( Mig_Obj_t p)
inlinestatic

Definition at line 162 of file mpmMig.h.

162 { return Mig_ObjIsCo(p) && Mig_ObjCioId(p) < Mig_ManPoNum(Mig_ObjMan(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManPoNum(Mig_Man_t *p)
Definition: mpmMig.h:107
static int Mig_ObjIsCo(Mig_Obj_t *p)
Definition: mpmMig.h:135
static int Mig_ObjIsRi ( Mig_Obj_t p)
inlinestatic

Definition at line 164 of file mpmMig.h.

164 { return Mig_ObjIsCo(p) && Mig_ObjCioId(p) >= Mig_ManPoNum(Mig_ObjMan(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManPoNum(Mig_Man_t *p)
Definition: mpmMig.h:107
static int Mig_ObjIsCo(Mig_Obj_t *p)
Definition: mpmMig.h:135
static int Mig_ObjIsRo ( Mig_Obj_t p)
inlinestatic

Definition at line 163 of file mpmMig.h.

163 { return Mig_ObjIsCi(p) && Mig_ObjCioId(p) >= Mig_ManPiNum(Mig_ObjMan(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjIsCi(Mig_Obj_t *p)
Definition: mpmMig.h:134
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManPiNum(Mig_Man_t *p)
Definition: mpmMig.h:106
static int Mig_ObjIsTerm ( Mig_Obj_t p)
inlinestatic

Definition at line 133 of file mpmMig.h.

133 { return Mig_FanIsNone( p, 1 ) && !Mig_FanIsNone( p, 2 ); }
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_ObjIsTravIdCurrent ( Mig_Obj_t p)
inlinestatic

Definition at line 201 of file mpmMig.h.

201 { return (Vec_IntGetEntry(&Mig_ObjMan(p)->vTravIds, Mig_ObjId(p)) == Mig_ObjMan(p)->nTravIds); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
Definition: bblif.c:401
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Mig_ObjIsTravIdCurrentId ( Mig_Man_t p,
int  Id 
)
inlinestatic

Definition at line 204 of file mpmMig.h.

204 { return (Vec_IntGetEntry(&p->vTravIds, Id) == p->nTravIds); }
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
Definition: bblif.c:401
Vec_Int_t vTravIds
Definition: mpmMig.h:75
int nTravIds
Definition: mpmMig.h:74
static int Mig_ObjIsTravIdPrevious ( Mig_Obj_t p)
inlinestatic

Definition at line 202 of file mpmMig.h.

202 { return (Vec_IntGetEntry(&Mig_ObjMan(p)->vTravIds, Mig_ObjId(p)) == Mig_ObjMan(p)->nTravIds-1); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
Definition: bblif.c:401
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Mig_ObjIsXor ( Mig_Obj_t p)
inlinestatic

Definition at line 141 of file mpmMig.h.

141 { return Mig_ObjIsNode2( p ) && Mig_FanId(p, 0) > Mig_FanId(p, 1); }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126
static int Mig_ObjIsNode2(Mig_Obj_t *p)
Definition: mpmMig.h:138
static Mig_Man_t* Mig_ObjMan ( Mig_Obj_t p)
inlinestatic

Definition at line 153 of file mpmMig.h.

153 { return *((Mig_Man_t**)(p - Mig_IdCell(Mig_ObjId(p)) - 1)); }
static int Mig_IdCell(int v)
Definition: mpmMig.h:101
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Mig_ObjNodeType ( Mig_Obj_t p)
inlinestatic

Definition at line 144 of file mpmMig.h.

144 { return Mig_ObjIsAnd(p) ? 1 : (Mig_ObjIsXor(p) ? 2 : 3); }
static int Mig_ObjIsAnd(Mig_Obj_t *p)
Definition: mpmMig.h:140
static int Mig_ObjIsXor(Mig_Obj_t *p)
Definition: mpmMig.h:141
static Mig_Obj_t* Mig_ObjObj ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 155 of file mpmMig.h.

155 { return Mig_ManObj( Mig_ObjMan(p), i ); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
Definition: mpmMig.h:116
static int Mig_ObjPhase ( Mig_Obj_t p)
inlinestatic

Definition at line 150 of file mpmMig.h.

150 { return Mig_FanCompl( p, 3 ); }
static int Mig_FanCompl(Mig_Obj_t *p, int i)
Definition: mpmMig.h:125
static int Mig_ObjRefNum ( Mig_Obj_t p)
inlinestatic

Definition at line 191 of file mpmMig.h.

191 { return Vec_IntEntry(&Mig_ObjMan(p)->vRefs, Mig_ObjId(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
static Mig_Obj_t* Mig_ObjRiToRo ( Mig_Obj_t p)
inlinestatic

Definition at line 167 of file mpmMig.h.

167 { Mig_Man_t * pMan = Mig_ObjMan(p); assert( Mig_ObjIsRi(p) ); return Mig_ManCi(pMan, Mig_ManCiNum(pMan) - Mig_ManCoNum(pMan) + Mig_ObjCioId(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ManCoNum(Mig_Man_t *p)
Definition: mpmMig.h:105
static int Mig_ObjIsRi(Mig_Obj_t *p)
Definition: mpmMig.h:164
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManCiNum(Mig_Man_t *p)
Definition: mpmMig.h:104
static Mig_Obj_t * Mig_ManCi(Mig_Man_t *p, int v)
Definition: mpmMig.h:117
#define assert(ex)
Definition: util_old.h:213
static Mig_Obj_t* Mig_ObjRoToRi ( Mig_Obj_t p)
inlinestatic

Definition at line 166 of file mpmMig.h.

166 { Mig_Man_t * pMan = Mig_ObjMan(p); assert( Mig_ObjIsRo(p) ); return Mig_ManCo(pMan, Mig_ManCoNum(pMan) - Mig_ManCiNum(pMan) + Mig_ObjCioId(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjIsRo(Mig_Obj_t *p)
Definition: mpmMig.h:163
static int Mig_ManCoNum(Mig_Man_t *p)
Definition: mpmMig.h:105
static int Mig_ObjCioId(Mig_Obj_t *p)
Definition: mpmMig.h:148
static int Mig_ManCiNum(Mig_Man_t *p)
Definition: mpmMig.h:104
#define assert(ex)
Definition: util_old.h:213
static Mig_Obj_t * Mig_ManCo(Mig_Man_t *p, int v)
Definition: mpmMig.h:118
static void Mig_ObjSetCioId ( Mig_Obj_t p,
int  v 
)
inlinestatic

Definition at line 149 of file mpmMig.h.

149 { assert( Mig_FanIsNone(p, 1) ); Mig_FanSetId( p, 2, v ); }
static int Mig_FanIsNone(Mig_Obj_t *p, int i)
Definition: mpmMig.h:127
static int Mig_FanSetId(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:129
#define assert(ex)
Definition: util_old.h:213
static void Mig_ObjSetCopy ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 195 of file mpmMig.h.

195 { assert( Vec_IntSize(&Mig_ObjMan(p)->vCopies) != 0 ); Vec_IntWriteEntry(&Mig_ObjMan(p)->vCopies, Mig_ObjId(p), i); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:285
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
#define assert(ex)
Definition: util_old.h:213
static void Mig_ObjSetFaninLit ( Mig_Obj_t p,
int  i,
int  l 
)
inlinestatic

Definition at line 186 of file mpmMig.h.

186 { assert( l >= 0 && (l >> 1) < Mig_ObjId(p) ); Mig_FanSetId(p, i, Abc_Lit2Var(l)); Mig_FanSetCompl(p, i, Abc_LitIsCompl(l)); }
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Abc_LitIsCompl(int Lit)
Definition: abc_global.h:265
static int Mig_FanSetId(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:129
static int Mig_FanSetCompl(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:128
static int Abc_Lit2Var(int Lit)
Definition: abc_global.h:264
#define assert(ex)
Definition: util_old.h:213
static void Mig_ObjSetId ( Mig_Obj_t p,
int  v 
)
inlinestatic

Definition at line 147 of file mpmMig.h.

147 { Mig_FanSetId( p, 3, v ); }
static int Mig_FanSetId(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:129
static void Mig_ObjSetPhase ( Mig_Obj_t p,
int  v 
)
inlinestatic

Definition at line 151 of file mpmMig.h.

151 { Mig_FanSetCompl( p, 3, v ); }
static int Mig_FanSetCompl(Mig_Obj_t *p, int i, int v)
Definition: mpmMig.h:128
static void Mig_ObjSetSiblId ( Mig_Obj_t p,
int  s 
)
inlinestatic

Definition at line 189 of file mpmMig.h.

189 { assert( s > 0 && Mig_ObjId(p) > s ); Vec_IntWriteEntry( &Mig_ObjMan(p)->vSibls, Mig_ObjId(p), s ); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:285
#define assert(ex)
Definition: util_old.h:213
static void Mig_ObjSetTravIdCurrent ( Mig_Obj_t p)
inlinestatic

Definition at line 199 of file mpmMig.h.

199 { Vec_IntSetEntry(&Mig_ObjMan(p)->vTravIds, Mig_ObjId(p), Mig_ObjMan(p)->nTravIds ); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:418
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static void Mig_ObjSetTravIdCurrentId ( Mig_Man_t p,
int  Id 
)
inlinestatic

Definition at line 203 of file mpmMig.h.

203 { Vec_IntSetEntry(&p->vTravIds, Id, p->nTravIds ); }
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:418
Vec_Int_t vTravIds
Definition: mpmMig.h:75
int nTravIds
Definition: mpmMig.h:74
static void Mig_ObjSetTravIdPrevious ( Mig_Obj_t p)
inlinestatic

Definition at line 200 of file mpmMig.h.

200 { Vec_IntSetEntry(&Mig_ObjMan(p)->vTravIds, Mig_ObjId(p), Mig_ObjMan(p)->nTravIds-1 ); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:418
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static Mig_Obj_t* Mig_ObjSibl ( Mig_Obj_t p)
inlinestatic

Definition at line 190 of file mpmMig.h.

190 { return Mig_ObjSiblId(p) == 0 ? NULL: Mig_ObjObj(p, Mig_ObjSiblId(p)); }
static int Mig_ObjSiblId(Mig_Obj_t *p)
Definition: mpmMig.h:188
static Mig_Obj_t * Mig_ObjObj(Mig_Obj_t *p, int i)
Definition: mpmMig.h:155
static int Mig_ObjSiblId ( Mig_Obj_t p)
inlinestatic

Definition at line 188 of file mpmMig.h.

188 { return Vec_IntSize(&Mig_ObjMan(p)->vSibls) == 0 ? 0: Vec_IntEntry(&Mig_ObjMan(p)->vSibls, Mig_ObjId(p)); }
static Mig_Man_t * Mig_ObjMan(Mig_Obj_t *p)
Definition: mpmMig.h:153
static int Mig_ObjId(Mig_Obj_t *p)
Definition: mpmMig.h:146
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static int Mig_ObjWhatFanin ( Mig_Obj_t p,
int  i 
)
inlinestatic

Definition at line 185 of file mpmMig.h.

185 { if (Mig_FanId(p, 0) == i) return 0; if (Mig_FanId(p, 1) == i) return 1; if (Mig_FanId(p, 2) == i) return 2; return -1; }
static int Mig_FanId(Mig_Obj_t *p, int i)
Definition: mpmMig.h:126