From: Dan Gohman Date: Wed, 6 Feb 2008 23:09:15 +0000 (+0000) Subject: Add support to FoldingSet for hashing APInt objects. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=167b8bc24d4cc2789c682962b123877a73ad0568;p=oota-llvm.git Add support to FoldingSet for hashing APInt objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46833 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/FoldingSet.h b/include/llvm/ADT/FoldingSet.h index d0097613d68..ac7f428b3e7 100644 --- a/include/llvm/ADT/FoldingSet.h +++ b/include/llvm/ADT/FoldingSet.h @@ -22,6 +22,7 @@ namespace llvm { class APFloat; + class APInt; /// This folding set used for two purposes: /// 1. Given information about a node we want to create, look up the unique @@ -206,6 +207,7 @@ public: void AddFloat(float F); void AddDouble(double D); void AddAPFloat(const APFloat& apf); + void AddAPInt(const APInt& api); void AddString(const std::string &String); /// clear - Clear the accumulated profile, allowing this FoldingSetNodeID diff --git a/lib/Support/FoldingSet.cpp b/lib/Support/FoldingSet.cpp index 774fbabc28e..b2d34834d22 100644 --- a/lib/Support/FoldingSet.cpp +++ b/lib/Support/FoldingSet.cpp @@ -16,6 +16,7 @@ #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/APFloat.h" +#include "llvm/ADT/APInt.h" #include "llvm/Support/MathExtras.h" #include using namespace llvm; @@ -59,6 +60,9 @@ void FoldingSetNodeID::AddDouble(double D) { } void FoldingSetNodeID::AddAPFloat(const APFloat& apf) { APInt api = apf.convertToAPInt(); + AddAPInt(api); +} +void FoldingSetNodeID::AddAPInt(const APInt& api) { const uint64_t *p = api.getRawData(); for (unsigned i=0; i