LLVM 20.0.0git
|
This file defines a hash set that can be used to remove duplication of nodes in a graph. More...
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/xxhash.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <type_traits>
#include <utility>
Go to the source code of this file.
Classes | |
class | llvm::FoldingSetBase |
FoldingSetBase - Implements the folding set functionality. More... | |
class | llvm::FoldingSetBase::Node |
Node - This class is used to maintain the singly linked bucket list in a folding set. More... | |
struct | llvm::FoldingSetBase::FoldingSetInfo |
Functions provided by the derived class to compute folding properties. More... | |
struct | llvm::DefaultFoldingSetTrait< T > |
DefaultFoldingSetTrait - This class provides default implementations for FoldingSetTrait implementations. More... | |
struct | llvm::FoldingSetTrait< T, Enable > |
FoldingSetTrait - This trait class is used to define behavior of how to "profile" (in the FoldingSet parlance) an object of a given type. More... | |
struct | llvm::DefaultContextualFoldingSetTrait< T, Ctx > |
DefaultContextualFoldingSetTrait - Like DefaultFoldingSetTrait, but for ContextualFoldingSets. More... | |
struct | llvm::ContextualFoldingSetTrait< T, Ctx > |
ContextualFoldingSetTrait - Like FoldingSetTrait, but for ContextualFoldingSets. More... | |
class | llvm::FoldingSetNodeIDRef |
FoldingSetNodeIDRef - This class describes a reference to an interned FoldingSetNodeID, which can be a useful to store node id data rather than using plain FoldingSetNodeIDs, since the 32-element SmallVector is often much larger than necessary, and the possibility of heap allocation means it requires a non-trivial destructor call. More... | |
class | llvm::FoldingSetNodeID |
FoldingSetNodeID - This class is used to gather all the unique data bits of a node. More... | |
class | llvm::FoldingSetImpl< Derived, T > |
FoldingSetImpl - An implementation detail that lets us share code between FoldingSet and ContextualFoldingSet. More... | |
class | llvm::FoldingSet< T > |
FoldingSet - This template class is used to instantiate a specialized implementation of the folding set to the node class T. More... | |
class | llvm::ContextualFoldingSet< T, Ctx > |
ContextualFoldingSet - This template class is a further refinement of FoldingSet which provides a context argument when calling Profile on its nodes. More... | |
class | llvm::FoldingSetVector< T, VectorT > |
FoldingSetVector - This template class combines a FoldingSet and a vector to provide the interface of FoldingSet but with deterministic iteration order based on the insertion order. More... | |
class | llvm::FoldingSetIteratorImpl |
FoldingSetIteratorImpl - This is the common iterator support shared by all folding sets, which knows how to walk the folding set hash table. More... | |
class | llvm::FoldingSetIterator< T > |
class | llvm::FoldingSetBucketIteratorImpl |
FoldingSetBucketIteratorImpl - This is the common bucket iterator support shared by all folding sets, which knows how to walk a particular bucket of a folding set hash table. More... | |
class | llvm::FoldingSetBucketIterator< T > |
class | llvm::FoldingSetNodeWrapper< T > |
FoldingSetNodeWrapper - This template class is used to "wrap" arbitrary types in an enclosing object so that they can be inserted into FoldingSets. More... | |
class | llvm::FastFoldingSetNode |
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. More... | |
struct | llvm::FoldingSetTrait< T * > |
struct | llvm::FoldingSetTrait< std::pair< T1, T2 > > |
struct | llvm::FoldingSetTrait< T, std::enable_if_t< std::is_enum< T >::value > > |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Typedefs | |
using | llvm::FoldingSetNode = FoldingSetBase::Node |
This file defines a hash set that can be used to remove duplication of nodes in a graph.
This code was originally created by Chris Lattner for use with SelectionDAGCSEMap, but was isolated to provide use across the llvm code set.
Definition in file FoldingSet.h.