14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
73 const char *
kind()
const override;
80 std::string noLineAsString(
bool ShowZero =
false)
const override;
93 static void markMissingParents(
const LVLines *References,
101 static bool equals(
const LVLines *References,
const LVLines *Targets);
129 Discriminator =
Value;
130 setIsDiscriminator();
134 bool equals(
const LVLine *
Line)
const override;
149 return std::string(8,
' ');
153 bool equals(
const LVLine *
Line)
const override;
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
static std::optional< int32_t > getOffset(ArrayRef< int32_t > Offsets, size_t Idx)
Pass interface - Implemented by all 'passes'.
LLVM Value Representation.
LVElement(LVSubclassID ID)
virtual uint32_t getDiscriminator() const
std::string noLineAsString(bool ShowZero) const override
LVLineAssembler(const LVLineAssembler &)=delete
~LVLineAssembler()=default
LVLineAssembler & operator=(const LVLineAssembler &)=delete
LVLineDebug & operator=(const LVLineDebug &)=delete
void setDiscriminator(uint32_t Value) override
LVLineDebug(const LVLineDebug &)=delete
uint32_t getDiscriminator() const override
std::string statesInfo(bool Formatted) const
KIND(LVLineKind, IsEpilogueBegin)
std::string lineNumberAsString(bool ShowZero=false) const override
KIND(LVLineKind, IsNeverStepInto)
static LVLineDispatch & getDispatch()
void setAddress(uint64_t address)
virtual ~LVLine()=default
uint64_t getAddress() const
KIND(LVLineKind, IsLineAssembler)
KIND(LVLineKind, IsPrologueEnd)
KIND(LVLineKind, IsBasicBlock)
static bool classof(const LVElement *Element)
void printExtra(raw_ostream &OS, bool Full=true) const override
KIND(LVLineKind, IsDiscriminator)
KIND(LVLineKind, IsAlwaysStepInto)
KIND(LVLineKind, IsLineDebug)
LVLine & operator=(const LVLine &)=delete
KIND(LVLineKind, IsEndSequence)
const char * kind() const override
LVLine(const LVLine &)=delete
KIND(LVLineKind, IsNewStatement)
std::string lineAsString(uint32_t LineNumber, LVHalf Discriminator, bool ShowZero) const
uint32_t getLineNumber() const
void setOffset(LVOffset DieOffset)
This class implements an extremely fast bulk output stream that can only output to a stream.
std::map< LVLineKind, LVLineGetFunction > LVLineDispatch
std::vector< LVLineGetFunction > LVLineRequest
SmallVector< LVLine *, 8 > LVLines
std::set< LVLineKind > LVLineKindSet
This is an optimization pass for GlobalISel generic memory operations.