LLVM: include/llvm/DebugInfo/LogicalView/Readers/LVDWARFReader.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_READERS_LVDWARFREADER_H

15#define LLVM_DEBUGINFO_LOGICALVIEW_READERS_LVDWARFREADER_H

16

20#include <unordered_set>

21

22namespace llvm {

24

30

32

35

36

37

38 bool RangesDataAvailable = false;

41

42 LVOffset CurrentEndOffset = 0;

43

44

45

46

47 bool IncrementFileIndex = false;

48

49

51

52

54

55

58 bool FoundLowPC = false;

59 bool FoundHighPC = false;

60

61

62 std::optional TombstoneAddress;

63

64

65 using LVElementSet = std::unordered_set<LVElement *>;

66 struct LVElementEntry {

68 LVElementSet References;

69 LVElementSet Types;

70 LVElementEntry(LVElement *Element = nullptr) : Element(Element) {}

71 };

72 using LVElementReference = std::unordered_map<LVOffset, LVElementEntry>;

73 LVElementReference ElementTable;

74

76

78

81

84 void processOneAttribute(const DWARFDie &Die, LVOffset *OffsetPtr,

87 void processLocationGaps();

88

89

91 if (GlobalOffsets.find(Offset) == GlobalOffsets.end())

92

93

94 GlobalOffsets.emplace(Offset, nullptr);

95 }

96

97

99

100

107 bool CallSiteLocation = false);

109

110

112 bool IsType);

113

114protected:

117

118public:

127

132

135 assert(TombstoneAddress && "Unset tombstone value");

136 return TombstoneAddress.value();

137 }

138

140 return SymbolsWithLocations;

141 }

142

145

147

148#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)

150#endif

151};

152

153}

154}

155

156#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

ArrayRef - 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.

StringRef - Represent a constant reference to a string, i.e.

LVDWARFReader(const LVDWARFReader &)=delete

LVAddress getTombstoneAddress() const

Definition LVDWARFReader.h:134

void setCUHighAddress(LVAddress Address)

Definition LVDWARFReader.h:131

void setTombstoneAddress(LVAddress Address)

Definition LVDWARFReader.h:133

void print(raw_ostream &OS) const

LVDWARFReader & operator=(const LVDWARFReader &)=delete

std::string getRegisterName(LVSmall Opcode, ArrayRef< uint64_t > Operands) override

void sortScopes() override

LVAddress getCUBaseAddress() const

Definition LVDWARFReader.h:128

void setCUBaseAddress(LVAddress Address)

Definition LVDWARFReader.h:129

~LVDWARFReader() override=default

LVAddress getCUHighAddress() const

Definition LVDWARFReader.h:130

LVDWARFReader(StringRef Filename, StringRef FileFormatName, object::ObjectFile &Obj, ScopedPrinter &W)

Definition LVDWARFReader.h:120

Error createScopes() override

const LVSymbols & GetSymbolsWithLocations() const

Definition LVDWARFReader.h:139

void dump() const

Definition LVDWARFReader.h:149

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

Definition LVDWARFReader.h:31

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.