9#ifndef LLVM_DEBUGINFO_GSYM_FUNCTIONINFO_H
10#define LLVM_DEBUGINFO_GSYM_FUNCTIONINFO_H
207 return LHS.Range ==
RHS.Range &&
LHS.Name ==
RHS.Name &&
208 LHS.OptLineTable ==
RHS.OptLineTable &&
LHS.Inline ==
RHS.Inline;
229 if (
LHS.Range !=
RHS.Range)
230 return LHS.Range <
RHS.Range;
231 if (
LHS.Inline ==
RHS.Inline)
232 return LHS.OptLineTable <
RHS.OptLineTable;
233 return LHS.Inline <
RHS.Inline;
This file defines the SmallString class.
A class that represents an address range.
Tagged union holding either a T or a Error.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
A simplified binary data writer class that doesn't require targets, target definitions,...
GsymReader is used to read GSYM data from a file or buffer.
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const FunctionInfo &R)
bool operator<(const FunctionInfo &LHS, const FunctionInfo &RHS)
This sorting will order things consistently by address range first, but then followed by increasing l...
bool operator!=(const FunctionInfo &LHS, const FunctionInfo &RHS)
This is an optimization pass for GlobalISel generic memory operations.
bool operator==(const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)
Function information in GSYM files encodes information for one contiguous address range.
std::optional< InlineInfo > Inline
std::optional< MergedFunctionsInfo > MergedFunctions
uint64_t startAddress() const
uint64_t endAddress() const
bool isValid() const
Query if a FunctionInfo object is valid.
bool hasRichInfo() const
Query if a FunctionInfo has rich debug info.
static llvm::Expected< LookupResult > lookup(DataExtractor &Data, const GsymReader &GR, uint64_t FuncAddr, uint64_t Addr)
Lookup an address within a FunctionInfo object's data stream.
uint64_t cacheEncoding()
Encode this function info into the internal byte cache and return the size in bytes.
uint32_t Name
String table offset in the string table.
llvm::Expected< uint64_t > encode(FileWriter &O, bool NoPadding=false) const
Encode this object into FileWriter stream.
SmallString< 32 > EncodingCache
If we encode a FunctionInfo during segmenting so we know its size, we can cache that encoding here so...
std::optional< LineTable > OptLineTable
FunctionInfo(uint64_t Addr=0, uint64_t Size=0, uint32_t N=0)
static llvm::Expected< FunctionInfo > decode(DataExtractor &Data, uint64_t BaseAddr)
Decode an object from a binary data stream.