Lines Matching defs:FunctionInfo

1 //===- FunctionInfo.h -------------------------------------------*- C++ -*-===//
30 /// need to be encoded using multiple FunctionInfo objects.
35 /// to the FunctionInfo::decode(...) function. This information is calculated
37 /// table. The encoded FunctionInfo information must be aligned to a 4 byte
40 /// The encoded data for a FunctionInfo starts with fixed data that all
48 /// The optional data in a FunctionInfo object follows this fixed information
75 /// information data to a FunctionInfo object over time and allows older
92 struct FunctionInfo {
99 /// If we encode a FunctionInfo during segmenting so we know its size, we can
104 FunctionInfo(uint64_t Addr = 0, uint64_t Size = 0, uint32_t N = 0)
107 /// Query if a FunctionInfo has rich debug info.
111 /// debug info, we might end up with multiple FunctionInfo objects for the
116 /// Query if a FunctionInfo object is valid.
124 /// \returns A boolean indicating if this FunctionInfo is valid.
135 /// \param BaseAddr The FunctionInfo's start address and will be used as the
139 /// \returns An FunctionInfo or an error describing the issue that was
141 static llvm::Expected<FunctionInfo> decode(DataExtractor &Data,
149 /// \param NoPadding Directly write the FunctionInfo data, without any padding
150 /// By default, FunctionInfo will be 4-byte aligned by padding with
152 /// actual data in the stream. However when writing FunctionInfo's as a
154 /// where the FunctionInfo starts is not kept in this scenario.
163 /// When segmenting GSYM files we need to know how big each FunctionInfo will
165 /// to have to encode a FunctionInfo twice, so we can cache the encoded bytes
166 /// and re-use then when calling FunctionInfo::encode(...).
168 /// \returns The size in bytes of the FunctionInfo if it were to be encoded
172 /// Lookup an address within a FunctionInfo object's data stream.
174 /// Instead of decoding an entire FunctionInfo object when doing lookups,
175 /// we can decode only the information we need from the FunctionInfo's data
196 /// address is not contained in the FunctionInfo or if the data is corrupted.
214 inline bool operator==(const FunctionInfo &LHS, const FunctionInfo &RHS) {
218 inline bool operator!=(const FunctionInfo &LHS, const FunctionInfo &RHS) {
223 /// and line tables. We might end up with a FunctionInfo from debug info that
233 /// ensures we are able to save the FunctionInfo with the most debug info into
235 inline bool operator<(const FunctionInfo &LHS, const FunctionInfo &RHS) {
244 raw_ostream &operator<<(raw_ostream &OS, const FunctionInfo &R);