LLVM: llvm::CodeViewDebug Class Reference (original) (raw)
Collects and handles line tables information in a CodeView format. More...
#include "[CodeGen/AsmPrinter/CodeViewDebug.h](CodeViewDebug%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
CodeViewDebug (AsmPrinter *AP) | |
void | beginModule (Module *M) override |
void | endModule () override |
Emit the COFF section that holds the line table information. | |
void | beginInstruction (const MachineInstr *MI) override |
Process beginning of an instruction. | |
![]() |
|
virtual | ~DebugHandlerBase () override |
void | beginModule (Module *M) override |
void | beginInstruction (const MachineInstr *MI) override |
Process beginning of an instruction. | |
void | endInstruction () override |
Process end of an instruction. | |
void | beginFunction (const MachineFunction *MF) override |
Gather pre-function debug information. | |
void | endFunction (const MachineFunction *MF) override |
Gather post-function debug 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. | |
MCSymbol * | getLabelBeforeInsn (const MachineInstr *MI) |
Return Label preceding the instruction. | |
MCSymbol * | getLabelAfterInsn (const MachineInstr *MI) |
Return Label immediately following the instruction. | |
const InstructionOrdering & | getInstOrdering () const |
![]() |
|
virtual | ~AsmPrinterHandler () |
Pin vtables 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 | setSymbolSize (const MCSymbol *Sym, uint64_t Size) |
For symbols that have a size designated (e.g. | |
virtual void | beginInstruction (const MachineInstr *MI) |
Process beginning of an instruction. | |
virtual void | endInstruction () |
Process end of an instruction. | |
virtual void | beginCodeAlignment (const MachineBasicBlock &MBB) |
virtual void | beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym=nullptr) |
Emit target-specific EH funclet machinery. | |
virtual void | endFunclet () |
Protected Member Functions | |
---|---|
void | beginFunctionImpl (const MachineFunction *MF) override |
Gather pre-function debug information. | |
void | endFunctionImpl (const MachineFunction *) override |
Gather post-function debug information. | |
bool | moduleIsInFortran () |
Check if the current module is in Fortran. | |
![]() |
|
DebugHandlerBase (AsmPrinter *A) | |
void | identifyScopeMarkers () |
Indentify instructions that are marking the beginning of or ending of a scope. | |
void | requestLabelBeforeInsn (const MachineInstr *MI) |
Ensure that a label will be emitted before MI. | |
void | requestLabelAfterInsn (const MachineInstr *MI) |
Ensure that a label will be emitted after MI. | |
virtual void | beginFunctionImpl (const MachineFunction *MF)=0 |
virtual void | endFunctionImpl (const MachineFunction *MF)=0 |
virtual void | skippedNonDebugFunction () |
Additional Inherited Members | |
---|---|
![]() |
|
static uint64_t | getBaseTypeSize (const DIType *Ty) |
If this type is derived from a base type then return base type size. | |
static bool | isUnsignedDIType (const DIType *Ty) |
Return true if type encoding is unsigned. | |
![]() |
|
AsmPrinter * | Asm = nullptr |
Target of debug info emission. | |
MachineModuleInfo * | MMI = nullptr |
Collected machine module information. | |
DebugLoc | PrevInstLoc |
Previous instruction's location information. | |
MCSymbol * | PrevLabel = nullptr |
const MachineBasicBlock * | PrevInstBB = nullptr |
const MachineInstr * | PrologEndLoc |
This location indicates end of function prologue and beginning of function body. | |
const MachineBasicBlock * | EpilogBeginBlock = nullptr |
This block includes epilogue instructions. | |
const MachineInstr * | CurMI = nullptr |
If nonnull, stores the current machine instruction we're processing. | |
LexicalScopes | LScopes |
DbgValueHistoryMap | DbgValues |
History of DBG_VALUE and clobber instructions for each user variable. | |
DbgLabelInstrMap | DbgLabels |
Mapping of inlined labels and DBG_LABEL machine instruction. | |
DenseMap< const MachineInstr *, MCSymbol * > | LabelsBeforeInsn |
Maps instruction with label emitted before instruction. | |
DenseMap< const MachineInstr *, MCSymbol * > | LabelsAfterInsn |
Maps instruction with label emitted after instruction. | |
Collects and handles line tables information in a CodeView format.
Definition at line 55 of file CodeViewDebug.h.
◆ beginFunctionImpl()
Gather pre-function debug information.
Implements llvm::DebugHandlerBase.
Definition at line 1442 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, assert(), llvm::classifyEHPersonality(), llvm::MCStreamer::emitCVFuncIdDirective(), llvm::MachineFunction::exposesReturnsTwice(), llvm::MachineInstr::FrameSetup, llvm::Triple::getArch(), llvm::MachineFrameInfo::getCVBytesOfCalleeSavedRegisters(), llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionBegin(), llvm::MachineModuleInfo::getModule(), llvm::MachineFrameInfo::getOffsetAdjustment(), llvm::TargetMachine::getOptLevel(), llvm::Function::getPersonalityFn(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getSubtarget(), llvm::Module::getTargetTriple(), llvm::Function::hasFnAttribute(), llvm::TargetFrameLowering::hasFP(), llvm::MachineFunction::hasInlineAsm(), llvm::Function::hasOptNone(), llvm::Function::hasOptSize(), llvm::Function::hasPersonalityFn(), llvm::Function::hasProfileData(), llvm::Function::hasStackProtectorFnAttr(), llvm::MachineFrameInfo::hasStackProtectorIndex(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::isAsynchronousEHPersonality(), isThumb(), MBB, MI, llvm::DebugHandlerBase::MMI, llvm::None, llvm::DebugHandlerBase::PrologEndLoc, llvm::DebugHandlerBase::requestLabelAfterInsn(), llvm::DebugHandlerBase::requestLabelBeforeInsn(), llvm::Triple::thumb, llvm::AsmPrinter::TM, and TRI.
◆ beginInstruction()
◆ beginModule()
void CodeViewDebug::beginModule ( Module * M) | overridevirtual |
---|
◆ endFunctionImpl()
Gather post-function debug information.
Implements llvm::DebugHandlerBase.
Definition at line 3033 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, assert(), llvm::get(), llvm::Triple::getArch(), llvm::MachineFunction::getCodeViewAnnotations(), llvm::LexicalScopes::getCurrentFunctionScope(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionEnd(), llvm::DebugHandlerBase::getLabelAfterInsn(), llvm::DebugHandlerBase::getLabelBeforeInsn(), llvm::MachineModuleInfo::getModule(), llvm::Function::getSubprogram(), llvm::Module::getTargetTriple(), isThumb(), llvm::DebugHandlerBase::LScopes, MBB, MI, llvm::DebugHandlerBase::MMI, and llvm::Triple::thumb.
◆ endModule()
void CodeViewDebug::endModule ( ) | overridevirtual |
---|
◆ moduleIsInFortran()
bool llvm::CodeViewDebug::moduleIsInFortran ( ) | inlineprotected |
---|
The documentation for this class was generated from the following files:
- lib/CodeGen/AsmPrinter/CodeViewDebug.h
- lib/CodeGen/AsmPrinter/CodeViewDebug.cpp