Add data flow calculation before moving const op ups to fix change of used dst temps in other branch

This commit is contained in:
drmortalwombat 2022-08-15 22:08:00 +02:00
parent 65fc43c123
commit 1805e311b8

View File

@ -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;