mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
patch by Johannes Schaub! llvm-svn: 130151
This commit is contained in:
parent
35166f3b22
commit
75652009a0
@ -310,6 +310,7 @@ public:
|
||||
void AddInteger(unsigned long long I);
|
||||
void AddBoolean(bool B) { AddInteger(B ? 1U : 0U); }
|
||||
void AddString(StringRef String);
|
||||
void AddNodeID(const FoldingSetNodeID &ID);
|
||||
|
||||
template <typename T>
|
||||
inline void Add(const T& x) { FoldingSetTrait<T>::Profile(x, *this); }
|
||||
@ -641,7 +642,7 @@ public:
|
||||
: data(a1,a2,a3,a4,a5) {}
|
||||
|
||||
|
||||
void Profile(FoldingSetNodeID& ID) { FoldingSetTrait<T>::Profile(data, ID); }
|
||||
void Profile(FoldingSetNodeID &ID) { FoldingSetTrait<T>::Profile(data, ID); }
|
||||
|
||||
T& getValue() { return data; }
|
||||
const T& getValue() const { return data; }
|
||||
@ -661,7 +662,9 @@ class FastFoldingSetNode : public FoldingSetNode {
|
||||
protected:
|
||||
explicit FastFoldingSetNode(const FoldingSetNodeID &ID) : FastID(ID) {}
|
||||
public:
|
||||
void Profile(FoldingSetNodeID& ID) const { ID = FastID; }
|
||||
void Profile(FoldingSetNodeID& ID) const {
|
||||
ID.AddNodeID(FastID);
|
||||
}
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -147,6 +147,11 @@ 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
|
||||
/// lookup the node in the FoldingSetImpl.
|
||||
unsigned FoldingSetNodeID::ComputeHash() const {
|
||||
|
Loading…
Reference in New Issue
Block a user