LLVM  6.0.0svn
Classes | Namespaces | Typedefs
FoldingSet.h File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator.h"
#include "llvm/Support/Allocator.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <utility>
Include dependency graph for FoldingSet.h:
This graph shows which files directly or indirectly include this file:

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::DefaultFoldingSetTrait< T >
 DefaultFoldingSetTrait - This class provides default implementations for FoldingSetTrait implementations. More...
 
struct  llvm::FoldingSetTrait< T >
 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::FoldingSetIterator< T >
 
class  llvm::FoldingSetBucketIterator< T >
 
class  llvm::FoldingSetImpl< 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 > >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Typedefs

using llvm::FoldingSetNode = FoldingSetBase::Node