diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-10-05 22:20:38 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-10-05 22:20:38 +0000 |
commit | 84fb7dd09e35ee7d32f9d1d88f7dbc3dc706ad7d (patch) | |
tree | 641b994dba486ba31a5f47a6f73e9eae8163ba81 /include/llvm/CodeGen/MachineModuleInfo.h | |
parent | 6f500541eac11413364f1d79320a2307079d3bbd (diff) |
Add an ivar that maps a landing pad's EH symbol to the call sites that may jump
to the landing pad. This will be used by the back-end to generate the jump
tables for dispatching the arriving longjmp in sjlj eh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141224 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineModuleInfo.h')
-rw-r--r-- | include/llvm/CodeGen/MachineModuleInfo.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h index 4daa663bac..a09a71400d 100644 --- a/include/llvm/CodeGen/MachineModuleInfo.h +++ b/include/llvm/CodeGen/MachineModuleInfo.h @@ -119,6 +119,10 @@ class MachineModuleInfo : public ImmutablePass { /// information in the current function. std::vector<LandingPadInfo> LandingPads; + /// LPadToCallSiteMap - Map a landing pad's EH symbol to the call site + /// indexes. + DenseMap<MCSymbol*, SmallVector<unsigned, 4> > LPadToCallSiteMap; + /// CallSiteMap - Map of invoke call site index values to associated begin /// EH_LABEL for the current function. DenseMap<MCSymbol*, unsigned> CallSiteMap; @@ -327,6 +331,16 @@ public: return LandingPads; } + /// setCallSiteLandingPad - Map the landing pad's EH symbol to the call + /// site indexes. + void setCallSiteLandingPad(MCSymbol *Sym, ArrayRef<unsigned> Sites); + + /// getCallSiteLandingPad - Get the call site indexes for a landing pad EH + /// symbol. + SmallVectorImpl<unsigned> &getCallSiteLandingPad(MCSymbol *Sym) { + return LPadToCallSiteMap[Sym]; + } + /// setCallSiteBeginLabel - Map the begin label for a call site. void setCallSiteBeginLabel(MCSymbol *BeginLabel, unsigned Site) { CallSiteMap[BeginLabel] = Site; |