Go to the documentation of this file.
34 for (
const char *SymName : {
"__cpp_exception",
"__c_longjmp"}) {
56 bool ShouldEmitExceptionTable =
false;
59 ShouldEmitExceptionTable =
true;
63 if (!ShouldEmitExceptionTable)
66 assert(LSDALabel &&
".GCC_exception_table has not been emitted!");
94 for (
unsigned I = 0,
N = LandingPads.size();
I <
N; ++
I) {
104 if (CallSites.size() < LPadIndex + 1)
105 CallSites.
resize(LPadIndex + 1);
106 CallSites[LPadIndex] = Site;
bool isPositionIndependent() const
This is an optimization pass for GlobalISel generic memory operations.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MCSymbol * createTempSymbol(const Twine &Name) const
Context object for machine code objects.
MCSymbol * lookupSymbol(const Twine &Name) const
Get the symbol for Name, or null.
void computeCallSiteTable(SmallVectorImpl< CallSiteEntry > &CallSites, SmallVectorImpl< CallSiteRange > &CallSiteRanges, const SmallVectorImpl< const LandingPadInfo * > &LandingPads, const SmallVectorImpl< unsigned > &FirstActions) override
Compute the call-site table and the call-site ranges.
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
MCSymbol * emitExceptionTable()
Emit landing pads and actions.
void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, bool CannotUsePrivateLabel) const
Print the appropriate prefix and the specified global variable's name.
Analysis containing CSE Info
void tidyLandingPads(DenseMap< MCSymbol *, uintptr_t > *LPMap=nullptr, bool TidyIfNoBeginLabels=true)
Remap landing pad labels and remove any deleted landing pads.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
void endModule() override
Emit all sections that should come after the content.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static const MCBinaryExpr * createSub(const MCExpr *LHS, const MCExpr *RHS, MCContext &Ctx)
MachineFunction * MF
The current machine function.
const std::vector< LandingPadInfo > & getLandingPads() const
Return a reference to the landing pad info for the current function.
MCContext & OutContext
This is the context for the output file that we are streaming.
virtual void markFunctionEnd() override
MCSymbol * GetExternalSymbolSymbol(StringRef Sym) const
Return the MCSymbol for the specified ExternalSymbol.
Structure describing an entry in the call-site table.
AsmPrinter * Asm
Target of directive emission.
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
bool hasWasmLandingPadIndex(const MachineBasicBlock *LPad) const
Returns true if the landing pad has an associate index in wasm EH.
void endFunction(const MachineFunction *MF) override
Gather post-function debug information.
const DataLayout & getDataLayout() const
Return information about data layout.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This structure is used to retain landing pad info for the current function.
unsigned getWasmLandingPadIndex(const MachineBasicBlock *LPad) const
Get the index in wasm EH for a given landing pad.
Base class for the full range of assembler expressions which are needed for parsing.