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 (.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