mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-17 21:32:04 +00:00
Add an optional optimization to FoldingSet to allow ID values to be
stored rather than recomputed on each bucket traversal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75480 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d2559bf3f3
commit
d6a2aab53e
@ -438,6 +438,20 @@ public:
|
||||
operator const T&() const { return data; }
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// FastFoldingSetNode - This is a subclass of FoldingSetNode which stores
|
||||
/// a FoldingSetNodeID value rather than requiring the node to recompute it
|
||||
/// each time it is needed. This trades space for speed (which can be
|
||||
/// significant if the ID is long), and it also permits nodes to drop
|
||||
/// information that would otherwise only be required for recomputing an ID.
|
||||
class FastFoldingSetNode : public FoldingSetNode {
|
||||
FoldingSetNodeID FastID;
|
||||
protected:
|
||||
explicit FastFoldingSetNode(const FoldingSetNodeID &ID) : FastID(ID) {}
|
||||
public:
|
||||
void Profile(FoldingSetNodeID& ID) { ID = FastID; }
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Partial specializations of FoldingSetTrait.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user