summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-09-26 00:00:49 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-09-26 00:00:49 -0700
commitc8fa1c82f77ae7bc63d3a1545f4df12bf2d62d9a (patch)
tree0ab9320a6b5e871160c2fc4ec53c9acbfdbf2946 /src
parentbce6d5ab9678d80793194eaf13df6181545bbe90 (diff)
downloadabc-c8fa1c82f77ae7bc63d3a1545f4df12bf2d62d9a.tar.gz
abc-c8fa1c82f77ae7bc63d3a1545f4df12bf2d62d9a.tar.bz2
abc-c8fa1c82f77ae7bc63d3a1545f4df12bf2d62d9a.zip
Updates to the mapper.
Diffstat (limited to 'src')
-rw-r--r--src/aig/gia/giaJf.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/aig/gia/giaJf.c b/src/aig/gia/giaJf.c
index da434516..93329abe 100644
--- a/src/aig/gia/giaJf.c
+++ b/src/aig/gia/giaJf.c
@@ -1207,7 +1207,10 @@ int Jf_ManComputeRefs( Jf_Man_t * p )
p->pPars->Edge += Jf_CutSize(pCut);
p->pPars->Area++;
}
- // blend references and normalize flow
+ }
+ // blend references and normalize flow
+ Gia_ManForEachObj( p->pGia, pObj, i )
+ {
if ( p->pPars->fOptEdge )
nRefsNew = Abc_MaxFloat( 1, 0.8 * pRefs[i] + 0.2 * p->pGia->pRefs[i] );
else
@@ -1216,6 +1219,7 @@ int Jf_ManComputeRefs( Jf_Man_t * p )
pRefs[i] = nRefsNew;
assert( pFlow[i] >= 0 );
}
+ // compute delay
p->pPars->Delay = Jf_ManComputeDelay( p, 1 );
return p->pPars->Area;
}
@@ -1308,8 +1312,8 @@ Gia_Man_t * Jf_ManDeriveMappingGia( Jf_Man_t * p )
Gia_Man_t * pNew;
Gia_Obj_t * pObj;
Vec_Int_t * vCopies = Vec_IntStartFull( Gia_ManObjNum(p->pGia) );
- Vec_Int_t * vMapping = Vec_IntStart( 2 * Gia_ManObjNum(p->pGia) );
- Vec_Int_t * vMapping2 = Vec_IntStart( 1 );
+ Vec_Int_t * vMapping = Vec_IntStart( 2 * Gia_ManObjNum(p->pGia) + (int)p->pPars->Edge + 2 * (int)p->pPars->Area );
+ Vec_Int_t * vMapping2 = Vec_IntStart( (int)p->pPars->Edge + 2 * (int)p->pPars->Area + 1000 );
Vec_Int_t * vCover = Vec_IntAlloc( 1 << 16 );
Vec_Int_t * vLeaves = Vec_IntAlloc( 16 );
int i, k, iLit, Class, * pCut;