diff options
author | Reid Kleckner <rnk@google.com> | 2015-10-12 17:42:32 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2015-10-12 17:42:32 +0000 |
commit | 9abb3c06a6382954f7c0956c3bfb0d0bb4b3e961 (patch) | |
tree | ddb557ca3e583965d81258e7948ba199c95cf088 /llvm/lib/CodeGen/SelectionDAG | |
parent | c07c7eddadc39a3eff299cfa4ace0d424c30cede (diff) | |
download | bcm5719-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.cpp | 5 |
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) { |