diff options
| author | Andrew Kaylor <andrew.kaylor@intel.com> | 2015-04-03 19:37:50 +0000 |
|---|---|---|
| committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2015-04-03 19:37:50 +0000 |
| commit | aa92ab069c2aca0b7e01fd9c052874aae34de275 (patch) | |
| tree | 5265411c8fa22dc693dac614c177f38df1c58818 /llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp | |
| parent | 400c9852cbddf9368e73fd463455d3cd95b14ec1 (diff) | |
| download | bcm5719-llvm-aa92ab069c2aca0b7e01fd9c052874aae34de275.tar.gz bcm5719-llvm-aa92ab069c2aca0b7e01fd9c052874aae34de275.zip | |
[WinEH] Handle nested landing pads in outlined catch handlers
Differential Revision: http://reviews.llvm.org/D8596
llvm-svn: 234041
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp b/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp index 47bce8987c8..987ba83b391 100644 --- a/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp @@ -94,8 +94,6 @@ struct WinEHNumbering { return HandlerStack.empty() ? -1 : HandlerStack.back()->getEHState(); } - void parseEHActions(const IntrinsicInst *II, - SmallVectorImpl<ActionHandler *> &Actions); void createUnwindMapEntry(int ToState, ActionHandler *AH); void createTryBlockMapEntry(int TryLow, int TryHigh, ArrayRef<CatchHandler *> Handlers); @@ -287,32 +285,6 @@ void FunctionLoweringInfo::set(const Function &fn, MachineFunction &mf, } } -void WinEHNumbering::parseEHActions(const IntrinsicInst *II, - SmallVectorImpl<ActionHandler *> &Actions) { - for (unsigned I = 0, E = II->getNumArgOperands(); I != E;) { - uint64_t ActionKind = - cast<ConstantInt>(II->getArgOperand(I))->getZExtValue(); - if (ActionKind == /*catch=*/1) { - auto *Selector = cast<Constant>(II->getArgOperand(I + 1)); - Value *CatchObject = II->getArgOperand(I + 2); - Constant *Handler = cast<Constant>(II->getArgOperand(I + 3)); - I += 4; - auto *CH = new CatchHandler(/*BB=*/nullptr, Selector, /*NextBB=*/nullptr); - CH->setExceptionVar(CatchObject); - CH->setHandlerBlockOrFunc(Handler); - Actions.push_back(CH); - } else { - assert(ActionKind == 0 && "expected a cleanup or a catch action!"); - Constant *Handler = cast<Constant>(II->getArgOperand(I + 1)); - I += 2; - auto *CH = new CleanupHandler(/*BB=*/nullptr); - CH->setHandlerBlockOrFunc(Handler); - Actions.push_back(CH); - } - } - std::reverse(Actions.begin(), Actions.end()); -} - void WinEHNumbering::createUnwindMapEntry(int ToState, ActionHandler *AH) { WinEHUnwindMapEntry UME; UME.ToState = ToState; |

