|
LLVM 22.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/Compiler.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.