From a3bc77cd7bcd50f49388c789d4e42603102235a6 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 3 Dec 2013 00:03:09 -0800 Subject: Making 'fold' and 'unfold' skip constant POs. --- src/aig/saig/saigConstr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/aig/saig/saigConstr.c b/src/aig/saig/saigConstr.c index 5f54ef83..f8782e5f 100644 --- a/src/aig/saig/saigConstr.c +++ b/src/aig/saig/saigConstr.c @@ -283,6 +283,8 @@ Aig_Man_t * Saig_ManDupUnfoldConstrs( Aig_Man_t * pAig ) vConsAll = Vec_PtrAlloc( Saig_ManPoNum(pAig) ); Saig_ManForEachPo( pAig, pObj, i ) { + if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) ) + continue; RetValue = Saig_ManDetectConstr( pAig, i, &vOuts, &vCons ); if ( RetValue == 0 ) { @@ -392,6 +394,8 @@ Aig_Man_t * Saig_ManDupFoldConstrs( Aig_Man_t * pAig, Vec_Int_t * vConstrs ) // create primary output Saig_ManForEachPo( pAig, pObj, i ) { + if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) ) + continue; pMiter = Aig_And( pAigNew, Aig_ObjChild0Copy(pObj), Aig_Not(pFlopIn) ); Aig_ObjCreateCo( pAigNew, pMiter ); } -- cgit v1.2.3