Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:DIE

1 //===--- lib/CodeGen/DIE.h - DWARF Info Entries -----------------*- C++ -*-===//
107 /// DIEInteger - An integer value DIE.
147 /// DIEExpr - An expression DIE.
166 /// DIELabel - A label DIE.
185 /// DIEDelta - A simple label difference DIE.
222 class DIE;
224 DIE *Entry;
229 explicit DIEEntry(DIE &E) : Entry(&E) {}
231 DIE &getEntry() const { return *Entry; }
325 destruct<DIE##T>();
329 destruct<const DIE##T *>();
346 construct<DIE##T>(*X.get<DIE##T>()); \
350 construct<const DIE##T *>(*X.get<const DIE##T *>()); \
372 DIEValue(dwarf::Attribute Attribute, dwarf::Form Form, const DIE##T &V) \
374 construct<DIE##T>(V); \
377 DIEValue(dwarf::Attribute Attribute, dwarf::Form Form, const DIE##T *V) \
380 construct<const DIE##T *>(V); \
391 const DIE##T &getDIE##T() const { \
393 return *get<DIE##T>(); \
396 const DIE##T &getDIE##T() const { \
398 return **get<const DIE##T *>(); \
505 /// A list of DIE values.
589 /// DIE - A structured debug information entry. Has an abbreviation which
591 class DIE : IntrusiveBackListNode, public DIEValueList {
592 friend class IntrusiveBackList<DIE>;
609 IntrusiveBackList<DIE> Children;
611 DIE *Parent = nullptr;
613 DIE() = delete;
614 explicit DIE(dwarf::Tag Tag) : Offset(0), Size(0), Tag(Tag) {}
617 static DIE *get(BumpPtrAllocator &Alloc, dwarf::Tag Tag) {
618 return new (Alloc) DIE(Tag);
628 typedef IntrusiveBackList<DIE>::iterator child_iterator;
629 typedef IntrusiveBackList<DIE>::const_iterator const_child_iterator;
640 DIE *getParent() const { return Parent; }
642 /// Generate the abbreviation for this DIE.
648 /// Set the abbreviation number for this DIE.
651 /// Climb up the parent chain to get the compile or type unit DIE this DIE
653 const DIE *getUnit() const;
654 /// Similar to getUnit, returns null when DIE is not added to an
656 const DIE *getUnitOrNull() const;
660 /// Add a child to the DIE.
661 DIE &addChild(DIE *Child) {
668 /// Find a value in the DIE with the attribute given.