LLVM: llvm::dwarf_linker::classic::CompileUnit Class Reference (original) (raw)

Stores all information relating to a compile unit, be it in its original instance in the object file to its brand new cloned and generated DIE tree. More...

#include "[llvm/DWARFLinker/Classic/DWARFLinkerCompileUnit.h](include%5F2llvm%5F2DWARFLinker%5F2Classic%5F2DWARFLinkerCompileUnit%5F8h%5Fsource.html)"

Public Member Functions
CompileUnit (DWARFUnit &OrigUnit, unsigned ID, bool CanUseODR, StringRef ClangModuleName)
DWARFUnit & getOrigUnit () const
unsigned getUniqueID () const
void createOutputDIE ()
DIE * getOutputUnitDIE () const
dwarf::Tag getTag () const
bool hasODR () const
bool isClangModule () const
LLVM_ABI uint16_t getLanguage ()
LLVM_ABI StringRef getSysRoot ()
Return the DW_AT_LLVM_sysroot of the compile unit or an empty StringRef.
const std::string & getClangModuleName () const
DIEInfo & getInfo (unsigned Idx)
const DIEInfo & getInfo (unsigned Idx) const
DIEInfo & getInfo (const DWARFDie &Die)
uint64_t getStartOffset () const
uint64_t getNextUnitOffset () const
void setStartOffset (uint64_t DebugInfoSize)
std::optional< uint64_t > getLowPc () const
uint64_t getHighPc () const
bool hasLabelAt (uint64_t Addr) const
const RangesTy & getFunctionRanges () const
const RngListAttributesTy & getRangesAttributes ()
std::optional< PatchLocation > getUnitRangesAttribute () const
const LocListAttributesTy & getLocationAttributes () const
const StmtSeqListAttributesTy & getStmtSeqListAttributes () const
LLVM_ABI void markEverythingAsKept ()
Mark every DIE in this unit as kept.
LLVM_ABI uint64_t computeNextUnitOffset (uint16_t DwarfVersion)
Compute the end offset for this unit.
LLVM_ABI void noteForwardReference (DIE *Die, const CompileUnit *RefUnit, DeclContext *Ctxt, PatchLocation Attr)
Keep track of a forward reference to DIE Die in RefUnit by Attr.
LLVM_ABI void fixupForwardReferences ()
Apply all fixups recorded by noteForwardReference().
LLVM_ABI void addLabelLowPc (uint64_t LabelLowPc, int64_t PcOffset)
Add the low_pc of a label that is relocated by applying offset PCOffset.
LLVM_ABI void addFunctionRange (uint64_t LowPC, uint64_t HighPC, int64_t PCOffset)
Add a function range [LowPC, HighPC) that is relocated by applying offset PCOffset.
LLVM_ABI void noteRangeAttribute (const DIE &Die, PatchLocation Attr)
Keep track of a DW_AT_range attribute that we will need to patch up later.
LLVM_ABI void noteLocationAttribute (PatchLocation Attr)
Keep track of a location attribute pointing to a location list in the debug_loc section.
LLVM_ABI void noteStmtSeqListAttribute (PatchLocation Attr)
LLVM_ABI void addNamespaceAccelerator (const DIE *Die, DwarfStringPoolEntryRef Name)
Add a name accelerator entry for Die with Name.
LLVM_ABI void addNameAccelerator (const DIE *Die, DwarfStringPoolEntryRef Name, bool SkipPubnamesSection=false)
Add a name accelerator entry for Die with Name.
LLVM_ABI void addObjCAccelerator (const DIE *Die, DwarfStringPoolEntryRef Name, bool SkipPubnamesSection=false)
Add various accelerator entries for Die with Name which is stored in the string table at Offset.
LLVM_ABI void addTypeAccelerator (const DIE *Die, DwarfStringPoolEntryRef Name, bool ObjcClassImplementation, uint32_t QualifiedNameHash)
Add a type accelerator entry for Die with Name which is stored in the string table at Offset.
const std::vector< AccelInfo > & getPubnames () const
const std::vector< AccelInfo > & getPubtypes () const
const std::vector< AccelInfo > & getNamespaces () const
const std::vector< AccelInfo > & getObjC () const
MCSymbol * getLabelBegin ()
void setLabelBegin (MCSymbol *S)

Stores all information relating to a compile unit, be it in its original instance in the object file to its brand new cloned and generated DIE tree.

Definition at line 65 of file DWARFLinkerCompileUnit.h.

addFunctionRange()

void CompileUnit::addFunctionRange ( uint64_t LowPC,
uint64_t HighPC,
int64_t PCOffset )

addLabelLowPc()

void CompileUnit::addLabelLowPc ( uint64_t LabelLowPc,
int64_t PcOffset )

addNameAccelerator()

addNamespaceAccelerator()

addObjCAccelerator()

Add various accelerator entries for Die with Name which is stored in the string table at Offset.

Name must be an Objective-C selector.

Definition at line 197 of file DWARFLinkerCompileUnit.cpp.

addTypeAccelerator()

Add a type accelerator entry for Die with Name which is stored in the string table at Offset.

Definition at line 209 of file DWARFLinkerCompileUnit.cpp.

computeNextUnitOffset()

Compute the end offset for this unit.

Must be called after the CU's DIEs have been cloned.

Returns

the next unit offset (which is also the current debug_info section size).

Definition at line 127 of file DWARFLinkerCompileUnit.cpp.

createOutputDIE()

void llvm::dwarf_linker::classic::CompileUnit::createOutputDIE ( ) inline

fixupForwardReferences()

void llvm::CompileUnit::fixupForwardReferences ( )

getClangModuleName()

const std::string & llvm::dwarf_linker::classic::CompileUnit::getClangModuleName ( ) const inline

getFunctionRanges()

const RangesTy & llvm::dwarf_linker::classic::CompileUnit::getFunctionRanges ( ) const inline

getHighPc()

uint64_t llvm::dwarf_linker::classic::CompileUnit::getHighPc ( ) const inline

getInfo() [1/3]

getInfo() [2/3]

DIEInfo & llvm::dwarf_linker::classic::CompileUnit::getInfo ( unsigned Idx) inline

getInfo() [3/3]

getLabelBegin()

MCSymbol * llvm::dwarf_linker::classic::CompileUnit::getLabelBegin ( ) inline

getLanguage()

uint16_t llvm::CompileUnit::getLanguage ( )

getLocationAttributes()

getLowPc()

std::optional< uint64_t > llvm::dwarf_linker::classic::CompileUnit::getLowPc ( ) const inline

getNamespaces()

const std::vector< AccelInfo > & llvm::dwarf_linker::classic::CompileUnit::getNamespaces ( ) const inline

getNextUnitOffset()

uint64_t llvm::dwarf_linker::classic::CompileUnit::getNextUnitOffset ( ) const inline

getObjC()

const std::vector< AccelInfo > & llvm::dwarf_linker::classic::CompileUnit::getObjC ( ) const inline

getOrigUnit()

DWARFUnit & llvm::dwarf_linker::classic::CompileUnit::getOrigUnit ( ) const inline

getOutputUnitDIE()

DIE * llvm::dwarf_linker::classic::CompileUnit::getOutputUnitDIE ( ) const inline

getPubnames()

const std::vector< AccelInfo > & llvm::dwarf_linker::classic::CompileUnit::getPubnames ( ) const inline

getPubtypes()

const std::vector< AccelInfo > & llvm::dwarf_linker::classic::CompileUnit::getPubtypes ( ) const inline

getRangesAttributes()

getStartOffset()

uint64_t llvm::dwarf_linker::classic::CompileUnit::getStartOffset ( ) const inline

getStmtSeqListAttributes()

getSysRoot()

getTag()

dwarf::Tag llvm::dwarf_linker::classic::CompileUnit::getTag ( ) const inline

getUniqueID()

unsigned llvm::dwarf_linker::classic::CompileUnit::getUniqueID ( ) const inline

getUnitRangesAttribute()

std::optional< PatchLocation > llvm::dwarf_linker::classic::CompileUnit::getUnitRangesAttribute ( ) const inline

hasLabelAt()

bool llvm::dwarf_linker::classic::CompileUnit::hasLabelAt ( uint64_t Addr) const inline

hasODR()

bool llvm::dwarf_linker::classic::CompileUnit::hasODR ( ) const inline

isClangModule()

bool llvm::dwarf_linker::classic::CompileUnit::isClangModule ( ) const inline

markEverythingAsKept()

void llvm::CompileUnit::markEverythingAsKept ( )

noteForwardReference()

Keep track of a forward reference to DIE Die in RefUnit by Attr.

Keep track of a forward cross-cu reference from this unit to Die that lives in RefUnit.

The attribute should be fixed up later to point to the absolute offset of Die in the debug_info section or to the canonical offset of Ctxt if it is non-null.

Definition at line 138 of file DWARFLinkerCompileUnit.cpp.

References CompileUnit().

noteLocationAttribute()

void llvm::CompileUnit::noteLocationAttribute ( PatchLocation Attr )

Keep track of a location attribute pointing to a location list in the debug_loc section.

Definition at line 184 of file DWARFLinkerCompileUnit.cpp.

noteRangeAttribute()

noteStmtSeqListAttribute()

void llvm::CompileUnit::noteStmtSeqListAttribute ( PatchLocation Attr )

setLabelBegin()

void llvm::dwarf_linker::classic::CompileUnit::setLabelBegin ( MCSymbol * S) inline

setStartOffset()

void llvm::dwarf_linker::classic::CompileUnit::setStartOffset ( uint64_t DebugInfoSize) inline

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