Lines Matching refs:DIE
58 DIE::value_iterator I;
61 PatchLocation(DIE::value_iterator I) : I(I) {} in PatchLocation()
176 const DWARFDebugInfoEntryMinimal *DIE, CompileUnit &Unit,
191 DIE *Clone; ///< Cloned version of that DIE.
227 DIE *getOutputUnitDIE() const { return CUDie; } in getOutputUnitDIE()
228 void setOutputUnitDIE(DIE *Die) { CUDie = Die; } in setOutputUnitDIE()
275 void noteForwardReference(DIE *Die, const CompileUnit *RefUnit,
287 void noteRangeAttribute(const DIE &Die, PatchLocation Attr);
295 void addNameAccelerator(const DIE *Die, const char *Name, uint32_t Offset,
300 void addTypeAccelerator(const DIE *Die, const char *Name, uint32_t Offset);
304 const DIE *Die; ///< DIE this entry describes.
308 AccelInfo(StringRef Name, const DIE *Die, uint32_t NameOffset, in AccelInfo()
336 DIE *CUDie; ///< Root of the linked DIE tree.
350 std::vector<std::tuple<DIE *, const CompileUnit *, DeclContext *,
411 void CompileUnit::noteForwardReference(DIE *Die, const CompileUnit *RefUnit, in noteForwardReference()
419 DIE *RefDie; in fixupForwardReferences()
438 void CompileUnit::noteRangeAttribute(const DIE &Die, PatchLocation Attr) { in noteRangeAttribute()
451 void CompileUnit::addNameAccelerator(const DIE *Die, const char *Name, in addNameAccelerator()
458 void CompileUnit::addTypeAccelerator(const DIE *Die, const char *Name, in addTypeAccelerator()
521 void emitDIE(DIE &Die);
698 void DwarfStreamer::emitDIE(DIE &Die) { in emitDIE()
1124 const DWARFDebugInfoEntryMinimal *DIE = nullptr) const;
1200 const DWARFDebugInfoEntryMinimal &DIE,
1234 const DWARFDebugInfoEntryMinimal &DIE,
1240 const DWARFDebugInfoEntryMinimal &DIE,
1245 const DWARFDebugInfoEntryMinimal &DIE,
1250 const DWARFDebugInfoEntryMinimal &DIE,
1289 DIE *cloneDIE(const DWARFDebugInfoEntryMinimal &InputDIE, CompileUnit &U,
1320 unsigned cloneAttribute(DIE &Die,
1329 unsigned cloneStringAttribute(DIE &Die, AttributeSpec AttrSpec,
1337 cloneDieReferenceAttribute(DIE &Die,
1345 unsigned cloneBlockAttribute(DIE &Die, AttributeSpec AttrSpec,
1351 unsigned cloneAddressAttribute(DIE &Die, AttributeSpec AttrSpec,
1358 unsigned cloneScalarAttribute(DIE &Die,
1487 const DWARFDebugInfoEntryMinimal &DIE, CompileUnit *&RefCU) { in resolveDIEReference() argument
1495 Linker.reportWarning("could not find referenced DIE", &Unit, &DIE); in resolveDIEReference()
1544 DeclContext &Context, const DWARFDebugInfoEntryMinimal *DIE, CompileUnit &U, in getChildDeclContext() argument
1546 unsigned Tag = DIE->getTag(); in getChildDeclContext()
1564 !DIE->getAttributeValueAsUnsignedConstant(&U.getOrigUnit(), in getChildDeclContext()
1579 if (DIE->getAttributeValueAsUnsignedConstant(&U.getOrigUnit(), in getChildDeclContext()
1585 const char *Name = DIE->getName(&U.getOrigUnit(), DINameKind::LinkageName); in getChildDeclContext()
1586 const char *ShortName = DIE->getName(&U.getOrigUnit(), DINameKind::ShortName); in getChildDeclContext()
1620 ByteSize = DIE->getAttributeValueAsUnsignedConstant( in getChildDeclContext()
1623 if (unsigned FileNum = DIE->getAttributeValueAsUnsignedConstant( in getChildDeclContext()
1641 Line = DIE->getAttributeValueAsUnsignedConstant( in getChildDeclContext()
1692 Context, DIE, U.getUniqueID()); in getChildDeclContext()
1697 !(*ContextIter)->setLastSeenDIE(U, DIE)) { in getChildDeclContext()
1733 const DWARFDebugInfoEntryMinimal *DIE) const { in reportWarning()
1739 if (!Options.Verbose || !DIE) in reportWarning()
1743 DIE->dump(errs(), const_cast<DWARFUnit *>(Unit), 0 /* RecurseDepth */, in reportWarning()
1762 static bool analyzeContextInfo(const DWARFDebugInfoEntryMinimal *DIE, in analyzeContextInfo() argument
1768 unsigned MyIdx = CU.getOrigUnit().getDIEIndex(DIE); in analyzeContextInfo()
1783 if (DIE->getTag() == dwarf::DW_TAG_module && ParentIdx == 0 && in analyzeContextInfo()
1784 DIE->getAttributeValueAsString(&CU.getOrigUnit(), dwarf::DW_AT_name, in analyzeContextInfo()
1794 *CurrentDeclContext, DIE, CU, StringPool, InClangModule); in analyzeContextInfo()
1803 if (DIE->hasChildren()) in analyzeContextInfo()
1804 for (auto *Child = DIE->getFirstChild(); Child && !Child->isNULL(); in analyzeContextInfo()
1812 Info.Prune &= (DIE->getTag() == dwarf::DW_TAG_module) || in analyzeContextInfo()
1813 DIE->getAttributeValueAsUnsignedConstant( in analyzeContextInfo()
2079 const DWARFDebugInfoEntryMinimal &DIE, in shouldKeepVariableDIE() argument
2083 const auto *Abbrev = DIE.getAbbreviationDeclarationPtr(); in shouldKeepVariableDIE()
2096 uint32_t Offset = DIE.getOffset() + getULEB128Size(Abbrev->getCode()); in shouldKeepVariableDIE()
2112 DIE.dump(outs(), const_cast<DWARFUnit *>(&OrigUnit), 0, 8 /* Indent */); in shouldKeepVariableDIE()
2121 const DWARFDebugInfoEntryMinimal &DIE, CompileUnit &Unit, in shouldKeepSubprogramDIE() argument
2123 const auto *Abbrev = DIE.getAbbreviationDeclarationPtr(); in shouldKeepSubprogramDIE()
2131 uint32_t Offset = DIE.getOffset() + getULEB128Size(Abbrev->getCode()); in shouldKeepSubprogramDIE()
2138 DIE.getAttributeValueAsAddress(&OrigUnit, dwarf::DW_AT_low_pc, -1ULL); in shouldKeepSubprogramDIE()
2145 DIE.dump(outs(), const_cast<DWARFUnit *>(&OrigUnit), 0, 8 /* Indent */); in shouldKeepSubprogramDIE()
2150 if (!DIE.getAttributeValue(&OrigUnit, dwarf::DW_AT_high_pc, HighPcValue)) { in shouldKeepSubprogramDIE()
2152 &OrigUnit, &DIE); in shouldKeepSubprogramDIE()
2173 const DWARFDebugInfoEntryMinimal &DIE, in shouldKeepDIE() argument
2177 switch (DIE.getTag()) { in shouldKeepDIE()
2180 return shouldKeepVariableDIE(RelocMgr, DIE, Unit, MyInfo, Flags); in shouldKeepDIE()
2182 return shouldKeepSubprogramDIE(RelocMgr, DIE, Unit, MyInfo, Flags); in shouldKeepDIE()
2351 unsigned DwarfLinker::DIECloner::cloneStringAttribute(DIE &Die, in cloneStringAttribute()
2364 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, in cloneDieReferenceAttribute()
2369 DIE *NewRefDie = nullptr; in cloneDieReferenceAttribute()
2399 RefInfo.Clone = DIE::get(DIEAlloc, dwarf::Tag(RefDie->getTag())); in cloneDieReferenceAttribute()
2434 unsigned DwarfLinker::DIECloner::cloneBlockAttribute(DIE &Die, in cloneBlockAttribute()
2478 DIE &Die, AttributeSpec AttrSpec, const DWARFFormValue &Val, in cloneAddressAttribute()
2515 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, CompileUnit &Unit, in cloneScalarAttribute()
2559 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, CompileUnit &Unit, in cloneAttribute()
2705 DIE *DwarfLinker::DIECloner::cloneDIE( in cloneDIE()
2719 DIE *Die = Info.Clone; in cloneDIE()
2721 Die = Info.Clone = DIE::get(DIEAlloc, dwarf::Tag(InputDIE.getTag())); in cloneDIE()
2860 if (DIE *Clone = cloneDIE(*Child, Unit, PCOffset, OutOffset, Flags)) { in cloneDIE()
2966 static void patchStmtList(DIE &Die, DIEInteger Offset) { in patchStmtList()
3390 DIE *OutputDIE = cloneDIE(*InputDIE, CurrentUnit, 0 /* PC offset */, in cloneAllCompileUnits()