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.