summaryrefslogtreecommitdiffstats
path: root/src/aig/ntl/ntlFraig.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-07-25 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-07-25 08:01:00 -0700
commit1afa8a2f38bacb9f2f8faaf06b4f01c70560a419 (patch)
tree8aa41b5eea9d26befaf1604e8cc6c61b59eaef1b /src/aig/ntl/ntlFraig.c
parent2c96c8af36446d3b855e07d78975cfad50c2917c (diff)
downloadabc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.tar.gz
abc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.tar.bz2
abc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.zip
Version abc80725
Diffstat (limited to 'src/aig/ntl/ntlFraig.c')
-rw-r--r--src/aig/ntl/ntlFraig.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/aig/ntl/ntlFraig.c b/src/aig/ntl/ntlFraig.c
index bd39956e..38568d26 100644
--- a/src/aig/ntl/ntlFraig.c
+++ b/src/aig/ntl/ntlFraig.c
@@ -145,13 +145,20 @@ void Ntl_ManReduce( Ntl_Man_t * p, Aig_Man_t * pAig )
continue;
assert( pObj != pObjRepr );
pNet = pObj->pData;
- // do not reduce the net if it is driven by a multi-output box
- if ( Ntl_ObjIsBox(pNet->pDriver) && Ntl_ObjFanoutNum(pNet->pDriver) > 1 )
- continue;
- // do not reduce the net if it has no-merge attribute
- if ( Ntl_ObjIsBox(pNet->pDriver) && pNet->pDriver->pImplem->attrNoMerge )
- continue;
pNetRepr = pObjRepr->pData;
+ // consider special cases, when the net should not be reduced
+ if ( Ntl_ObjIsBox(pNet->pDriver) )
+ {
+ // do not reduce the net if it is driven by a multi-output box
+ if ( Ntl_ObjFanoutNum(pNet->pDriver) > 1 )
+ continue;
+ // do not reduce the net if it has no-merge attribute
+ if ( pNet->pDriver->pImplem->attrNoMerge )
+ continue;
+ // do not reduce the net if the replacement net has no-merge attribute
+ if ( pNetRepr != NULL && pNetRepr->pDriver->pImplem->attrNoMerge )
+ continue;
+ }
if ( pNetRepr == NULL )
{
// this is the constant node