10 #ifndef LLVM_DEBUGINFO_DWARFDIE_H 11 #define LLVM_DEBUGINFO_DWARFDIE_H 75 return AbbrevDecl->getTag();
76 return dwarf::DW_TAG_null;
208 uint64_t &SectionIndex)
const;
277 std::reverse_iterator<iterator>
rbegin()
const;
278 std::reverse_iterator<iterator>
rend()
const;
285 const DWARFAttribute> {
315 return LHS.Index == RHS.Index;
320 return !(LHS == RHS);
329 return !(LHS == RHS);
365 return LHS.Die == RHS.Die;
370 return !(LHS == RHS);
392 class reverse_iterator<
llvm::DWARFDie::iterator>
394 reverse_iterator<llvm::DWARFDie::iterator>,
395 bidirectional_iterator_tag, const llvm::DWARFDie> {
413 assert(!AtEnd &&
"Incrementing rend");
441 return Die == RHS.Die && AtEnd == RHS.AtEnd;
449 inline bool operator==(
const std::reverse_iterator<DWARFDie::iterator> &LHS,
450 const std::reverse_iterator<DWARFDie::iterator> &RHS) {
451 return LHS.equals(RHS);
454 inline bool operator!=(
const std::reverse_iterator<DWARFDie::iterator> &LHS,
455 const std::reverse_iterator<DWARFDie::iterator> &RHS) {
456 return !(LHS == RHS);
469 #endif // LLVM_DEBUGINFO_DWARFDIE_H
DWARFUnit * getDwarfUnit() const
This class represents lattice values for constants.
bool isSubprogramDIE() const
Returns true if DIE represents a subprogram (not inlined).
bool addressRangeContainsAddress(const uint64_t Address) const
This provides a very simple, boring adaptor for a begin and end iterator into a range type...
void collectChildrenAddressRanges(DWARFAddressRangesVector &Ranges) const
Get all address ranges for any DW_TAG_subprogram DIEs in this DIE or any of its children.
const DWARFAbbreviationDeclaration * getAbbreviationDeclarationPtr() const
Get the abbreviation declaration for this DIE.
DWARFDie getAttributeValueAsReferencedDie(dwarf::Attribute Attr) const
Extract the specified attribute from this DIE as the referenced DIE.
DINameKind
A DINameKind is passed to name search methods to specify a preference regarding the type of name reso...
iterator_range< iterator > children() const
Optional< uint64_t > getRangesBaseAttribute() const
Extract the range base attribute from this DIE as absolute section offset.
reverse_iterator(llvm::DWARFDie::iterator It)
void getCallerFrame(uint32_t &CallFile, uint32_t &CallLine, uint32_t &CallColumn, uint32_t &CallDiscriminator) const
Retrieves values of DW_AT_call_file, DW_AT_call_line and DW_AT_call_column from DIE (or zeroes if the...
Tagged union holding either a T or a Error.
const DWARFDebugInfoEntry * getDebugInfoEntry() const
uint32_t getOffset() const
Get the absolute offset into the debug info or types section.
Encapsulates a DWARF attribute value and all of the data required to describe the attribute value...
const DWARFDie & operator*() const
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
bool getLowAndHighPC(uint64_t &LowPC, uint64_t &HighPC, uint64_t &SectionIndex) const
Retrieves DW_AT_low_pc and DW_AT_high_pc from CU.
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
DWARFDie getSibling() const
Get the sibling of this DIE object.
CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of ...
uint64_t getDeclLine() const
Returns the declaration line (start line) for a DIE, assuming it specifies a subprogram.
Container for dump options that control which debug information will be dumped.
Utility class that carries the DWARF compile/type unit and the debug info entry in an object...
reverse_iterator< llvm::DWARFDie::iterator > & operator++()
DWARFDie getLastChild() const
Get the last child of this DIE object.
bool isSubroutineDIE() const
Returns true if DIE represents a subprogram or an inlined subroutine.
Optional< DWARFFormValue > findRecursively(ArrayRef< dwarf::Attribute > Attrs) const
Extract the first value of any attribute in Attrs from this DIE and recurse into any DW_AT_specificat...
bool isNULL() const
Returns true for a valid DIE that terminates a sibling chain.
std::reverse_iterator< iterator > rend() const
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
const DWARFAbbreviationDeclaration * getAbbreviationDeclarationPtr() const
const char * getName(DINameKind Kind) const
Return the DIE name resolving DW_AT_sepcification or DW_AT_abstract_origin references if necessary...
DWARFDie getPreviousSibling() const
Get the previous sibling of this DIE object.
reverse_iterator< llvm::DWARFDie::iterator > & operator--()
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
iterator_range< attribute_iterator > attributes() const
Get an iterator range to all attributes in the current DIE only.
A range adaptor for a pair of iterators.
This file contains constants used for implementing Dwarf debug support.
const DWARFAttribute & operator*() const
const llvm::DWARFDie & operator*() const
bool operator!=(uint64_t V1, const APInt &V2)
uint32_t getOffset() const
LLVM_DUMP_METHOD void dump() const
Convenience zero-argument overload for debugging.
dwarf::Tag getTag() const
Expected< DWARFAddressRangesVector > getAddressRanges() const
Get the address ranges for this DIE.
llvm::DWARFDie::iterator base() const
Optional< uint64_t > getHighPC(uint64_t LowPC) const
Get the DW_AT_high_pc attribute value as an address.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
std::reverse_iterator< IteratorTy > make_reverse_iterator(IteratorTy It)
bool operator<(int64_t V1, const APSInt &V2)
Optional< DWARFFormValue > find(dwarf::Attribute Attr) const
Extract the specified attribute from this DIE.
std::vector< DWARFAddressRange > DWARFAddressRangesVector
DWARFAddressRangesVector - represents a set of absolute address ranges.
DWARFDebugInfoEntry - A DIE with only the minimum required data.
DWARFDie getFirstChild() const
Get the first child of this DIE object.
std::reverse_iterator< iterator > rbegin() const
This class implements an extremely fast bulk output stream that can only output to a stream...
bool operator==(uint64_t V1, const APInt &V2)
bool equals(const reverse_iterator< llvm::DWARFDie::iterator > &RHS) const
DWARFDie(DWARFUnit *Unit, const DWARFDebugInfoEntry *D)
const char * getSubroutineName(DINameKind Kind) const
If a DIE represents a subprogram (or inlined subroutine), returns its mangled name (or short name...
DWARFDie getParent() const
Get the parent of this DIE object.