Lines Matching refs:CachedHashString
73 class CachedHashString {
74 friend struct DenseMapInfo<CachedHashString>;
91 CachedHashString(ConstructEmptyOrTombstoneTy, char *EmptyOrTombstonePtr)
99 explicit CachedHashString(const char *S) : CachedHashString(StringRef(S)) {}
102 explicit CachedHashString(StringRef S)
103 : CachedHashString(S, DenseMapInfo<StringRef>::getHashValue(S)) {}
105 CachedHashString(StringRef S, uint32_t Hash)
112 CachedHashString(const CachedHashString &Other)
122 CachedHashString &operator=(CachedHashString Other) {
127 CachedHashString(CachedHashString &&Other) noexcept
132 ~CachedHashString() {
146 friend void swap(CachedHashString &LHS, CachedHashString &RHS) {
154 template <> struct DenseMapInfo<CachedHashString> {
155 static CachedHashString getEmptyKey() {
156 return CachedHashString(CachedHashString::ConstructEmptyOrTombstoneTy(),
157 CachedHashString::getEmptyKeyPtr());
159 static CachedHashString getTombstoneKey() {
160 return CachedHashString(CachedHashString::ConstructEmptyOrTombstoneTy(),
161 CachedHashString::getTombstoneKeyPtr());
163 static unsigned getHashValue(const CachedHashString &S) {
168 static bool isEqual(const CachedHashString &LHS,
169 const CachedHashString &RHS) {
172 if (LHS.P == CachedHashString::getEmptyKeyPtr())
173 return RHS.P == CachedHashString::getEmptyKeyPtr();
174 if (LHS.P == CachedHashString::getTombstoneKeyPtr())
175 return RHS.P == CachedHashString::getTombstoneKeyPtr();