aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/FunctionLoweringInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/FunctionLoweringInfo.h')
-rw-r--r--include/llvm/CodeGen/FunctionLoweringInfo.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/include/llvm/CodeGen/FunctionLoweringInfo.h b/include/llvm/CodeGen/FunctionLoweringInfo.h
index 7c574df4ba41..82c762ed850f 100644
--- a/include/llvm/CodeGen/FunctionLoweringInfo.h
+++ b/include/llvm/CodeGen/FunctionLoweringInfo.h
@@ -18,6 +18,7 @@
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IndexedMap.h"
+#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/ISDOpcodes.h"
@@ -73,6 +74,16 @@ public:
/// cross-basic-block values.
DenseMap<const Value*, unsigned> ValueMap;
+ // Keep track of frame indices allocated for statepoints as they could be used
+ // across basic block boundaries.
+ // Key of the map is statepoint instruction, value is a map from spilled
+ // llvm Value to the optional stack stack slot index.
+ // If optional is unspecified it means that we have visited this value
+ // but didn't spill it.
+ typedef DenseMap<const Value*, Optional<int>> StatepointSpilledValueMapTy;
+ DenseMap<const Instruction*, StatepointSpilledValueMapTy>
+ StatepointRelocatedValues;
+
/// StaticAllocaMap - Keep track of frame indices for fixed sized allocas in
/// the entry block. This allows the allocas to be efficiently referenced
/// anywhere in the function.
@@ -221,6 +232,8 @@ public:
int getArgumentFrameIndex(const Argument *A);
private:
+ void addSEHHandlersForLPads(ArrayRef<const LandingPadInst *> LPads);
+
/// LiveOutRegInfo - Information about live out vregs.
IndexedMap<LiveOutInfo, VirtReg2IndexFunctor> LiveOutRegInfo;
};
@@ -232,11 +245,6 @@ private:
/// floating-point support.
void ComputeUsesVAFloatArgument(const CallInst &I, MachineModuleInfo *MMI);
-/// AddCatchInfo - Extract the personality and type infos from an eh.selector
-/// call, and add them to the specified machine basic block.
-void AddCatchInfo(const CallInst &I,
- MachineModuleInfo *MMI, MachineBasicBlock *MBB);
-
/// AddLandingPadInfo - Extract the exception handling information from the
/// landingpad instruction and add them to the specified machine module info.
void AddLandingPadInfo(const LandingPadInst &I, MachineModuleInfo &MMI,