diff options
author | Justin Lebar <jlebar@google.com> | 2016-10-17 22:24:36 +0000 |
---|---|---|
committer | Justin Lebar <jlebar@google.com> | 2016-10-17 22:24:36 +0000 |
commit | ee34a7343d9e2333e7657753fdd6cf6fac7570b3 (patch) | |
tree | 9a8e7c88ab81313073127c12bcbc8584aa1af0ba /llvm/lib/MC/StringTableBuilder.cpp | |
parent | 61b9b6a9d540e780f7fb1c72f35184ed5529d54a (diff) | |
download | bcm5719-llvm-ee34a7343d9e2333e7657753fdd6cf6fac7570b3.tar.gz bcm5719-llvm-ee34a7343d9e2333e7657753fdd6cf6fac7570b3.zip |
[ADT] Move CachedHashString to its own header in ADT, and rename to CachedHashStringRef.
Summary:
Reclaiming the name 'CachedHashString' will let us add a type with that
name that owns its value.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25644
llvm-svn: 284434
Diffstat (limited to 'llvm/lib/MC/StringTableBuilder.cpp')
-rw-r--r-- | llvm/lib/MC/StringTableBuilder.cpp | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/llvm/lib/MC/StringTableBuilder.cpp b/llvm/lib/MC/StringTableBuilder.cpp index e5d2a4ae58a..1a501bcafc1 100644 --- a/llvm/lib/MC/StringTableBuilder.cpp +++ b/llvm/lib/MC/StringTableBuilder.cpp @@ -9,6 +9,7 @@ #include "llvm/MC/StringTableBuilder.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallString.h" #include "llvm/Support/COFF.h" #include "llvm/Support/Endian.h" #include "llvm/Support/raw_ostream.h" @@ -17,28 +18,6 @@ using namespace llvm; -namespace llvm { -template <> struct DenseMapInfo<CachedHashString> { - static CachedHashString getEmptyKey() { - StringRef S = DenseMapInfo<StringRef>::getEmptyKey(); - return {S, 0}; - } - static CachedHashString getTombstoneKey() { - StringRef S = DenseMapInfo<StringRef>::getTombstoneKey(); - return {S, 0}; - } - static unsigned getHashValue(CachedHashString Val) { - assert(!isEqual(Val, getEmptyKey()) && "Cannot hash the empty key!"); - assert(!isEqual(Val, getTombstoneKey()) && - "Cannot hash the tombstone key!"); - return Val.hash(); - } - static bool isEqual(CachedHashString A, CachedHashString B) { - return DenseMapInfo<StringRef>::isEqual(A.val(), B.val()); - } -}; -} - StringTableBuilder::~StringTableBuilder() {} void StringTableBuilder::initSize() { @@ -73,7 +52,7 @@ void StringTableBuilder::write(raw_ostream &OS) const { OS << Data; } -typedef std::pair<CachedHashString, size_t> StringPair; +typedef std::pair<CachedHashStringRef, size_t> StringPair; void StringTableBuilder::write(uint8_t *Buf) const { assert(isFinalized()); @@ -183,14 +162,14 @@ void StringTableBuilder::clear() { StringIndexMap.clear(); } -size_t StringTableBuilder::getOffset(CachedHashString S) const { +size_t StringTableBuilder::getOffset(CachedHashStringRef S) const { assert(isFinalized()); auto I = StringIndexMap.find(S); assert(I != StringIndexMap.end() && "String is not in table!"); return I->second; } -size_t StringTableBuilder::add(CachedHashString S) { +size_t StringTableBuilder::add(CachedHashStringRef S) { if (K == WinCOFF) assert(S.size() > COFF::NameSize && "Short string in COFF string table!"); |