summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2015-10-12 17:42:32 +0000
committerReid Kleckner <rnk@google.com>2015-10-12 17:42:32 +0000
commit9abb3c06a6382954f7c0956c3bfb0d0bb4b3e961 (patch)
treeddb557ca3e583965d81258e7948ba199c95cf088 /llvm/lib/CodeGen/SelectionDAG
parentc07c7eddadc39a3eff299cfa4ace0d424c30cede (diff)
downloadbcm5719-llvm-9abb3c06a6382954f7c0956c3bfb0d0bb4b3e961.tar.gz
bcm5719-llvm-9abb3c06a6382954f7c0956c3bfb0d0bb4b3e961.zip
Don't call PrepareEHLandingPad on non EH pads
This was a minor bug in r249492. Calling PrepareEHLandingPad on a non-landingpad was a no-op, but it attempted to get the generic pointer register class, which apparently doesn't exist for some targets. llvm-svn: 250068
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 2a25131dbad..51e8e1486c8 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -1153,8 +1153,9 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
// Setup an EH landing-pad block.
FuncInfo->ExceptionPointerVirtReg = 0;
FuncInfo->ExceptionSelectorVirtReg = 0;
- if (!PrepareEHLandingPad())
- continue;
+ if (LLVMBB->isEHPad())
+ if (!PrepareEHLandingPad())
+ continue;
// Before doing SelectionDAG ISel, see if FastISel has been requested.
if (FastIS) {
OpenPOWER on IntegriCloud