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