forked from OSchip/llvm-project
Compute some Debug Info Metadata hash key partially (NFC)
Summary: This patch changes the computation of the hash key for DISubprogram to be computed on a small subset of the fields. The hash is computed a lot faster, but there might be more collision in the table. However by carefully selecting the fields, colisions should be rare. Using `opt` to load the IR for FastISelEmitter.cpp.o, with this patch: - DISubprogram::getImpl() goes from 28ms to 15ms. - DICompositeType::getImpl() goes from 6ms to 2ms - DIDerivedType::getImpl() goes from 18 to 12ms Reviewers: dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16571 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263866
This commit is contained in:
parent
d23be3d30d
commit
53fc3895e0
|
@ -365,8 +365,7 @@ template <> struct MDNodeKeyImpl<DIDerivedType> {
|
|||
ExtraData == RHS->getRawExtraData();
|
||||
}
|
||||
unsigned getHashValue() const {
|
||||
return hash_combine(Tag, Name, File, Line, Scope, BaseType, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags, ExtraData);
|
||||
return hash_combine(Tag, Name, File, Line, Scope, BaseType, Flags);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -422,9 +421,8 @@ template <> struct MDNodeKeyImpl<DICompositeType> {
|
|||
Identifier == RHS->getIdentifier();
|
||||
}
|
||||
unsigned getHashValue() const {
|
||||
return hash_combine(Tag, Name, File, Line, Scope, BaseType, SizeInBits,
|
||||
AlignInBits, OffsetInBits, Flags, Elements, RuntimeLang,
|
||||
VTableHolder, TemplateParams, Identifier);
|
||||
return hash_combine(Name, File, Line, BaseType, Scope, Elements,
|
||||
TemplateParams);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -518,10 +516,7 @@ template <> struct MDNodeKeyImpl<DISubprogram> {
|
|||
Variables == RHS->getRawVariables();
|
||||
}
|
||||
unsigned getHashValue() const {
|
||||
return hash_combine(Scope, Name, LinkageName, File, Line, Type,
|
||||
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
||||
Virtuality, VirtualIndex, Flags, IsOptimized,
|
||||
TemplateParams, Declaration, Variables);
|
||||
return hash_combine(Name, Scope, File, Type, Line);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue