summaryrefslogtreecommitdiffstats
path: root/src/base/main
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2019-01-17 11:07:31 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2019-01-17 11:07:31 -0800
commit4d8c72d0e923fe4e052cac4a3ef1b6138ecb3f1e (patch)
treee2381b1b938e677e82b5290c99fe576f95f61d19 /src/base/main
parentd05f89d9977f5cb27d25ad5ae167ff5a311ea7e2 (diff)
downloadabc-4d8c72d0e923fe4e052cac4a3ef1b6138ecb3f1e.tar.gz
abc-4d8c72d0e923fe4e052cac4a3ef1b6138ecb3f1e.tar.bz2
abc-4d8c72d0e923fe4e052cac4a3ef1b6138ecb3f1e.zip
Fixing the problem with outputting word-level CEXes after retiming.
Diffstat (limited to 'src/base/main')
-rw-r--r--src/base/main/main.h2
-rw-r--r--src/base/main/mainFrame.c4
-rw-r--r--src/base/main/mainInt.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/base/main/main.h b/src/base/main/main.h
index 2efb3358..f4ec90e2 100644
--- a/src/base/main/main.h
+++ b/src/base/main/main.h
@@ -127,6 +127,8 @@ extern ABC_DLL int Abc_FrameReadCexPiNum( Abc_Frame_t * p );
extern ABC_DLL int Abc_FrameReadCexRegNum( Abc_Frame_t * p );
extern ABC_DLL int Abc_FrameReadCexPo( Abc_Frame_t * p );
extern ABC_DLL int Abc_FrameReadCexFrame( Abc_Frame_t * p );
+extern ABC_DLL Vec_Ptr_t * Abc_FrameReadCexCiNames( Abc_Frame_t * p );
+extern ABC_DLL void Abc_FrameSetCexCiNames( Vec_Ptr_t * vNames );
extern ABC_DLL void Abc_FrameSetNtkStore( Abc_Ntk_t * pNtk );
extern ABC_DLL void Abc_FrameSetNtkStoreSize( int nStored );
diff --git a/src/base/main/mainFrame.c b/src/base/main/mainFrame.c
index 1d54f4e4..71b21eb1 100644
--- a/src/base/main/mainFrame.c
+++ b/src/base/main/mainFrame.c
@@ -83,6 +83,9 @@ int Abc_FrameReadCexPiNum( Abc_Frame_t * p ) { return s_GlobalFr
int Abc_FrameReadCexRegNum( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->nRegs; }
int Abc_FrameReadCexPo( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iPo; }
int Abc_FrameReadCexFrame( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iFrame; }
+Vec_Ptr_t * Abc_FrameReadCexCiNames( Abc_Frame_t * p ) { return s_GlobalFrame->vCiNamesStore; }
+void Abc_FrameSetCexCiNames( Vec_Ptr_t * vNames ) { if ( s_GlobalFrame->vCiNamesStore ) Vec_PtrFreeFree(s_GlobalFrame->vCiNamesStore); s_GlobalFrame->vCiNamesStore = vNames; }
+
void Abc_FrameInputNdr( Abc_Frame_t * pAbc, void * pData ) { Ndr_Delete(s_GlobalFrame->pNdr); s_GlobalFrame->pNdr = pData; }
void * Abc_FrameOutputNdr( Abc_Frame_t * pAbc ) { void * pData = s_GlobalFrame->pNdr; s_GlobalFrame->pNdr = NULL; return pData; }
@@ -240,6 +243,7 @@ void Abc_FrameDeallocate( Abc_Frame_t * p )
Vec_WecFreeP( &s_GlobalFrame->vJsonObjs );
Ndr_Delete( s_GlobalFrame->pNdr );
ABC_FREE( s_GlobalFrame->pNdrArray );
+ Vec_PtrFreeFree( s_GlobalFrame->vCiNamesStore );
Gia_ManStopP( &p->pGiaMiniAig );
Gia_ManStopP( &p->pGiaMiniLut );
diff --git a/src/base/main/mainInt.h b/src/base/main/mainInt.h
index 7317c36f..b5a914e4 100644
--- a/src/base/main/mainInt.h
+++ b/src/base/main/mainInt.h
@@ -152,6 +152,7 @@ struct Abc_Frame_t_
int * pBoxes;
void * pNdr;
int * pNdrArray;
+ Vec_Ptr_t * vCiNamesStore; // storage for CI names
Abc_Frame_Callback_BmcFrameDone_Func pFuncOnFrameDone;
};