LLVM
8.0.1
|
#include "CodeGen/AsmPrinter/WasmException.h"
Public Member Functions | |
WasmException (AsmPrinter *A) | |
void | endModule () override |
Emit all sections that should come after the content. More... | |
void | beginFunction (const MachineFunction *MF) override |
Gather pre-function debug information. More... | |
virtual void | markFunctionEnd () override |
void | endFunction (const MachineFunction *MF) override |
Gather post-function debug information. More... | |
Public Member Functions inherited from llvm::EHStreamer | |
EHStreamer (AsmPrinter *A) | |
~EHStreamer () override | |
void | setSymbolSize (const MCSymbol *Sym, uint64_t Size) override |
For symbols that have a size designated (e.g. More... | |
void | beginInstruction (const MachineInstr *MI) override |
Process beginning of an instruction. More... | |
void | endInstruction () override |
Process end of an instruction. More... | |
Public Member Functions inherited from llvm::AsmPrinterHandler | |
virtual | ~AsmPrinterHandler () |
Pin vtable to this file. More... | |
virtual void | beginFragment (const MachineBasicBlock *MBB, ExceptionSymbolProvider ESP) |
virtual void | endFragment () |
virtual void | beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym=nullptr) |
Emit target-specific EH funclet machinery. More... | |
virtual void | endFunclet () |
Protected Member Functions | |
void | computeCallSiteTable (SmallVectorImpl< CallSiteEntry > &CallSites, const SmallVectorImpl< const LandingPadInfo *> &LandingPads, const SmallVectorImpl< unsigned > &FirstActions) override |
Compute the call-site table. More... | |
Protected Member Functions inherited from llvm::EHStreamer | |
void | computeActionsTable (const SmallVectorImpl< const LandingPadInfo *> &LandingPads, SmallVectorImpl< ActionEntry > &Actions, SmallVectorImpl< unsigned > &FirstActions) |
Compute the actions table and gather the first action index for each landing pad site. More... | |
void | computePadMap (const SmallVectorImpl< const LandingPadInfo *> &LandingPads, RangeMapType &PadMap) |
MCSymbol * | emitExceptionTable () |
Emit landing pads and actions. More... | |
virtual void | emitTypeInfos (unsigned TTypeEncoding, MCSymbol *TTBaseLabel) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::EHStreamer | |
static bool | callToNoUnwindFunction (const MachineInstr *MI) |
Return `true' if this is a call to a function marked `nounwind'. More... | |
Protected Types inherited from llvm::EHStreamer | |
using | RangeMapType = DenseMap< MCSymbol *, PadRange > |
Static Protected Member Functions inherited from llvm::EHStreamer | |
static unsigned | sharedTypeIDs (const LandingPadInfo *L, const LandingPadInfo *R) |
How many leading type ids two landing pads have in common. More... | |
static bool | isFilterEHSelector (int Selector) |
static bool | isCleanupEHSelector (int Selector) |
static bool | isCatchEHSelector (int Selector) |
Protected Attributes inherited from llvm::EHStreamer | |
AsmPrinter * | Asm |
Target of directive emission. More... | |
MachineModuleInfo * | MMI |
Collected machine module information. More... | |
Definition at line 23 of file WasmException.h.
|
inline |
Definition at line 25 of file WasmException.h.
|
inlineoverridevirtual |
Gather pre-function debug information.
Every beginFunction(MF) call should be followed by an endFunction(MF) call.
Implements llvm::AsmPrinterHandler.
Definition at line 28 of file WasmException.h.
|
overrideprotectedvirtual |
Compute the call-site table.
The entry for an invoke has a try-range containing the call, a non-zero landing pad and an appropriate action. The entry for an ordinary call has a try-range containing the call and zero for the landing pad and the action. Calls marked 'nounwind' have no entry and must not be contained in the try-range of any entry - they form gaps in the table. Entries must be ordered by try-range address.
The entry for an invoke has a try-range containing the call, a non-zero landing pad, and an appropriate action. The entry for an ordinary call has a try-range containing the call and zero for the landing pad and the action. Calls marked 'nounwind' have no entry and must not be contained in the try-range of any entry - they form gaps in the table. Entries must be ordered by try-range address.
Reimplemented from llvm::EHStreamer.
Definition at line 78 of file WasmException.cpp.
References llvm::EHStreamer::Asm, llvm::MachineFunction::getWasmLandingPadIndex(), llvm::MachineFunction::hasWasmLandingPadIndex(), I, Info, llvm::LandingPadInfo::LandingPadBlock, llvm::AsmPrinter::MF, N, llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorBase::size().
|
overridevirtual |
Gather post-function debug information.
Please note that some AsmPrinter implementations may not call beginFunction at all.
Implements llvm::AsmPrinterHandler.
Definition at line 45 of file WasmException.cpp.
References llvm::EHStreamer::Asm, assert(), llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::AsmPrinter::createTempSymbol(), llvm::EHStreamer::emitExceptionTable(), llvm::MachineFunction::getLandingPads(), llvm::MachineFunction::hasWasmLandingPadIndex(), Info, and llvm::AsmPrinter::OutStreamer.
|
overridevirtual |
Emit all sections that should come after the content.
Implements llvm::AsmPrinterHandler.
Definition at line 21 of file WasmException.cpp.
References llvm::EHStreamer::Asm, llvm::AsmPrinter::getDataLayout(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::Mangler::getNameWithPrefix(), llvm::MCContext::lookupSymbol(), llvm::AsmPrinter::OutContext, and llvm::AsmPrinter::OutStreamer.
|
overridevirtual |
Reimplemented from llvm::AsmPrinterHandler.
Definition at line 35 of file WasmException.cpp.
References llvm::EHStreamer::Asm, llvm::MachineFunction::getLandingPads(), llvm::AsmPrinter::MF, and llvm::MachineFunction::tidyLandingPads().