From 2f39b29170e0f69491fc5b73952725266ac32fb8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 19 Jan 2009 22:00:18 +0000 Subject: [PATCH] improve compatibility with cygwin, patch by Jay Foad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62535 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/DenseMap.h | 21 ++++++++++++++++----- lib/Transforms/Scalar/GVN.cpp | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h index d1457af4506..df497d37d76 100644 --- a/include/llvm/ADT/DenseMap.h +++ b/include/llvm/ADT/DenseMap.h @@ -44,12 +44,23 @@ struct DenseMapInfo { }; // Provide DenseMapInfo for unsigned ints. -template<> struct DenseMapInfo { - 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 { + 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 { + 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; } }; diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index e5eef8f99e8..9c7f9041068 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -1251,7 +1251,7 @@ Value* GVN::AttemptRedundancyElimination(Instruction* orig, unsigned valno) { DenseMap::iterator LA = localAvail.find(Current); if (LA == localAvail.end()) return 0; - DenseMap::iterator V = LA->second->table.find(valno); + DenseMap::iterator V = LA->second->table.find(valno); if (V != LA->second->table.end()) { // Found an instance, record it.