diff options
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/CodeGen/FunctionLoweringInfo.h | 2 | ||||
-rw-r--r-- | llvm/include/llvm/CodeGen/MachineModuleInfo.h | 20 | ||||
-rw-r--r-- | llvm/include/llvm/CodeGen/SelectionDAGISel.h | 5 |
3 files changed, 6 insertions, 21 deletions
diff --git a/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h b/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h index 66a9ae7407b..e12866e04df 100644 --- a/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h +++ b/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h @@ -221,8 +221,6 @@ public: int getArgumentFrameIndex(const Argument *A); private: - void addSEHHandlersForLPads(); - /// LiveOutRegInfo - Information about live out vregs. IndexedMap<LiveOutInfo, VirtReg2IndexFunctor> LiveOutRegInfo; }; diff --git a/llvm/include/llvm/CodeGen/MachineModuleInfo.h b/llvm/include/llvm/CodeGen/MachineModuleInfo.h index d53fdd4ce5a..3965b1dea70 100644 --- a/llvm/include/llvm/CodeGen/MachineModuleInfo.h +++ b/llvm/include/llvm/CodeGen/MachineModuleInfo.h @@ -51,7 +51,6 @@ namespace llvm { // Forward declarations. class Constant; class GlobalVariable; -class BlockAddress; class MDNode; class MMIAddrLabelMap; class MachineBasicBlock; @@ -61,14 +60,6 @@ class PointerType; class StructType; struct WinEHFuncInfo; -struct SEHHandler { - // Filter or finally function. Null indicates a catch-all. - const Function *FilterOrFinally; - - // Address of block to recover at. Null for a finally handler. - const BlockAddress *RecoverBA; -}; - //===----------------------------------------------------------------------===// /// LandingPadInfo - This structure is used to retain landing pad info for /// the current function. @@ -77,7 +68,7 @@ struct LandingPadInfo { MachineBasicBlock *LandingPadBlock; // Landing pad block. SmallVector<MCSymbol *, 1> BeginLabels; // Labels prior to invoke. SmallVector<MCSymbol *, 1> EndLabels; // Labels after invoke. - SmallVector<SEHHandler, 1> SEHHandlers; // SEH handlers active at this lpad. + SmallVector<MCSymbol *, 1> ClauseLabels; // Labels for each clause. MCSymbol *LandingPadLabel; // Label at beginning of landing pad. const Function *Personality; // Personality function. std::vector<int> TypeIds; // List of type ids (filters negative). @@ -360,11 +351,10 @@ public: /// void addCleanup(MachineBasicBlock *LandingPad); - void addSEHCatchHandler(MachineBasicBlock *LandingPad, const Function *Filter, - const BlockAddress *RecoverLabel); - - void addSEHCleanupHandler(MachineBasicBlock *LandingPad, - const Function *Cleanup); + /// Add a clause for a landing pad. Returns a new label for the clause. This + /// is used by EH schemes that have more than one landing pad. In this case, + /// each clause gets its own basic block. + MCSymbol *addClauseForLandingPad(MachineBasicBlock *LandingPad); /// getTypeIDFor - Return the type id for the specified typeinfo. This is /// function wide. diff --git a/llvm/include/llvm/CodeGen/SelectionDAGISel.h b/llvm/include/llvm/CodeGen/SelectionDAGISel.h index 3ea1a33bcba..a8743754f40 100644 --- a/llvm/include/llvm/CodeGen/SelectionDAGISel.h +++ b/llvm/include/llvm/CodeGen/SelectionDAGISel.h @@ -260,10 +260,7 @@ private: SDNode *MorphNode(SDNode *Node, unsigned TargetOpc, SDVTList VTs, ArrayRef<SDValue> Ops, unsigned EmitNodeInfo); - /// Prepares the landing pad to take incoming values or do other EH - /// personality specific tasks. Returns true if the block should be - /// instruction selected, false if no code should be emitted for it. - bool PrepareEHLandingPad(); + void PrepareEHLandingPad(); /// \brief Perform instruction selection on all basic blocks in the function. void SelectAllBasicBlocks(const Function &Fn); |