LLVM: include/llvm/Telemetry/Telemetry.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_TELEMETRY_TELEMETRY_H

15#define LLVM_TELEMETRY_TELEMETRY_H

16

22#include

23#include

24#include

25#include

26

27namespace llvm {

29

31public:

33

46

47 template <typename T, typename = typename T::mapped_type>

49 static_assert(std::is_convertible_v<typename T::key_type, StringRef>,

50 "KeyType must be convertible to string");

52 for (const auto &KeyVal : Map)

53 write(KeyVal.first, KeyVal.second);

55 }

56};

57

58

59

60

61

62

63

64

67

68

70

72

74

75

76

78

79 virtual std::optionalstd::string makeSessionId() { return std::nullopt; }

80};

81

82

84

85

86

87

88

92

93

94

95

96

97

98

99

100

101

102

104

105

106

107

108

109

110

111

113

116

118

119

124};

125

126

127

128

129

130

131

138

139

140

141

142

144public:

147

148

151

152

153

154

156

157

159

160protected:

161

162

164

165private:

166 std::vector<std::unique_ptr> Destinations;

167};

168

169}

170}

171

172#endif

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

This file defines the DenseMap class.

Lightweight error class with error context and mandatory checking.

A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...

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

LLVM Value Representation.

This class presents a data sink to which the Telemetry framework sends data.

Definition Telemetry.h:132

virtual Error receiveEntry(const TelemetryInfo *Entry)=0

virtual StringLiteral name() const =0

virtual ~Destination()=default

Manager & operator=(Manager const &)=delete

virtual ~Manager()=default

virtual Error preDispatch(TelemetryInfo *Entry)

void addDestination(std::unique_ptr< Destination > Destination)

virtual Error dispatch(TelemetryInfo *Entry)

Manager(Manager const &)=delete

Definition Telemetry.h:30

virtual void write(StringRef KeyName, unsigned long Value)=0

virtual ~Serializer()=default

virtual void write(StringRef KeyName, unsigned int Value)=0

virtual void write(StringRef KeyName, bool Value)=0

virtual void write(StringRef KeyName, long long Value)=0

virtual Error finalize()=0

virtual void write(StringRef KeyName, int Value)=0

virtual void write(StringRef KeyName, long Value)=0

virtual void beginObject(StringRef KeyName)=0

virtual void write(StringRef KeyName, StringRef Value)=0

virtual void write(StringRef KeyName, unsigned long long Value)=0

void write(StringRef KeyName, const T &Map)

Definition Telemetry.h:48

virtual void endObject()=0

Definition Telemetry.h:28

unsigned KindType

For isa, dyn_cast, etc operations on TelemetryInfo.

Definition Telemetry.h:83

This is an optimization pass for GlobalISel generic memory operations.

static constexpr bool BuildTimeEnableTelemetry

Definition Telemetry.h:66

Config()

Definition Telemetry.h:71

const bool EnableTelemetry

Definition Telemetry.h:69

virtual ~Config()=default

virtual std::optional< std::string > makeSessionId()

Definition Telemetry.h:79

Config(bool E)

Definition Telemetry.h:77

This struct is used by TelemetryInfo to support isa<>, dyn_cast<> operations.

Definition Telemetry.h:89

static const KindType Base

Definition Telemetry.h:90

TelemetryInfo is the data courier, used to move instrumented data from the tool being monitored to th...

Definition Telemetry.h:103

virtual void serialize(Serializer &serializer) const

virtual KindType getKind() const

Definition Telemetry.h:120

static bool classof(const TelemetryInfo *T)

Definition Telemetry.h:121

virtual ~TelemetryInfo()=default

std::string SessionId

Definition Telemetry.h:112