LLVM: include/llvm/CodeGen/WinEHFuncInfo.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_CODEGEN_WINEHFUNCINFO_H

14#define LLVM_CODEGEN_WINEHFUNCINFO_H

15

19#include

20#include

21#include

22

23namespace llvm {

24

34

35

36

37

39

44

45

47

48

50

52

53

55

56

58};

59

71

78

80

89

102

104

107

109

114

116};

117

118

119

120

123

126

128

129

134

135}

136

137#endif

This file defines the DenseMap class.

uint64_t IntrinsicInst * II

This file defines the PointerUnion class, which is a discriminated union of pointer types.

This file defines the SmallVector class.

an instruction to allocate memory on the stack

LLVM Basic Block Representation.

MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...

A discriminated union of two or more pointer types, with the discriminator in the low bit of the poin...

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

This is an optimization pass for GlobalISel generic memory operations.

void calculateWinCXXEHStateNumbers(const Function *ParentFn, WinEHFuncInfo &FuncInfo)

Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state number...

void calculateSEHStateForAsynchEH(const BasicBlock *BB, int State, WinEHFuncInfo &FuncInfo)

void calculateCXXStateForAsynchEH(const BasicBlock *BB, int State, WinEHFuncInfo &FuncInfo)

void calculateSEHStateNumbers(const Function *ParentFn, WinEHFuncInfo &FuncInfo)

ClrHandlerType

Definition WinEHFuncInfo.h:79

@ Fault

Definition WinEHFuncInfo.h:79

@ Finally

Definition WinEHFuncInfo.h:79

@ Catch

Definition WinEHFuncInfo.h:79

@ Filter

Definition WinEHFuncInfo.h:79

PointerUnion< const BasicBlock *, MachineBasicBlock * > MBBOrBasicBlock

Definition WinEHFuncInfo.h:38

void calculateClrEHStateNumbers(const Function *Fn, WinEHFuncInfo &FuncInfo)

Definition WinEHFuncInfo.h:81

int TryParentState

Outer try region enclosing this entry's try region, treating later catches on same try as "outer".

Definition WinEHFuncInfo.h:85

int HandlerParentState

Outer handler enclosing this entry's handler.

Definition WinEHFuncInfo.h:84

MBBOrBasicBlock Handler

Definition WinEHFuncInfo.h:82

ClrHandlerType HandlerType

Definition WinEHFuncInfo.h:87

uint32_t TypeToken

Definition WinEHFuncInfo.h:83

Definition WinEHFuncInfo.h:40

MBBOrBasicBlock Cleanup

Definition WinEHFuncInfo.h:42

int ToState

Definition WinEHFuncInfo.h:41

Similar to CxxUnwindMapEntry, but supports SEH filters.

Definition WinEHFuncInfo.h:46

int ToState

If unwinding continues through this handler, transition to the handler at this state.

Definition WinEHFuncInfo.h:49

MBBOrBasicBlock Handler

Holds the __except or __finally basic block.

Definition WinEHFuncInfo.h:57

const Function * Filter

Holds the filter expression function.

Definition WinEHFuncInfo.h:54

bool IsFinally

Definition WinEHFuncInfo.h:51

Definition WinEHFuncInfo.h:90

void addIPToStateRange(const InvokeInst *II, MCSymbol *InvokeBegin, MCSymbol *InvokeEnd)

int EHGuardFrameIndex

Definition WinEHFuncInfo.h:112

int PSPSymFrameIdx

Definition WinEHFuncInfo.h:101

int EHRegNodeFrameIndex

Definition WinEHFuncInfo.h:110

SmallVector< SEHUnwindMapEntry, 4 > SEHUnwindMap

Definition WinEHFuncInfo.h:98

int UnwindHelpFrameIdx

Definition WinEHFuncInfo.h:100

SmallVector< ClrEHUnwindMapEntry, 4 > ClrEHUnwindMap

Definition WinEHFuncInfo.h:99

int SEHSetFrameOffset

Definition WinEHFuncInfo.h:113

DenseMap< const FuncletPadInst *, int > FuncletBaseStateMap

Definition WinEHFuncInfo.h:92

DenseMap< const BasicBlock *, int > BlockToStateMap

Definition WinEHFuncInfo.h:95

DenseMap< const InvokeInst *, int > InvokeStateMap

Definition WinEHFuncInfo.h:93

SmallVector< WinEHTryBlockMapEntry, 4 > TryBlockMap

Definition WinEHFuncInfo.h:97

DenseMap< const Instruction *, int > EHPadStateMap

Definition WinEHFuncInfo.h:91

int EHRegNodeEndOffset

Definition WinEHFuncInfo.h:111

DenseMap< MCSymbol *, std::pair< int, MCSymbol * > > LabelToStateMap

Definition WinEHFuncInfo.h:94

SmallVector< CxxUnwindMapEntry, 4 > CxxUnwindMap

Definition WinEHFuncInfo.h:96

int getLastStateNumber() const

Definition WinEHFuncInfo.h:103

Definition WinEHFuncInfo.h:60

int FrameIndex

Definition WinEHFuncInfo.h:66

GlobalVariable * TypeDescriptor

Definition WinEHFuncInfo.h:68

union llvm::WinEHHandlerType::@246205307012256373115155017221207221353102114334 CatchObj

The CatchObj starts out life as an LLVM alloca and is eventually turned frame index.

const AllocaInst * Alloca

Definition WinEHFuncInfo.h:65

int Adjectives

Definition WinEHFuncInfo.h:61

MBBOrBasicBlock Handler

Definition WinEHFuncInfo.h:69

Definition WinEHFuncInfo.h:72

SmallVector< WinEHHandlerType, 1 > HandlerArray

Definition WinEHFuncInfo.h:76

int TryHigh

Definition WinEHFuncInfo.h:74

int CatchHigh

Definition WinEHFuncInfo.h:75

int TryLow

Definition WinEHFuncInfo.h:73