[llvm-commits] CVS: llvm/include/llvm/Analysis/DataStructure/DSSupport.h

Chris Lattner lattner at cs.uiuc.edu
Tue Mar 15 09:52:35 PST 2005



Changes in directory llvm/include/llvm/Analysis/DataStructure:

DSSupport.h updated: 1.36 -> 1.37
---
Log message:

add support for hashing nodehandles.


---
Diffs of the changes:  (+9 -0)

 DSSupport.h |    9 +++++++++
 1 files changed, 9 insertions(+)


Index: llvm/include/llvm/Analysis/DataStructure/DSSupport.h
diff -u llvm/include/llvm/Analysis/DataStructure/DSSupport.h:1.36 llvm/include/llvm/Analysis/DataStructure/DSSupport.h:1.37
--- llvm/include/llvm/Analysis/DataStructure/DSSupport.h:1.36	Sun Jan 30 17:50:48 2005
+++ llvm/include/llvm/Analysis/DataStructure/DSSupport.h	Tue Mar 15 11:51:51 2005
@@ -146,6 +146,15 @@
   inline void swap<llvm::DSNodeHandle>(llvm::DSNodeHandle &NH1, llvm::DSNodeHandle &NH2) { NH1.swap(NH2); }
 }
 
+namespace HASH_NAMESPACE {
+  // Provide a hash function for arbitrary pointers...
+  template <> struct hash<llvm::DSNodeHandle> {
+    inline size_t operator()(const llvm::DSNodeHandle &Val) const {
+      return hash<void*>()(Val.getNode()) ^ Val.getOffset();
+    }
+  };
+}
+
 namespace llvm {
 
 //===----------------------------------------------------------------------===//






More information about the llvm-commits mailing list