summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-04-25 14:31:32 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-04-25 14:31:32 +0000
commitdd215236530c9f643220f1c6e928dd39254a7b3d (patch)
tree787fe15de5cb8bdd2634b804c155527633df0fc8 /llvm/lib/CodeGen/MachineBasicBlock.cpp
parent82d04260b71939da9fd7918555232796d2873a79 (diff)
downloadbcm5719-llvm-dd215236530c9f643220f1c6e928dd39254a7b3d.tar.gz
bcm5719-llvm-dd215236530c9f643220f1c6e928dd39254a7b3d.zip
[WinEH] Update SplitAnalysis::computeLastSplitPoint to cope with multiple EH successors
We didn't have logic to correctly handle CFGs where there was more than one EH-pad successor (these are novel with WinEH). There were situations where a register was live in one exceptional successor but not another but the code as written would only consider the first exceptional successor it found. This resulted in split points which were insufficiently early if an invoke was present. This fixes PR27501. N.B. This removes getLandingPadSuccessor. llvm-svn: 267412
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp
index 318a2aa69d4..8b3f01fe58c 100644
--- a/llvm/lib/CodeGen/MachineBasicBlock.cpp
+++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp
@@ -198,16 +198,6 @@ MachineBasicBlock::iterator MachineBasicBlock::getLastNonDebugInstr() {
return end();
}
-const MachineBasicBlock *MachineBasicBlock::getLandingPadSuccessor() const {
- // A block with a landing pad successor only has one other successor.
- if (succ_size() > 2)
- return nullptr;
- for (const_succ_iterator I = succ_begin(), E = succ_end(); I != E; ++I)
- if ((*I)->isEHPad())
- return *I;
- return nullptr;
-}
-
bool MachineBasicBlock::hasEHPadSuccessor() const {
for (const_succ_iterator I = succ_begin(), E = succ_end(); I != E; ++I)
if ((*I)->isEHPad())
OpenPOWER on IntegriCloud