LLVM  6.0.0svn
Classes | Public Member Functions | Protected Member Functions | List of all members
llvm::CodeViewDebug Class Reference

Collects and handles line tables information in a CodeView format. More...

#include "CodeGen/AsmPrinter/CodeViewDebug.h"

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

Classes

struct  TypeLoweringScope
 

Public Member Functions

 CodeViewDebug (AsmPrinter *Asm)
 
void setSymbolSize (const MCSymbol *, uint64_t) override
 For symbols that have a size designated (e.g. More...
 
void endModule () override
 Emit the COFF section that holds the line table information. More...
 
void beginInstruction (const MachineInstr *MI) override
 Process beginning of an instruction. More...
 
- Public Member Functions inherited from llvm::DebugHandlerBase
void beginInstruction (const MachineInstr *MI) override
 Process beginning of an instruction. More...
 
void endInstruction () override
 Process end of an instruction. More...
 
void beginFunction (const MachineFunction *MF) override
 Gather pre-function debug information. More...
 
void endFunction (const MachineFunction *MF) override
 Gather post-function debug information. More...
 
MCSymbolgetLabelBeforeInsn (const MachineInstr *MI)
 Return Label preceding the instruction. More...
 
MCSymbolgetLabelAfterInsn (const MachineInstr *MI)
 Return Label immediately following the 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 ()
 
virtual void beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym=nullptr)
 Emit target-specific EH funclet machinery. More...
 
virtual void endFunclet ()
 

Protected Member Functions

void beginFunctionImpl (const MachineFunction *MF) override
 Gather pre-function debug information. More...
 
void endFunctionImpl (const MachineFunction *) override
 Gather post-function debug information. More...
 
- Protected Member Functions inherited from llvm::DebugHandlerBase
 DebugHandlerBase (AsmPrinter *A)
 
void identifyScopeMarkers ()
 Indentify instructions that are marking the beginning of or ending of a scope. More...
 
void requestLabelBeforeInsn (const MachineInstr *MI)
 Ensure that a label will be emitted before MI. More...
 
void requestLabelAfterInsn (const MachineInstr *MI)
 Ensure that a label will be emitted after MI. More...
 
virtual void skippedNonDebugFunction ()
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::DebugHandlerBase
static int fragmentCmp (const DIExpression *P1, const DIExpression *P2)
 Determine the relative position of the fragments described by P1 and P2. More...
 
static bool fragmentsOverlap (const DIExpression *P1, const DIExpression *P2)
 Determine whether two variable fragments overlap. More...
 
static uint64_t getBaseTypeSize (const DITypeRef TyRef)
 If this type is derived from a base type then return base type size. More...
 
- Protected Attributes inherited from llvm::DebugHandlerBase
AsmPrinterAsm
 Target of debug info emission. More...
 
MachineModuleInfoMMI
 Collected machine module information. More...
 
DebugLoc PrevInstLoc
 Previous instruction's location information. More...
 
MCSymbolPrevLabel = nullptr
 
const MachineBasicBlockPrevInstBB = nullptr
 
DebugLoc PrologEndLoc
 This location indicates end of function prologue and beginning of function body. More...
 
const MachineInstrCurMI = nullptr
 If nonnull, stores the current machine instruction we're processing. More...
 
LexicalScopes LScopes
 
DbgValueHistoryMap DbgValues
 History of DBG_VALUE and clobber instructions for each user variable. More...
 
DenseMap< const MachineInstr *, MCSymbol * > LabelsBeforeInsn
 Maps instruction with label emitted before instruction. More...
 
DenseMap< const MachineInstr *, MCSymbol * > LabelsAfterInsn
 Maps instruction with label emitted after instruction. More...
 

Detailed Description

Collects and handles line tables information in a CodeView format.

Definition at line 52 of file CodeViewDebug.h.

Constructor & Destructor Documentation

◆ CodeViewDebug()

CodeViewDebug::CodeViewDebug ( AsmPrinter Asm)

Member Function Documentation

◆ beginFunctionImpl()

void CodeViewDebug::beginFunctionImpl ( const MachineFunction MF)
overrideprotectedvirtual

◆ beginInstruction()

void CodeViewDebug::beginInstruction ( const MachineInstr MI)
overridevirtual

◆ endFunctionImpl()

void CodeViewDebug::endFunctionImpl ( const MachineFunction MF)
overrideprotectedvirtual

◆ endModule()

void CodeViewDebug::endModule ( )
overridevirtual

Emit the COFF section that holds the line table information.

Implements llvm::AsmPrinterHandler.

Definition at line 436 of file CodeViewDebug.cpp.

References llvm::DebugHandlerBase::Asm, assert(), llvm::MachineModuleInfo::hasDebugInfo(), llvm::DebugHandlerBase::MMI, and P.

◆ setSymbolSize()

void llvm::CodeViewDebug::setSymbolSize ( const MCSymbol Sym,
uint64_t  Size 
)
inlineoverridevirtual

For symbols that have a size designated (e.g.

common symbols), this tracks that size.

Implements llvm::AsmPrinterHandler.

Definition at line 336 of file CodeViewDebug.h.

References MI.


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