summaryrefslogtreecommitdiffstats
path: root/src/aig/saig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-12-03 00:03:09 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2013-12-03 00:03:09 -0800
commita3bc77cd7bcd50f49388c789d4e42603102235a6 (patch)
tree1fd2f5f21133ec156eb35b68031253e634d63d17 /src/aig/saig
parent08bb54f382f5915c6eef7d07f91ff03f9bc45149 (diff)
downloadabc-a3bc77cd7bcd50f49388c789d4e42603102235a6.tar.gz
abc-a3bc77cd7bcd50f49388c789d4e42603102235a6.tar.bz2
abc-a3bc77cd7bcd50f49388c789d4e42603102235a6.zip
Making 'fold' and 'unfold' skip constant POs.
Diffstat (limited to 'src/aig/saig')
-rw-r--r--src/aig/saig/saigConstr.c4
1 files changed, 4 insertions, 0 deletions
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 );
}