LLVM 20.0.0git
|
#include "CodeGen/AsmPrinter/DwarfException.h"
Public Member Functions | |
DwarfCFIException (AsmPrinter *A) | |
~DwarfCFIException () override | |
void | endModule () override |
Emit all exception information that should come after the content. | |
void | beginFunction (const MachineFunction *MF) override |
Gather pre-function exception information. | |
void | endFunction (const MachineFunction *) override |
Gather and emit post-function exception information. | |
void | beginBasicBlockSection (const MachineBasicBlock &MBB) override |
Process the beginning of a new basic-block-section within a function. | |
void | endBasicBlockSection (const MachineBasicBlock &MBB) override |
Process the end of a basic-block-section within a function. | |
Public Member Functions inherited from llvm::EHStreamer | |
EHStreamer (AsmPrinter *A) | |
~EHStreamer () override | |
Public Member Functions inherited from llvm::AsmPrinterHandler | |
virtual | ~AsmPrinterHandler () |
Pin vtable to this file. | |
virtual void | beginModule (Module *M) |
virtual void | endModule ()=0 |
Emit all sections that should come after the content. | |
virtual void | beginFunction (const MachineFunction *MF)=0 |
Gather pre-function debug information. | |
virtual void | markFunctionEnd () |
virtual void | endFunction (const MachineFunction *MF)=0 |
Gather post-function debug information. | |
virtual void | beginBasicBlockSection (const MachineBasicBlock &MBB) |
Process the beginning of a new basic-block-section within a function. | |
virtual void | endBasicBlockSection (const MachineBasicBlock &MBB) |
Process the end of a basic-block-section within a function. | |
virtual void | beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym=nullptr) |
Emit target-specific EH funclet machinery. | |
virtual void | endFunclet () |
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’. | |
Protected Types inherited from llvm::EHStreamer | |
using | RangeMapType = DenseMap< MCSymbol *, PadRange > |
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. | |
void | computePadMap (const SmallVectorImpl< const LandingPadInfo * > &LandingPads, RangeMapType &PadMap) |
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. | |
MCSymbol * | emitExceptionTable () |
Emit landing pads and actions. | |
virtual void | emitTypeInfos (unsigned TTypeEncoding, MCSymbol *TTBaseLabel) |
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. | |
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. | |
MachineModuleInfo * | MMI |
Collected machine module information. | |
Definition at line 24 of file DwarfException.h.
DwarfCFIException::DwarfCFIException | ( | AsmPrinter * | A | ) |
Definition at line 27 of file DwarfCFIException.cpp.
|
overridedefault |
|
overridevirtual |
Process the beginning of a new basic-block-section within a function.
Always called immediately after beginFunction for the first basic-block. When basic-block-sections are enabled, called before the first block of each such section.
Reimplemented from llvm::AsmPrinterHandler.
Definition at line 101 of file DwarfCFIException.cpp.
References llvm::EHStreamer::Asm, assert(), llvm::AsmPrinter::Debug, llvm::AsmPrinter::EH, F, llvm::TargetOptions::ForceDwarfFrameSection, llvm::TargetLoweringObjectFile::getCFIPersonalitySymbol(), llvm::MachineFunction::getFunction(), llvm::TargetLoweringObjectFile::getLSDAEncoding(), llvm::AsmPrinter::getMBBExceptionSym(), llvm::AsmPrinter::getModuleCFISectionType(), llvm::AsmPrinter::getObjFileLowering(), llvm::MachineBasicBlock::getParent(), llvm::TargetLoweringObjectFile::getPersonalityEncoding(), MBB, llvm::EHStreamer::MMI, llvm::TargetMachine::Options, llvm::AsmPrinter::OutStreamer, P, Sym, and llvm::AsmPrinter::TM.
|
overridevirtual |
Gather pre-function exception information.
Assumes being emitted immediately after the function entry point.
Implements llvm::AsmPrinterHandler.
Definition at line 58 of file DwarfCFIException.cpp.
References llvm::EHStreamer::Asm, llvm::classifyEHPersonality(), llvm::dwarf::DW_EH_PE_omit, F, llvm::MCContext::getAsmInfo(), llvm::MachineFunction::getContext(), llvm::MCAsmInfo::getExceptionHandlingType(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionCFISectionType(), llvm::MachineFunction::getLandingPads(), llvm::TargetLoweringObjectFile::getLSDAEncoding(), llvm::AsmPrinter::getObjFileLowering(), llvm::TargetLoweringObjectFile::getPersonalityEncoding(), llvm::isNoOpWithoutInvoke(), llvm::AsmPrinter::None, llvm::None, llvm::MCAsmInfo::usesCFIForEH(), and llvm::AsmPrinter::usesCFIWithoutEH().
|
overridevirtual |
Process the end of a basic-block-section within a function.
When basic-block-sections are enabled, called after the last block in each such section (including the last section in the function). When basic-block-sections are disabled, called at the end of a function, immediately prior to markFunctionEnd.
Reimplemented from llvm::AsmPrinterHandler.
Definition at line 140 of file DwarfCFIException.cpp.
References llvm::EHStreamer::Asm, and llvm::AsmPrinter::OutStreamer.
|
overridevirtual |
Gather and emit post-function exception information.
endFunction - Gather and emit post-function exception information.
Implements llvm::AsmPrinterHandler.
Definition at line 147 of file DwarfCFIException.cpp.
References llvm::EHStreamer::emitExceptionTable().
|
overridevirtual |
Emit all exception information that should come after the content.
endModule - Emit all exception information that should come after the content.
Implements llvm::AsmPrinterHandler.
Definition at line 38 of file DwarfCFIException.cpp.
References llvm::EHStreamer::Asm, llvm::dwarf::DW_EH_PE_indirect, llvm::TargetLoweringObjectFile::emitPersonalityValue(), llvm::AsmPrinter::getDataLayout(), llvm::AsmPrinter::getObjFileLowering(), llvm::TargetLoweringObjectFile::getPersonalityEncoding(), llvm::AsmPrinter::getSymbol(), llvm::AsmPrinter::MAI, llvm::AsmPrinter::OutStreamer, Sym, and llvm::MCAsmInfo::usesCFIForEH().