LLVM: include/llvm/TextAPI/Record.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_TEXTAPI_RECORD_H

15#define LLVM_TEXTAPI_RECORD_H

16

22#include

23

24namespace llvm {

26

28

30

31

36

37

39

41 return std::tie(File, Line) == std::tie(O.File, O.Line);

42 }

43

44 const std::string File;

45 const unsigned Line = 0;

46};

47

48

50

52

53

55

56

58

59

61

62

64};

65

66

67

69public:

74

78

82

87

91

95

100

103

106

107private:

109

110protected:

115

117};

118

119

121public:

127

129 Kind GV, bool Inlined)

131

139

140private:

141 Kind GV;

142 bool Inlined = false;

143};

144

145

155

156template <typename V, typename K = StringRef,

157 typename std::enable_if<std::is_base_of<Record, V>::value>::type * =

158 nullptr>

160

161

162

164public:

167

172

173private:

175};

176

177

178

180public:

183 ClassToExtend(ClassToExtend) {}

184

186

187private:

189};

190

191

193public:

199

210

214

217

218private:

219

220 struct Linkages {

224 bool operator==(const Linkages &other) const {

226 std::tie(other.Class, other.MetaClass, other.EHType);

227 }

228 bool operator!=(const Linkages &other) const { return !(*this == other); }

229 };

230 Linkages Linkages;

231

232

233 llvm::MapVector<StringRef, ObjCCategoryRecord *> Categories;

234};

235

236}

237}

238

239#endif

This file implements a map that provides insertion order iteration.

GlobalRecord(StringRef Name, RecordLinkage Linkage, SymbolFlags Flags, Kind GV, bool Inlined)

Definition Record.h:128

void setKind(const Kind &V)

Definition Record.h:134

bool isFunction() const

Definition Record.h:132

bool isInlined() const

Definition Record.h:138

Kind

Definition Record.h:122

@ Variable

Definition Record.h:124

@ Function

Definition Record.h:125

@ Unknown

Definition Record.h:123

bool isVariable() const

Definition Record.h:133

ObjCCategoryRecord(StringRef ClassToExtend, StringRef Name)

Definition Record.h:181

StringRef getSuperClassName() const

Definition Record.h:185

LLVM_ABI ObjCIVarRecord * addObjCIVar(StringRef IVar, RecordLinkage Linkage)

LLVM_ABI ObjCIVarRecord * findObjCIVar(StringRef IVar) const

ObjCContainerRecord(StringRef Name, RecordLinkage Linkage)

Definition Record.h:165

RecordLinkage getLinkage() const

Definition Record.h:171

LLVM_ABI std::vector< ObjCIVarRecord * > getObjCIVars() const

ObjCIVarRecord(StringRef Name, RecordLinkage Linkage)

Definition Record.h:148

static std::string createScopedName(StringRef SuperClass, StringRef IVar)

Definition Record.h:151

LLVM_ABI RecordLinkage getLinkageForSymbol(ObjCIFSymbolKind CurrType) const

ObjCInterfaceRecord(StringRef Name, RecordLinkage Linkage, ObjCIFSymbolKind SymType)

Definition Record.h:194

LLVM_ABI std::vector< ObjCCategoryRecord * > getObjCCategories() const

LLVM_ABI bool addObjCCategory(ObjCCategoryRecord *Record)

LLVM_ABI void updateLinkageForSymbols(ObjCIFSymbolKind SymType, RecordLinkage Link)

bool isCompleteInterface() const

Definition Record.h:203

bool isExportedSymbol(ObjCIFSymbolKind CurrType) const

Definition Record.h:207

bool hasExceptionAttribute() const

Definition Record.h:200

Define Record.

Definition Record.h:68

bool isUndefined() const

Definition Record.h:97

bool isInternal() const

Definition Record.h:96

StringRef getName() const

Definition Record.h:104

bool isThreadLocalValue() const

Definition Record.h:83

Record(StringRef Name, RecordLinkage Linkage, SymbolFlags Flags)

Definition Record.h:71

SymbolFlags getFlags() const

Definition Record.h:105

bool isVerified() const

Definition Record.h:101

bool isWeakDefined() const

Definition Record.h:75

bool isData() const

Definition Record.h:88

friend class RecordsSlice

Definition Record.h:116

bool isRexported() const

Definition Record.h:99

RecordLinkage Linkage

Definition Record.h:112

bool isExported() const

Definition Record.h:98

void setVerify(bool V=true)

Definition Record.h:102

StringRef Name

Definition Record.h:111

bool Verified

Definition Record.h:114

bool isWeakReferenced() const

Definition Record.h:79

SymbolFlags Flags

Definition Record.h:113

bool isText() const

Definition Record.h:92

This class implements a map that also provides access to all stored values in a deterministic order.

StringRef - Represent a constant reference to a string, i.e.

RecordLinkage

Definition Record.h:49

@ Exported

Definition Record.h:63

@ Rexported

Definition Record.h:60

@ Unknown

Definition Record.h:51

@ Internal

Definition Record.h:54

@ Undefined

Definition Record.h:57

bool operator==(const Target &LHS, const Target &RHS)

llvm::MapVector< K, std::unique_ptr< V > > RecordMap

Definition Record.h:159

ObjCIFSymbolKind

ObjC Interface symbol mappings.

@ EHType

Is OBJC_EHTYPE* symbol.

@ Class

Is OBJC_CLASS* symbol.

@ MetaClass

Is OBJC_METACLASS* symbol.

LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

@ ThreadLocalValue

Thread-local value symbol.

@ WeakReferenced

Weak referenced symbol.

@ WeakDefined

Weak defined symbol.

This is an optimization pass for GlobalISel generic memory operations.

bool operator!=(uint64_t V1, const APInt &V2)

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

Implement std::hash so that hash_code can be used in STL containers.

bool operator==(const RecordLoc &O) const

Definition Record.h:40

const std::string File

Definition Record.h:44

const unsigned Line

Definition Record.h:45

bool isValid() const

Whether there is source location tied to the RecordLoc object.

Definition Record.h:38

RecordLoc(std::string File, unsigned Line)

Definition Record.h:34