LLVM: include/llvm/MC/MCWinEH.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_MC_MCWINEH_H

10#define LLVM_MC_MCWINEH_H

11

15#include

16

17namespace llvm {

21

40

53

60

73

74

86

88

96

99 return false;

101 if (E.second.Instructions.empty())

102 return false;

103 return true;

104 }

105};

106

108public:

110

111

114 bool HandlerData) const = 0;

115};

116}

117}

118

119#endif

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

This file implements a map that provides insertion order iteration.

Instances of this class represent a uniqued identifier for a section in the current translation unit.

Streaming machine code generation interface.

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

This class implements a map that also provides access to all stored values in a deterministic order.

Represents a location in source code.

virtual void Emit(MCStreamer &Streamer) const =0

This emits the unwind info sections (.pdata and .xdata in PE/COFF).

virtual void EmitUnwindInfo(MCStreamer &Streamer, FrameInfo *FI, bool HandlerData) const =0

This is an optimization pass for GlobalISel generic memory operations.

DWARFExpression::Operation Op

const MCSymbol * End

Definition MCWinEH.h:68

std::vector< Instruction > Instructions

Definition MCWinEH.h:65

SMLoc Loc

Definition MCWinEH.h:70

unsigned Condition

Definition MCWinEH.h:66

const MCSymbol * Start

Definition MCWinEH.h:67

const MCSymbol * UnwindV2Start

Definition MCWinEH.h:69

MCSymbol * Symbol

Definition MCWinEH.h:79

Segment(int64_t Offset, int64_t Length, bool HasProlog=false)

Definition MCWinEH.h:83

MapVector< MCSymbol *, int64_t > Epilogs

Definition MCWinEH.h:81

bool HasProlog

Definition MCWinEH.h:78

int64_t Offset

Definition MCWinEH.h:76

int64_t Length

Definition MCWinEH.h:77

uint8_t Version

Definition MCWinEH.h:59

bool empty() const

Definition MCWinEH.h:97

std::vector< Instruction > Instructions

Definition MCWinEH.h:63

std::vector< Segment > Segments

Definition MCWinEH.h:87

bool HandlesExceptions

Definition MCWinEH.h:55

const MCSymbol * Function

Definition MCWinEH.h:46

int LastFrameInst

Definition MCWinEH.h:61

bool Fragment

Definition MCWinEH.h:57

MCSection * TextSection

Definition MCWinEH.h:50

const MCSymbol * Symbol

Definition MCWinEH.h:49

const MCSymbol * PrologEnd

Definition MCWinEH.h:48

MapVector< MCSymbol *, Epilog > EpilogMap

Definition MCWinEH.h:72

uint32_t PrologCodeBytes

Definition MCWinEH.h:52

bool HandlesUnwind

Definition MCWinEH.h:54

const MCSymbol * FuncletOrFuncEnd

Definition MCWinEH.h:44

const MCSymbol * End

Definition MCWinEH.h:43

uint32_t PackedInfo

Definition MCWinEH.h:51

const FrameInfo * ChainedParent

Definition MCWinEH.h:62

FrameInfo(const MCSymbol *Function, const MCSymbol *BeginFuncEHLabel)

Definition MCWinEH.h:90

const MCSymbol * Begin

Definition MCWinEH.h:42

FrameInfo(const MCSymbol *Function, const MCSymbol *BeginFuncEHLabel, const FrameInfo *ChainedParent)

Definition MCWinEH.h:92

SMLoc FunctionLoc

Definition MCWinEH.h:47

static constexpr uint8_t DefaultVersion

Definition MCWinEH.h:58

const MCSymbol * ExceptionHandler

Definition MCWinEH.h:45

bool EmitAttempted

Definition MCWinEH.h:56

Instruction(unsigned Op, MCSymbol *L, unsigned Reg, unsigned Off)

Definition MCWinEH.h:29

const MCSymbol * Label

Definition MCWinEH.h:24

unsigned Operation

Definition MCWinEH.h:27

bool operator==(const Instruction &I) const

Definition MCWinEH.h:32

unsigned Register

Definition MCWinEH.h:26

unsigned Offset

Definition MCWinEH.h:25

bool operator!=(const Instruction &I) const

Definition MCWinEH.h:38