9#ifndef LLVM_DEBUGINFO_DWARF_DWARFUNITINDEX_H
10#define LLVM_DEBUGINFO_DWARF_DWARFUNITINDEX_H
61#define HANDLE_DW_SECT(ID, NAME) DW_SECT_##NAME = ID,
62#include "llvm/BinaryFormat/Dwarf.def"
71 return "Unknown DW_SECT value 0";
72#define STRINGIZE(X) #X
73#define HANDLE_DW_SECT(ID, NAME) \
74 case DW_SECT_##NAME: \
75 return "DW_SECT_" STRINGIZE(NAME);
76#include "llvm/BinaryFormat/Dwarf.def"
78 return "DW_SECT_TYPES";
82 return "DW_SECT_MACINFO";
93 unsigned IndexVersion);
100 unsigned IndexVersion);
137 std::unique_ptr<SectionContribution[]> Contributions;
147 return Contributions.get();
155 struct Header Header;
159 std::unique_ptr<DWARFSectionKind[]> ColumnKinds;
163 std::unique_ptr<uint32_t[]> RawSectionIds;
164 std::unique_ptr<Entry[]> Rows;
165 mutable std::vector<Entry *> OffsetLookup;
173 : InfoColumnKind(InfoColumnKind) {}
175 explicit operator bool()
const {
return Header.NumBuckets; }
186 return ArrayRef(ColumnKinds.get(), Header.NumColumns);
190 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
LLVM_ABI const SectionContribution * getContribution() const
const SectionContribution * getContributions() const
uint32_t getVersion() const
MutableArrayRef< Entry > getMutableRows()
LLVM_ABI void dump(raw_ostream &OS) const
DWARFUnitIndex(DWARFSectionKind InfoColumnKind)
LLVM_ABI const Entry * getFromHash(uint64_t Offset) const
ArrayRef< DWARFSectionKind > getColumnKinds() const
ArrayRef< Entry > getRows() const
LLVM_ABI 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)
LLVM_ABI 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...
LLVM_ABI 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)