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
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