LLVM: lib/CodeGen/AsmPrinter/EHStreamer.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_EHSTREAMER_H
14#define LLVM_LIB_CODEGEN_ASMPRINTER_EHSTREAMER_H
15
19
20namespace llvm {
21
28
29
31protected:
32
34
35
37
38
41
42
50
52
53
59
60
71
72
73
74
75
77
79
81
83
84
86
87
89
91 };
92
93
94
99
102
103
104
105
106
107
108
109
110
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
139
141
142
143
144
148
149public:
152
153
154
156};
157
158}
159
160#endif
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
#define LLVM_LIBRARY_VISIBILITY
This file defines the DenseMap class.
Collects and handles AsmPrinter objects required to build debug or EH information.
This class is intended to be used as a driving class for all asm writers.
Emits exception handling directives.
Definition EHStreamer.h:30
virtual void emitTypeInfos(unsigned TTypeEncoding, MCSymbol *TTBaseLabel)
void computeActionsTable(const SmallVectorImpl< const LandingPadInfo * > &LandingPads, SmallVectorImpl< ActionEntry > &Actions, SmallVectorImpl< unsigned > &FirstActions)
Compute the actions table and gather the first action index for each landing pad site.
static bool callToNoUnwindFunction(const MachineInstr *MI)
Return ‘true’ if this is a call to a function marked ‘nounwind’.
void computePadMap(const SmallVectorImpl< const LandingPadInfo * > &LandingPads, RangeMapType &PadMap)
AsmPrinter * Asm
Target of directive emission.
Definition EHStreamer.h:33
MCSymbol * emitExceptionTable()
Emit landing pads and actions.
virtual void computeCallSiteTable(SmallVectorImpl< CallSiteEntry > &CallSites, SmallVectorImpl< CallSiteRange > &CallSiteRanges, const SmallVectorImpl< const LandingPadInfo * > &LandingPads, const SmallVectorImpl< unsigned > &FirstActions)
Compute the call-site table and the call-site ranges.
static bool isFilterEHSelector(int Selector)
Definition EHStreamer.h:145
static bool isCleanupEHSelector(int Selector)
Definition EHStreamer.h:146
static unsigned sharedTypeIDs(const LandingPadInfo *L, const LandingPadInfo *R)
How many leading type ids two landing pads have in common.
static bool isCatchEHSelector(int Selector)
Definition EHStreamer.h:147
DenseMap< MCSymbol *, PadRange > RangeMapType
Definition EHStreamer.h:51
MachineModuleInfo * MMI
Collected machine module information.
Definition EHStreamer.h:36
EHStreamer(AsmPrinter *A)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Representation of each machine instruction.
This class contains meta information specific to a module.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is an optimization pass for GlobalISel generic memory operations.
Structure describing an entry in the actions table.
Definition EHStreamer.h:54
int NextAction
Definition EHStreamer.h:56
unsigned Previous
Definition EHStreamer.h:57
int ValueForTypeID
Definition EHStreamer.h:55
Structure describing an entry in the call-site table.
Definition EHStreamer.h:61
MCSymbol * BeginLabel
Definition EHStreamer.h:63
const LandingPadInfo * LPad
Definition EHStreamer.h:67
unsigned Action
Definition EHStreamer.h:69
MCSymbol * EndLabel
Definition EHStreamer.h:64
Structure describing a contiguous range of call-sites which reside in the same procedure fragment.
Definition EHStreamer.h:76
size_t CallSiteEndIdx
Definition EHStreamer.h:88
MCSymbol * ExceptionLabel
Definition EHStreamer.h:82
bool IsLPRange
Definition EHStreamer.h:90
size_t CallSiteBeginIdx
Definition EHStreamer.h:85
MCSymbol * FragmentBeginLabel
Definition EHStreamer.h:78
MCSymbol * FragmentEndLabel
Definition EHStreamer.h:80
Structure holding a try-range and the associated landing pad.
Definition EHStreamer.h:43
unsigned RangeIndex
Definition EHStreamer.h:48
unsigned PadIndex
Definition EHStreamer.h:45
This structure is used to retain landing pad info for the current function.