Go to the documentation of this file.
9 #ifndef LLVM_DEBUGINFO_DWARF_DWARFABBREVIATIONDECLARATION_H
10 #define LLVM_DEBUGINFO_DWARF_DWARFABBREVIATIONDECLARATION_H
37 this->ByteSize.HasByteSize =
ByteSize.has_value();
38 if (this->ByteSize.HasByteSize)
59 struct ByteSizeStorage {
70 return Form == dwarf::DW_FORM_implicit_const;
101 assert(idx < AttributeSpecs.size());
102 return AttributeSpecs[idx].Form;
106 return AttributeSpecs.size();
110 assert(idx < AttributeSpecs.size());
111 return AttributeSpecs[idx].Attr;
115 assert(idx < AttributeSpecs.size());
116 return AttributeSpecs[idx].isImplicitConst();
120 assert(idx < AttributeSpecs.size());
121 return AttributeSpecs[idx].getImplicitConstValue();
181 struct FixedSizeInfo {
185 uint8_t NumAddrs = 0;
187 uint8_t NumRefAddrs = 0;
189 uint8_t NumDwarfOffsets = 0;
191 FixedSizeInfo() =
default;
199 size_t getByteSize(
const DWARFUnit &U)
const;
204 uint8_t CodeByteSize;
209 Optional<FixedSizeInfo> FixedAttributeSize;
214 #endif // LLVM_DEBUGINFO_DWARF_DWARFABBREVIATIONDECLARATION_H
dwarf::Tag getTag() const
Optional< size_t > getFixedAttributesByteSize(const DWARFUnit &U) const
This is an optimization pass for GlobalISel generic memory operations.
void dump(raw_ostream &OS) const
dwarf::Form getFormByIndex(uint32_t idx) const
uint8_t getCodeByteSize() const
dwarf::Attribute getAttrByIndex(uint32_t idx) const
Optional< int64_t > getByteSize(const DWARFUnit &U) const
Get the fixed byte size of this Form if possible.
Optional< DWARFFormValue > getAttributeValue(const uint64_t DIEOffset, const dwarf::Attribute Attr, const DWARFUnit &U) const
Extract a DWARF form value from a DIE specified by DIE offset.
AttributeSpec(dwarf::Attribute A, dwarf::Form F, int64_t Value)
This class implements an extremely fast bulk output stream that can only output to a stream.
bool extract(DataExtractor Data, uint64_t *OffsetPtr)
SmallVector< AttributeSpec, 8 > AttributeSpecVector
Optional< uint32_t > findAttributeIndex(dwarf::Attribute attr) const
Get the index of the specified attribute.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
int64_t getImplicitConstValue() const
iterator_range< AttributeSpecVector::const_iterator > attr_iterator_range
size_t getNumAttributes() const
bool getAttrIsImplicitConstByIndex(uint32_t idx) const
bool isImplicitConst() const
AttributeSpec(dwarf::Attribute A, dwarf::Form F, Optional< uint8_t > ByteSize)
int64_t getAttrImplicitConstValueByIndex(uint32_t idx) const
DWARFAbbreviationDeclaration()
uint64_t getAttributeOffsetFromIndex(uint32_t AttrIndex, uint64_t DIEOffset, const DWARFUnit &U) const
Compute an offset from a DIE specified by DIE offset and attribute index.
A range adaptor for a pair of iterators.
Optional< DWARFFormValue > getAttributeValueFromOffset(uint32_t AttrIndex, uint64_t Offset, const DWARFUnit &U) const
Extract a DWARF form value from a DIE speccified by attribute index and its offset.
LLVM Value Representation.
attr_iterator_range attributes() const