summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/gia.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-11-06 16:43:32 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2017-11-06 16:43:32 -0800
commit716969190a4d6d944cfa24a085c9e7069d868dab (patch)
tree1a0a95bd9dfc505341c367752658c732900e55de /src/aig/gia/gia.h
parent94a575a5b3113d714b96ba3711124c5780151bee (diff)
downloadabc-716969190a4d6d944cfa24a085c9e7069d868dab.tar.gz
abc-716969190a4d6d944cfa24a085c9e7069d868dab.tar.bz2
abc-716969190a4d6d944cfa24a085c9e7069d868dab.zip
Profiling quantification and other changes.
Diffstat (limited to 'src/aig/gia/gia.h')
-rw-r--r--src/aig/gia/gia.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h
index 9acbbe48..920ebb06 100644
--- a/src/aig/gia/gia.h
+++ b/src/aig/gia/gia.h
@@ -198,6 +198,7 @@ struct Gia_Man_t_
int MappedArea; // area after mapping
int MappedDelay; // delay after mapping
// bit-parallel simulation
+ int fBuiltInSim;
int iPatsPi;
int nSimWords;
Vec_Wrd_t * vSims;
@@ -673,6 +674,11 @@ static inline int Gia_ManAppendAnd( Gia_Man_t * p, int iLit0, int iLit1 )
if ( pFan1->fMark0 ) pFan1->fMark1 = 1; else pFan1->fMark0 = 1;
pObj->fPhase = (Gia_ObjPhase(pFan0) ^ Gia_ObjFaninC0(pObj)) & (Gia_ObjPhase(pFan1) ^ Gia_ObjFaninC1(pObj));
}
+ if ( p->fBuiltInSim )
+ {
+ extern void Gia_ManBuiltInSimPerform( Gia_Man_t * p, int iObj );
+ Gia_ManBuiltInSimPerform( p, Gia_ObjId( p, pObj ) );
+ }
return Gia_ObjId( p, pObj ) << 1;
}
static inline int Gia_ManAppendXorReal( Gia_Man_t * p, int iLit0, int iLit1 )
@@ -1469,6 +1475,10 @@ extern unsigned * Gia_SimDataCoExt( Gia_ManSim_t * p, int i );
extern void Gia_ManSimInfoInit( Gia_ManSim_t * p );
extern void Gia_ManSimInfoTransfer( Gia_ManSim_t * p );
extern void Gia_ManSimulateRound( Gia_ManSim_t * p );
+extern void Gia_ManBuiltInSimStart( Gia_Man_t * p, int nWords, int nObjs );
+extern void Gia_ManBuiltInSimPerform( Gia_Man_t * p, int iObj );
+extern int Gia_ManBuiltInSimCheck( Gia_Man_t * p, int iLit0, int iLit1 );
+extern int Gia_ManObjCheckOverlap( Gia_Man_t * p, int iLit0, int iLit1, Vec_Int_t * vObjs );
/*=== giaSpeedup.c ============================================================*/
extern float Gia_ManDelayTraceLut( Gia_Man_t * p );
extern float Gia_ManDelayTraceLutPrint( Gia_Man_t * p, int fVerbose );
@@ -1612,6 +1622,7 @@ extern void Gia_ManSwapPos( Gia_Man_t * p, int i );
extern Vec_Int_t * Gia_ManSaveValue( Gia_Man_t * p );
extern void Gia_ManLoadValue( Gia_Man_t * p, Vec_Int_t * vValues );
extern Vec_Int_t * Gia_ManFirstFanouts( Gia_Man_t * p );
+extern int Gia_ManCheckSuppOverlap( Gia_Man_t * p, int iNode1, int iNode2 );
/*=== giaCTas.c ===========================================================*/
typedef struct Tas_Man_t_ Tas_Man_t;