summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaIf.c
diff options
context:
space:
mode:
authorBruno Schmitt <bruno@oschmitt.com>2017-01-25 13:40:31 +0900
committerBruno Schmitt <bruno@oschmitt.com>2017-01-25 13:40:31 +0900
commit876eb5a52e67911ccc19d5f732aa9e1c9279fd26 (patch)
tree4a78999c29676235f613b4e1f8e1d1d0983107ba /src/aig/gia/giaIf.c
parent123b425052636beceaa52e47ea695d35b75fb40a (diff)
parent51f4dab475af1ffd22d23b5aeb8d7cf243739f75 (diff)
downloadabc-876eb5a52e67911ccc19d5f732aa9e1c9279fd26.tar.gz
abc-876eb5a52e67911ccc19d5f732aa9e1c9279fd26.tar.bz2
abc-876eb5a52e67911ccc19d5f732aa9e1c9279fd26.zip
Merged alanmi/abc into default
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r--src/aig/gia/giaIf.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c
index 26f549d0..ab80a762 100644
--- a/src/aig/gia/giaIf.c
+++ b/src/aig/gia/giaIf.c
@@ -539,33 +539,25 @@ void Gia_ManPrintMappingStats( Gia_Man_t * p, char * pDumpFile )
{
sprintf( FileNameOld, "%s", p->pName );
fprintf( pTable, "\n" );
- fprintf( pTable, "%s ", p->pName );
-// fprintf( pTable, "%d ", Gia_ManCiNum(p) );
-// fprintf( pTable, "%d ", Gia_ManCoNum(p) );
-// fprintf( pTable, "%d ", Gia_ManAndNum(p) );
-// fprintf( pTable, "%d ", Gia_ManPiNum(p) - Gia_ManBoxCiNum(p) - Gia_ManRegBoxNum(p) );
-// fprintf( pTable, "%d ", Gia_ManPoNum(p) - Gia_ManBoxCoNum(p) - Gia_ManRegBoxNum(p) );
-// fprintf( pTable, "%d ", Gia_ManClockDomainNum(p) );
-
+ fprintf( pTable, "%s ", p->pName );
fprintf( pTable, " " );
- fprintf( pTable, "%d ", p->MappedDelay );
- fprintf( pTable, "%d ", p->MappedArea );
- fprintf( pTable, "%d ", nFanins );
- fprintf( pTable, "%d ", LevelMax );
+ fprintf( pTable, "%d ", Gia_ManAndNum(p) );
fprintf( pTable, "%d ", nLuts );
-// fprintf( pTable, "%d ", Gia_ManRegBoxNum(p) );
-// fprintf( pTable, "%d ", Gia_ManNonRegBoxNum(p) );
+ fprintf( pTable, "%d ", Gia_ManLutLevelWithBoxes(p) );
+ //fprintf( pTable, "%d ", Gia_ManRegBoxNum(p) );
+ //fprintf( pTable, "%d ", Gia_ManNonRegBoxNum(p) );
+ //fprintf( pTable, "%.2f", 1.0*(Abc_Clock() - clk)/CLOCKS_PER_SEC );
clk = Abc_Clock();
}
else
{
- printf( "This part of the code is currently not used.\n" );
- assert( 0 );
+ //printf( "This part of the code is currently not used.\n" );
+ //assert( 0 );
fprintf( pTable, " " );
fprintf( pTable, "%d ", nLuts );
- fprintf( pTable, "%d ", LevelMax );
- fprintf( pTable, "%d ", Gia_ManRegBoxNum(p) );
- fprintf( pTable, "%d ", Gia_ManNonRegBoxNum(p) );
+ fprintf( pTable, "%d ", Gia_ManLutLevelWithBoxes(p) );
+ //fprintf( pTable, "%d ", Gia_ManRegBoxNum(p) );
+ //fprintf( pTable, "%d ", Gia_ManNonRegBoxNum(p) );
fprintf( pTable, "%.2f", 1.0*(Abc_Clock() - clk)/CLOCKS_PER_SEC );
clk = Abc_Clock();
}
@@ -2014,7 +2006,7 @@ void Gia_ManMappingVerify( Gia_Man_t * p )
void Gia_ManTransferMapping( Gia_Man_t * p, Gia_Man_t * pGia )
{
Gia_Obj_t * pObj;
- int i, k, iFan;
+ int i, k, iFan, iPlace;
if ( !Gia_ManHasMapping(pGia) )
return;
Gia_ManMappingVerify( pGia );
@@ -2023,12 +2015,20 @@ void Gia_ManTransferMapping( Gia_Man_t * p, Gia_Man_t * pGia )
Vec_IntFill( p->vMapping, Gia_ManObjNum(p), 0 );
Gia_ManForEachLut( pGia, i )
{
+ if ( Gia_ObjValue(Gia_ManObj(pGia, i)) == ~0 ) // handle dangling LUT
+ continue;
assert( !Abc_LitIsCompl(Gia_ObjValue(Gia_ManObj(pGia, i))) );
pObj = Gia_ManObj( p, Abc_Lit2Var(Gia_ObjValue(Gia_ManObj(pGia, i))) );
Vec_IntWriteEntry( p->vMapping, Gia_ObjId(p, pObj), Vec_IntSize(p->vMapping) );
+ iPlace = Vec_IntSize( p->vMapping );
Vec_IntPush( p->vMapping, Gia_ObjLutSize(pGia, i) );
Gia_LutForEachFanin( pGia, i, iFan, k )
- Vec_IntPush( p->vMapping, Abc_Lit2Var(Gia_ObjValue(Gia_ManObj(pGia, iFan))) );
+ {
+ if ( Gia_ObjValue(Gia_ManObj(pGia, iFan)) == ~0 ) // handle dangling LUT fanin
+ Vec_IntAddToEntry( p->vMapping, iPlace, -1 );
+ else
+ Vec_IntPush( p->vMapping, Abc_Lit2Var(Gia_ObjValue(Gia_ManObj(pGia, iFan))) );
+ }
iFan = Abc_Lit2Var( Gia_ObjValue(Gia_ManObj(pGia, Abc_AbsInt(Gia_ObjLutMuxId(pGia, i)))) );
Vec_IntPush( p->vMapping, Gia_ObjLutIsMux(pGia, i) ? -iFan : iFan );
}