|
LLVM
4.0.0
|
FoldingSet - This template class is used to instantiate a specialized implementation of the folding set to the node class T. More...
#include <FoldingSet.h>
Public Types | |
| typedef FoldingSetIterator< T > | iterator |
| typedef FoldingSetIterator < const T > | const_iterator |
| typedef FoldingSetBucketIterator< T > | bucket_iterator |
Public Member Functions | |
| FoldingSet (unsigned Log2InitSize=6) | |
| FoldingSet (FoldingSet &&Arg) | |
| FoldingSet & | operator= (FoldingSet &&RHS) |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| bucket_iterator | bucket_begin (unsigned hash) |
| bucket_iterator | bucket_end (unsigned hash) |
| T * | GetOrInsertNode (Node *N) |
| GetOrInsertNode - If there is an existing simple Node exactly equal to the specified node, return it. More... | |
| T * | FindNodeOrInsertPos (const FoldingSetNodeID &ID, void *&InsertPos) |
| FindNodeOrInsertPos - Look up the node specified by ID. More... | |
Public Member Functions inherited from llvm::FoldingSetImpl | |
| void | clear () |
| clear - Remove all nodes from the folding set. More... | |
| bool | RemoveNode (Node *N) |
| RemoveNode - Remove a node from the folding set, returning true if one was removed or false if the node was not in the folding set. More... | |
| Node * | GetOrInsertNode (Node *N) |
| GetOrInsertNode - If there is an existing simple Node exactly equal to the specified node, return it. More... | |
| Node * | FindNodeOrInsertPos (const FoldingSetNodeID &ID, void *&InsertPos) |
| FindNodeOrInsertPos - Look up the node specified by ID. More... | |
| void | InsertNode (Node *N, void *InsertPos) |
| InsertNode - Insert the specified node into the folding set, knowing that it is not already in the folding set. More... | |
| void | InsertNode (Node *N) |
| InsertNode - Insert the specified node into the folding set, knowing that it is not already in the folding set. More... | |
| unsigned | size () const |
| size - Returns the number of nodes in the folding set. More... | |
| bool | empty () const |
| empty - Returns true if there are no nodes in the folding set. More... | |
| void | reserve (unsigned EltCount) |
| reserve - Increase the number of buckets such that adding the EltCount-th node won't cause a rebucket operation. More... | |
| unsigned | capacity () |
| capacity - Returns the number of nodes permitted in the folding set before a rebucket operation is performed. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::FoldingSetImpl | |
| FoldingSetImpl (unsigned Log2InitSize=6) | |
| FoldingSetImpl (FoldingSetImpl &&Arg) | |
| FoldingSetImpl & | operator= (FoldingSetImpl &&RHS) |
| ~FoldingSetImpl () | |
Protected Attributes inherited from llvm::FoldingSetImpl | |
| void ** | Buckets |
| Buckets - Array of bucket chains. More... | |
| unsigned | NumBuckets |
| NumBuckets - Length of the Buckets array. More... | |
| unsigned | NumNodes |
| NumNodes - Number of nodes in the folding set. More... | |
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.
Definition at line 419 of file FoldingSet.h.
| typedef FoldingSetBucketIterator<T> llvm::FoldingSet< T >::bucket_iterator |
Definition at line 461 of file FoldingSet.h.
| typedef FoldingSetIterator<const T> llvm::FoldingSet< T >::const_iterator |
Definition at line 457 of file FoldingSet.h.
| typedef FoldingSetIterator<T> llvm::FoldingSet< T >::iterator |
Definition at line 453 of file FoldingSet.h.
|
inlineexplicit |
Definition at line 444 of file FoldingSet.h.
|
inline |
Definition at line 447 of file FoldingSet.h.
|
inline |
Definition at line 454 of file FoldingSet.h.
|
inline |
Definition at line 458 of file FoldingSet.h.
|
inline |
Definition at line 463 of file FoldingSet.h.
|
inline |
Definition at line 467 of file FoldingSet.h.
|
inline |
Definition at line 455 of file FoldingSet.h.
|
inline |
Definition at line 459 of file FoldingSet.h.
|
inline |
FindNodeOrInsertPos - Look up the node specified by ID.
If it exists, return it. If not, return the insertion token that will make insertion faster.
Definition at line 481 of file FoldingSet.h.
Referenced by llvm::ImmutableListFactory< T >::concat(), llvm::BitsInit::get(), llvm::ListInit::get(), llvm::UnOpInit::get(), llvm::BinOpInit::get(), llvm::TernOpInit::get(), and llvm::DagInit::get().
|
inline |
GetOrInsertNode - If there is an existing simple Node exactly equal to the specified node, return it.
Otherwise, insert 'N' and return it instead.
Definition at line 474 of file FoldingSet.h.
|
inline |
Definition at line 448 of file FoldingSet.h.
1.8.6