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(),
|
for (MachineBasicBlock::succ_iterator SI = ParentBlock->succ_begin(),
|
||||||
E = ParentBlock->succ_end(); SI != E; ++SI) {
|
E = ParentBlock->succ_end(); SI != E; ++SI) {
|
||||||
MachineBasicBlock *SuccBlock = *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;
|
bool LocalUse = false;
|
||||||
if (AllUsesDominatedByBlock(Reg, SuccBlock, ParentBlock,
|
if (AllUsesDominatedByBlock(Reg, SuccBlock, ParentBlock,
|
||||||
BreakPHIEdge, LocalUse)) {
|
BreakPHIEdge, LocalUse)) {
|
||||||
@ -511,6 +501,17 @@ MachineBasicBlock *MachineSinking::FindSuccToSinkTo(MachineInstr *MI,
|
|||||||
return NULL;
|
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;
|
return SuccToSinkTo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user