9#ifndef LLVM_DEBUGINFO_GSYM_LINETABLE_H
10#define LLVM_DEBUGINFO_GSYM_LINETABLE_H
120 typedef std::vector<gsym::LineEntry> Collection;
168 bool empty()
const {
return Lines.empty(); }
174 std::optional<LineEntry>
first()
const {
177 return Lines.front();
183 std::optional<LineEntry>
last()
const {
192 return !Lines.empty();
212 return Lines ==
RHS.Lines;
215 return Lines !=
RHS.Lines;
218 const auto LHSSize = Lines.size();
219 const auto RHSSize =
RHS.Lines.size();
220 if (LHSSize == RHSSize)
221 return Lines <
RHS.Lines;
222 return LHSSize < RHSSize;
224 Collection::const_iterator
begin()
const {
return Lines.begin(); }
225 Collection::const_iterator
end()
const {
return Lines.end(); }
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
A simplified binary data writer class that doesn't require targets, target definitions,...
LineTable class contains deserialized versions of line tables for each function's address ranges.
bool operator==(const LineTable &RHS) const
Collection::const_iterator begin() const
void push(const LineEntry &LE)
static LLVM_ABI Expected< LineEntry > lookup(GsymDataExtractor &Data, uint64_t BaseAddr, uint64_t Addr)
Lookup a single address within a line table's data.
Collection::const_iterator end() const
std::optional< LineEntry > last() const
Return the last line entry if the line table isn't empty.
LLVM_ABI llvm::Error encode(FileWriter &O, uint64_t BaseAddr) const
Encode this LineTable object into FileWriter stream.
const LineEntry & get(size_t i) const
static LLVM_ABI llvm::Expected< LineTable > decode(GsymDataExtractor &Data, uint64_t BaseAddr)
Decode an LineTable object from a binary data stream.
const LineEntry & operator[](size_t i) const
LineEntry & operator[](size_t i)
bool operator<(const LineTable &RHS) const
LineEntry & get(size_t i)
std::optional< LineEntry > first() const
Return the first line entry if the line table isn't empty.
bool operator!=(const LineTable &RHS) const
This class implements an extremely fast bulk output stream that can only output to a stream.
LLVM_ABI raw_ostream & operator<<(raw_ostream &OS, const CallSiteInfo &CSI)
This is an optimization pass for GlobalISel generic memory operations.
Function information in GSYM files encodes information for one contiguous address range.
Line entries are used to encode the line tables in FunctionInfo objects.