X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCdflow.c;h=a45eb174b19f702ddf294e622eb0dd5153a6113b;hb=eae1bd2f705a2c61e143c539f8c4d1e9c2b4efe6;hp=8fa4f0c10df2233ec1de4217d352a14b5fcf6df1;hpb=3ce766b71ad2b6d9f192e0e6c5d3a5f129804812;p=fw%2Fsdcc diff --git a/src/SDCCdflow.c b/src/SDCCdflow.c index 8fa4f0c1..a45eb174 100644 --- a/src/SDCCdflow.c +++ b/src/SDCCdflow.c @@ -123,6 +123,9 @@ DEFSETFUNC (mergeInExprs) } else { + //if (dest != ebp) + // dest->inExprs = intersectSets (dest->inExprs, ebp->outExprs, THROW_DEST); + /* delete only if killed in this block*/ deleteItemIf (&dest->inExprs, ifKilledInBlock, ebp); /* union the ndompset with pointers set in this block */ @@ -162,8 +165,10 @@ DEFSETFUNC (mergeInDefs) /* computeDataFlow - does computations for data flow accross blocks */ /*-----------------------------------------------------------------*/ void -computeDataFlow (eBBlock ** ebbs, int count) +computeDataFlow (ebbIndex * ebbi) { + eBBlock ** ebbs = ebbi->dfOrder; + int count = ebbi->count; int i; int change = 1; @@ -222,7 +227,7 @@ computeDataFlow (eBBlock ** ebbs, int count) /* get the immediate dominator and put it there */ if (!pBlock) { - eBBlock *idom = immedDom (ebbs, ebbs[i]); + eBBlock *idom = immedDom (ebbi, ebbs[i]); if (idom) addSetHead (&pred, idom); } @@ -239,7 +244,7 @@ computeDataFlow (eBBlock ** ebbs, int count) /* do cse with computeOnly flag set to TRUE */ /* this by far the quickest way of computing */ - cseBBlock (ebbs[i], TRUE, ebbs, count); + cseBBlock (ebbs[i], TRUE, ebbi); /* if it change we will need to iterate */ if (optimize.global_cse)