diff options
Diffstat (limited to 'src/aig/gia')
-rw-r--r-- | src/aig/gia/giaDup.c | 2 | ||||
-rw-r--r-- | src/aig/gia/giaHash.c | 10 | ||||
-rw-r--r-- | src/aig/gia/giaShow.c | 11 |
3 files changed, 16 insertions, 7 deletions
diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index 3ffb948e..a2277294 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -2949,7 +2949,7 @@ Gia_Man_t * Gia_ManDupCones( Gia_Man_t * p, int * pPos, int nPos, int fTrimPis ) // start the new manager // Gia_ManFillValue( p ); - pNew = Gia_ManStart( Vec_PtrSize(vLeaves) + Vec_PtrSize(vNodes) + Vec_PtrSize(vRoots) + 1); + pNew = Gia_ManStart( (fTrimPis ? Vec_PtrSize(vLeaves) : Gia_ManCiNum(p)) + Vec_PtrSize(vNodes) + Vec_PtrSize(vRoots) + 1 ); pNew->pName = Abc_UtilStrsav( p->pName ); pNew->pSpec = Abc_UtilStrsav( p->pSpec ); // map the constant node diff --git a/src/aig/gia/giaHash.c b/src/aig/gia/giaHash.c index d4a47ac5..c80f9e07 100644 --- a/src/aig/gia/giaHash.c +++ b/src/aig/gia/giaHash.c @@ -575,11 +575,6 @@ int Gia_ManHashMuxReal( Gia_Man_t * p, int iLitC, int iLit1, int iLit0 ) ***********************************************************************/ int Gia_ManHashAnd( Gia_Man_t * p, int iLit0, int iLit1 ) { - if ( p->fGiaSimple ) - { - assert( p->nHTable == 0 ); - return Gia_ManAppendAnd( p, iLit0, iLit1 ); - } if ( iLit0 < 2 ) return iLit0 ? iLit1 : 0; if ( iLit1 < 2 ) @@ -588,6 +583,11 @@ int Gia_ManHashAnd( Gia_Man_t * p, int iLit0, int iLit1 ) return iLit1; if ( iLit0 == Abc_LitNot(iLit1) ) return 0; + if ( p->fGiaSimple ) + { + assert( p->nHTable == 0 ); + return Gia_ManAppendAnd( p, iLit0, iLit1 ); + } if ( (p->nObjs & 0xFF) == 0 && 2 * p->nHTable < Gia_ManAndNum(p) ) Gia_ManHashResize( p ); if ( p->fAddStrash ) diff --git a/src/aig/gia/giaShow.c b/src/aig/gia/giaShow.c index 9cf79ccf..039931b2 100644 --- a/src/aig/gia/giaShow.c +++ b/src/aig/gia/giaShow.c @@ -362,20 +362,29 @@ void Gia_WriteDotAig( Gia_Man_t * pMan, char * pFileName, Vec_Int_t * vBold, int fprintf( pFile, " Node%d [label = \"%d(%d%s)\"", pNode->Id, pNode->Id, Gia_Regular(pNode->pEquiv)->Id, Gia_IsComplement(pNode->pEquiv)? "\'":"" ); */ - fprintf( pFile, " Node%d [label = \"%d\"", i, i ); if ( vMarks && Vec_IntEntry(vMarks, i) > 0 ) { + fprintf( pFile, " Node%d [label = \"%d_%d\"", i, Vec_IntFind(vRemap, i), i ); if ( Abc_Lit2Att2(Vec_IntEntry(vMarks, i)) == 2 ) fprintf( pFile, ", shape = doubleoctagon" ); else fprintf( pFile, ", shape = octagon" ); } else if ( Gia_ObjIsXor(pNode) ) + { + fprintf( pFile, " Node%d [label = \"%d\"", i, i ); fprintf( pFile, ", shape = doublecircle" ); + } else if ( Gia_ObjIsMux(pMan, pNode) ) + { + fprintf( pFile, " Node%d [label = \"%d\"", i, i ); fprintf( pFile, ", shape = trapezium" ); + } else + { + fprintf( pFile, " Node%d [label = \"%d\"", i, i ); fprintf( pFile, ", shape = ellipse" ); + } if ( pNode->fMark0 ) fprintf( pFile, ", style = filled" ); |