summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-02-23 17:13:42 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2013-02-23 17:13:42 -0800
commitfdba646b64d972bfb1830c6fc269bc8e0b9d93d0 (patch)
tree1c17802f8b51d52e1796ff16dd2550d9c3d944a0 /src
parent7802db98af7705be65f7e58986ed52afc52d4d64 (diff)
downloadabc-fdba646b64d972bfb1830c6fc269bc8e0b9d93d0.tar.gz
abc-fdba646b64d972bfb1830c6fc269bc8e0b9d93d0.tar.bz2
abc-fdba646b64d972bfb1830c6fc269bc8e0b9d93d0.zip
Integrating sweeping information.
Diffstat (limited to 'src')
-rw-r--r--src/aig/gia/giaAiger.c13
-rw-r--r--src/aig/gia/giaSweep.c6
-rw-r--r--src/misc/tim/timMan.c4
3 files changed, 17 insertions, 6 deletions
diff --git a/src/aig/gia/giaAiger.c b/src/aig/gia/giaAiger.c
index 0e9172c8..29bcddfa 100644
--- a/src/aig/gia/giaAiger.c
+++ b/src/aig/gia/giaAiger.c
@@ -25,6 +25,7 @@
ABC_NAMESPACE_IMPL_START
+#define XAIG_VERBOSE 0
////////////////////////////////////////////////////////////////////////
/// DECLARATIONS ///
@@ -495,7 +496,7 @@ Gia_Man_t * Gia_AigerReadFromMemory( char * pContents, int nFileSize, int fSkipS
// check if there are other types of information to read
if ( pCur + 1 < (unsigned char *)pContents + nFileSize && *pCur == 'c' )
{
- int fVerbose = 0;
+ int fVerbose = XAIG_VERBOSE;
Vec_Str_t * vStr;
unsigned char * pCurTemp;
pCur++;
@@ -967,7 +968,7 @@ Vec_Str_t * Gia_AigerWriteIntoMemoryStrPart( Gia_Man_t * p, Vec_Int_t * vCis, Ve
***********************************************************************/
void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int fCompact )
{
- int fVerbose = 0;
+ int fVerbose = XAIG_VERBOSE;
FILE * pFile;
Gia_Man_t * p;
Gia_Obj_t * pObj;
@@ -996,9 +997,11 @@ void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int
{
// printf( "Gia_AigerWrite(): Normalizing AIG for writing.\n" );
p = Gia_ManDupNormalize( pInit );
- p->pManTime = pInit->pManTime; pInit->pManTime = NULL;
- p->vNamesIn = pInit->vNamesIn; pInit->vNamesIn = NULL;
- p->vNamesOut = pInit->vNamesOut; pInit->vNamesOut = NULL;
+ p->pManTime = pInit->pManTime; pInit->pManTime = NULL;
+ p->vNamesIn = pInit->vNamesIn; pInit->vNamesIn = NULL;
+ p->vNamesOut = pInit->vNamesOut; pInit->vNamesOut = NULL;
+ p->pAigExtra = pInit->pAigExtra; pInit->pAigExtra = NULL;
+ p->nAnd2Delay = pInit->nAnd2Delay; pInit->nAnd2Delay = 0;
}
else
p = pInit;
diff --git a/src/aig/gia/giaSweep.c b/src/aig/gia/giaSweep.c
index ac52fe9c..4ef8725e 100644
--- a/src/aig/gia/giaSweep.c
+++ b/src/aig/gia/giaSweep.c
@@ -326,6 +326,12 @@ Gia_Man_t * Gia_ManFraigSweep( Gia_Man_t * p, void * pPars )
pTemp->pManTime = NULL;
pTemp->pAigExtra = NULL;
Gia_ManStop( pTemp );
+ // normalize the result
+ pNew = Gia_ManDupNormalize( pTemp = pNew );
+ pNew->pManTime = pTemp->pManTime; pTemp->pManTime = NULL;
+ pNew->pAigExtra = pTemp->pAigExtra; pTemp->pAigExtra = NULL;
+ pNew->nAnd2Delay = pTemp->nAnd2Delay; pTemp->nAnd2Delay = 0;
+ Gia_ManStop( pTemp );
// return the result
assert( pNew->pManTime != NULL );
assert( pNew->pAigExtra != NULL );
diff --git a/src/misc/tim/timMan.c b/src/misc/tim/timMan.c
index 50054f53..4825ed71 100644
--- a/src/misc/tim/timMan.c
+++ b/src/misc/tim/timMan.c
@@ -188,7 +188,9 @@ Tim_Man_t * Tim_ManTrim( Tim_Man_t * p, Vec_Int_t * vBoxPres )
pNew = Tim_ManStart( nNewCis, nNewCos );
// copy box connectivity information
memcpy( pNew->pCis, p->pCis, sizeof(Tim_Obj_t) * Tim_ManPiNum(p) );
- memcpy( pNew->pCos, p->pCos, sizeof(Tim_Obj_t) * Tim_ManPoNum(p) );
+ memcpy( pNew->pCos + nNewCos - Tim_ManPoNum(p),
+ p->pCos + Tim_ManCoNum(p) - Tim_ManPoNum(p),
+ sizeof(Tim_Obj_t) * Tim_ManPoNum(p) );
// duplicate delay tables
if ( Tim_ManDelayTableNum(p) > 0 )
{