From adea6306d413d1352c07c08c1bc9cdf8a29e3a51 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 15 Mar 2005 17:51:51 +0000 Subject: [PATCH] add support for hashing nodehandles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20620 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DataStructure/DSSupport.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/llvm/Analysis/DataStructure/DSSupport.h b/include/llvm/Analysis/DataStructure/DSSupport.h index 08bb3ee17e5..52461f88448 100644 --- a/include/llvm/Analysis/DataStructure/DSSupport.h +++ b/include/llvm/Analysis/DataStructure/DSSupport.h @@ -146,6 +146,15 @@ namespace std { inline void swap(llvm::DSNodeHandle &NH1, llvm::DSNodeHandle &NH2) { NH1.swap(NH2); } } +namespace HASH_NAMESPACE { + // Provide a hash function for arbitrary pointers... + template <> struct hash { + inline size_t operator()(const llvm::DSNodeHandle &Val) const { + return hash()(Val.getNode()) ^ Val.getOffset(); + } + }; +} + namespace llvm { //===----------------------------------------------------------------------===//