LLVM: lib/CodeGen/AsmPrinter/AIXException.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
22
23namespace llvm {
24
26
27void AIXException::emitExceptionInfoTable(const MCSymbol *LSDA,
29
30
31
32
33
34
35
36
37
38
39
40 auto *EHInfo =
43
44
45
46
50 EHInfo->getCsectProp());
51 }
53 MCSymbol *EHInfoLabel =
56
57
59
61 const unsigned PointerSize = DL.getPointerSize();
62
63
64 Asm->OutStreamer->emitValueToAlignment(Align(PointerSize));
65
66
68 PointerSize);
69
70
72 PointerSize);
73}
74
76
77
78
80 return;
81
83
85 assert(F.hasPersonalityFn() &&
86 "Landingpads are presented, but no personality routine is found.");
87 const auto *Per =
88 cast(F.getPersonalityFn()->stripPointerCasts());
90
91 emitExceptionInfoTable(LSDALabel, PerSym);
92}
93
94}
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
Module.h This file contains the declarations for the Module class.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void endFunction(const MachineFunction *MF) override
Gather post-function debug information.
AIXException(AsmPrinter *A)
This class is intended to be used as a driving class for all asm writers.
const TargetLoweringObjectFile & getObjFileLowering() const
Return information about object file lowering.
TargetMachine & TM
Target machine description.
MachineFunction * MF
The current machine function.
MCContext & OutContext
This is the context for the output file that we are streaming.
void emitInt32(int Value) const
Emit a long directive and value.
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
Emits exception handling directives.
AsmPrinter * Asm
Target of directive emission.
MCSymbol * emitExceptionTable()
Emit landing pads and actions.
MachineModuleInfo * MMI
Collected machine module information.
MCSectionXCOFF * getXCOFFSection(StringRef Section, SectionKind K, std::optional< XCOFF::CsectProperties > CsectProp=std::nullopt, bool MultiSymbolsAllowed=false, std::optional< XCOFF::DwarfSectionSubtypeFlags > DwarfSubtypeFlags=std::nullopt)
MCSection * getCompactUnwindSection() const
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Function & getFunction()
Return the LLVM function that this machine code represents.
const Module * getModule() const
const DataLayout & getDataLayout() const
Get the data layout for the module's target platform.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
static MCSymbol * getEHInfoTableSymbol(const MachineFunction *MF)
static bool ShouldEmitEHBlock(const MachineFunction *MF)
MCSymbol * getSymbol(const GlobalValue *GV) const
bool getFunctionSections() const
Return true if functions should be emitted into their own section, corresponding to -ffunction-sectio...
StringRef getName() const
Return a constant reference to the value's name.
A raw_ostream that writes to an SmallVector or SmallString.
This is an optimization pass for GlobalISel generic memory operations.