Lines Matching refs:DIE

30 void DwarfCompileUnit::addLabelAddress(DIE &Die, dwarf::Attribute Attribute,
49 void DwarfCompileUnit::addLocalLabelAddress(DIE &Die,
102 /// getOrCreateGlobalVariableDIE - get or create global variable DIE.
103 DIE *DwarfCompileUnit::getOrCreateGlobalVariableDIE(
106 if (DIE *Die = getDIE(GV))
114 // Construct the context before querying for the existence of the DIE in
115 // case such construction creates the DIE.
116 DIE *ContextDIE = getOrCreateContextDIE(GVContext);
119 DIE *VariableDIE = &createAndAddDIE(GV->getTag(), *ContextDIE, GV);
125 // We need the declaration DIE that is in the static member's class.
126 DIE *VariableSpecDIE = getOrCreateStaticMemberDIE(SDMDecl);
236 DIE::value_iterator
237 DwarfCompileUnit::addSectionLabel(DIE &Die, dwarf::Attribute Attribute,
263 void DwarfCompileUnit::applyStmtList(DIE &D) {
267 void DwarfCompileUnit::attachLowHighPC(DIE &D, const MCSymbol *Begin,
281 // Find DIE for the given subprogram and attach appropriate DW_AT_low_pc
284 DIE &DwarfCompileUnit::updateSubprogramScopeDIE(const DISubprogram *SP) {
285 DIE *SPDie = getOrCreateSubprogramDIE(SP, includeMinimalInlineScopes());
307 // Construct a DIE for this scope.
309 LexicalScope *Scope, SmallVectorImpl<DIE *> &FinalChildren) {
320 SmallVector<DIE *, 8> Children;
322 // We try to create the scope DIE first, then the children DIEs. This will
324 // the scope DIE is null.
325 DIE *ScopeDIE;
330 // We create children when the scope DIE is not null.
333 // Early exit when we know the scope DIE is going to be null.
339 // We create children here when we know the scope DIE is not going to be
340 // null and the children will be added to the scope DIE.
345 // There is no need to emit empty lexical block DIE.
360 assert(ScopeDIE && "Scope DIE should not be null.");
370 DIE::value_iterator
371 DwarfCompileUnit::addSectionDelta(DIE &Die, dwarf::Attribute Attribute,
379 void DwarfCompileUnit::addScopeRangeList(DIE &ScopeDIE,
404 DIE &Die, SmallVector<RangeSpan, 2> Ranges) {
413 DIE &Die, const SmallVectorImpl<InsnRange> &Ranges) {
422 // This scope represents inlined body of a function. Construct DIE to
424 DIE *DwarfCompileUnit::constructInlinedScopeDIE(LexicalScope *Scope) {
430 DIE *OriginDIE = DU->getAbstractSPDies()[InlinedSP];
431 assert(OriginDIE && "Unable to find original DIE for an inlined subprogram.");
433 auto ScopeDIE = DIE::get(DIEValueAllocator, dwarf::DW_TAG_inlined_subroutine);
438 // Add the call site information to the DIE.
456 DIE *DwarfCompileUnit::constructLexicalScopeDIE(LexicalScope *Scope) {
460 auto ScopeDIE = DIE::get(DIEValueAllocator, dwarf::DW_TAG_lexical_block);
469 /// constructVariableDIE - Construct a DIE for the given DbgVariable.
470 DIE *DwarfCompileUnit::constructVariableDIE(DbgVariable &DV, bool Abstract) {
476 DIE *DwarfCompileUnit::constructVariableDIEImpl(const DbgVariable &DV,
479 auto VariableDie = DIE::get(DIEValueAllocator, DV.getTag());
538 DIE *DwarfCompileUnit::constructVariableDIE(DbgVariable &DV,
540 DIE *&ObjectPointer) {
547 DIE *DwarfCompileUnit::createScopeChildrenDIE(LexicalScope *Scope,
548 SmallVectorImpl<DIE *> &Children,
550 DIE *ObjectPointer = nullptr;
574 DIE &ScopeDIE = updateSubprogramScopeDIE(Sub);
582 if (DIE *ObjectPointer = createAndAddScopeChildren(Scope, ScopeDIE))
591 DIE::get(DIEValueAllocator, dwarf::DW_TAG_unspecified_parameters));
594 DIE *DwarfCompileUnit::createAndAddScopeChildren(LexicalScope *Scope,
595 DIE &ScopeDIE) {
596 // We create children when the scope DIE is not null.
597 SmallVector<DIE *, 8> Children;
598 DIE *ObjectPointer = createScopeChildrenDIE(Scope, Children);
609 DIE *&AbsDef = DU->getAbstractSPDies()[Scope->getScopeNode()];
615 DIE *ContextDIE;
621 // DIE (since the debug node will be associated with the concrete DIE, if
636 if (DIE *ObjectPointer = createAndAddScopeChildren(Scope, *AbsDef))
640 DIE *DwarfCompileUnit::constructImportedEntityDIE(
642 DIE *IMDie = DIE::get(DIEValueAllocator, (dwarf::Tag)Module->getTag());
644 DIE *EntityDie;
670 DIE *D = getDIE(SP);
671 if (DIE *AbsSPDIE = DU->getAbstractSPDies().lookup(SP)) {
694 DIE *SPDIE = DU->getAbstractSPDies().lookup(SP);
717 void DwarfCompileUnit::addGlobalName(StringRef Name, DIE &Die,
726 void DwarfCompileUnit::addGlobalType(const DIType *Ty, const DIE &Die,
736 void DwarfCompileUnit::addVariableAddress(const DbgVariable &DV, DIE &Die,
747 void DwarfCompileUnit::addAddress(DIE &Die, dwarf::Attribute Attribute,
760 // Now attach the location information to the DIE.
768 void DwarfCompileUnit::addComplexAddress(const DbgVariable &DV, DIE &Die,
784 // Now attach the location information to the DIE.
790 void DwarfCompileUnit::addLocationList(DIE &Die, dwarf::Attribute Attribute,
798 DIE &VariableDie) {
815 const DISubprogram *SP, DIE &SPDie) {