LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::WinException Class Reference

#include "CodeGen/AsmPrinter/WinException.h"

Inheritance diagram for llvm::WinException:
Inheritance graph
[legend]
Collaboration diagram for llvm::WinException:
Collaboration graph
[legend]

Public Member Functions

 WinException (AsmPrinter *A)
 
 ~WinException () override
 
void endModule () override
 Emit all exception information that should come after the content. More...
 
void beginFunction (const MachineFunction *MF) override
 Gather pre-function exception information. More...
 
void endFunction (const MachineFunction *) override
 Gather and emit post-function exception information. More...
 
void beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym) override
 Emit target-specific EH funclet machinery. More...
 
void endFunclet () override
 
- 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 markFunctionEnd ()
 
virtual void beginFragment (const MachineBasicBlock *MBB, ExceptionSymbolProvider ESP)
 
virtual void endFragment ()
 

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 >
 
- Protected Member Functions inherited from llvm::EHStreamer
unsigned computeActionsTable (const SmallVectorImpl< const LandingPadInfo *> &LPs, 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)
 
void computeCallSiteTable (SmallVectorImpl< CallSiteEntry > &CallSites, const SmallVectorImpl< const LandingPadInfo *> &LPs, const SmallVectorImpl< unsigned > &FirstActions)
 Compute the call-site table. More...
 
void emitExceptionTable ()
 Emit landing pads and actions. More...
 
virtual void emitTypeInfos (unsigned TTypeEncoding)
 
- 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
AsmPrinterAsm
 Target of directive emission. More...
 
MachineModuleInfoMMI
 Collected machine module information. More...
 

Detailed Description

Definition at line 28 of file WinException.h.

Constructor & Destructor Documentation

◆ WinException()

WinException::WinException ( AsmPrinter A)

◆ ~WinException()

WinException::~WinException ( )
override

Definition at line 47 of file WinException.cpp.

Member Function Documentation

◆ beginFunclet()

void WinException::beginFunclet ( const MachineBasicBlock MBB,
MCSymbol Sym 
)
overridevirtual

◆ beginFunction()

void WinException::beginFunction ( const MachineFunction MF)
overridevirtual

◆ endFunclet()

void WinException::endFunclet ( )
overridevirtual

Reimplemented from llvm::AsmPrinterHandler.

Definition at line 233 of file WinException.cpp.

References llvm::MCStreamer::AddComment(), llvm::WinEHHandlerType::Adjectives, llvm::EHStreamer::Asm, assert(), llvm::MachineFunction::begin(), llvm::EHStreamer::callToNoUnwindFunction(), llvm::WinEHTryBlockMapEntry::CatchHigh, llvm::WinEHHandlerType::CatchObj, llvm::classifyEHPersonality(), llvm::CxxUnwindMapEntry::Cleanup, llvm::concat(), llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCBinaryExpr::createDiv(), llvm::MCBinaryExpr::createSub(), llvm::MCContext::createTempSymbol(), llvm::WinEHFuncInfo::CxxUnwindMap, llvm::GlobalValue::dropLLVMManglingEscape(), llvm::PointerUnion< PT1, PT2 >::dyn_cast(), llvm::dyn_cast(), E, llvm::WinEHFuncInfo::EHGuardFrameIndex, llvm::WinEHFuncInfo::EHRegNodeEndOffset, llvm::WinEHFuncInfo::EHRegNodeFrameIndex, llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitValue(), llvm::MCStreamer::EmitValueToAlignment(), llvm::WebAssembly::End, llvm::MachineFunction::end(), F(), llvm::SEHUnwindMapEntry::Filter, llvm::ISD::FrameIndex, llvm::WinEHHandlerType::FrameIndex, llvm::WinEHFuncInfo::FuncletBaseStateMap, llvm::PointerUnion< PT1, PT2 >::get(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReferencePreferSP(), llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionBegin(), llvm::MachineOperand::getMCSymbol(), getMCSymbolForMBB(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), llvm::MCContext::getOrCreateLSDASymbol(), llvm::MCContext::getOrCreateParentFrameOffsetSymbol(), llvm::MCContext::getOrCreateSymbol(), llvm::Function::getPersonalityFn(), llvm::TargetLoweringBase::getStackPointerRegisterToSaveRestore(), llvm::MachineFrameInfo::getStackProtectorIndex(), llvm::MachineFunction::getSubtarget(), llvm::AsmPrinter::getSymbol(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::MachineFunction::getWinEHFuncInfo(), llvm::TargetFrameLowering::getWinEHParentFrameOffset(), llvm::SEHUnwindMapEntry::Handler, llvm::WinEHHandlerType::Handler, llvm::WinEHTryBlockMapEntry::HandlerArray, llvm::MachineFunction::hasEHFunclets(), llvm::Function::hasPersonalityFn(), llvm::MachineFrameInfo::hasStackProtectorIndex(), I, llvm::MachineInstr::isCall(), llvm::MachineBasicBlock::isCleanupFuncletEntry(), llvm::MachineBasicBlock::isEHFuncletEntry(), llvm::MachineInstr::isEHLabel(), llvm::SEHUnwindMapEntry::IsFinally, llvm::MCStreamer::isVerboseAsm(), llvm::AsmPrinter::MAI, llvm::make_range(), llvm::AsmPrinter::MF, MI, llvm::MSVC_CXX, llvm::MSVC_Win64SEH, llvm::RISCVFenceField::O, llvm::operator!=(), llvm::operator*(), llvm::operator==(), llvm::AsmPrinter::OutContext, llvm::AsmPrinter::OutStreamer, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), scan(), llvm::WinEHFuncInfo::SEHSetFrameOffset, llvm::WinEHFuncInfo::SEHUnwindMap, llvm::Constant::stripPointerCasts(), llvm::CxxUnwindMapEntry::ToState, llvm::SEHUnwindMapEntry::ToState, llvm::WinEHFuncInfo::TryBlockMap, llvm::WinEHTryBlockMapEntry::TryHigh, llvm::WinEHTryBlockMapEntry::TryLow, llvm::WinEHHandlerType::TypeDescriptor, llvm::Unknown, llvm::WinEHFuncInfo::UnwindHelpFrameIdx, llvm::MCAsmInfo::usesWindowsCFI(), llvm::MCSymbolRefExpr::VK_COFF_IMGREL32, and llvm::MCSymbolRefExpr::VK_None.

Referenced by endFunction().

◆ endFunction()

void WinException::endFunction ( const MachineFunction MF)
overridevirtual

◆ endModule()

void WinException::endModule ( )
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 51 of file WinException.cpp.

References llvm::EHStreamer::Asm, F(), llvm::MachineModuleInfo::getModule(), llvm::AsmPrinter::getSymbol(), llvm::EHStreamer::MMI, and llvm::AsmPrinter::OutStreamer.


The documentation for this class was generated from the following files: