summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-09-30 20:38:13 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-09-30 20:38:13 -0700
commite48cfd92eec8d827c85fc7cd61521a8ebbcc6fd2 (patch)
tree80bb772e704f327cb1fa9d669911ea1d008758d5 /src
parent181a7629276a1c567d5bcae7533f516483dc75d0 (diff)
downloadabc-e48cfd92eec8d827c85fc7cd61521a8ebbcc6fd2.tar.gz
abc-e48cfd92eec8d827c85fc7cd61521a8ebbcc6fd2.tar.bz2
abc-e48cfd92eec8d827c85fc7cd61521a8ebbcc6fd2.zip
Producing AIG after structural mapping.
Diffstat (limited to 'src')
-rw-r--r--src/aig/gia/giaJf.c5
-rw-r--r--src/opt/dau/dauGia.c9
2 files changed, 8 insertions, 6 deletions
diff --git a/src/aig/gia/giaJf.c b/src/aig/gia/giaJf.c
index f8146406..286d2d71 100644
--- a/src/aig/gia/giaJf.c
+++ b/src/aig/gia/giaJf.c
@@ -1440,7 +1440,7 @@ void Jf_ManDeriveMapping( Jf_Man_t * p )
***********************************************************************/
Gia_Man_t * Jf_ManDeriveGia( Jf_Man_t * p )
{
- Gia_Man_t * pNew;
+ Gia_Man_t * pNew, * pTemp;
Gia_Obj_t * pObj;
Vec_Int_t * vCopies = Vec_IntStartFull( Gia_ManObjNum(p->pGia) );
Vec_Int_t * vCover = Vec_IntAlloc( 1 << 16 );
@@ -1516,6 +1516,9 @@ Gia_Man_t * Jf_ManDeriveGia( Jf_Man_t * p )
Gia_ManHashStop( pNew );
Gia_ManSetRegNum( pNew, Gia_ManRegNum(p->pGia) );
// Dsm_ManReportStats();
+ // perform cleanup
+ pNew = Gia_ManCleanup( pTemp = pNew );
+ Gia_ManStop( pTemp );
return pNew;
}
diff --git a/src/opt/dau/dauGia.c b/src/opt/dau/dauGia.c
index 54cd4782..7e7d9094 100644
--- a/src/opt/dau/dauGia.c
+++ b/src/opt/dau/dauGia.c
@@ -161,11 +161,10 @@ int Dau_DsdToGia_rec( Gia_Man_t * pGia, char * pStr, char ** p, int * pMatches,
}
if ( (**p >= 'A' && **p <= 'F') || (**p >= '0' && **p <= '9') )
{
- word Func;
+ Vec_Int_t vLeaves; char * q;
+ word pFunc[DAU_DSD_MAX_VAR > 6 ? (1 << (DAU_DSD_MAX_VAR-6)) : 1];
int Fanins[DAU_DSD_MAX_VAR], Res;
- Vec_Int_t vLeaves;
- char * q;
- int i, nVars = Abc_TtReadHex( &Func, *p );
+ int i, nVars = Abc_TtReadHex( pFunc, *p );
*p += Abc_TtHexDigitNum( nVars );
q = pStr + pMatches[ *p - pStr ];
assert( **p == '{' && *q == '}' );
@@ -177,7 +176,7 @@ int Dau_DsdToGia_rec( Gia_Man_t * pGia, char * pStr, char ** p, int * pMatches,
vLeaves.nCap = nVars;
vLeaves.nSize = nVars;
vLeaves.pArray = Fanins;
- Res = Kit_TruthToGia( pGia, (unsigned *)&Func, nVars, vCover, &vLeaves, 1 );
+ Res = Kit_TruthToGia( pGia, (unsigned *)pFunc, nVars, vCover, &vLeaves, 1 );
m_Non1Step++;
return Abc_LitNotCond( Res, fCompl );
}