• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/DebugInfo/GSYM/

Lines Matching refs:Die

40     DWARFDie Die = CU->getUnitDIE();
41 Language = dwarf::toUnsigned(Die.find(dwarf::DW_AT_language), 0);
85 static DWARFDie GetParentDeclContextDIE(DWARFDie &Die) {
87 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_specification)) {
92 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_abstract_origin)) {
100 if (Die.getTag() == dwarf::DW_TAG_inlined_subroutine)
103 DWARFDie ParentDie = Die.getParent();
130 static Optional<uint32_t> getQualifiedNameIndex(DWARFDie &Die,
135 dwarf::toString(Die.findRecursively({dwarf::DW_AT_MIPS_linkage_name,
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()) {
207 static void parseInlineInfo(GsymCreator &Gsym, CUInfo &CUI, DWARFDie Die,
210 if (!hasInlineInfo(Die, Depth))
213 dwarf::Tag Tag = Die.getTag();
219 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
231 if (auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym))
234 Gsym, dwarf::toUnsigned(Die.find(dwarf::DW_AT_call_file), 0));
235 II.CallLine = dwarf::toUnsigned(Die.find(dwarf::DW_AT_call_line), 0);
237 for (DWARFDie ChildDie : Die.children())
243 // skip this Die and just recurse down
244 for (DWARFDie ChildDie : Die.children())
250 DWARFDie Die, GsymCreator &Gsym,
264 dwarf::toUnsigned(Die.findRecursively({dwarf::DW_AT_decl_file}))) {
266 dwarf::toUnsigned(Die.findRecursively({dwarf::DW_AT_decl_line}))) {
296 Die.dump(Log, 0, DIDumpOptions::getForSingleDIE());
314 Die.dump(Log, 0, DIDumpOptions::getForSingleDIE());
322 Die.dump(Log, 0, DIDumpOptions::getForSingleDIE());
351 void DwarfTransformer::handleDie(raw_ostream &OS, CUInfo &CUI, DWARFDie Die) {
352 switch (Die.getTag()) {
354 Expected<DWARFAddressRangesVector> RangesOrError = Die.getAddressRanges();
362 auto NameIndex = getQualifiedNameIndex(Die, CUI.Language, Gsym);
364 OS << "error: function at " << HEX64(Die.getOffset())
366 Die.dump(OS, 0, DIDumpOptions::getForSingleDIE());
397 Die.dump(Log, 0, DIDumpOptions::getForSingleDIE());
407 convertFunctionLineTable(OS, CUI, Die, Gsym, FI);
409 if (hasInlineInfo(Die, 0)) {
413 parseInlineInfo(Gsym, CUI, Die, 0, FI, *FI.Inline);
421 for (DWARFDie ChildDie : Die.children())
431 DWARFDie Die = CU->getUnitDIE(false);
433 handleDie(Log, CUI, Die);
456 DWARFDie Die = CU->getUnitDIE(false /*CUDieOnly*/);
457 if (Die) {
459 pool.async([this, CUI, &LogMutex, Die]() mutable {
462 handleDie(ThreadOS, CUI, Die);