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")))