diff options
| author | Reid Kleckner <rnk@google.com> | 2015-09-28 23:56:30 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2015-09-28 23:56:30 +0000 |
| commit | c71d6275ca727a6d534dd5ee4602e315702e8054 (patch) | |
| tree | 7e0ea578cfcd1ce4cd7fd0504c96746204d87ca1 /llvm/include | |
| parent | 525c013921e98a89ebcc0e3ee57300cd6d1a2963 (diff) | |
| download | bcm5719-llvm-c71d6275ca727a6d534dd5ee4602e315702e8054.tar.gz bcm5719-llvm-c71d6275ca727a6d534dd5ee4602e315702e8054.zip | |
[WinEH] Fix ip2state table emission with funclets
Previously we were hijacking the old LandingPadInfo data structures to
communicate our state numbers. Now we don't need that anymore.
llvm-svn: 248763
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/CodeGen/WinEHFuncInfo.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/include/llvm/CodeGen/WinEHFuncInfo.h b/llvm/include/llvm/CodeGen/WinEHFuncInfo.h index 0f947812a01..ac19ddf86bd 100644 --- a/llvm/include/llvm/CodeGen/WinEHFuncInfo.h +++ b/llvm/include/llvm/CodeGen/WinEHFuncInfo.h @@ -28,6 +28,7 @@ class GlobalVariable; class InvokeInst; class IntrinsicInst; class LandingPadInst; +class MCExpr; class MCSymbol; class MachineBasicBlock; class Value; @@ -160,15 +161,18 @@ struct WinEHTryBlockMapEntry { struct WinEHFuncInfo { DenseMap<const Instruction *, int> EHPadStateMap; + DenseMap<MCSymbol *, std::pair<int, MCSymbol *>> InvokeToStateMap; SmallVector<WinEHUnwindMapEntry, 4> UnwindMap; SmallVector<WinEHTryBlockMapEntry, 4> TryBlockMap; SmallVector<SEHUnwindMapEntry, 4> SEHUnwindMap; - SmallVector<std::pair<MCSymbol *, int>, 4> IPToStateList; int UnwindHelpFrameIdx = INT_MAX; int UnwindHelpFrameOffset = -1; int getLastStateNumber() const { return UnwindMap.size() - 1; } + void addIPToStateRange(const BasicBlock *PadBB, MCSymbol *InvokeBegin, + MCSymbol *InvokeEnd); + /// localescape index of the 32-bit EH registration node. Set by /// WinEHStatePass and used indirectly by SEH filter functions of the parent. int EHRegNodeEscapeIndex = INT_MAX; |

