[PATCH] D30857: Add a DenseMapInfo<T> for shorts.

Zachary Turner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 10 19:04:47 PST 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL297552: [ADT] Add a DenseMapInfo<T> for shorts. (authored by zturner).

Changed prior to commit:
  https://reviews.llvm.org/D30857?vs=91440&id=91448#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D30857

Files:
  llvm/trunk/include/llvm/ADT/DenseMapInfo.h


Index: llvm/trunk/include/llvm/ADT/DenseMapInfo.h
===================================================================
--- llvm/trunk/include/llvm/ADT/DenseMapInfo.h
+++ llvm/trunk/include/llvm/ADT/DenseMapInfo.h
@@ -60,6 +60,16 @@
   }
 };
 
+// Provide DenseMapInfo for unsigned shorts.
+template <> struct DenseMapInfo<unsigned short> {
+  static inline unsigned short getEmptyKey() { return 0xFFFF; }
+  static inline unsigned short getTombstoneKey() { return 0xFFFF - 1; }
+  static unsigned getHashValue(const unsigned short &Val) { return Val * 37U; }
+  static bool isEqual(const unsigned short &LHS, const unsigned short &RHS) {
+    return LHS == RHS;
+  }
+};
+
 // Provide DenseMapInfo for unsigned ints.
 template<> struct DenseMapInfo<unsigned> {
   static inline unsigned getEmptyKey() { return ~0U; }
@@ -95,6 +105,14 @@
   }
 };
 
+// Provide DenseMapInfo for shorts.
+template <> struct DenseMapInfo<short> {
+  static inline short getEmptyKey() { return 0x7FFF; }
+  static inline short getTombstoneKey() { return -0x7FFF - 1; }
+  static unsigned getHashValue(const short &Val) { return Val * 37U; }
+  static bool isEqual(const short &LHS, const short &RHS) { return LHS == RHS; }
+};
+
 // Provide DenseMapInfo for ints.
 template<> struct DenseMapInfo<int> {
   static inline int getEmptyKey() { return 0x7fffffff; }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30857.91448.patch
Type: text/x-patch
Size: 1339 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170311/eea5140c/attachment.bin>


More information about the llvm-commits mailing list