From 32b07625464c92dcb32e2d5c40134ada0497d717 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Thu, 3 May 2012 04:54:06 +0800 Subject: Preventing &iso from removing fanoutless PIs. --- src/aig/gia/giaDup.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/aig/gia/giaDup.c') diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index 2171cb5e..7d11eff9 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -1850,7 +1850,7 @@ void Gia_ManDupCones_rec( Gia_Man_t * p, Gia_Obj_t * pObj, Vec_Ptr_t * vLeaves, Vec_PtrPush( vLeaves, pObj ); else assert( 0 ); } -Gia_Man_t * Gia_ManDupCones( Gia_Man_t * p, int * pPos, int nPos ) +Gia_Man_t * Gia_ManDupCones( Gia_Man_t * p, int * pPos, int nPos, int fTrimPis ) { Gia_Man_t * pNew; Vec_Ptr_t * vLeaves, * vNodes, * vRoots; @@ -1877,8 +1877,16 @@ Gia_Man_t * Gia_ManDupCones( Gia_Man_t * p, int * pPos, int nPos ) // map the constant node Gia_ManConst0(p)->Value = 0; // create PIs - Vec_PtrForEachEntry( Gia_Obj_t *, vLeaves, pObj, i ) - pObj->Value = Gia_ManAppendCi( pNew ); + if ( fTrimPis ) + { + Vec_PtrForEachEntry( Gia_Obj_t *, vLeaves, pObj, i ) + pObj->Value = Gia_ManAppendCi( pNew ); + } + else + { + Gia_ManForEachPi( p, pObj, i ) + pObj->Value = Gia_ManAppendCi( pNew ); + } // create LOs Vec_PtrForEachEntryStart( Gia_Obj_t *, vRoots, pObj, i, nPos ) Gia_ObjRiToRo(p, pObj)->Value = Gia_ManAppendCi( pNew ); -- cgit v1.2.3