summaryrefslogtreecommitdiffstats
path: root/src/aig/aig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-07-02 13:58:12 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-07-02 13:58:12 -0700
commitf866920eb5603f60fb087c96607d58c94fb31f28 (patch)
treeb2b92fd38a1c7e79b10ed45baaf13bfa2f8e67bd /src/aig/aig
parent6c2ac7661dc1ea3ddd83617dd247a467e00486de (diff)
downloadabc-f866920eb5603f60fb087c96607d58c94fb31f28.tar.gz
abc-f866920eb5603f60fb087c96607d58c94fb31f28.tar.bz2
abc-f866920eb5603f60fb087c96607d58c94fb31f28.zip
Added a new demitering feature for dual-output miters.
Diffstat (limited to 'src/aig/aig')
-rw-r--r--src/aig/aig/aig.h1
-rw-r--r--src/aig/aig/aigObj.c21
2 files changed, 22 insertions, 0 deletions
diff --git a/src/aig/aig/aig.h b/src/aig/aig/aig.h
index aa55f2fc..4b95f682 100644
--- a/src/aig/aig/aig.h
+++ b/src/aig/aig/aig.h
@@ -557,6 +557,7 @@ extern void Aig_ObjConnect( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_
extern void Aig_ObjDisconnect( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjDelete( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjDelete_rec( Aig_Man_t * p, Aig_Obj_t * pObj, int fFreeTop );
+extern void Aig_ObjDeletePo( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjPrint( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjPatchFanin0( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pFaninNew );
extern void Aig_ObjReplace( Aig_Man_t * p, Aig_Obj_t * pObjOld, Aig_Obj_t * pObjNew, int fUpdateLevel );
diff --git a/src/aig/aig/aigObj.c b/src/aig/aig/aigObj.c
index 141afaaa..36578d35 100644
--- a/src/aig/aig/aigObj.c
+++ b/src/aig/aig/aigObj.c
@@ -268,6 +268,27 @@ void Aig_ObjDelete_rec( Aig_Man_t * p, Aig_Obj_t * pObj, int fFreeTop )
/**Function*************************************************************
+ Synopsis [Deletes the node.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+void Aig_ObjDeletePo( Aig_Man_t * p, Aig_Obj_t * pObj )
+{
+ assert( Aig_ObjIsPo(pObj) );
+ Aig_ObjDeref(Aig_ObjFanin0(pObj));
+ pObj->pFanin0 = NULL;
+ p->nObjs[pObj->Type]--;
+ Vec_PtrWriteEntry( p->vObjs, pObj->Id, NULL );
+ Aig_ManRecycleMemory( p, pObj );
+}
+
+/**Function*************************************************************
+
Synopsis [Replaces the first fanin of the node by the new fanin.]
Description []