LLVM API Documentation

Public Member Functions
llvm::DwarfCompileUnit Class Reference

#include <DwarfUnit.h>

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

List of all members.

Public Member Functions

 DwarfCompileUnit (unsigned UID, DICompileUnit Node, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU)
void initStmtList (MCSymbol *DwarfLineSectionSym)
void applyStmtList (DIE &D)
 Apply the DW_AT_stmt_list from this compile unit to the specified DIE.
void createGlobalVariableDIE (DIGlobalVariable GV)
 createGlobalVariableDIE - create global variable DIE.
void addLabelAddress (DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Label)
void addLocalLabelAddress (DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Label)
DwarfCompileUnitgetCU () override
unsigned getOrCreateSourceID (StringRef FileName, StringRef DirName) override
void addRange (RangeSpan Range)
 addRange - Add an address range to the list of ranges for this unit.

Detailed Description

Definition at line 525 of file DwarfUnit.h.


Constructor & Destructor Documentation

Definition at line 55 of file DwarfUnit.cpp.

References llvm::DwarfUnit::getUnitDie(), and llvm::DwarfUnit::insertDIE().


Member Function Documentation

void DwarfCompileUnit::addLabelAddress ( DIE Die,
dwarf::Attribute  Attribute,
const MCSymbol Label 
)

addLabelAddress - Add a dwarf label attribute data and value using either DW_FORM_addr or DW_FORM_GNU_addr_index.

addLabelAddress - Add a dwarf label attribute data and value using DW_FORM_addr or DW_FORM_GNU_addr_index.

Definition at line 286 of file DwarfUnit.cpp.

References llvm::DwarfDebug::addArangeLabel(), addLocalLabelAddress(), llvm::DIE::addValue(), llvm::DwarfUnit::DD, llvm::DwarfUnit::DIEValueAllocator, llvm::dwarf::DW_FORM_GNU_addr_index, llvm::DwarfDebug::getAddressPool(), llvm::AddressPool::getIndex(), llvm::DwarfUnit::Skeleton, and llvm::DwarfDebug::useSplitDwarf().

void DwarfCompileUnit::addLocalLabelAddress ( DIE Die,
dwarf::Attribute  Attribute,
const MCSymbol Label 
)

addLocalLabelAddress - Add a dwarf label attribute data and value using DW_FORM_addr only.

Definition at line 305 of file DwarfUnit.cpp.

References llvm::DwarfDebug::addArangeLabel(), llvm::DIE::addValue(), llvm::DwarfUnit::DD, llvm::DwarfUnit::DIEValueAllocator, and llvm::dwarf::DW_FORM_addr.

Referenced by addLabelAddress().

Apply the DW_AT_stmt_list from this compile unit to the specified DIE.

Definition at line 2082 of file DwarfUnit.cpp.

References llvm::DIE::addValue(), llvm::dwarf::DW_AT_stmt_list, llvm::DIE::getAbbrev(), llvm::DIEAbbrev::getData(), llvm::DIE::getValues(), and llvm::DwarfUnit::UnitDie.

Referenced by llvm::DwarfDebug::addDwarfTypeUnitType().

createGlobalVariableDIE - create global variable DIE.

Definition at line 1596 of file DwarfUnit.cpp.

References llvm::DwarfDebug::addAccelName(), llvm::DwarfDebug::addArangeLabel(), llvm::DwarfUnit::addBlock(), llvm::DwarfUnit::addConstantValue(), llvm::DwarfUnit::addDIEEntry(), llvm::DwarfUnit::addExpr(), llvm::DwarfUnit::addFlag(), llvm::DwarfUnit::addGlobalName(), llvm::DwarfUnit::addOpAddress(), llvm::DwarfUnit::addSourceLine(), llvm::DwarfUnit::addString(), llvm::DwarfUnit::addType(), llvm::DwarfUnit::addUInt(), llvm::DwarfUnit::Asm, llvm::WinEH::CE, llvm::DwarfUnit::createAndAddDIE(), llvm::DwarfUnit::DD, llvm::DwarfUnit::DIEValueAllocator, llvm::dwarf::DW_AT_declaration, llvm::dwarf::DW_AT_external, llvm::dwarf::DW_AT_linkage_name, llvm::dwarf::DW_AT_location, llvm::dwarf::DW_AT_MIPS_linkage_name, llvm::dwarf::DW_AT_name, llvm::dwarf::DW_AT_specification, llvm::dwarf::DW_FORM_data1, llvm::dwarf::DW_FORM_udata, llvm::dwarf::DW_OP_const4u, llvm::dwarf::DW_OP_const8u, llvm::dwarf::DW_OP_constu, llvm::dwarf::DW_OP_GNU_const_index, llvm::dwarf::DW_OP_GNU_push_tls_address, llvm::dwarf::DW_OP_plus, llvm::dwarf::DW_TAG_variable, llvm::StringRef::empty(), llvm::DwarfDebug::getAddressPool(), llvm::DIGlobalVariable::getConstant(), llvm::DIGlobalVariable::getContext(), llvm::AsmPrinter::getDataLayout(), llvm::TargetLoweringObjectFile::getDebugThreadLocalSymbol(), llvm::DwarfUnit::getDIE(), llvm::DIGlobalVariable::getDisplayName(), llvm::DwarfDebug::getDwarfVersion(), llvm::DIGlobalVariable::getGlobal(), llvm::AddressPool::getIndex(), llvm::DataLayout::getIndexedOffset(), llvm::DIGlobalVariable::getLinkageName(), getMergedGlobalExpr(), llvm::DIGlobalVariable::getName(), llvm::AsmPrinter::getObjFileLowering(), llvm::DwarfUnit::getOrCreateContextDIE(), llvm::DwarfUnit::getOrCreateStaticMemberDIE(), llvm::DataLayout::getPointerSize(), llvm::GlobalValue::getRealLinkageName(), llvm::DIGlobalVariable::getStaticDataMemberDeclaration(), llvm::AsmPrinter::getSymbol(), llvm::DIDescriptor::getTag(), llvm::Value::getType(), llvm::DIGlobalVariable::getType(), llvm::DIGlobalVariable::isDefinition(), llvm::DIDescriptor::isGlobalVariable(), llvm::DIGlobalVariable::isLocalToUnit(), llvm::DIType::isStaticMember(), llvm::DwarfDebug::isSubprogramContext(), llvm::GlobalValue::isThreadLocal(), llvm::DwarfDebug::resolve(), llvm::DwarfUnit::UnitDie, llvm::DwarfDebug::useSplitDwarf(), and llvm::DIDerivedType::Verify().

Referenced by llvm::DwarfDebug::beginModule().

DwarfCompileUnit& llvm::DwarfCompileUnit::getCU ( ) [inline, override, virtual]

Implements llvm::DwarfUnit.

Definition at line 552 of file DwarfUnit.h.

unsigned DwarfCompileUnit::getOrCreateSourceID ( StringRef  File,
StringRef  Directory 
) [override, virtual]

Look up the source ID with the given directory and source file names. If none currently exists, create a new ID and insert it in the line table.

Implements llvm::DwarfUnit.

Definition at line 316 of file DwarfUnit.cpp.

References llvm::DwarfUnit::Asm, llvm::MCStreamer::EmitDwarfFileDirective(), llvm::DwarfUnit::getUniqueID(), llvm::MCStreamer::hasRawTextSupport(), and llvm::AsmPrinter::OutStreamer.

Referenced by llvm::DwarfTypeUnit::getOrCreateSourceID().

void DwarfCompileUnit::initStmtList ( MCSymbol DwarfLineSectionSym)

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