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.