Lines Matching defs:Die

41     DWARFDie Die = CU->getUnitDIE();
42 Language = dwarf::toUnsigned(Die.find(dwarf::DW_AT_language), 0);
86 static DWARFDie GetParentDeclContextDIE(DWARFDie &Die) {
88 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_specification)) {
93 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_abstract_origin)) {
101 if (Die.getTag() == dwarf::DW_TAG_inlined_subroutine)
104 DWARFDie ParentDie = Die.getParent();
132 getQualifiedNameIndex(DWARFDie &Die, uint64_t Language, GsymCreator &Gsym) {
134 if (auto LinkageName = Die.getLinkageName()) {
140 StringRef ShortName(Die.getName(DINameKind::ShortName));
162 DWARFDie ParentDeclCtxDie = GetParentDeclContextDIE(Die);
186 static bool hasInlineInfo(DWARFDie Die, uint32_t Depth) {
188 switch (Die.getTag()) {
200 for (DWARFDie ChildDie : Die.children()) {
218 CUInfo &CUI, DWARFDie Die, uint32_t Depth,
222 if (!hasInlineInfo(Die, Depth))
225 dwarf::Tag Tag = Die.getTag();
230 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
256 << HEX32(Die.getOffset()) << " has a range ["
276 if (auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym))
279 Die.findRecursively(dwarf::DW_AT_call_file), UINT32_MAX);
284 II.CallLine = dwarf::toUnsigned(Die.find(dwarf::DW_AT_call_line), 0);
286 for (DWARFDie ChildDie : Die.children())
294 OS << "error: inlined function DIE at " << HEX32(Die.getOffset())
303 // skip this Die and just recurse down
304 for (DWARFDie ChildDie : Die.children())
311 DWARFDie Die, GsymCreator &Gsym,
324 std::string FilePath = Die.getDeclFile(
331 Die.findRecursively(dwarf::DW_AT_decl_file), UINT32_MAX);
332 OS << "error: function DIE at " << HEX32(Die.getOffset())
341 dwarf::toUnsigned(Die.findRecursively({dwarf::DW_AT_decl_line}))) {
359 OS << "error: function DIE at " << HEX32(Die.getOffset()) << " has "
385 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
406 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
415 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
445 DWARFDie Die) {
446 switch (Die.getTag()) {
448 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
456 auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym);
459 OS << "error: function at " << HEX64(Die.getOffset())
461 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
505 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
516 convertFunctionLineTable(Out, CUI, Die, Gsym, FI);
518 if (hasInlineInfo(Die, 0)) {
523 parseInlineInfo(Gsym, Out, CUI, Die, 0, FI, *FI.Inline,
541 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
549 parseCallSiteInfoFromDwarf(CUI, Die, FI);
557 for (DWARFDie ChildDie : Die.children())
561 void DwarfTransformer::parseCallSiteInfoFromDwarf(CUInfo &CUI, DWARFDie Die,
572 for (DWARFDie Child : Die.children()) {
646 DWARFDie Die = getDie(*CU);
648 handleDie(Out, CUI, Die);
671 DWARFDie Die = getDie(*CU);
672 if (Die) {
674 pool.async([this, CUI, &LogMutex, &Out, Die]() mutable {
678 handleDie(ThreadOut, CUI, Die);