Optimize placement of basic blocks
This commit is contained in:
parent
68f8628409
commit
1be469aa9b
|
@ -5806,11 +5806,16 @@ void ByteCodeBasicBlock::BuildPlacement(GrowingArray<ByteCodeBasicBlock*>& place
|
|||
mTrueJump->BuildPlacement(placement);
|
||||
mFalseJump->BuildPlacement(placement);
|
||||
}
|
||||
else
|
||||
else if (mFalseJump->mCode.Size() < mTrueJump->mCode.Size())
|
||||
{
|
||||
mFalseJump->BuildPlacement(placement);
|
||||
mTrueJump->BuildPlacement(placement);
|
||||
}
|
||||
else
|
||||
{
|
||||
mTrueJump->BuildPlacement(placement);
|
||||
mFalseJump->BuildPlacement(placement);
|
||||
}
|
||||
}
|
||||
else if (mTrueJump)
|
||||
{
|
||||
|
|
|
@ -5733,6 +5733,13 @@ static bool CanBypassStore(const InterInstruction * sins, const InterInstruction
|
|||
else
|
||||
return false;
|
||||
}
|
||||
else if (sm == IM_FRAME)
|
||||
;
|
||||
else if (sm == IM_FPARAM)
|
||||
{
|
||||
if (bi == si)
|
||||
return false;
|
||||
}
|
||||
else if (sm == IM_INDIRECT && bm == IM_INDIRECT && st == bt)
|
||||
{
|
||||
return so + sz <= bz || bo + bz <= so;
|
||||
|
|
Loading…
Reference in New Issue