diff options
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/APFloat.cpp | 6 | ||||
-rw-r--r-- | lib/Support/FoldingSet.cpp | 11 |
2 files changed, 6 insertions, 11 deletions
diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp index 3de709c86e..cc86e795e7 100644 --- a/lib/Support/APFloat.cpp +++ b/lib/Support/APFloat.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/APFloat.h" +#include "llvm/ADT/FoldingSet.h" #include <cassert> #include <cstring> #include "llvm/Support/MathExtras.h" @@ -691,6 +692,11 @@ APFloat::~APFloat() freeSignificand(); } +// Profile - This method 'profiles' an APFloat for use with FoldingSet. +void APFloat::Profile(FoldingSetNodeID& ID) const { + ID.Add(convertToAPInt()); +} + unsigned int APFloat::partCount() const { diff --git a/lib/Support/FoldingSet.cpp b/lib/Support/FoldingSet.cpp index b2d34834d2..2d2279cefe 100644 --- a/lib/Support/FoldingSet.cpp +++ b/lib/Support/FoldingSet.cpp @@ -15,8 +15,6 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/FoldingSet.h" -#include "llvm/ADT/APFloat.h" -#include "llvm/ADT/APInt.h" #include "llvm/Support/MathExtras.h" #include <cassert> using namespace llvm; @@ -58,15 +56,6 @@ void FoldingSetNodeID::AddFloat(float F) { void FoldingSetNodeID::AddDouble(double D) { AddInteger(DoubleToBits(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<api.getNumWords(); i++) - AddInteger(*p++); -} void FoldingSetNodeID::AddString(const std::string &String) { unsigned Size = String.size(); Bits.push_back(Size); |