Add data flow calculation before moving const op ups to fix change of used dst temps in other branch
This commit is contained in:
parent
65fc43c123
commit
1805e311b8
|
@ -6246,7 +6246,13 @@ bool InterCodeBasicBlock::PropagateConstOperationsUp(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
eb->mInstructions.Insert(di, nins);
|
eb->mInstructions.Insert(di, nins);
|
||||||
|
if (ins->mDst.mTemp >= 0)
|
||||||
|
eb->mExitRequiredTemps += ins->mDst.mTemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ins->mDst.mTemp >= 0)
|
||||||
|
mEntryRequiredTemps += ins->mDst.mTemp;
|
||||||
|
|
||||||
mInstructions.Remove(i);
|
mInstructions.Remove(i);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -12409,6 +12415,8 @@ void InterCodeProcedure::PropagateConstOperationsUp(void)
|
||||||
ResetVisited();
|
ResetVisited();
|
||||||
mEntryBlock->CollectEntryBlocks(nullptr);
|
mEntryBlock->CollectEntryBlocks(nullptr);
|
||||||
|
|
||||||
|
BuildDataFlowSets();
|
||||||
|
|
||||||
bool changed;
|
bool changed;
|
||||||
do {
|
do {
|
||||||
changed = false;
|
changed = false;
|
||||||
|
|
Loading…
Reference in New Issue