diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2016-04-27 18:33:23 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2016-04-27 18:33:23 -0700 |
commit | 53e86477193186a3b2625f544cc4aad876a832cc (patch) | |
tree | bb8e5157ed4d8a133b66450a3b7a30a546853324 /src/aig/gia | |
parent | e8f961671c8174971365c4d49e4aa076ce8a7545 (diff) | |
download | abc-53e86477193186a3b2625f544cc4aad876a832cc.tar.gz abc-53e86477193186a3b2625f544cc4aad876a832cc.tar.bz2 abc-53e86477193186a3b2625f544cc4aad876a832cc.zip |
Adding option to rehash AIG after mapping.
Diffstat (limited to 'src/aig/gia')
-rw-r--r-- | src/aig/gia/gia.h | 2 | ||||
-rw-r--r-- | src/aig/gia/giaAiger.c | 2 | ||||
-rw-r--r-- | src/aig/gia/giaBalAig.c | 2 | ||||
-rw-r--r-- | src/aig/gia/giaDup.c | 8 | ||||
-rw-r--r-- | src/aig/gia/giaFadds.c | 2 | ||||
-rw-r--r-- | src/aig/gia/giaIf.c | 5 | ||||
-rw-r--r-- | src/aig/gia/giaLf.c | 4 | ||||
-rw-r--r-- | src/aig/gia/giaStr.c | 2 | ||||
-rw-r--r-- | src/aig/gia/giaSweep.c | 4 | ||||
-rw-r--r-- | src/aig/gia/giaTim.c | 3 |
10 files changed, 16 insertions, 18 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h index 0b899698..82e82cb2 100644 --- a/src/aig/gia/gia.h +++ b/src/aig/gia/gia.h @@ -1456,7 +1456,7 @@ extern int Gia_ManClockDomainNum( Gia_Man_t * p ); extern int Gia_ManIsSeqWithBoxes( Gia_Man_t * p ); extern int Gia_ManIsNormalized( Gia_Man_t * p ); extern Vec_Int_t * Gia_ManOrderWithBoxes( Gia_Man_t * p ); -extern Gia_Man_t * Gia_ManDupNormalize( Gia_Man_t * p ); +extern Gia_Man_t * Gia_ManDupNormalize( Gia_Man_t * p, int fHashMapping ); extern Gia_Man_t * Gia_ManDupUnnormalize( Gia_Man_t * p ); extern Gia_Man_t * Gia_ManDupUnshuffleInputs( Gia_Man_t * p ); extern int Gia_ManLevelWithBoxes( Gia_Man_t * p ); diff --git a/src/aig/gia/giaAiger.c b/src/aig/gia/giaAiger.c index 04ad8641..940d75ac 100644 --- a/src/aig/gia/giaAiger.c +++ b/src/aig/gia/giaAiger.c @@ -1105,7 +1105,7 @@ void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int if ( !Gia_ManIsNormalized(pInit) ) { // printf( "Gia_AigerWrite(): Normalizing AIG for writing.\n" ); - p = Gia_ManDupNormalize( pInit ); + p = Gia_ManDupNormalize( pInit, 0 ); Gia_ManTransferMapping( p, pInit ); Gia_ManTransferPacking( p, pInit ); Gia_ManTransferTiming( p, pInit ); diff --git a/src/aig/gia/giaBalAig.c b/src/aig/gia/giaBalAig.c index 6525d3fb..bc27e187 100644 --- a/src/aig/gia/giaBalAig.c +++ b/src/aig/gia/giaBalAig.c @@ -1055,7 +1055,7 @@ Gia_Man_t * Gia_ManAreaBalance( Gia_Man_t * p, int fSimpleAnd, int nNewNodesMax, // normalize if needed if ( !Gia_ManIsNormalized(pNew2) ) { - pNew2 = Gia_ManDupNormalize( pNew1 = pNew2 ); + pNew2 = Gia_ManDupNormalize( pNew1 = pNew2, 0 ); Gia_ManStop( pNew1 ); } Gia_ManTransferTiming( pNew2, p ); diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index f539642d..e204fb55 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -2165,7 +2165,7 @@ Gia_Man_t * Gia_ManDupTopAnd_iter( Gia_Man_t * p, int fVerbose ) printf( "The AIG cannot be decomposed using AND-decomposition.\n" ); Vec_IntFree( vFront ); Vec_IntFree( vLeaves ); - return Gia_ManDupNormalize( p ); + return Gia_ManDupNormalize( p, 0 ); } // expand the frontier Gia_ManForEachObjVec( vFront, p, pObj, i ) @@ -2210,7 +2210,7 @@ Gia_Man_t * Gia_ManDupTopAnd_iter( Gia_Man_t * p, int fVerbose ) ABC_FREE( pCi2Lit ); ABC_FREE( pVar2Val ); Vec_IntFree( vLeaves ); - return Gia_ManDupNormalize( p ); + return Gia_ManDupNormalize( p, 0 ); } // create array of input literals Vec_IntClear( vLeaves ); @@ -2245,7 +2245,7 @@ Gia_Man_t * Gia_ManDupTopAnd( Gia_Man_t * p, int fVerbose ) { Gia_Man_t * pNew, * pTemp; int fContinue, iIter = 0; - pNew = Gia_ManDupNormalize( p ); + pNew = Gia_ManDupNormalize( p, 0 ); for ( fContinue = 1; fContinue; ) { pNew = Gia_ManDupTopAnd_iter( pTemp = pNew, fVerbose ); @@ -2425,7 +2425,7 @@ Gia_Man_t * Gia_ManMiter( Gia_Man_t * p0, Gia_Man_t * p1, int nInsDup, int fDual pNew = Gia_ManCleanup( pTemp = pNew ); Gia_ManStop( pTemp ); - pNew = Gia_ManDupNormalize( pTemp = pNew ); + pNew = Gia_ManDupNormalize( pTemp = pNew, 0 ); Gia_ManStop( pTemp ); return pNew; } diff --git a/src/aig/gia/giaFadds.c b/src/aig/gia/giaFadds.c index dc39131a..4014814a 100644 --- a/src/aig/gia/giaFadds.c +++ b/src/aig/gia/giaFadds.c @@ -726,7 +726,7 @@ Gia_Man_t * Gia_ManDupWithNaturalBoxes( Gia_Man_t * p, int nFaddMin, int fVerbos pNew->pAigExtra = Gia_ManGenerateExtraAig( nBoxes, 3, 2 ); /* // normalize - pNew = Gia_ManDupNormalize( pTemp = pNew ); + pNew = Gia_ManDupNormalize( pTemp = pNew, 0 ); pNew->pManTime = pTemp->pManTime; pTemp->pManTime = NULL; pNew->pAigExtra = pTemp->pAigExtra; pTemp->pAigExtra = NULL; Gia_ManStop( pTemp ); diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c index 326e6a48..9a72f576 100644 --- a/src/aig/gia/giaIf.c +++ b/src/aig/gia/giaIf.c @@ -2180,7 +2180,7 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp ) Gia_ManStop( p ); } // normalize - pNew = Gia_ManDupNormalize( p = pNew ); + pNew = Gia_ManDupNormalize( p = pNew, ((If_Par_t *)pp)->fHashMapping ); Gia_ManTransferMapping( pNew, p ); Gia_ManTransferPacking( pNew, p ); Gia_ManTransferTiming( pNew, p ); @@ -2189,10 +2189,9 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp ) } else { - int fHashMapping = 0; pNew = Gia_ManPerformMappingInt( p, (If_Par_t *)pp ); Gia_ManTransferTiming( pNew, p ); - if ( fHashMapping ) + if ( ((If_Par_t *)pp)->fHashMapping ) { pNew = Gia_ManDupHashMapping( p = pNew ); Gia_ManTransferPacking( pNew, p ); diff --git a/src/aig/gia/giaLf.c b/src/aig/gia/giaLf.c index 72deabeb..082b1928 100644 --- a/src/aig/gia/giaLf.c +++ b/src/aig/gia/giaLf.c @@ -2210,7 +2210,7 @@ Gia_Man_t * Lf_ManPerformMapping( Gia_Man_t * p, Jf_Par_t * pPars ) Gia_ManStop( p ); } // normalize - pNew = Gia_ManDupNormalize( p = pNew ); + pNew = Gia_ManDupNormalize( p = pNew, 0 ); Gia_ManTransferMapping( pNew, p ); // Gia_ManTransferPacking( pNew, p ); Gia_ManTransferTiming( pNew, p ); @@ -2279,7 +2279,7 @@ Gia_Man_t * Gia_ManPerformLfMapping( Gia_Man_t * p, Jf_Par_t * pPars, int fNorma Gia_ManStop( p ); } // normalize and transfer mapping - pNew = Gia_ManDupNormalize( p = pNew ); + pNew = Gia_ManDupNormalize( p = pNew, 0 ); Gia_ManTransferMapping( pNew, p ); // Gia_ManTransferPacking( pNew, p ); Gia_ManTransferTiming( pNew, p ); diff --git a/src/aig/gia/giaStr.c b/src/aig/gia/giaStr.c index ea44ebd6..bf89b547 100644 --- a/src/aig/gia/giaStr.c +++ b/src/aig/gia/giaStr.c @@ -1394,7 +1394,7 @@ Gia_Man_t * Gia_ManLutBalance( Gia_Man_t * p, int nLutSize, int fUseMuxes, int f Gia_ManTransferTiming( pNew, p ); Gia_ManStop( p ); // normalize - pNew = Gia_ManDupNormalize( p = pNew ); + pNew = Gia_ManDupNormalize( p = pNew, 0 ); Gia_ManTransferTiming( pNew, p ); Gia_ManStop( p ); // cleanup diff --git a/src/aig/gia/giaSweep.c b/src/aig/gia/giaSweep.c index 4c2ced07..3bb6487b 100644 --- a/src/aig/gia/giaSweep.c +++ b/src/aig/gia/giaSweep.c @@ -691,7 +691,7 @@ Gia_Man_t * Gia_ManSweepWithBoxesAndDomains( Gia_Man_t * p, void * pParsS, int f } } // normalize the result - pNew = Gia_ManDupNormalize( pTemp = pNew ); + pNew = Gia_ManDupNormalize( pTemp = pNew, 0 ); Gia_ManTransferTiming( pNew, pTemp ); Gia_ManStop( pTemp ); // check integrity @@ -757,7 +757,7 @@ Gia_Man_t * Gia_ManSweepWithBoxes( Gia_Man_t * p, void * pParsC, void * pParsS, pFlopTypes[0], pFlopTypes[1], Abc_MaxInt(0, pFlopTypes[2]), Abc_MaxInt(0, -pFlopTypes[2]) ); } // normalize the result - pNew = Gia_ManDupNormalize( pTemp = pNew ); + pNew = Gia_ManDupNormalize( pTemp = pNew, 0 ); Gia_ManTransferTiming( pNew, pTemp ); Gia_ManStop( pTemp ); // check integrity diff --git a/src/aig/gia/giaTim.c b/src/aig/gia/giaTim.c index a3adc9ce..feab0db1 100644 --- a/src/aig/gia/giaTim.c +++ b/src/aig/gia/giaTim.c @@ -135,9 +135,8 @@ int Gia_ManIsNormalized( Gia_Man_t * p ) SeeAlso [] ***********************************************************************/ -Gia_Man_t * Gia_ManDupNormalize( Gia_Man_t * p ) +Gia_Man_t * Gia_ManDupNormalize( Gia_Man_t * p, int fHashMapping ) { - int fHashMapping = 0; Gia_Man_t * pNew; Gia_Obj_t * pObj; int i; |