induction variables should be unioned.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1455
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bitVectDebugOn (ebbs[i]->ldefs, of);
fprintf (of, "\npointers Set bitvector :");
bitVectDebugOn (ebbs[i]->ptrsSet, of);
bitVectDebugOn (ebbs[i]->ldefs, of);
fprintf (of, "\npointers Set bitvector :");
bitVectDebugOn (ebbs[i]->ptrsSet, of);
+ if (ebbs[i]->isLastInLoop) {
+ fprintf (of, "\nInductions Set bitvector :");
+ bitVectDebugOn (ebbs[i]->linds, of);
+ }
fprintf (of, "\n----------------------------------------------------------------\n");
printiCChain (ebbs[i]->sch, of);
}
fprintf (of, "\n----------------------------------------------------------------\n");
printiCChain (ebbs[i]->sch, of);
}
/* add the induction variable vector to the last
block in the loop */
lastBlock->isLastInLoop = 1;
/* add the induction variable vector to the last
block in the loop */
lastBlock->isLastInLoop = 1;
- lastBlock->linds = indVect;
+ lastBlock->linds = bitVectUnion(lastBlock->linds,indVect);
}
setToNull ((void **) &indVars);
}
setToNull ((void **) &indVars);
to a loop & some definition comes into the loop
then extend the live range to the end of the loop */
if (ebp->partOfLoop
to a loop & some definition comes into the loop
then extend the live range to the end of the loop */
if (ebp->partOfLoop
- /* && hasIncomingDefs (ebp->partOfLoop, op)*/ )
+ && hasIncomingDefs (ebp->partOfLoop, op))
{
torange = findLoopEndSeq (ebp->partOfLoop);
}
{
torange = findLoopEndSeq (ebp->partOfLoop);
}