summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-08-27 04:40:37 +0000
committerBill Wendling <isanbard@gmail.com>2011-08-27 04:40:37 +0000
commit4707d37ac9ef87893c9b35c5d2f9563a91b10fd5 (patch)
tree16a10734f07e856efbc2aa4b95cae14a128702cb /llvm/lib
parentbd0a6019a2931b01c2bbafb9dd678bdf5513f1b2 (diff)
downloadbcm5719-llvm-4707d37ac9ef87893c9b35c5d2f9563a91b10fd5.tar.gz
bcm5719-llvm-4707d37ac9ef87893c9b35c5d2f9563a91b10fd5.zip
These splits should be done whether they are critical edges or not.
llvm-svn: 138697
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/SjLjEHPrepare.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/llvm/lib/CodeGen/SjLjEHPrepare.cpp b/llvm/lib/CodeGen/SjLjEHPrepare.cpp
index e18cbeaeb36..ed020255127 100644
--- a/llvm/lib/CodeGen/SjLjEHPrepare.cpp
+++ b/llvm/lib/CodeGen/SjLjEHPrepare.cpp
@@ -145,14 +145,10 @@ void SjLjEHPass::markInvokeCallSite(InvokeInst *II, int InvokeNo,
if (isa<PHINode>(II->getUnwindDest()->begin())) {
// FIXME: New EH - This if-condition will be always true in the new scheme.
if (II->getUnwindDest()->isLandingPad()) {
- if (isCriticalEdge(II, 1)) {
- SmallVector<BasicBlock*, 2> NewBBs;
- SplitLandingPadPredecessors(II->getUnwindDest(), II->getParent(),
- ".1", ".2", this, NewBBs);
- LPadSuccMap[II] = *succ_begin(NewBBs[0]);
- } else {
- LPadSuccMap[II] = II->getUnwindDest();
- }
+ SmallVector<BasicBlock*, 2> NewBBs;
+ SplitLandingPadPredecessors(II->getUnwindDest(), II->getParent(),
+ ".1", ".2", this, NewBBs);
+ LPadSuccMap[II] = *succ_begin(NewBBs[0]);
} else {
SplitCriticalEdge(II, 1, this);
}
@@ -206,14 +202,10 @@ splitLiveRangesAcrossInvokes(SmallVector<InvokeInst*,16> &Invokes) {
// FIXME: New EH - This if-condition will be always true in the new scheme.
if (II->getUnwindDest()->isLandingPad()) {
- if (isCriticalEdge(II, 1)) {
- SmallVector<BasicBlock*, 2> NewBBs;
- SplitLandingPadPredecessors(II->getUnwindDest(), II->getParent(),
- ".1", ".2", this, NewBBs);
- LPadSuccMap[II] = *succ_begin(NewBBs[0]);
- } else {
- LPadSuccMap[II] = II->getUnwindDest();
- }
+ SmallVector<BasicBlock*, 2> NewBBs;
+ SplitLandingPadPredecessors(II->getUnwindDest(), II->getParent(),
+ ".1", ".2", this, NewBBs);
+ LPadSuccMap[II] = *succ_begin(NewBBs[0]);
} else {
SplitCriticalEdge(II, 1, this);
}
OpenPOWER on IntegriCloud