summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaMuxes.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-07-09 20:22:51 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-07-09 20:22:51 -0700
commitc58b57e2b45943a0b015290c0fffb66c8a3e12a8 (patch)
tree4d6c14a3a67eca3cf09284f0032e026492882cfd /src/aig/gia/giaMuxes.c
parentea1e369fc296935ea7a9265a612e756d35086d5c (diff)
downloadabc-c58b57e2b45943a0b015290c0fffb66c8a3e12a8.tar.gz
abc-c58b57e2b45943a0b015290c0fffb66c8a3e12a8.tar.bz2
abc-c58b57e2b45943a0b015290c0fffb66c8a3e12a8.zip
Improvements to profiling and printing statistics.
Diffstat (limited to 'src/aig/gia/giaMuxes.c')
-rw-r--r--src/aig/gia/giaMuxes.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/aig/gia/giaMuxes.c b/src/aig/gia/giaMuxes.c
index 96dda567..c0c3b18f 100644
--- a/src/aig/gia/giaMuxes.c
+++ b/src/aig/gia/giaMuxes.c
@@ -371,7 +371,7 @@ void Gia_MuxStructDump_rec( Gia_Man_t * p, int iObj, int fFirst, Vec_Str_t * vSt
Vec_StrPush( vStr, ']' );
}
}
-void Gia_MuxStructDump( Gia_Man_t * p, int iObj, Vec_Str_t * vStr, int nDigitsNum, int nDigitsId )
+int Gia_MuxStructDump( Gia_Man_t * p, int iObj, Vec_Str_t * vStr, int nDigitsNum, int nDigitsId )
{
int Count1, Count2;
assert( Gia_ObjIsMuxId(p, iObj) );
@@ -382,6 +382,7 @@ void Gia_MuxStructDump( Gia_Man_t * p, int iObj, Vec_Str_t * vStr, int nDigitsNu
Vec_StrPush( vStr, '\0' );
Count2 = Gia_MuxRef( p, iObj );
assert( Count1 == Count2 );
+ return Count1;
}
/**Function*************************************************************
@@ -530,7 +531,9 @@ void Gia_ManMuxProfiling( Gia_Man_t * p )
if ( Gia_ObjRefNumId(pNew, i) == 1 && Gia_ObjIsMuxId(pNew, Vec_IntEntry(vFans, i)) )
continue;
// this node is the root of the MUX structure - create hash key
- Gia_MuxStructDump( pNew, i, vStr, 3, nDigitsId );
+ Counter = Gia_MuxStructDump( pNew, i, vStr, 3, nDigitsId );
+ if ( Counter == 1 )
+ continue;
iStructId = Abc_NamStrFindOrAdd( pMan->pNames, Vec_StrArray(vStr), &fFound );
if ( !fFound )
Vec_WecPushLevel( pMan->vTops );
@@ -542,7 +545,7 @@ void Gia_ManMuxProfiling( Gia_Man_t * p )
printf( "MUX structure profile for AIG \"%s\":\n", p->pName );
printf( "Total MUXes = %d. Total trees = %d. Unique trees = %d. Memory = %.2f MB ",
- Gia_ManMuxNum(pNew), Vec_WecSizeSize(pMan->vTops), Vec_WecSize(pMan->vTops),
+ Gia_ManMuxNum(pNew), Vec_WecSizeSize(pMan->vTops), Vec_WecSize(pMan->vTops)-1,
1.0*Abc_NamMemUsed(pMan->pNames)/(1<<20) );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk );