summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/StringTableBuilder.cpp
diff options
context:
space:
mode:
authorJustin Lebar <jlebar@google.com>2016-10-17 22:24:36 +0000
committerJustin Lebar <jlebar@google.com>2016-10-17 22:24:36 +0000
commitee34a7343d9e2333e7657753fdd6cf6fac7570b3 (patch)
tree9a8e7c88ab81313073127c12bcbc8584aa1af0ba /llvm/lib/MC/StringTableBuilder.cpp
parent61b9b6a9d540e780f7fb1c72f35184ed5529d54a (diff)
downloadbcm5719-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.cpp29
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!");
OpenPOWER on IntegriCloud