14#ifndef LLVM_TEXTAPI_RECORD_H
15#define LLVM_TEXTAPI_RECORD_H
41 return std::tie(
File,
Line) == std::tie(O.File, O.Line);
129 Kind GV,
bool Inlined)
142 bool Inlined =
false;
156template <
typename V,
typename K =
StringRef,
157 typename std::enable_if<std::is_base_of<Record, V>::value>::type * =
183 ClassToExtend(ClassToExtend) {}
224 bool operator==(
const Linkages &other)
const {
225 return std::tie(Class, MetaClass, EHType) ==
226 std::tie(other.Class, other.MetaClass, other.EHType);
228 bool operator!=(
const Linkages &other)
const {
return !(*
this == other); }
This file implements a map that provides insertion order iteration.
GlobalRecord(StringRef Name, RecordLinkage Linkage, SymbolFlags Flags, Kind GV, bool Inlined)
void setKind(const Kind &V)
ObjCCategoryRecord(StringRef ClassToExtend, StringRef Name)
StringRef getSuperClassName() const
LLVM_ABI ObjCIVarRecord * addObjCIVar(StringRef IVar, RecordLinkage Linkage)
LLVM_ABI ObjCIVarRecord * findObjCIVar(StringRef IVar) const
ObjCContainerRecord(StringRef Name, RecordLinkage Linkage)
RecordLinkage getLinkage() const
LLVM_ABI std::vector< ObjCIVarRecord * > getObjCIVars() const
ObjCIVarRecord(StringRef Name, RecordLinkage Linkage)
static std::string createScopedName(StringRef SuperClass, StringRef IVar)
LLVM_ABI RecordLinkage getLinkageForSymbol(ObjCIFSymbolKind CurrType) const
ObjCInterfaceRecord(StringRef Name, RecordLinkage Linkage, ObjCIFSymbolKind SymType)
LLVM_ABI std::vector< ObjCCategoryRecord * > getObjCCategories() const
LLVM_ABI bool addObjCCategory(ObjCCategoryRecord *Record)
LLVM_ABI void updateLinkageForSymbols(ObjCIFSymbolKind SymType, RecordLinkage Link)
bool isCompleteInterface() const
bool isExportedSymbol(ObjCIFSymbolKind CurrType) const
bool hasExceptionAttribute() const
StringRef getName() const
bool isThreadLocalValue() const
Record(StringRef Name, RecordLinkage Linkage, SymbolFlags Flags)
SymbolFlags getFlags() const
bool isWeakDefined() const
void setVerify(bool V=true)
bool isWeakReferenced() const
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.
ObjCIFSymbolKind
ObjC Interface symbol mappings.
@ EHType
Is OBJC_EHTYPE* 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)
bool operator==(const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)
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
bool isValid() const
Whether there is source location tied to the RecordLoc object.
RecordLoc(std::string File, unsigned Line)