14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_READERS_LVDWARFREADER_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_READERS_LVDWARFREADER_H
39 bool RangesDataAvailable =
false;
48 bool IncrementFileIndex =
false;
59 bool FoundLowPC =
false;
60 bool FoundHighPC =
false;
63 std::optional<LVAddress> TombstoneAddress;
67 struct LVElementEntry {
69 LVElementSet References;
71 LVElementEntry(
LVElement *Element =
nullptr) : Element(Element) {}
74 LVElementReference ElementTable;
88 void processLocationGaps();
92 if (GlobalOffsets.find(
Offset) == GlobalOffsets.end())
95 GlobalOffsets.emplace(
Offset,
nullptr);
108 bool CallSiteLocation =
false);
136 assert(TombstoneAddress &&
"Unset tombstone value");
137 return TombstoneAddress.value();
141 return SymbolsWithLocations;
149#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
This file defines the DenseMap class.
static std::string getRegisterName(const TargetRegisterInfo *TRI, Register Reg)
This file defines the SmallPtrSet class.
Represent a constant reference to an array (0 or more elements consecutively in memory),...
A structured debug information entry.
Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
Lightweight error class with error context and mandatory checking.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
Represent a constant reference to a string, i.e.
LVDWARFReader(const LVDWARFReader &)=delete
LVAddress getTombstoneAddress() const
void setCUHighAddress(LVAddress Address)
void setTombstoneAddress(LVAddress Address)
LVDWARFReader & operator=(const LVDWARFReader &)=delete
void sortScopes() override
LVAddress getCUBaseAddress() const
void setCUBaseAddress(LVAddress Address)
~LVDWARFReader() override=default
LVAddress getCUHighAddress() const
LVDWARFReader(StringRef Filename, StringRef FileFormatName, object::ObjectFile &Obj, ScopedPrinter &W)
Error createScopes() override
const LVSymbols & GetSymbolsWithLocations() const
std::string FileFormatName
This class is the base class for all object file types.
This class implements an extremely fast bulk output stream that can only output to a stream.
std::map< LVOffset, LVElement * > LVOffsetElementMap
SmallVector< LVSymbol *, 8 > LVSymbols
DWARFAbbreviationDeclaration::AttributeSpec AttributeSpec
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.