diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2017-10-04 12:37:38 +0300 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2017-10-04 12:37:38 +0300 |
commit | 396215532c19ea54d5ad89e509c258deb25671d5 (patch) | |
tree | 2b78b4cc6d03233c4657d05725571e1bc5e39247 /src/map/mio | |
parent | 343f77a39546c45e11ad22a3fd978fc17d73720a (diff) | |
download | abc-396215532c19ea54d5ad89e509c258deb25671d5.tar.gz abc-396215532c19ea54d5ad89e509c258deb25671d5.tar.bz2 abc-396215532c19ea54d5ad89e509c258deb25671d5.zip |
Updates and bug fixes.
Diffstat (limited to 'src/map/mio')
-rw-r--r-- | src/map/mio/mio.h | 2 | ||||
-rw-r--r-- | src/map/mio/mioInt.h | 4 | ||||
-rw-r--r-- | src/map/mio/mioUtils.c | 24 |
3 files changed, 19 insertions, 11 deletions
diff --git a/src/map/mio/mio.h b/src/map/mio/mio.h index 5f04029a..d7f52f8c 100644 --- a/src/map/mio/mio.h +++ b/src/map/mio/mio.h @@ -224,7 +224,7 @@ extern void Mio_LibraryMatchesFetch( Mio_Library_t * pLib, Vec_Mem_ extern void Mio_LibraryMatches2Stop( Mio_Library_t * pLib ); extern void Mio_LibraryMatches2Start( Mio_Library_t * pLib ); -extern void Mio_LibraryMatches2Fetch( Mio_Library_t * pLib, Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Mem_t ** pvTtMem, Vec_Int_t ** pvTt2Match, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs ); +extern void Mio_LibraryMatches2Fetch( Mio_Library_t * pLib, Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs, Vec_Mem_t * pvTtMem2[3], Vec_Int_t * pvTt2Match2[3] ); /*=== sclUtil.c =========================================================*/ extern Mio_Library_t * Abc_SclDeriveGenlibSimple( void * pScl ); diff --git a/src/map/mio/mioInt.h b/src/map/mio/mioInt.h index 6c754c18..bf01f588 100644 --- a/src/map/mio/mioInt.h +++ b/src/map/mio/mioInt.h @@ -86,10 +86,10 @@ struct Mio_LibraryStruct_t_ int nCells; // library gate count Vec_Ptr_t * vNames; Vec_Wrd_t * vTruths; - Vec_Mem_t * vTtMem_; - Vec_Int_t * vTt2Match_; Vec_Int_t * vTt2Match4; Vec_Int_t * vConfigs; + Vec_Mem_t * vTtMem2[3]; + Vec_Int_t * vTt2Match2[3]; }; struct Mio_GateStruct_t_ diff --git a/src/map/mio/mioUtils.c b/src/map/mio/mioUtils.c index 70306b5e..b2ee8ab9 100644 --- a/src/map/mio/mioUtils.c +++ b/src/map/mio/mioUtils.c @@ -1705,34 +1705,42 @@ void Mio_LibraryMatchesFetch( Mio_Library_t * pLib, Vec_Mem_t ** pvTtMem, Vec_We ***********************************************************************/ void Mio_LibraryMatches2Stop( Mio_Library_t * pLib ) { + int i; if ( !pLib->vNames ) return; Vec_PtrFree( pLib->vNames ); Vec_WrdFree( pLib->vTruths ); - Vec_MemHashFree( pLib->vTtMem_ ); - Vec_MemFree( pLib->vTtMem_ ); - Vec_IntFree( pLib->vTt2Match_ ); Vec_IntFree( pLib->vTt2Match4 ); Vec_IntFree( pLib->vConfigs ); + for ( i = 0; i < 3; i++ ) + { + Vec_MemHashFree( pLib->vTtMem2[i] ); + Vec_MemFree( pLib->vTtMem2[i] ); + Vec_IntFree( pLib->vTt2Match2[i] ); + } } void Mio_LibraryMatches2Start( Mio_Library_t * pLib ) { - extern int Gia_ManDeriveMatches( Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Mem_t ** pvTtMem, Vec_Int_t ** pvTt2Match, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs ); + extern int Gia_ManDeriveMatches( Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs, Vec_Mem_t * pvTtMem2[3], Vec_Int_t * pvTt2Match2[3] ); if ( pLib->vNames ) return; if ( pLib->vTtMem ) Mio_LibraryMatches2Stop( pLib ); - Gia_ManDeriveMatches( &pLib->vNames, &pLib->vTruths, &pLib->vTtMem_, &pLib->vTt2Match_, &pLib->vTt2Match4, &pLib->vConfigs ); + Gia_ManDeriveMatches( &pLib->vNames, &pLib->vTruths, &pLib->vTt2Match4, &pLib->vConfigs, pLib->vTtMem2, pLib->vTt2Match2 ); } -void Mio_LibraryMatches2Fetch( Mio_Library_t * pLib, Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Mem_t ** pvTtMem, Vec_Int_t ** pvTt2Match, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs ) +void Mio_LibraryMatches2Fetch( Mio_Library_t * pLib, Vec_Ptr_t ** pvNames, Vec_Wrd_t ** pvTruths, Vec_Int_t ** pvTt2Match4, Vec_Int_t ** pvConfigs, Vec_Mem_t * pvTtMem2[3], Vec_Int_t * pvTt2Match2[3] ) { + int i; Mio_LibraryMatches2Start( pLib ); *pvNames = pLib->vNames; *pvTruths = pLib->vTruths; - *pvTtMem = pLib->vTtMem_; - *pvTt2Match = pLib->vTt2Match_; *pvTt2Match4 = pLib->vTt2Match4; *pvConfigs = pLib->vConfigs; + for ( i = 0; i < 3; i++ ) + { + pvTtMem2[i] = pLib->vTtMem2[i]; + pvTt2Match2[i] = pLib->vTt2Match2[i]; + } } //////////////////////////////////////////////////////////////////////// |