From 3daecc0ea8ae1b34820f8c1d1bdeb0366123e39f Mon Sep 17 00:00:00 2001 From: MyskYko Date: Sat, 5 Aug 2023 13:35:41 -0700 Subject: [PATCH] update reverse level when co is replaced --- src/base/abc/abcAig.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/base/abc/abcAig.c b/src/base/abc/abcAig.c index 636fe30ae..94bafb53c 100644 --- a/src/base/abc/abcAig.c +++ b/src/base/abc/abcAig.c @@ -897,6 +897,16 @@ void Abc_AigReplace_int( Abc_Aig_t * pMan, Abc_Obj_t * pOld, Abc_Obj_t * pNew, i { if ( Abc_ObjIsCo(pFanout) ) { + pFanin1 = Abc_ObjRegular( pNew ); + if ( pFanin1->fMarkB ) + Abc_AigRemoveFromLevelStructureR( pMan->vLevelsR, pFanin1 ); + if ( fUpdateLevel && pMan->pNtkAig->vLevelsR ) + { + Abc_ObjSetReverseLevel( pFanin1, Abc_ObjReverseLevel(pOld) ); + assert( pFanin1->fMarkB == 0 ); + pFanin1->fMarkB = 1; + Vec_VecPush( pMan->vLevelsR, Abc_ObjReverseLevel(pFanin1), pFanin1 ); + } Abc_ObjPatchFanin( pFanout, pOld, pNew ); continue; }