LLVM: include/llvm/DebugInfo/LogicalView/Core/LVLine.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
16
19
20namespace llvm {
22
37using LVLineDispatch = std::map<LVLineKind, LVLineGetFunction>;
39
40
42
45
46
48
49public:
51 setIsLine();
52 setIncludeInPrint();
53 }
57
61
72
73 const char *kind() const override;
74
75
78
79
80 std::string noLineAsString(bool ShowZero = false) const override;
81
82
83
87
89
90
91
92
93 static void markMissingParents(const LVLines *References,
95
96
97 virtual bool equals(const LVLine *Line) const;
98
99
100
101 static bool equals(const LVLines *References, const LVLines *Targets);
102
103
105
108};
109
110
112
113
115
116public:
121
122
123
124 std::string statesInfo(bool Formatted) const;
125
126
129 Discriminator = Value;
130 setIsDiscriminator();
131 }
132
133
134 bool equals(const LVLine *Line) const override;
135
136 void printExtra(raw_ostream &OS, bool Full = true) const override;
137};
138
139
141public:
146
147
149 return std::string(8, ' ');
150 };
151
152
153 bool equals(const LVLine *Line) const override;
154
155 void printExtra(raw_ostream &OS, bool Full = true) const override;
156};
157
158}
159}
160
161#endif
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
Definition LVLine.h:148
LVLineAssembler(const LVLineAssembler &)=delete
LVLineAssembler()
Definition LVLine.h:142
~LVLineAssembler() override=default
LVLineAssembler & operator=(const LVLineAssembler &)=delete
~LVLineDebug() override=default
LVLineDebug()
Definition LVLine.h:117
LVLineDebug & operator=(const LVLineDebug &)=delete
void setDiscriminator(uint32_t Value) override
Definition LVLine.h:128
LVLineDebug(const LVLineDebug &)=delete
uint32_t getDiscriminator() const override
Definition LVLine.h:127
std::string statesInfo(bool Formatted) const
KIND(LVLineKind, IsEpilogueBegin)
std::string lineNumberAsString(bool ShowZero=false) const override
Definition LVLine.h:84
LVLine()
Definition LVLine.h:50
KIND(LVLineKind, IsNeverStepInto)
static LVLineDispatch & getDispatch()
Definition LVLine.h:88
void setAddress(uint64_t address)
Definition LVLine.h:77
uint64_t getAddress() const
Definition LVLine.h:76
KIND(LVLineKind, IsLineAssembler)
KIND(LVLineKind, IsPrologueEnd)
KIND(LVLineKind, IsBasicBlock)
static bool classof(const LVElement *Element)
Definition LVLine.h:58
void printExtra(raw_ostream &OS, bool Full=true) const override
Definition LVLine.h:107
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)
~LVLine() override=default
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
Definition LVLine.h:37
std::vector< LVLineGetFunction > LVLineRequest
Definition LVLine.h:38
LVLineKind
Definition LVLine.h:23
@ IsLineAssembler
Definition LVLine.h:29
@ IsEpilogueBegin
Definition LVLine.h:27
@ IsLineDebug
Definition LVLine.h:28
@ IsAlwaysStepInto
Definition LVLine.h:32
@ IsBasicBlock
Definition LVLine.h:24
@ IsNewStatement
Definition LVLine.h:30
@ IsPrologueEnd
Definition LVLine.h:31
@ IsEndSequence
Definition LVLine.h:26
@ IsNeverStepInto
Definition LVLine.h:33
@ IsDiscriminator
Definition LVLine.h:25
SmallVector< LVLine *, 8 > LVLines
std::set< LVLineKind > LVLineKindSet
Definition LVLine.h:36
This is an optimization pass for GlobalISel generic memory operations.