LLVM API Documentation
#include <DwarfUnit.h>
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) |
DwarfCompileUnit & | getCU () 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. |
Definition at line 525 of file DwarfUnit.h.
DwarfCompileUnit::DwarfCompileUnit | ( | unsigned | UID, |
DICompileUnit | Node, | ||
AsmPrinter * | A, | ||
DwarfDebug * | DW, | ||
DwarfFile * | DWU | ||
) |
Definition at line 55 of file DwarfUnit.cpp.
References llvm::DwarfUnit::getUnitDie(), and llvm::DwarfUnit::insertDIE().
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().
void DwarfCompileUnit::addRange | ( | RangeSpan | Range | ) |
addRange - Add an address range to the list of ranges for this unit.
Definition at line 2043 of file DwarfUnit.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::DwarfUnit::CURanges, llvm::DwarfUnit::DD, llvm::SmallVectorBase::empty(), llvm::DIBuilder::FullDebug, llvm::DwarfUnit::getCUNode(), llvm::RangeSpan::getEnd(), llvm::DwarfDebug::getPrevCU(), llvm::MCSymbol::getSection(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::RangeSpan::setEnd(), and llvm::DwarfDebug::setPrevCU().
Referenced by llvm::DwarfDebug::endFunction().
void DwarfCompileUnit::applyStmtList | ( | DIE & | D | ) |
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 | ) |
Definition at line 2063 of file DwarfUnit.cpp.
References llvm::DwarfUnit::addSectionDelta(), llvm::DwarfUnit::addSectionLabel(), llvm::DwarfUnit::Asm, llvm::MCAsmInfo::doesDwarfUseRelocationsAcrossSections(), llvm::dwarf::DW_AT_stmt_list, llvm::MCStreamer::getDwarfLineTableSymbol(), llvm::DwarfUnit::getUniqueID(), llvm::DIE::getValues(), llvm::AsmPrinter::MAI, llvm::AsmPrinter::OutStreamer, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::DwarfUnit::UnitDie.