summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaDup.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-01-09 19:50:05 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2017-01-09 19:50:05 +0700
commitfbdf28e4c937067737d84db37ff6e1a65348df5f (patch)
tree562036110ed054b87a7dd1729a0b5b6dc7ff182f /src/aig/gia/giaDup.c
parentab6a87a4db2b2d9b188c09d9142b96503261e9ce (diff)
downloadabc-fbdf28e4c937067737d84db37ff6e1a65348df5f.tar.gz
abc-fbdf28e4c937067737d84db37ff6e1a65348df5f.tar.bz2
abc-fbdf28e4c937067737d84db37ff6e1a65348df5f.zip
Updated to arithmetic verification.
Diffstat (limited to 'src/aig/gia/giaDup.c')
-rw-r--r--src/aig/gia/giaDup.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c
index c58596b2..cdb6a208 100644
--- a/src/aig/gia/giaDup.c
+++ b/src/aig/gia/giaDup.c
@@ -3879,12 +3879,20 @@ Vec_Int_t * Gia_ManCollectTopXors( Gia_Man_t * p )
int i, iObj, iObj2, fFlip, Count1 = 0;
Vec_Int_t * vXors, * vPart[2], * vOrder;
Gia_Obj_t * pFan[2], * pObj = Gia_ManCo(p, 0);
- assert( Gia_ManCoNum(p) == 1 );
vXors = Vec_IntAlloc( 100 );
- if ( Gia_ObjFaninC0(pObj) )
- Gia_ManCollectTopXors_rec( p, Gia_ObjFanin0(pObj), vXors );
+ if ( Gia_ManCoNum(p) == 1 )
+ {
+ if ( Gia_ObjFaninC0(pObj) )
+ Gia_ManCollectTopXors_rec( p, Gia_ObjFanin0(pObj), vXors );
+ else
+ Vec_IntPush( vXors, Gia_ObjId(p, Gia_ObjFanin0(pObj)) );
+ }
else
- Vec_IntPush( vXors, Gia_ObjId(p, Gia_ObjFanin0(pObj)) );
+ {
+ Gia_ManForEachCo( p, pObj, i )
+ if ( Gia_ObjFaninId0p(p, pObj) > 0 )
+ Vec_IntPush( vXors, Gia_ObjFaninId0p(p, pObj) );
+ }
// order by support size
Gia_ManDupDemiterOrderXors( p, vXors );
//Vec_IntPrint( vXors );