131 int i, k, RetValue, Counters[3] = {0};
138 Vec_IntClear(
p->vFanins );
141 vFanins = Ga2_ObjLeaves(
p->pGia, pObj );
143 if ( Rnm_ObjAddToCount(
p, pFanin) == 0 )
144 Vec_IntPush(
p->vFanins, Gia_ObjId(
p->pGia, pFanin) );
153 vNewPPis = Vec_IntAlloc( 100 );
156 if ( Gia_ObjIsRo(
p->pGia, pObj) )
160 Vec_IntPush( vNewPPis, Gia_ObjId(
p->pGia, pObj) );
163 vFanins = Ga2_ObjLeaves(
p->pGia, pObj );
166 if ( Rnm_ObjIsJust(
p, pFanin) || Rnm_ObjCount(
p, pFanin) > 1 )
169 Counters[1] += Rnm_ObjIsJust(
p, pFanin);
171 Counters[2] += (Rnm_ObjCount(
p, pFanin) > 1);
172 Vec_IntPush( vNewPPis, Gia_ObjId(
p->pGia, pObj) );
177 RetValue = Vec_IntUniqify( vNewPPis );
183 Rnm_ObjSetCount(
p, pObj, 0 );
187 printf(
"*** Refinement %3d : PI+PPI =%4d. Old =%4d. New =%4d. FF =%4d. Just =%4d. Shared =%4d.\n",
188 p->nRefId, Vec_IntSize(
p->vMap), Vec_IntSize(vOldPPis), Vec_IntSize(vNewPPis), Counters[0], Counters[1], Counters[2] );
209 static int Counter = 0;
211 Vec_Int_t * vNewPPis, * vFanins, * vFanins2;
213 int i, k, k2, RetValue, Counters[3] = {0};
216 if ( ++Counter % 9 == 0 )
217 return Vec_IntDup( vOldPPis );
225 Vec_IntClear(
p->vFanins );
229 vFanins = Ga2_ObjLeaves(
p->pGia, pObj );
232 Rnm_ObjAddToCount(
p, pFanin);
233 if ( Rnm_ObjIsJust(
p, pFanin) )
234 Rnm_ObjAddToCount(
p, pFanin);
235 Vec_IntPush(
p->vFanins, Gia_ObjId(
p->pGia, pFanin) );
238 vFanins2 = Ga2_ObjLeaves(
p->pGia, pFanin );
241 Rnm_ObjAddToCount(
p, pFanin2);
242 if ( Rnm_ObjIsJust(
p, pFanin2) )
243 Rnm_ObjAddToCount(
p, pFanin2);
244 Vec_IntPush(
p->vFanins, Gia_ObjId(
p->pGia, pFanin2) );
255 vNewPPis = Vec_IntAlloc( 100 );
258 if ( Gia_ObjIsRo(
p->pGia, pObj) )
262 Vec_IntPush( vNewPPis, Gia_ObjId(
p->pGia, pObj) );
266 vFanins = Ga2_ObjLeaves(
p->pGia, pObj );
269 if ( Rnm_ObjCount(
p, pFanin) > 1 )
270 Vec_IntPush( vNewPPis, Gia_ObjId(
p->pGia, pObj) );
274 vFanins2 = Ga2_ObjLeaves(
p->pGia, pFanin );
277 if ( Rnm_ObjCount(
p, pFanin2) > 1 )
280 Vec_IntPush( vNewPPis, Gia_ObjId(
p->pGia, pObj) );
285 RetValue = Vec_IntUniqify( vNewPPis );
291 Rnm_ObjSetCount(
p, pObj, 0 );
295 printf(
"*** Refinement %3d : PI+PPI =%4d. Old =%4d. New =%4d. FF =%4d. Just =%4d. Shared =%4d.\n",
296 p->nRefId, Vec_IntSize(
p->vMap), Vec_IntSize(vOldPPis), Vec_IntSize(vNewPPis), Counters[0], Counters[1], Counters[2] );