LLVM: include/llvm/DebugInfo/Symbolize/MarkupFilter.h Source File (original) (raw)
34public:
36 std::optional ColorsEnabled = std::nullopt);
37
38
39
40
41
42
44
45
47
48private:
49 struct Module {
51 std::string Name;
53 };
54
55 struct MMap {
58 const Module *Mod;
59 std::string Mode;
61
64 };
65
66
67
68 struct ModuleInfoLine {
69 const Module *Mod;
70
72 };
73
74
75 enum class PCType {
76
77
78 ReturnAddress,
79
80 PreciseCode,
81 };
82
85 bool tryMMap(const MarkupNode &Element,
87 bool tryReset(const MarkupNode &Element,
89 bool tryModule(const MarkupNode &Element,
91
92 void beginModuleInfoLine(const Module *M);
93 void endAnyModuleInfoLine();
94
96
102
104
105 void highlight();
106 void highlightValue();
107 void restoreColor();
108 void resetColor();
109
110 void printRawElement(const MarkupNode &Element);
112
113 std::optional parseModule(const MarkupNode &Element) const;
114 std::optional parseMMap(const MarkupNode &Element) const;
115
116 std::optional<uint64_t> parseAddr(StringRef Str) const;
117 std::optional<uint64_t> parseModuleID(StringRef Str) const;
118 std::optional<uint64_t> parseSize(StringRef Str) const;
120 std::optionalstd::string parseMode(StringRef Str) const;
121 std::optional parsePCType(StringRef Str) const;
122 std::optional<uint64_t> parseFrameNumber(StringRef Str) const;
123
125 bool checkNumFields(const MarkupNode &Element, size_t Size) const;
126 bool checkNumFieldsAtLeast(const MarkupNode &Element, size_t Size) const;
127 void warnNumFieldsAtMost(const MarkupNode &Element, size_t Size) const;
128
131
132 const MMap *getOverlappingMMap(const MMap &Map) const;
133 const MMap *getContainingMMap(uint64_t Addr) const;
134
136
138
141 const bool ColorsEnabled;
142
144
145
146 std::string Line;
147
148
149
150 std::optional MIL;
151
152
153 std::optional<raw_ostream::Colors> Color;
154 bool Bold = false;
155
156
158
159
160 std::map<uint64_t, MMap> MMaps;
161};
static cl::opt< RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode > Mode("regalloc-enable-advisor", cl::Hidden, cl::init(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default), cl::desc("Enable regalloc advisor mode"), cl::values(clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default, "default", "Default"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release, "release", "precompiled"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development, "development", "for training")))