Lines Matching refs:Die

128   bool setLastSeenDIE(CompileUnit &U, const DWARFDebugInfoEntryMinimal *Die);
228 void setOutputUnitDIE(DIE *Die) { CUDie = Die; } in setOutputUnitDIE() argument
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. member
308 AccelInfo(StringRef Name, const DIE *Die, uint32_t NameOffset, in AccelInfo()
310 : Name(Name), Die(Die), NameOffset(NameOffset), in AccelInfo()
411 void CompileUnit::noteForwardReference(DIE *Die, const CompileUnit *RefUnit, in noteForwardReference() argument
413 ForwardDIEReferences.emplace_back(Die, RefUnit, Ctxt, Attr); in noteForwardReference()
438 void CompileUnit::noteRangeAttribute(const DIE &Die, PatchLocation Attr) { in noteRangeAttribute() argument
439 if (Die.getTag() != dwarf::DW_TAG_compile_unit) in noteRangeAttribute()
451 void CompileUnit::addNameAccelerator(const DIE *Die, const char *Name, in addNameAccelerator() argument
453 Pubnames.emplace_back(Name, Die, Offset, SkipPubSection); in addNameAccelerator()
458 void CompileUnit::addTypeAccelerator(const DIE *Die, const char *Name, in addTypeAccelerator() argument
460 Pubtypes.emplace_back(Name, Die, Offset, false); in addTypeAccelerator()
521 void emitDIE(DIE &Die);
698 void DwarfStreamer::emitDIE(DIE &Die) { in emitDIE() argument
700 Asm->emitDwarfDIE(Die); in emitDIE()
1055 Asm->EmitInt32(Name.Die->getOffset()); in emitPubSectionForUnit()
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,
1368 bool getDIENames(const DWARFDebugInfoEntryMinimal &Die, DWARFUnit &U,
1530 const DWARFDebugInfoEntryMinimal *Die) { in setLastSeenDIE() argument
1539 LastSeenDIE = Die; in setLastSeenDIE()
1715 bool DwarfLinker::DIECloner::getDIENames(const DWARFDebugInfoEntryMinimal &Die, in getDIENames() argument
1720 (Info.MangledName = Die.getName(&U, DINameKind::LinkageName))) in getDIENames()
1724 if (!Info.Name && (Info.Name = Die.getName(&U, DINameKind::ShortName))) in getDIENames()
2203 const DWARFDebugInfoEntryMinimal &Die, in keepDIEAndDependencies() argument
2222 const auto *Abbrev = Die.getAbbreviationDeclarationPtr(); in keepDIEAndDependencies()
2223 uint32_t Offset = Die.getOffset() + getULEB128Size(Abbrev->getCode()); in keepDIEAndDependencies()
2238 Unit, Die, ReferencedCU)) { in keepDIEAndDependencies()
2279 const DWARFDebugInfoEntryMinimal &Die, in lookForDIEsToKeep() argument
2282 unsigned Idx = CU.getOrigUnit().getDIEIndex(&Die); in lookForDIEsToKeep()
2297 Flags = shouldKeepDIE(RelocMgr, Die, CU, MyInfo, Flags); in lookForDIEsToKeep()
2302 keepDIEAndDependencies(RelocMgr, Die, MyInfo, DMO, CU, UseOdr); in lookForDIEsToKeep()
2310 if (dieNeedsChildrenToBeMeaningful(Die.getTag())) in lookForDIEsToKeep()
2313 if (!Die.hasChildren() || (Flags & TF_ParentWalk)) in lookForDIEsToKeep()
2316 for (auto *Child = Die.getFirstChild(); Child && !Child->isNULL(); in lookForDIEsToKeep()
2351 unsigned DwarfLinker::DIECloner::cloneStringAttribute(DIE &Die, in cloneStringAttribute() argument
2358 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), dwarf::DW_FORM_strp, in cloneStringAttribute()
2364 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, in cloneDieReferenceAttribute() argument
2389 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), in cloneDieReferenceAttribute()
2416 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), in cloneDieReferenceAttribute()
2423 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), in cloneDieReferenceAttribute()
2429 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), in cloneDieReferenceAttribute()
2434 unsigned DwarfLinker::DIECloner::cloneBlockAttribute(DIE &Die, in cloneBlockAttribute() argument
2473 Die.addValue(DIEAlloc, Value); in cloneBlockAttribute()
2478 DIE &Die, AttributeSpec AttrSpec, const DWARFFormValue &Val, in cloneAddressAttribute() argument
2482 if (Die.getTag() == dwarf::DW_TAG_inlined_subroutine || in cloneAddressAttribute()
2483 Die.getTag() == dwarf::DW_TAG_lexical_block) in cloneAddressAttribute()
2490 else if (Die.getTag() == dwarf::DW_TAG_compile_unit) { in cloneAddressAttribute()
2497 if (Die.getTag() == dwarf::DW_TAG_compile_unit) { in cloneAddressAttribute()
2509 Die.addValue(DIEAlloc, static_cast<dwarf::Attribute>(AttrSpec.Attr), in cloneAddressAttribute()
2515 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, CompileUnit &Unit, in cloneScalarAttribute() argument
2520 Die.getTag() == dwarf::DW_TAG_compile_unit) { in cloneScalarAttribute()
2538 Die.addValue(DIEAlloc, dwarf::Attribute(AttrSpec.Attr), in cloneScalarAttribute()
2541 Unit.noteRangeAttribute(Die, Patch); in cloneScalarAttribute()
2559 DIE &Die, const DWARFDebugInfoEntryMinimal &InputDIE, CompileUnit &Unit, in cloneAttribute() argument
2567 return cloneStringAttribute(Die, AttrSpec, Val, U); in cloneAttribute()
2573 return cloneDieReferenceAttribute(Die, InputDIE, AttrSpec, AttrSize, Val, in cloneAttribute()
2580 return cloneBlockAttribute(Die, AttrSpec, Val, AttrSize); in cloneAttribute()
2582 return cloneAddressAttribute(Die, AttrSpec, Val, Unit, Info); in cloneAttribute()
2592 return cloneScalarAttribute(Die, InputDIE, Unit, AttrSpec, Val, AttrSize, in cloneAttribute()
2719 DIE *Die = Info.Clone; in cloneDIE() local
2720 if (!Die) in cloneDIE()
2721 Die = Info.Clone = DIE::get(DIEAlloc, dwarf::Tag(InputDIE.getTag())); in cloneDIE()
2722 assert(Die->getTag() == InputDIE.getTag()); in cloneDIE()
2723 Die->setOffset(OutOffset); in cloneDIE()
2725 Die->getTag() != dwarf::DW_TAG_namespace && Info.Ctxt && in cloneDIE()
2776 if (Die->getTag() == dwarf::DW_TAG_subprogram) in cloneDIE()
2788 if (shouldSkipAttribute(AttrSpec, Die->getTag(), Info.InDebugMap, in cloneDIE()
2807 cloneAttribute(*Die, InputDIE, Unit, Val, AttrSpec, AttrSize, AttrInfo); in cloneDIE()
2819 Unit.addNameAccelerator(Die, AttrInfo.MangledName, in cloneDIE()
2823 Unit.addNameAccelerator(Die, AttrInfo.Name, AttrInfo.NameOffset, in cloneDIE()
2827 Unit.addTypeAccelerator(Die, AttrInfo.Name, AttrInfo.NameOffset); in cloneDIE()
2841 DIEAbbrev NewAbbrev = Die->generateAbbrev(); in cloneDIE()
2846 Die->setAbbrevNumber(NewAbbrev.getNumber()); in cloneDIE()
2849 OutOffset += getULEB128Size(Die->getAbbrevNumber()); in cloneDIE()
2853 Die->setSize(OutOffset - Die->getOffset()); in cloneDIE()
2854 return Die; in cloneDIE()
2861 Die->addChild(Clone); in cloneDIE()
2869 Die->setSize(OutOffset - Die->getOffset()); in cloneDIE()
2870 return Die; in cloneDIE()
2966 static void patchStmtList(DIE &Die, DIEInteger Offset) { in patchStmtList() argument
2967 for (auto &V : Die.values()) in patchStmtList()