summaryrefslogtreecommitdiffstats
path: root/src/misc/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/util')
-rw-r--r--src/misc/util/abc_global.h42
-rw-r--r--src/misc/util/utilNam.c4
-rw-r--r--src/misc/util/utilSort.c26
-rw-r--r--src/misc/util/util_hack.h2
4 files changed, 46 insertions, 28 deletions
diff --git a/src/misc/util/abc_global.h b/src/misc/util/abc_global.h
index 914fd327..f824ea43 100644
--- a/src/misc/util/abc_global.h
+++ b/src/misc/util/abc_global.h
@@ -266,25 +266,43 @@ static inline int Abc_LitRegular( int Lit ) { return Lit & ~01
static inline int Abc_Lit2LitV( int * pMap, int Lit ) { return Abc_Var2Lit( pMap[Abc_Lit2Var(Lit)], Abc_LitIsCompl(Lit) ); }
static inline int Abc_Lit2LitL( int * pMap, int Lit ) { return Abc_LitNotCond( pMap[Abc_Lit2Var(Lit)], Abc_LitIsCompl(Lit) ); }
-enum Abc_VerbLevel
+
+// time counting
+typedef ABC_UINT64_T abctime;
+static inline abctime Abc_Clock()
{
- ABC_PROMPT = -2,
- ABC_ERROR = -1,
- ABC_WARNING = 0,
- ABC_STANDARD = 1,
- ABC_VERBOSE = 2
-};
+ static abctime PeriodNum = 0;
+ static clock_t Period = ((abctime)1 << 30);
+ clock_t ClockTime = clock();
+ if ( ClockTime >= Period )
+ {
+ ClockTime -= Period;
+ PeriodNum++;
+ }
+ return PeriodNum * Period + ClockTime;
+}
+
+// bridge communication
#define BRIDGE_NETLIST 106
#define BRIDGE_ABS_NETLIST 107
+extern int Gia_ManToBridgeText( FILE * pFile, int Size, unsigned char * pBuffer );
+extern int Gia_ManToBridgeAbsNetlist( FILE * pFile, void * p, int pkg_type );
// string printing
extern char * vnsprintf(const char* format, va_list args);
extern char * nsprintf(const char* format, ...);
-extern int Gia_ManToBridgeText( FILE * pFile, int Size, unsigned char * pBuffer );
-extern int Gia_ManToBridgeAbsNetlist( FILE * pFile, void * p, int pkg_type );
+
// misc printing procedures
+enum Abc_VerbLevel
+{
+ ABC_PROMPT = -2,
+ ABC_ERROR = -1,
+ ABC_WARNING = 0,
+ ABC_STANDARD = 1,
+ ABC_VERBOSE = 2
+};
static inline void Abc_Print( int level, const char * format, ... )
{
extern ABC_DLL int Abc_FrameIsBridgeMode();
@@ -339,12 +357,12 @@ static inline void Abc_PrintInt( int i )
Abc_Print( 1, "%4.0fm", v6 );
}
-static inline void Abc_PrintTime( int level, const char * pStr, clock_t time )
+static inline void Abc_PrintTime( int level, const char * pStr, abctime time )
{
ABC_PRT( pStr, time );
}
-static inline void Abc_PrintTimeP( int level, const char * pStr, clock_t time, clock_t Time )
+static inline void Abc_PrintTimeP( int level, const char * pStr, abctime time, abctime Time )
{
ABC_PRTP( pStr, time, Time );
}
@@ -381,6 +399,7 @@ static inline int Abc_PrimeCudd( unsigned int p )
} // end of Cudd_Prime
+
// sorting
extern void Abc_MergeSort( int * pInput, int nSize );
extern int * Abc_MergeSortCost( int * pCosts, int nSize );
@@ -391,7 +410,6 @@ extern void Abc_QuickSortCostData( int * pCosts, int nSize, int fDecrease, wor
extern int * Abc_QuickSortCost( int * pCosts, int nSize, int fDecrease );
-
ABC_NAMESPACE_HEADER_END
#endif
diff --git a/src/misc/util/utilNam.c b/src/misc/util/utilNam.c
index ccea6322..5fb38c51 100644
--- a/src/misc/util/utilNam.c
+++ b/src/misc/util/utilNam.c
@@ -302,7 +302,7 @@ void Abc_NamStrHashResize( Abc_Nam_t * p )
{
Vec_Int_t * vInt2HandleOld;
char * pThis;
- int * piPlace, * pBinsOld, iHandleOld, i;//, clk = clock();
+ int * piPlace, * pBinsOld, iHandleOld, i;//, clk = Abc_Clock();
assert( p->pBins != NULL );
// Abc_Print( 1, "Resizing names manager hash table from %6d to %6d. ", p->nBins, Abc_PrimeCudd( 3 * p->nBins ) );
// replace the table
@@ -327,7 +327,7 @@ void Abc_NamStrHashResize( Abc_Nam_t * p )
}
Vec_IntFree( vInt2HandleOld );
ABC_FREE( pBinsOld );
-// Abc_PrintTime( 1, "Time", clock() - clk );
+// Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
}
/**Function*************************************************************
diff --git a/src/misc/util/utilSort.c b/src/misc/util/utilSort.c
index 48321c9f..4dca700c 100644
--- a/src/misc/util/utilSort.c
+++ b/src/misc/util/utilSort.c
@@ -401,7 +401,7 @@ void Abc_SortTest()
int i, nSize = 50000000;
int * pArray = (int *)malloc( sizeof(int) * nSize );
int * pPerm;
- clock_t clk;
+ abctime clk;
// generate numbers
srand( 1000 );
for ( i = 0; i < nSize; i++ )
@@ -413,9 +413,9 @@ void Abc_SortTest()
int fUseCost = 1;
if ( fUseCost )
{
- clk = clock();
+ clk = Abc_Clock();
pPerm = Abc_MergeSortCost( pArray, nSize );
- Abc_PrintTime( 1, "New sort", clock() - clk );
+ Abc_PrintTime( 1, "New sort", Abc_Clock() - clk );
// check
for ( i = 1; i < nSize; i++ )
assert( pArray[pPerm[i-1]] <= pArray[pPerm[i]] );
@@ -423,9 +423,9 @@ void Abc_SortTest()
}
else
{
- clk = clock();
+ clk = Abc_Clock();
Abc_MergeSort( pArray, nSize );
- Abc_PrintTime( 1, "New sort", clock() - clk );
+ Abc_PrintTime( 1, "New sort", Abc_Clock() - clk );
// check
for ( i = 1; i < nSize; i++ )
assert( pArray[i-1] <= pArray[i] );
@@ -433,9 +433,9 @@ void Abc_SortTest()
}
else
{
- clk = clock();
+ clk = Abc_Clock();
qsort( (void *)pArray, nSize, sizeof(int), (int (*)(const void *, const void *)) Abc_SortNumCompare );
- Abc_PrintTime( 1, "Old sort", clock() - clk );
+ Abc_PrintTime( 1, "Old sort", Abc_Clock() - clk );
// check
for ( i = 1; i < nSize; i++ )
assert( pArray[i-1] <= pArray[i] );
@@ -745,18 +745,18 @@ void Abc_QuickSortTest()
int fVerbose = 0;
word * pData1, * pData2;
int i;
- clock_t clk = clock();
+ abctime clk = Abc_Clock();
// generate numbers
pData1 = ABC_ALLOC( word, nSize );
pData2 = ABC_ALLOC( word, nSize );
srand( 1111 );
for ( i = 0; i < nSize; i++ )
pData2[i] = pData1[i] = ((word)i << 32) | rand();
- Abc_PrintTime( 1, "Prepare ", clock() - clk );
+ Abc_PrintTime( 1, "Prepare ", Abc_Clock() - clk );
// perform sorting
- clk = clock();
+ clk = Abc_Clock();
Abc_QuickSort3( pData1, nSize, 1 );
- Abc_PrintTime( 1, "Sort new", clock() - clk );
+ Abc_PrintTime( 1, "Sort new", Abc_Clock() - clk );
// print the result
if ( fVerbose )
{
@@ -765,9 +765,9 @@ void Abc_QuickSortTest()
printf( "\n" );
}
// create new numbers
- clk = clock();
+ clk = Abc_Clock();
Abc_QuickSort1( pData2, nSize, 1 );
- Abc_PrintTime( 1, "Sort old", clock() - clk );
+ Abc_PrintTime( 1, "Sort old", Abc_Clock() - clk );
// print the result
if ( fVerbose )
{
diff --git a/src/misc/util/util_hack.h b/src/misc/util/util_hack.h
index 4d611ef4..cbbb7c2d 100644
--- a/src/misc/util/util_hack.h
+++ b/src/misc/util/util_hack.h
@@ -37,7 +37,7 @@ ABC_NAMESPACE_HEADER_START
#define getSoftDataLimit Extra_GetSoftDataLimit
#define MMoutOfMemory Extra_UtilMMoutOfMemory
-extern clock_t Extra_CpuTime();
+extern abctime Extra_CpuTime();
extern int Extra_GetSoftDataLimit();
extern void (*Extra_UtilMMoutOfMemory)( long size );