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);
|
||||
if (ins->mDst.mTemp >= 0)
|
||||
eb->mExitRequiredTemps += ins->mDst.mTemp;
|
||||
}
|
||||
|
||||
if (ins->mDst.mTemp >= 0)
|
||||
mEntryRequiredTemps += ins->mDst.mTemp;
|
||||
|
||||
mInstructions.Remove(i);
|
||||
changed = true;
|
||||
}
|
||||
|
@ -12409,6 +12415,8 @@ void InterCodeProcedure::PropagateConstOperationsUp(void)
|
|||
ResetVisited();
|
||||
mEntryBlock->CollectEntryBlocks(nullptr);
|
||||
|
||||
BuildDataFlowSets();
|
||||
|
||||
bool changed;
|
||||
do {
|
||||
changed = false;
|
||||
|
|
Loading…
Reference in New Issue