diff options
author | Daniel Dunbar <daniel@zuster.org> | 2012-03-08 07:42:18 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2012-03-08 07:42:18 +0000 |
commit | 9eddc1cf310c49c0f1f90cbde3687b2610a46689 (patch) | |
tree | 66a1f1d20c25fed4f2999919649808dd9e8a7740 /lib/Support/FoldingSet.cpp | |
parent | c10fa6c801e48771b5eade50afc2fe6abaf08227 (diff) |
[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
with a fix for the longstanding over-read of 32-bit pointer values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152300 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/FoldingSet.cpp')
-rw-r--r-- | lib/Support/FoldingSet.cpp | 44 |
1 files changed, 1 insertions, 43 deletions
diff --git a/lib/Support/FoldingSet.cpp b/lib/Support/FoldingSet.cpp index e029970b58..d182d48035 100644 --- a/lib/Support/FoldingSet.cpp +++ b/lib/Support/FoldingSet.cpp @@ -41,43 +41,6 @@ bool FoldingSetNodeIDRef::operator==(FoldingSetNodeIDRef RHS) const { //===----------------------------------------------------------------------===// // FoldingSetNodeID Implementation -/// Add* - Add various data types to Bit data. -/// -void FoldingSetNodeID::AddPointer(const void *Ptr) { - // Note: this adds pointers to the hash using sizes and endianness that - // depend on the host. It doesn't matter however, because hashing on - // pointer values in inherently unstable. Nothing should depend on the - // ordering of nodes in the folding set. - Bits.append(reinterpret_cast<unsigned *>(&Ptr), - reinterpret_cast<unsigned *>(&Ptr+1)); -} -void FoldingSetNodeID::AddInteger(signed I) { - Bits.push_back(I); -} -void FoldingSetNodeID::AddInteger(unsigned I) { - Bits.push_back(I); -} -void FoldingSetNodeID::AddInteger(long I) { - AddInteger((unsigned long)I); -} -void FoldingSetNodeID::AddInteger(unsigned long I) { - if (sizeof(long) == sizeof(int)) - AddInteger(unsigned(I)); - else if (sizeof(long) == sizeof(long long)) { - AddInteger((unsigned long long)I); - } else { - llvm_unreachable("unexpected sizeof(long)"); - } -} -void FoldingSetNodeID::AddInteger(long long I) { - AddInteger((unsigned long long)I); -} -void FoldingSetNodeID::AddInteger(unsigned long long I) { - AddInteger(unsigned(I)); - if ((uint64_t)(unsigned)I != I) - Bits.push_back(unsigned(I >> 32)); -} - void FoldingSetNodeID::AddString(StringRef String) { unsigned Size = String.size(); Bits.push_back(Size); @@ -129,12 +92,7 @@ void FoldingSetNodeID::AddString(StringRef String) { Bits.push_back(V); } -// AddNodeID - Adds the Bit data of another ID to *this. -void FoldingSetNodeID::AddNodeID(const FoldingSetNodeID &ID) { - Bits.append(ID.Bits.begin(), ID.Bits.end()); -} - -/// ComputeHash - Compute a strong hash value for this FoldingSetNodeID, used to +/// ComputeHash - Compute a strong hash value for this FoldingSetNodeID, used to /// lookup the node in the FoldingSetImpl. unsigned FoldingSetNodeID::ComputeHash() const { return FoldingSetNodeIDRef(Bits.data(), Bits.size()).ComputeHash(); |