mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
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
This commit is contained in:
parent
69de1932b3
commit
167b8bc24d
@ -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
|
||||
|
@ -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 <cassert>
|
||||
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<api.getNumWords(); i++)
|
||||
AddInteger(*p++);
|
||||
|
Loading…
Reference in New Issue
Block a user