summaryrefslogtreecommitdiffstats
path: root/src/aig/gia
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-11-06 22:08:54 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2017-11-06 22:08:54 -0800
commit5fd6dc0fca7f15d87f1fbd6401c3caa2c993834a (patch)
tree73b0e3d71a2de7e7a598ca20b9f8740083513241 /src/aig/gia
parent716969190a4d6d944cfa24a085c9e7069d868dab (diff)
downloadabc-5fd6dc0fca7f15d87f1fbd6401c3caa2c993834a.tar.gz
abc-5fd6dc0fca7f15d87f1fbd6401c3caa2c993834a.tar.bz2
abc-5fd6dc0fca7f15d87f1fbd6401c3caa2c993834a.zip
Profiling quantification and other changes.
Diffstat (limited to 'src/aig/gia')
-rw-r--r--src/aig/gia/gia.h5
-rw-r--r--src/aig/gia/giaMan.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h
index 920ebb06..c8b64a16 100644
--- a/src/aig/gia/gia.h
+++ b/src/aig/gia/gia.h
@@ -148,6 +148,7 @@ struct Gia_Man_t_
Abc_Cex_t * pCexSeq; // sequential counter-example
Vec_Ptr_t * vSeqModelVec; // sequential counter-examples
Vec_Int_t vCopies; // intermediate copies
+ Vec_Int_t vCopies2; // intermediate copies
Vec_Int_t * vTruths; // used for truth table computation
Vec_Int_t * vFlopClasses; // classes of flops for retiming/merging/etc
Vec_Int_t * vGateClasses; // classes of gates for abstraction
@@ -532,6 +533,10 @@ static inline int Gia_ObjCopyArray( Gia_Man_t * p, int iObj )
static inline void Gia_ObjSetCopyArray( Gia_Man_t * p, int iObj, int iLit ) { Vec_IntWriteEntry(&p->vCopies, iObj, iLit); }
static inline void Gia_ManCleanCopyArray( Gia_Man_t * p ) { Vec_IntFill( &p->vCopies, Gia_ManObjNum(p), -1 ); }
+static inline int Gia_ObjCopy2Array( Gia_Man_t * p, int iObj ) { return Vec_IntEntry(&p->vCopies2, iObj); }
+static inline void Gia_ObjSetCopy2Array( Gia_Man_t * p, int iObj, int iLit ) { Vec_IntWriteEntry(&p->vCopies2, iObj, iLit); }
+static inline void Gia_ManCleanCopy2Array( Gia_Man_t * p ) { Vec_IntFill( &p->vCopies2, Gia_ManObjNum(p), -1 ); }
+
static inline int Gia_ObjFanin0CopyF( Gia_Man_t * p, int f, Gia_Obj_t * pObj ) { return Abc_LitNotCond(Gia_ObjCopyF(p, f, Gia_ObjFanin0(pObj)), Gia_ObjFaninC0(pObj)); }
static inline int Gia_ObjFanin1CopyF( Gia_Man_t * p, int f, Gia_Obj_t * pObj ) { return Abc_LitNotCond(Gia_ObjCopyF(p, f, Gia_ObjFanin1(pObj)), Gia_ObjFaninC1(pObj)); }
static inline int Gia_ObjFanin0CopyArray( Gia_Man_t * p, Gia_Obj_t * pObj ) { return Abc_LitNotCond(Gia_ObjCopyArray(p, Gia_ObjFaninId0p(p,pObj)), Gia_ObjFaninC0(pObj)); }
diff --git a/src/aig/gia/giaMan.c b/src/aig/gia/giaMan.c
index 6ff822c3..a8b03207 100644
--- a/src/aig/gia/giaMan.c
+++ b/src/aig/gia/giaMan.c
@@ -117,6 +117,7 @@ void Gia_ManStop( Gia_Man_t * p )
Vec_IntFreeP( &p->vLevels );
Vec_IntFreeP( &p->vTruths );
Vec_IntErase( &p->vCopies );
+ Vec_IntErase( &p->vCopies2 );
Vec_IntFreeP( &p->vTtNums );
Vec_IntFreeP( &p->vTtNodes );
Vec_WrdFreeP( &p->vTtMemory );