summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/CodeGen/FunctionLoweringInfo.h2
-rw-r--r--llvm/include/llvm/CodeGen/MachineModuleInfo.h20
-rw-r--r--llvm/include/llvm/CodeGen/SelectionDAGISel.h5
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);
OpenPOWER on IntegriCloud