Home | History | Annotate | Download | only in AsmPrinter

Lines Matching refs:DIE

17 #include "DIE.h"
76 DIE UnitDie;
89 DIE *IndexTyDie;
93 DenseMap<const MDNode *, DIE *> MDNodeToDieMap;
100 StringMap<const DIE *> GlobalNames;
103 StringMap<const DIE *> GlobalTypes;
112 /// need DW_AT_containing_type attribute. This attribute points to a DIE that
113 /// corresponds to the MDNode mapped with the subprogram DIE.
114 DenseMap<DIE *, const MDNode *> ContainingTypeMap;
209 DIE &getUnitDie() { return UnitDie; }
210 const StringMap<const DIE *> &getGlobalNames() const { return GlobalNames; }
211 const StringMap<const DIE *> &getGlobalTypes() const { return GlobalTypes; }
241 void addGlobalName(StringRef Name, DIE &Die, DIScope Context);
244 void addAccelNamespace(StringRef Name, const DIE &Die);
251 DIE *getDIE(DIDescriptor D) const;
256 /// insertDIE - Insert DIE into the map. We delegate the request to DwarfDebug
260 void insertDIE(DIDescriptor Desc, DIE *D);
262 /// addFlag - Add a flag that is true to the DIE.
263 void addFlag(DIE &Die, dwarf::Attribute Attribute);
266 void addUInt(DIE &Die, dwarf::Attribute Attribute, Optional<dwarf::Form> Form,
269 void addUInt(DIE &Block, dwarf::Form Form, uint64_t Integer);
272 void addSInt(DIE &Die, dwarf::Attribute Attribute, Optional<dwarf::Form> Form,
275 void addSInt(DIELoc &Die, Optional<dwarf::Form> Form, int64_t Integer);
278 void addString(DIE &Die, dwarf::Attribute Attribute, const StringRef Str);
281 void addLocalString(DIE &Die, dwarf::Attribute Attribute,
285 void addExpr(DIELoc &Die, dwarf::Form Form, const MCExpr *Expr);
288 void addLabel(DIE &Die, dwarf::Attribute Attribute, dwarf::Form Form,
291 void addLabel(DIELoc &Die, dwarf::Form Form, const MCSymbol *Label);
294 void addLocationList(DIE &Die, dwarf::Attribute Attribute, unsigned Index);
298 void addSectionLabel(DIE &Die, dwarf::Attribute Attribute,
303 void addSectionOffset(DIE &Die, dwarf::Attribute Attribute, uint64_t Integer);
307 void addOpAddress(DIELoc &Die, const MCSymbol *Label);
310 void addSectionDelta(DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Hi,
314 void addLabelDelta(DIE &Die, dwarf::Attribute Attribute, const MCSymbol *Hi,
317 /// addDIEEntry - Add a DIE attribute data and value.
318 void addDIEEntry(DIE &Die, dwarf::Attribute Attribute, DIE &Entry);
320 /// addDIEEntry - Add a DIE attribute data and value.
321 void addDIEEntry(DIE &Die, dwarf::Attribute Attribute, DIEEntry *Entry);
323 void addDIETypeSignature(DIE &Die, const DwarfTypeUnit &Type);
326 void addBlock(DIE &Die, dwarf::Attribute Attribute, DIELoc *Block);
329 void addBlock(DIE &Die, dwarf::Attribute Attribute, DIEBlock *Block);
333 void addSourceLine(DIE &Die, unsigned Line, StringRef File,
335 void addSourceLine(DIE &Die, DIVariable V);
336 void addSourceLine(DIE &Die, DIGlobalVariable G);
337 void addSourceLine(DIE &Die, DISubprogram SP);
338 void addSourceLine(DIE &Die, DIType Ty);
339 void addSourceLine(DIE &Die, DINameSpace NS);
340 void addSourceLine(DIE &Die, DIObjCProperty Ty);
342 /// addAddress - Add an address attribute to a die based on the location
344 void addAddress(DIE &Die, dwarf::Attribute Attribute,
347 /// addConstantValue - Add constant value entry in variable DIE.
348 void addConstantValue(DIE &Die, const MachineOperand &MO, DIType Ty);
349 void addConstantValue(DIE &Die, const ConstantInt *CI, DIType Ty);
350 void addConstantValue(DIE &Die, const APInt &Val, DIType Ty);
351 void addConstantValue(DIE &Die, const APInt &Val, bool Unsigned);
352 void addConstantValue(DIE &Die, bool Unsigned, uint64_t Val);
354 /// addConstantFPValue - Add constant value entry in variable DIE.
355 void addConstantFPValue(DIE &Die, const MachineOperand &MO);
356 void addConstantFPValue(DIE &Die, const ConstantFP *CFP);
359 void addTemplateParams(DIE &Buffer, DIArray TParams);
370 /// the starting location. Add the DWARF information to the die.
371 void addComplexAddress(const DbgVariable &DV, DIE &Die,
379 /// starting location. Add the DWARF information to the die. Obsolete,
381 void addBlockByrefAddress(const DbgVariable &DV, DIE &Die,
387 void addVariableAddress(const DbgVariable &DV, DIE &Die,
393 void addType(DIE &Entity, DIType Ty,
396 /// getOrCreateNameSpace - Create a DIE for DINameSpace.
397 DIE *getOrCreateNameSpace(DINameSpace NS);
399 /// getOrCreateSubprogramDIE - Create new DIE using SP.
400 DIE *getOrCreateSubprogramDIE(DISubprogram SP);
402 void applySubprogramAttributes(DISubprogram SP, DIE &SPDie);
403 void applySubprogramAttributesToDefinition(DISubprogram SP, DIE &SPDie);
404 void applyVariableAttributes(const DbgVariable &Var, DIE &VariableDie);
406 /// getOrCreateTypeDIE - Find existing DIE or create new DIE for the
408 DIE *getOrCreateTypeDIE(const MDNode *N);
410 /// getOrCreateContextDIE - Get context owner's DIE.
411 DIE *createTypeDIE(DICompositeType Ty);
413 /// getOrCreateContextDIE - Get context owner's DIE.
414 DIE *getOrCreateContextDIE(DIScope Context);
420 /// constructVariableDIE - Construct a DIE for the given DbgVariable.
421 std::unique_ptr<DIE> constructVariableDIE(DbgVariable &DV,
425 void constructSubprogramArguments(DIE &Buffer, DIArray Args);
427 /// Create a DIE with the given Tag, add the DIE to its parent, and
429 DIE &createAndAddDIE(unsigned Tag, DIE &Parent,
445 /// constructTypeDIE - Construct type DIE from DICompositeType.
446 void constructTypeDIE(DIE &Buffer, DICompositeType CTy);
449 /// getOrCreateStaticMemberDIE - Create new static data member DIE.
450 DIE *getOrCreateStaticMemberDIE(DIDerivedType DT);
457 /// \brief Construct a DIE for the given DbgVariable without initializing the
458 /// DbgVariable's DIE reference.
459 std::unique_ptr<DIE> constructVariableDIEImpl(const DbgVariable &DV,
462 /// constructTypeDIE - Construct basic type die from DIBasicType.
463 void constructTypeDIE(DIE &Buffer, DIBasicType BTy);
465 /// constructTypeDIE - Construct derived type die from DIDerivedType.
466 void constructTypeDIE(DIE &Buffer, DIDerivedType DTy);
468 /// constructSubrangeDIE - Construct subrange DIE from DISubrange.
469 void constructSubrangeDIE(DIE &Buffer, DISubrange SR, DIE *IndexTy);
471 /// constructArrayTypeDIE - Construct array type DIE from DICompositeType.
472 void constructArrayTypeDIE(DIE &Buffer, DICompositeType CTy);
474 /// constructEnumTypeDIE - Construct enum type DIE from DIEnumerator.
475 void constructEnumTypeDIE(DIE &Buffer, DICompositeType CTy);
477 /// constructMemberDIE - Construct member DIE from DIDerivedType.
478 void constructMemberDIE(DIE &Buffer, DIDerivedType DT);
480 /// constructTemplateTypeParameterDIE - Construct new DIE for the given
482 void constructTemplateTypeParameterDIE(DIE &Buffer,
485 /// constructTemplateValueParameterDIE - Construct new DIE for the given
487 void constructTemplateValueParameterDIE(DIE &Buffer,
506 DIE *getIndexTyDie() { return IndexTyDie; }
510 void setIndexTyDie(DIE *D) { IndexTyDie = D; }
514 DIEEntry *createDIEEntry(DIE &Entry);
524 void updateAcceleratorTables(DIScope Context, DIType Ty, const DIE &TyDIE);
528 /// The attribute index of DW_AT_stmt_list in the compile unit DIE, avoiding
538 /// Apply the DW_AT_stmt_list from this compile unit to the specified DIE.
539 void applyStmtList(DIE &D);
541 /// createGlobalVariableDIE - create global variable DIE.
546 void addLabelAddress(DIE &Die, dwarf::Attribute Attribute,
551 void addLocalLabelAddress(DIE &Die, dwarf::Attribute Attribute,
562 const DIE *Ty;
573 void setType(const DIE *Ty) { this->Ty = Ty; }
579 sizeof(uint32_t); // Type DIE Offset