Fix overeager load forwarding
This commit is contained in:
parent
beb8d8e6d7
commit
a480e5e922
|
@ -8182,7 +8182,7 @@ bool InterCodeBasicBlock::PushSinglePathResultInstructions(void)
|
||||||
while (j < ins->mNumOperands && (ins->mSrc[j].mTemp < 0 || !(providedTemps[ins->mSrc[j].mTemp] || IsTempModifiedOnPath(ins->mSrc[j].mTemp, i + 1))))
|
while (j < ins->mNumOperands && (ins->mSrc[j].mTemp < 0 || !(providedTemps[ins->mSrc[j].mTemp] || IsTempModifiedOnPath(ins->mSrc[j].mTemp, i + 1))))
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
if (j == ins->mNumOperands && IsMoveable(ins->mCode) && (ins->mCode != IC_LOAD || !hadStore))
|
if (j == ins->mNumOperands && IsMoveable(ins->mCode) && CanMoveInstructionBehindBlock(i))
|
||||||
{
|
{
|
||||||
if (mTrueJump->mNumEntries == 1 && trueExitRequiredTemps[dtemp] && !falseExitRequiredTems[dtemp])
|
if (mTrueJump->mNumEntries == 1 && trueExitRequiredTemps[dtemp] && !falseExitRequiredTems[dtemp])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue