improve compatibility with cygwin, patch by Jay Foad!
authorChris Lattner <sabre@nondot.org>
Mon, 19 Jan 2009 22:00:18 +0000 (22:00 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 19 Jan 2009 22:00:18 +0000 (22:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62535 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/DenseMap.h
lib/Transforms/Scalar/GVN.cpp

index d1457af45066f452fc399f5177e337edf152f24e..df497d37d76d16e26374626e96ab7082840e9adc 100644 (file)
@@ -44,12 +44,23 @@ struct DenseMapInfo<T*> {
 };
 
 // Provide DenseMapInfo for unsigned ints.
-template<> struct DenseMapInfo<uint32_t> {
-  static inline uint32_t getEmptyKey() { return ~0; }
-  static inline uint32_t getTombstoneKey() { return ~0 - 1; }
-  static unsigned getHashValue(const uint32_t& Val) { return Val * 37; }
+template<> struct DenseMapInfo<unsigned> {
+  static inline unsigned getEmptyKey() { return ~0; }
+  static inline unsigned getTombstoneKey() { return ~0 - 1; }
+  static unsigned getHashValue(const unsigned& Val) { return Val * 37; }
   static bool isPod() { return true; }
-  static bool isEqual(const uint32_t& LHS, const uint32_t& RHS) {
+  static bool isEqual(const unsigned& LHS, const unsigned& RHS) {
+  return LHS == RHS;
+  }
+};
+
+// Provide DenseMapInfo for unsigned longs.
+template<> struct DenseMapInfo<unsigned long> {
+  static inline unsigned long getEmptyKey() { return ~0L; }
+  static inline unsigned long getTombstoneKey() { return ~0L - 1L; }
+  static unsigned getHashValue(const unsigned long& Val) { return Val * 37L; }
+  static bool isPod() { return true; }
+  static bool isEqual(const unsigned long& LHS, const unsigned long& RHS) {
   return LHS == RHS;
   }
 };
index e5eef8f99e8b0258b22acd820ae117a0fb1d494b..9c7f9041068b6877c007b197959f389a554c94ad 100644 (file)
@@ -1251,7 +1251,7 @@ Value* GVN::AttemptRedundancyElimination(Instruction* orig, unsigned valno) {
     DenseMap<BasicBlock*, ValueNumberScope*>::iterator LA =
                                                        localAvail.find(Current);
     if (LA == localAvail.end()) return 0;
-    DenseMap<unsigned, Value*>::iterator V = LA->second->table.find(valno);
+    DenseMap<uint32_t, Value*>::iterator V = LA->second->table.find(valno);
     
     if (V != LA->second->table.end()) {
       // Found an instance, record it.