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)

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)

Declared at: llvm/include/llvm/ADT/FoldingSet.h:557

Parameters

unsigned int Log2InitSize = 6

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)

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)

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()

Declared at: llvm/include/llvm/ADT/FoldingSet.h:549