14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
21namespace logicalview {
73 const char *kind()
const override;
80 std::string noLineAsString(
bool ShowZero =
false)
const override;
85 return lineAsString(getLineNumber(), getDiscriminator(), ShowZero);
93 static void markMissingParents(
const LVLines *References,
101 static bool equals(
const LVLines *References,
const LVLines *Targets);
124 std::string statesInfo(
bool Formatted)
const;
130 setIsDiscriminator();
134 bool equals(
const LVLine *
Line)
const override;
136 void printExtra(
raw_ostream &
OS,
bool Full =
true)
const override;
149 return std::string(8,
' ');
153 bool equals(
const LVLine *
Line)
const override;
155 void printExtra(
raw_ostream &
OS,
bool Full =
true)
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.
LVSubclassID getSubclassID() 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
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)
LVLine(const LVLine &)=delete
KIND(LVLineKind, IsNewStatement)
This class implements an extremely fast bulk output stream that can only output to a stream.
std::set< LVLineKind > LVLineKindSet
std::vector< LVLineGetFunction > LVLineRequest
std::map< LVLineKind, LVLineGetFunction > LVLineDispatch
This is an optimization pass for GlobalISel generic memory operations.