From: Chris Lattner Date: Wed, 1 Apr 2009 19:50:49 +0000 (+0000) Subject: Add range insert method for DenseSet and define DenseMapInfo for chars. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=dd255a62474a2016702e2985710e6e8910b3c974;p=oota-llvm.git Add range insert method for DenseSet and define DenseMapInfo for chars. Patch by Kevin Fan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68239 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h index ce0c006cf2b..cb951815f83 100644 --- a/include/llvm/ADT/DenseMap.h +++ b/include/llvm/ADT/DenseMap.h @@ -51,6 +51,17 @@ struct DenseMapInfo { static bool isPod() { return true; } }; +// Provide DenseMapInfo for chars. +template<> struct DenseMapInfo { + static inline char getEmptyKey() { return ~0; } + static inline char getTombstoneKey() { return ~0 - 1; } + static unsigned getHashValue(const char& Val) { return Val * 37; } + static bool isPod() { return true; } + static bool isEqual(const char &LHS, const char &RHS) { + return LHS == RHS; + } +}; + // Provide DenseMapInfo for unsigned ints. template<> struct DenseMapInfo { static inline unsigned getEmptyKey() { return ~0; } diff --git a/include/llvm/ADT/DenseSet.h b/include/llvm/ADT/DenseSet.h index 953c67d53eb..ce7344bc1f9 100644 --- a/include/llvm/ADT/DenseSet.h +++ b/include/llvm/ADT/DenseSet.h @@ -90,6 +90,13 @@ public: std::pair insert(const ValueT &V) { return TheMap.insert(std::make_pair(V, 0)); } + + // Range insertion of values. + template + void insert(InputIt I, InputIt E) { + for (; I != E; ++I) + insert(*I); + } }; } // end namespace llvm