9#ifndef LLVM_DEBUGINFO_GSYM_LINETABLE_H
10#define LLVM_DEBUGINFO_GSYM_LINETABLE_H
119 typedef std::vector<gsym::LineEntry> Collection;
167 bool empty()
const {
return Lines.empty(); }
173 std::optional<LineEntry>
first()
const {
176 return Lines.front();
182 std::optional<LineEntry>
last()
const {
191 return !Lines.empty();
211 return Lines ==
RHS.Lines;
214 return Lines !=
RHS.Lines;
217 const auto LHSSize = Lines.size();
218 const auto RHSSize =
RHS.Lines.size();
219 if (LHSSize == RHSSize)
220 return Lines <
RHS.Lines;
221 return LHSSize < RHSSize;
223 Collection::const_iterator
begin()
const {
return Lines.begin(); }
224 Collection::const_iterator
end()
const {
return Lines.end(); }
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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)
Collection::const_iterator end() const
std::optional< LineEntry > last() const
Return the last line entry if the line table isn't empty.
llvm::Error encode(FileWriter &O, uint64_t BaseAddr) const
Encode this LineTable object into FileWriter stream.
static llvm::Expected< LineTable > decode(DataExtractor &Data, uint64_t BaseAddr)
Decode an LineTable object from a binary data stream.
const LineEntry & get(size_t i) const
static Expected< LineEntry > lookup(DataExtractor &Data, uint64_t BaseAddr, uint64_t Addr)
Lookup a single address within a line table's data.
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.
raw_ostream & operator<<(raw_ostream &OS, const FunctionInfo &R)
This is an optimization pass for GlobalISel generic memory operations.
Line entries are used to encode the line tables in FunctionInfo objects.