mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Revert r146184. I am seeing performance regression cause by this patch in one test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146205 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
976c0da213
commit
7f7f0902a6
@ -485,16 +485,6 @@ MachineBasicBlock *MachineSinking::FindSuccToSinkTo(MachineInstr *MI,
|
||||
for (MachineBasicBlock::succ_iterator SI = ParentBlock->succ_begin(),
|
||||
E = ParentBlock->succ_end(); SI != E; ++SI) {
|
||||
MachineBasicBlock *SuccBlock = *SI;
|
||||
// It is not possible to sink an instruction into its own block. This can
|
||||
// happen with loops.
|
||||
if (ParentBlock == SuccBlock)
|
||||
continue;
|
||||
|
||||
// It's not safe to sink instructions to EH landing pad. Control flow into
|
||||
// landing pad is implicitly defined.
|
||||
if (SuccBlock->isLandingPad())
|
||||
continue;
|
||||
|
||||
bool LocalUse = false;
|
||||
if (AllUsesDominatedByBlock(Reg, SuccBlock, ParentBlock,
|
||||
BreakPHIEdge, LocalUse)) {
|
||||
@ -511,6 +501,17 @@ MachineBasicBlock *MachineSinking::FindSuccToSinkTo(MachineInstr *MI,
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// It is not possible to sink an instruction into its own block. This can
|
||||
// happen with loops.
|
||||
if (ParentBlock == SuccToSinkTo)
|
||||
return NULL;
|
||||
|
||||
// It's not safe to sink instructions to EH landing pad. Control flow into
|
||||
// landing pad is implicitly defined.
|
||||
if (SuccToSinkTo && SuccToSinkTo->isLandingPad())
|
||||
return NULL;
|
||||
|
||||
return SuccToSinkTo;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user