14#ifndef LLVM_TEXTAPI_RECORD_H
15#define LLVM_TEXTAPI_RECORD_H
40 return std::tie(
File,
Line) == std::tie(O.File, O.Line);
128 Kind GV,
bool Inlined)
141 bool Inlined =
false;
155template <
typename V,
typename K =
StringRef,
156 typename std::enable_if<std::is_base_of<Record, V>::value>::type * =
182 ClassToExtend(ClassToExtend) {}
222 bool operator==(
const Linkages &other)
const {
223 return std::tie(Class, MetaClass, EHType) ==
224 std::tie(other.Class, other.MetaClass, other.EHType);
226 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
ObjCIVarRecord * addObjCIVar(StringRef IVar, RecordLinkage Linkage)
ObjCIVarRecord * findObjCIVar(StringRef IVar) const
ObjCContainerRecord(StringRef Name, RecordLinkage Linkage)
RecordLinkage getLinkage() const
std::vector< ObjCIVarRecord * > getObjCIVars() const
ObjCIVarRecord(StringRef Name, RecordLinkage Linkage)
static std::string createScopedName(StringRef SuperClass, StringRef IVar)
RecordLinkage getLinkageForSymbol(ObjCIFSymbolKind CurrType) const
ObjCInterfaceRecord(StringRef Name, RecordLinkage Linkage, ObjCIFSymbolKind SymType)
std::vector< ObjCCategoryRecord * > getObjCCategories() const
bool addObjCCategory(ObjCCategoryRecord *Record)
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)