/* of this with previous opcode */
if (pdic)
{
-
if (IS_ITEMP (IC_RESULT (ic)))
{
+
+ if (pdic->level > ic->level) {
+ // pdic was inside an inner loop
+ continue;
+ }
/* replace in the remaining of this block */
replaceAllSymBySym (ic->next, IC_RESULT (ic), IC_RESULT (pdic), &ebb->ndompset);
OP_SYMBOL (IC_RESULT (indIc))->isind = 1;
ip = newInduction (IC_RIGHT (ic), dic->op, litValue, indIc, NULL);
- if (0) {
- fprintf (stderr, "%s:%d: stupid way to avoid bug #467035, but\n"
- "this will keep the regressions tests going.\n",
- __FILE__, __LINE__);
- continue;
- }
-
/* replace the inducted variable by the iTemp */
replaceSymBySym (loopReg->regBlocks, IC_RESULT (ic), IC_RIGHT (ic));