class FoldingSet
Declaration
template <class T>
class FoldingSet { /* full declaration omitted */ };
Description
FoldingSet - This template class is used to instantiate a specialized implementation of the folding set to the node class T. T must be a subclass of FoldingSetNode and implement a Profile function. Note that this set type is movable and move-assignable. However, its moved-from state is not a valid state for anything other than move-assigning and destroying. This is primarily to enable movable APIs that incorporate these objects.
Declared at: llvm/include/llvm/ADT/FoldingSet.h:520
Templates
- T
Method Overview
- private static unsigned int ComputeNodeHash(const llvm::FoldingSetBase *, llvm::FoldingSet::Node * N, llvm::FoldingSetNodeID & TempID)
- public FoldingSet<T>(unsigned int Log2InitSize = 6)
- public FoldingSet<T>(FoldingSet<T> && Arg)
- private static void GetNodeProfile(const llvm::FoldingSetBase *, llvm::FoldingSet::Node * N, llvm::FoldingSetNodeID & ID)
- private static bool NodeEquals(const llvm::FoldingSetBase *, llvm::FoldingSet::Node * N, const llvm::FoldingSetNodeID & ID, unsigned int IDHash, llvm::FoldingSetNodeID & TempID)
- private static const FoldingSetBase::FoldingSetInfo & getFoldingSetInfo()
Methods
¶static unsigned int ComputeNodeHash(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
llvm::FoldingSetNodeID& TempID)
static unsigned int ComputeNodeHash(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
llvm::FoldingSetNodeID& TempID)
Description
ComputeNodeHash - Instantiations may optionally provide a way to compute a hash value directly from a node.
Declared at: llvm/include/llvm/ADT/FoldingSet.h:543
Parameters
- const llvm::FoldingSetBase*
- llvm::FoldingSet::Node* N
- llvm::FoldingSetNodeID& TempID
¶FoldingSet<T>(unsigned int Log2InitSize = 6)
FoldingSet<T>(unsigned int Log2InitSize = 6)
Declared at: llvm/include/llvm/ADT/FoldingSet.h:557
Parameters
- unsigned int Log2InitSize = 6
¶FoldingSet<T>(FoldingSet<T>&& Arg)
FoldingSet<T>(FoldingSet<T>&& Arg)
Declared at: llvm/include/llvm/ADT/FoldingSet.h:558
Parameters
- FoldingSet<T>&& Arg
¶static void GetNodeProfile(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
llvm::FoldingSetNodeID& ID)
static void GetNodeProfile(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
llvm::FoldingSetNodeID& ID)
Description
GetNodeProfile - Each instantiation of the FoldingSet needs to provide a way to convert nodes into a unique specifier.
Declared at: llvm/include/llvm/ADT/FoldingSet.h:526
Parameters
- const llvm::FoldingSetBase*
- llvm::FoldingSet::Node* N
- llvm::FoldingSetNodeID& ID
¶static bool NodeEquals(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
const llvm::FoldingSetNodeID& ID,
unsigned int IDHash,
llvm::FoldingSetNodeID& TempID)
static bool NodeEquals(
const llvm::FoldingSetBase*,
llvm::FoldingSet::Node* N,
const llvm::FoldingSetNodeID& ID,
unsigned int IDHash,
llvm::FoldingSetNodeID& TempID)
Description
NodeEquals - Instantiations may optionally provide a way to compare a node with a specified ID.
Declared at: llvm/include/llvm/ADT/FoldingSet.h:534
Parameters
- const llvm::FoldingSetBase*
- llvm::FoldingSet::Node* N
- const llvm::FoldingSetNodeID& ID
- unsigned int IDHash
- llvm::FoldingSetNodeID& TempID
¶static const FoldingSetBase::FoldingSetInfo&
getFoldingSetInfo()
static const FoldingSetBase::FoldingSetInfo&
getFoldingSetInfo()
Declared at: llvm/include/llvm/ADT/FoldingSet.h:549