diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-04-03 13:52:13 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-04-03 13:52:13 -0700 |
commit | c1670d7444f040984fc0f4cca5d0c8c3bc5bb2e2 (patch) | |
tree | cccac0b9df6fead718c85fde289c02ee853a7c0f /src/map/if/ifMan.c | |
parent | 71e11a3eec43738aef8c06e625882db57d29f4c3 (diff) | |
download | abc-c1670d7444f040984fc0f4cca5d0c8c3bc5bb2e2.tar.gz abc-c1670d7444f040984fc0f4cca5d0c8c3bc5bb2e2.tar.bz2 abc-c1670d7444f040984fc0f4cca5d0c8c3bc5bb2e2.zip |
Improvements to technology mapping.
Diffstat (limited to 'src/map/if/ifMan.c')
-rw-r--r-- | src/map/if/ifMan.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/map/if/ifMan.c b/src/map/if/ifMan.c index 7874d7e0..7e52650d 100644 --- a/src/map/if/ifMan.c +++ b/src/map/if/ifMan.c @@ -92,12 +92,20 @@ If_Man_t * If_ManStart( If_Par_t * pPars ) p->puTempW = p->pPars->fTruth? ABC_ALLOC( word, p->nTruth6Words[p->pPars->nLutSize] ) : NULL; if ( pPars->fUseDsd ) { - p->vTtDsds = Vec_IntAlloc( 1000 ); - Vec_IntPush( p->vTtDsds, 0 ); - Vec_IntPush( p->vTtDsds, 2 ); - p->vTtPerms = Vec_StrAlloc( 10000 ); - Vec_StrFill( p->vTtPerms, 2 * p->pPars->nLutSize, IF_BIG_CHAR ); - Vec_StrWriteEntry( p->vTtPerms, p->pPars->nLutSize, 0 ); + for ( v = 6; v <= p->pPars->nLutSize; v++ ) + { + p->vTtDsds[v] = Vec_IntAlloc( 1000 ); + Vec_IntPush( p->vTtDsds[v], 0 ); + Vec_IntPush( p->vTtDsds[v], 2 ); + p->vTtPerms[v] = Vec_StrAlloc( 10000 ); + Vec_StrFill( p->vTtPerms[v], 2 * v, IF_BIG_CHAR ); + Vec_StrWriteEntry( p->vTtPerms[v], v, 0 ); + } + for ( v = 0; v < 6; v++ ) + { + p->vTtDsds[v] = p->vTtDsds[6]; + p->vTtPerms[v] = p->vTtPerms[6]; + } } if ( pPars->fUseTtPerm ) { @@ -204,8 +212,10 @@ void If_ManStop( If_Man_t * p ) Vec_PtrFreeP( &p->vObjsRev ); Vec_PtrFreeP( &p->vLatchOrder ); Vec_IntFreeP( &p->vLags ); - Vec_IntFreeP( &p->vTtDsds ); - Vec_StrFreeP( &p->vTtPerms ); + for ( i = 6; i <= p->pPars->nLutSize; i++ ) + Vec_IntFreeP( &p->vTtDsds[i] ); + for ( i = 6; i <= p->pPars->nLutSize; i++ ) + Vec_StrFreeP( &p->vTtPerms[i] ); Vec_IntFreeP( &p->vCutData ); Vec_IntFreeP( &p->vPairRes ); Vec_StrFreeP( &p->vPairPerms ); |