mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-17 05:20:32 +00:00
TableGen: TableGenStringKey is no longer necessary as of r288642
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288651 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c2e7826e2b
commit
f3a991b8e3
@ -30,61 +30,6 @@ using namespace llvm;
|
||||
|
||||
static BumpPtrAllocator Allocator;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// std::string wrapper for DenseMap purposes
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
namespace llvm {
|
||||
|
||||
/// This is a wrapper for std::string suitable for using as a key to a DenseMap.
|
||||
/// Because there isn't a particularly
|
||||
/// good way to indicate tombstone or empty keys for strings, we want
|
||||
/// to wrap std::string to indicate that this is a "special" string
|
||||
/// not expected to take on certain values (those of the tombstone and
|
||||
/// empty keys). This makes things a little safer as it clarifies
|
||||
/// that DenseMap is really not appropriate for general strings.
|
||||
|
||||
class TableGenStringKey {
|
||||
public:
|
||||
TableGenStringKey(StringRef str) : data(str) {}
|
||||
TableGenStringKey(const char *str) : data(str) {}
|
||||
|
||||
StringRef str() const { return data; }
|
||||
|
||||
friend hash_code hash_value(const TableGenStringKey &Value) {
|
||||
using llvm::hash_value;
|
||||
return hash_value(Value.str());
|
||||
}
|
||||
|
||||
private:
|
||||
std::string data;
|
||||
};
|
||||
|
||||
/// Specialize DenseMapInfo for TableGenStringKey.
|
||||
template<> struct DenseMapInfo<TableGenStringKey> {
|
||||
static inline TableGenStringKey getEmptyKey() {
|
||||
TableGenStringKey Empty("<<<EMPTY KEY>>>");
|
||||
return Empty;
|
||||
}
|
||||
|
||||
static inline TableGenStringKey getTombstoneKey() {
|
||||
TableGenStringKey Tombstone("<<<TOMBSTONE KEY>>>");
|
||||
return Tombstone;
|
||||
}
|
||||
|
||||
static unsigned getHashValue(const TableGenStringKey& Val) {
|
||||
using llvm::hash_value;
|
||||
return hash_value(Val);
|
||||
}
|
||||
|
||||
static bool isEqual(const TableGenStringKey& LHS,
|
||||
const TableGenStringKey& RHS) {
|
||||
return LHS.str() == RHS.str();
|
||||
}
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Type implementations
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user