class ContextualFoldingSet

Declaration

template <class T, class Ctx>
class ContextualFoldingSet { /* full declaration omitted */ };

Description

ContextualFoldingSet - This template class is a further refinement of FoldingSet which provides a context argument when calling Profile on its nodes. Currently, that argument is fixed at initialization time. T must be a subclass of FoldingSetNode and implement a Profile function with signature void Profile(FoldingSetNodeID & , Ctx);

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

Templates

T
Ctx

Member Variables

private Ctx Context

Method Overview

  • private static unsigned int ComputeNodeHash(const llvm::FoldingSetBase * Base, llvm::ContextualFoldingSet::Node * N, llvm::FoldingSetNodeID & TempID)
  • public ContextualFoldingSet<T, Ctx>(Ctx Context, unsigned int Log2InitSize = 6)
  • private static void GetNodeProfile(const llvm::FoldingSetBase * Base, llvm::ContextualFoldingSet::Node * N, llvm::FoldingSetNodeID & ID)
  • private static bool NodeEquals(const llvm::FoldingSetBase * Base, llvm::ContextualFoldingSet::Node * N, const llvm::FoldingSetNodeID & ID, unsigned int IDHash, llvm::FoldingSetNodeID & TempID)
  • private static const Ctx & getContext(const llvm::FoldingSetBase * Base)
  • public Ctx getContext() const
  • private static const FoldingSetBase::FoldingSetInfo & getFoldingSetInfo()

Methods

static unsigned int ComputeNodeHash(
    const llvm::FoldingSetBase* Base,
    llvm::ContextualFoldingSet::Node* N,
    llvm::FoldingSetNodeID& TempID)

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

Parameters

const llvm::FoldingSetBase* Base
llvm::ContextualFoldingSet::Node* N
llvm::FoldingSetNodeID& TempID

ContextualFoldingSet<T, Ctx>(
    Ctx Context,
    unsigned int Log2InitSize = 6)

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

Parameters

Ctx Context
unsigned int Log2InitSize = 6

static void GetNodeProfile(
    const llvm::FoldingSetBase* Base,
    llvm::ContextualFoldingSet::Node* N,
    llvm::FoldingSetNodeID& ID)

Description

GetNodeProfile - Each instantiatation of the FoldingSet needs to provide a way to convert nodes into a unique specifier.

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

Parameters

const llvm::FoldingSetBase* Base
llvm::ContextualFoldingSet::Node* N
llvm::FoldingSetNodeID& ID

static bool NodeEquals(
    const llvm::FoldingSetBase* Base,
    llvm::ContextualFoldingSet::Node* N,
    const llvm::FoldingSetNodeID& ID,
    unsigned int IDHash,
    llvm::FoldingSetNodeID& TempID)

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

Parameters

const llvm::FoldingSetBase* Base
llvm::ContextualFoldingSet::Node* N
const llvm::FoldingSetNodeID& ID
unsigned int IDHash
llvm::FoldingSetNodeID& TempID

static const Ctx& getContext(
    const llvm::FoldingSetBase* Base)

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

Parameters

const llvm::FoldingSetBase* Base

Ctx getContext() const

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

static const FoldingSetBase::FoldingSetInfo&
getFoldingSetInfo()

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