9#ifndef LLVM_DEBUGINFO_DWARF_DWARFUNITINDEX_H
10#define LLVM_DEBUGINFO_DWARF_DWARFUNITINDEX_H
60#define HANDLE_DW_SECT(ID, NAME) DW_SECT_##NAME = ID,
61#include "llvm/BinaryFormat/Dwarf.def"
70 return "Unknown DW_SECT value 0";
71#define STRINGIZE(X) #X
72#define HANDLE_DW_SECT(ID, NAME) \
73 case DW_SECT_##NAME: \
74 return "DW_SECT_" STRINGIZE(NAME);
75#include "llvm/BinaryFormat/Dwarf.def"
77 return "DW_SECT_TYPES";
81 return "DW_SECT_MACINFO";
134 std::unique_ptr<SectionContribution[]> Contributions;
143 return Contributions.get();
151 struct Header Header;
155 std::unique_ptr<DWARFSectionKind[]> ColumnKinds;
159 std::unique_ptr<uint32_t[]> RawSectionIds;
160 std::unique_ptr<Entry[]> Rows;
161 mutable std::vector<Entry *> OffsetLookup;
169 : InfoColumnKind(InfoColumnKind) {}
171 explicit operator bool()
const {
return Header.NumBuckets; }
182 return ArrayRef(ColumnKinds.get(), Header.NumColumns);
186 return ArrayRef(Rows.get(), Header.NumBuckets);
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
uint32_t getOffset32() const
uint64_t getLength() const
void setOffset(uint64_t Value)
void setLength(uint64_t Value)
uint32_t getLength32() const
SectionContribution(uint64_t Offset, uint64_t Length)
uint64_t getOffset() const
uint64_t getSignature() const
const SectionContribution * getContribution() const
const SectionContribution * getContributions() const
uint32_t getVersion() const
MutableArrayRef< Entry > getMutableRows()
void dump(raw_ostream &OS) const
DWARFUnitIndex(DWARFSectionKind InfoColumnKind)
const Entry * getFromHash(uint64_t Offset) const
ArrayRef< DWARFSectionKind > getColumnKinds() const
ArrayRef< Entry > getRows() const
const Entry * getFromOffset(uint64_t Offset) const
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
DWARFSectionKind deserializeSectionKind(uint32_t Value, unsigned IndexVersion)
Convert a value read from an index section to the internal representation.
DWARFSectionKind
The enum of section identifiers to be used in internal interfaces.
@ DW_SECT_EXT_unknown
Denotes a value read from an index section that does not correspond to any of the supported standards...
uint32_t serializeSectionKind(DWARFSectionKind Kind, unsigned IndexVersion)
Convert the internal value for a section kind to an on-disk value.
const char * toString(DWARFSectionKind Kind)