Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/IR/LLVMContextImpl.h
Show First 20 Lines • Show All 532 Lines • ▼ Show 20 Lines | template <> struct MDNodeKeyImpl<DICompositeType> { | ||||
unsigned RuntimeLang; | unsigned RuntimeLang; | ||||
Metadata *VTableHolder; | Metadata *VTableHolder; | ||||
Metadata *TemplateParams; | Metadata *TemplateParams; | ||||
MDString *Identifier; | MDString *Identifier; | ||||
Metadata *Discriminator; | Metadata *Discriminator; | ||||
Metadata *DataLocation; | Metadata *DataLocation; | ||||
Metadata *Associated; | Metadata *Associated; | ||||
Metadata *Allocated; | Metadata *Allocated; | ||||
Metadata *Rank; | |||||
MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *File, unsigned Line, | MDNodeKeyImpl(unsigned Tag, MDString *Name, Metadata *File, unsigned Line, | ||||
Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits, | Metadata *Scope, Metadata *BaseType, uint64_t SizeInBits, | ||||
uint32_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, | uint32_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, | ||||
Metadata *Elements, unsigned RuntimeLang, | Metadata *Elements, unsigned RuntimeLang, | ||||
Metadata *VTableHolder, Metadata *TemplateParams, | Metadata *VTableHolder, Metadata *TemplateParams, | ||||
MDString *Identifier, Metadata *Discriminator, | MDString *Identifier, Metadata *Discriminator, | ||||
Metadata *DataLocation, Metadata *Associated, | Metadata *DataLocation, Metadata *Associated, | ||||
Metadata *Allocated) | Metadata *Allocated, Metadata *Rank) | ||||
: Tag(Tag), Name(Name), File(File), Line(Line), Scope(Scope), | : Tag(Tag), Name(Name), File(File), Line(Line), Scope(Scope), | ||||
BaseType(BaseType), SizeInBits(SizeInBits), OffsetInBits(OffsetInBits), | BaseType(BaseType), SizeInBits(SizeInBits), OffsetInBits(OffsetInBits), | ||||
AlignInBits(AlignInBits), Flags(Flags), Elements(Elements), | AlignInBits(AlignInBits), Flags(Flags), Elements(Elements), | ||||
RuntimeLang(RuntimeLang), VTableHolder(VTableHolder), | RuntimeLang(RuntimeLang), VTableHolder(VTableHolder), | ||||
TemplateParams(TemplateParams), Identifier(Identifier), | TemplateParams(TemplateParams), Identifier(Identifier), | ||||
Discriminator(Discriminator), DataLocation(DataLocation), | Discriminator(Discriminator), DataLocation(DataLocation), | ||||
Associated(Associated), Allocated(Allocated) {} | Associated(Associated), Allocated(Allocated), Rank(Rank) {} | ||||
MDNodeKeyImpl(const DICompositeType *N) | MDNodeKeyImpl(const DICompositeType *N) | ||||
: Tag(N->getTag()), Name(N->getRawName()), File(N->getRawFile()), | : Tag(N->getTag()), Name(N->getRawName()), File(N->getRawFile()), | ||||
Line(N->getLine()), Scope(N->getRawScope()), | Line(N->getLine()), Scope(N->getRawScope()), | ||||
BaseType(N->getRawBaseType()), SizeInBits(N->getSizeInBits()), | BaseType(N->getRawBaseType()), SizeInBits(N->getSizeInBits()), | ||||
OffsetInBits(N->getOffsetInBits()), AlignInBits(N->getAlignInBits()), | OffsetInBits(N->getOffsetInBits()), AlignInBits(N->getAlignInBits()), | ||||
Flags(N->getFlags()), Elements(N->getRawElements()), | Flags(N->getFlags()), Elements(N->getRawElements()), | ||||
RuntimeLang(N->getRuntimeLang()), VTableHolder(N->getRawVTableHolder()), | RuntimeLang(N->getRuntimeLang()), VTableHolder(N->getRawVTableHolder()), | ||||
TemplateParams(N->getRawTemplateParams()), | TemplateParams(N->getRawTemplateParams()), | ||||
Identifier(N->getRawIdentifier()), | Identifier(N->getRawIdentifier()), | ||||
Discriminator(N->getRawDiscriminator()), | Discriminator(N->getRawDiscriminator()), | ||||
DataLocation(N->getRawDataLocation()), | DataLocation(N->getRawDataLocation()), | ||||
Associated(N->getRawAssociated()), Allocated(N->getRawAllocated()) {} | Associated(N->getRawAssociated()), Allocated(N->getRawAllocated()), | ||||
Rank(N->getRawRank()) {} | |||||
bool isKeyOf(const DICompositeType *RHS) const { | bool isKeyOf(const DICompositeType *RHS) const { | ||||
return Tag == RHS->getTag() && Name == RHS->getRawName() && | return Tag == RHS->getTag() && Name == RHS->getRawName() && | ||||
File == RHS->getRawFile() && Line == RHS->getLine() && | File == RHS->getRawFile() && Line == RHS->getLine() && | ||||
Scope == RHS->getRawScope() && BaseType == RHS->getRawBaseType() && | Scope == RHS->getRawScope() && BaseType == RHS->getRawBaseType() && | ||||
SizeInBits == RHS->getSizeInBits() && | SizeInBits == RHS->getSizeInBits() && | ||||
AlignInBits == RHS->getAlignInBits() && | AlignInBits == RHS->getAlignInBits() && | ||||
OffsetInBits == RHS->getOffsetInBits() && Flags == RHS->getFlags() && | OffsetInBits == RHS->getOffsetInBits() && Flags == RHS->getFlags() && | ||||
Elements == RHS->getRawElements() && | Elements == RHS->getRawElements() && | ||||
RuntimeLang == RHS->getRuntimeLang() && | RuntimeLang == RHS->getRuntimeLang() && | ||||
VTableHolder == RHS->getRawVTableHolder() && | VTableHolder == RHS->getRawVTableHolder() && | ||||
TemplateParams == RHS->getRawTemplateParams() && | TemplateParams == RHS->getRawTemplateParams() && | ||||
Identifier == RHS->getRawIdentifier() && | Identifier == RHS->getRawIdentifier() && | ||||
Discriminator == RHS->getRawDiscriminator() && | Discriminator == RHS->getRawDiscriminator() && | ||||
DataLocation == RHS->getRawDataLocation() && | DataLocation == RHS->getRawDataLocation() && | ||||
Associated == RHS->getRawAssociated() && | Associated == RHS->getRawAssociated() && | ||||
Allocated == RHS->getRawAllocated(); | Allocated == RHS->getRawAllocated() && Rank == RHS->getRawRank(); | ||||
} | } | ||||
unsigned getHashValue() const { | unsigned getHashValue() const { | ||||
// Intentionally computes the hash on a subset of the operands for | // Intentionally computes the hash on a subset of the operands for | ||||
// performance reason. The subset has to be significant enough to avoid | // performance reason. The subset has to be significant enough to avoid | ||||
// collision "most of the time". There is no correctness issue in case of | // collision "most of the time". There is no correctness issue in case of | ||||
// collision because of the full check above. | // collision because of the full check above. | ||||
return hash_combine(Name, File, Line, BaseType, Scope, Elements, | return hash_combine(Name, File, Line, BaseType, Scope, Elements, | ||||
▲ Show 20 Lines • Show All 889 Lines • Show Last 20 Lines |