Lines Matching defs:Die
235 static std::string constructDieID(DWARFDie Die,
240 << Die.getName(DINameKind::LinkageName);
246 auto DeclFile = Die.findRecursively(dwarf::DW_AT_decl_file);
249 DWARFUnit *U = Die.getDwarfUnit();
258 << dwarf::toUnsigned(Die.findRecursively(dwarf::DW_AT_decl_line), 0);
272 static void collectStatsForDie(DWARFDie Die, const std::string &FnPrefix,
279 const dwarf::Tag Tag = Die.getTag();
294 Die.find(dwarf::DW_AT_const_value);
317 if (IsLocalVar && Die.find(dwarf::DW_AT_declaration))
320 if (Die.findRecursively(dwarf::DW_AT_decl_file) &&
321 Die.findRecursively(dwarf::DW_AT_decl_line))
324 if (Die.findRecursively(dwarf::DW_AT_type))
327 if (Die.find(dwarf::DW_AT_abstract_origin)) {
328 if (Die.find(dwarf::DW_AT_location) || Die.find(dwarf::DW_AT_const_value)) {
330 auto Offset = Die.find(dwarf::DW_AT_abstract_origin);
343 DWARFUnit *U = Die.getDwarfUnit();
345 Die.getDwarfUnit()->getContext().isLittleEndian(), 0);
356 if (Die.find(dwarf::DW_AT_const_value)) {
364 Die.getLocations(dwarf::DW_AT_location);
378 auto ScopeRanges = cantFail(Die.getParent().getAddressRanges());
420 Die.getAttributeValueAsReferencedDie(dwarf::DW_AT_abstract_origin))
421 Die = D;
423 std::string VarID = constructDieID(Die, VarPrefix);
451 if (Die.find(dwarf::DW_AT_artificial)) {
477 DWARFDie Die, uint64_t SPOffset,
480 DWARFDie Child = Die.getFirstChild();
496 DWARFDie Die, std::string FnPrefix, std::string VarPrefix,
505 if (Die.isNULL())
508 const dwarf::Tag Tag = Die.getTag();
515 Die.find(dwarf::DW_AT_abstract_origin) != std::nullopt;
529 auto OffsetFn = Die.find(dwarf::DW_AT_abstract_origin);
539 FnsWithAbstractOriginToBeProcessed.push_back(Die.getOffset());
551 if (Die.find(dwarf::DW_AT_declaration))
555 if (Die.find(dwarf::DW_AT_call_file) && Die.find(dwarf::DW_AT_call_line))
559 auto RangesOrError = Die.getAddressRanges();
575 if (Die.find(dwarf::DW_AT_inline)) {
576 uint64_t SPOffset = Die.getOffset();
577 AbstractOriginFnCUs[SPOffset] = Die.getDwarfUnit();
578 collectAbstractOriginFnInfo(Die, SPOffset, GlobalAbstractOriginFnInfo,
583 std::string FnID = constructDieID(Die);
589 if (Die.findRecursively(dwarf::DW_AT_abstract_origin))
594 if (Die.findRecursively(dwarf::DW_AT_decl_file) &&
595 Die.findRecursively(dwarf::DW_AT_decl_line))
609 // Not a scope, visit the Die itself. It could be a variable.
610 collectStatsForDie(Die, FnPrefix, VarPrefix, BytesInScope, InlineDepth,
623 DWARFDie Child = Die.getFirstChild();
647 auto FnDie = Die.getDwarfUnit()->getDIEForOffset(Offset);