13#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_EHSTREAMER_H
14#define LLVM_LIB_CODEGEN_ASMPRINTER_EHSTREAMER_H
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
#define LLVM_LIBRARY_VISIBILITY
This file defines the DenseMap class.
Collects and handles AsmPrinter objects required to build debug or EH information.
This class is intended to be used as a driving class for all asm writers.
Emits exception handling directives.
virtual void emitTypeInfos(unsigned TTypeEncoding, MCSymbol *TTBaseLabel)
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.
static bool callToNoUnwindFunction(const MachineInstr *MI)
Return ‘true’ if this is a call to a function marked ‘nounwind’.
void computePadMap(const SmallVectorImpl< const LandingPadInfo * > &LandingPads, RangeMapType &PadMap)
AsmPrinter * Asm
Target of directive emission.
MCSymbol * emitExceptionTable()
Emit landing pads and actions.
virtual void computeCallSiteTable(SmallVectorImpl< CallSiteEntry > &CallSites, SmallVectorImpl< CallSiteRange > &CallSiteRanges, const SmallVectorImpl< const LandingPadInfo * > &LandingPads, const SmallVectorImpl< unsigned > &FirstActions)
Compute the call-site table and the call-site ranges.
static bool isFilterEHSelector(int Selector)
static bool isCleanupEHSelector(int Selector)
static unsigned sharedTypeIDs(const LandingPadInfo *L, const LandingPadInfo *R)
How many leading type ids two landing pads have in common.
static bool isCatchEHSelector(int Selector)
DenseMap< MCSymbol *, PadRange > RangeMapType
MachineModuleInfo * MMI
Collected machine module information.
EHStreamer(AsmPrinter *A)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Representation of each machine instruction.
This class contains meta information specific to a module.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is an optimization pass for GlobalISel generic memory operations.
Structure describing an entry in the actions table.
Structure describing an entry in the call-site table.
const LandingPadInfo * LPad
Structure describing a contiguous range of call-sites which reside in the same procedure fragment.
MCSymbol * ExceptionLabel
MCSymbol * FragmentBeginLabel
MCSymbol * FragmentEndLabel
Structure holding a try-range and the associated landing pad.
This structure is used to retain landing pad info for the current function.