|
LLVM
4.0.0
|
A vector that has set insertion semantics. More...
#include <SetVector.h>
Public Types | |
| typedef T | value_type |
| typedef T | key_type |
| typedef T & | reference |
| typedef const T & | const_reference |
| typedef Set | set_type |
| typedef Vector | vector_type |
| typedef vector_type::const_iterator | iterator |
| typedef vector_type::const_iterator | const_iterator |
| typedef vector_type::const_reverse_iterator | reverse_iterator |
| typedef vector_type::const_reverse_iterator | const_reverse_iterator |
| typedef vector_type::size_type | size_type |
Public Member Functions | |
| SetVector ()=default | |
| Construct an empty SetVector. More... | |
| template<typename It > | |
| SetVector (It Start, It End) | |
| Initialize a SetVector with a range of elements. More... | |
| ArrayRef< T > | getArrayRef () const |
| Vector | takeVector () |
| Clear the SetVector and return the underlying vector. More... | |
| bool | empty () const |
| Determine if the SetVector is empty or not. More... | |
| size_type | size () const |
| Determine the number of elements in the SetVector. More... | |
| iterator | begin () |
| Get an iterator to the beginning of the SetVector. More... | |
| const_iterator | begin () const |
| Get a const_iterator to the beginning of the SetVector. More... | |
| iterator | end () |
| Get an iterator to the end of the SetVector. More... | |
| const_iterator | end () const |
| Get a const_iterator to the end of the SetVector. More... | |
| reverse_iterator | rbegin () |
| Get an reverse_iterator to the end of the SetVector. More... | |
| const_reverse_iterator | rbegin () const |
| Get a const_reverse_iterator to the end of the SetVector. More... | |
| reverse_iterator | rend () |
| Get a reverse_iterator to the beginning of the SetVector. More... | |
| const_reverse_iterator | rend () const |
| Get a const_reverse_iterator to the beginning of the SetVector. More... | |
| const T & | back () const |
| Return the last element of the SetVector. More... | |
| const_reference | operator[] (size_type n) const |
| Index into the SetVector. More... | |
| bool | insert (const value_type &X) |
| Insert a new element into the SetVector. More... | |
| template<typename It > | |
| void | insert (It Start, It End) |
| Insert a range of elements into the SetVector. More... | |
| bool | remove (const value_type &X) |
| Remove an item from the set vector. More... | |
| iterator | erase (iterator I) |
| Erase a single element from the set vector. More... | |
| template<typename UnaryPredicate > | |
| bool | remove_if (UnaryPredicate P) |
| Remove items from the set vector based on a predicate function. More... | |
| size_type | count (const key_type &key) const |
| Count the number of elements of a given key in the SetVector. More... | |
| void | clear () |
| Completely clear the SetVector. More... | |
| void | pop_back () |
| Remove the last element of the SetVector. More... | |
| LLVM_NODISCARD T | pop_back_val () |
| bool | operator== (const SetVector &that) const |
| bool | operator!= (const SetVector &that) const |
| template<class STy > | |
| bool | set_union (const STy &S) |
| Compute This := This u S, return whether 'This' changed. More... | |
| template<class STy > | |
| void | set_subtract (const STy &S) |
| Compute This := This - B TODO: We should be able to use set_subtract from SetOperations.h, but SetVector interface is inconsistent with DenseSet. More... | |
A vector that has set insertion semantics.
This adapter class provides a way to keep a set of things that also has the property of a deterministic iteration order. The order of iteration is the order of insertion.
Definition at line 41 of file SetVector.h.
| typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::const_iterator |
Definition at line 50 of file SetVector.h.
| typedef const T& llvm::SetVector< T, Vector, Set >::const_reference |
Definition at line 46 of file SetVector.h.
| typedef vector_type::const_reverse_iterator llvm::SetVector< T, Vector, Set >::const_reverse_iterator |
Definition at line 52 of file SetVector.h.
| typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::iterator |
Definition at line 49 of file SetVector.h.
| typedef T llvm::SetVector< T, Vector, Set >::key_type |
Definition at line 44 of file SetVector.h.
| typedef T& llvm::SetVector< T, Vector, Set >::reference |
Definition at line 45 of file SetVector.h.
| typedef vector_type::const_reverse_iterator llvm::SetVector< T, Vector, Set >::reverse_iterator |
Definition at line 51 of file SetVector.h.
| typedef Set llvm::SetVector< T, Vector, Set >::set_type |
Definition at line 47 of file SetVector.h.
| typedef vector_type::size_type llvm::SetVector< T, Vector, Set >::size_type |
Definition at line 53 of file SetVector.h.
| typedef T llvm::SetVector< T, Vector, Set >::value_type |
Definition at line 43 of file SetVector.h.
| typedef Vector llvm::SetVector< T, Vector, Set >::vector_type |
Definition at line 48 of file SetVector.h.
|
default |
Construct an empty SetVector.
|
inline |
Initialize a SetVector with a range of elements.
Definition at line 60 of file SetVector.h.
|
inline |
Return the last element of the SetVector.
Definition at line 123 of file SetVector.h.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::pop_back(), and llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::pop_back_val().
|
inline |
Get an iterator to the beginning of the SetVector.
Definition at line 83 of file SetVector.h.
Referenced by AssignProtectedObjSet(), buildExtractionBlockSet(), CloneAliasScopeMetadata(), llvm::SetTheory::expand(), llvm::rdf::Liveness::getAllReachingDefs(), pred_L(), and succ_L().
|
inline |
Get a const_iterator to the beginning of the SetVector.
Definition at line 88 of file SetVector.h.
|
inline |
Completely clear the SetVector.
Definition at line 210 of file SetVector.h.
Referenced by buildExtractionBlockSet().
|
inline |
Count the number of elements of a given key in the SetVector.
Definition at line 205 of file SetVector.h.
Referenced by buildExtractionBlockSet(), canRewriteGEPAsOffset(), computePath(), definedInCaller(), definedInRegion(), llvm::rdf::Liveness::getAllReachingDefs(), pred_L(), and succ_L().
|
inline |
Determine if the SetVector is empty or not.
Definition at line 73 of file SetVector.h.
Referenced by llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::back(), CloneAliasScopeMetadata(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::rdf::DeadCodeElimination::erase(), llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::pop_back(), and llvm::ReassociatePass::run().
|
inline |
Get an iterator to the end of the SetVector.
Definition at line 93 of file SetVector.h.
Referenced by AssignProtectedObjSet(), buildExtractionBlockSet(), CloneAliasScopeMetadata(), llvm::SetTheory::expand(), llvm::rdf::Liveness::getAllReachingDefs(), pred_L(), and succ_L().
|
inline |
Get a const_iterator to the end of the SetVector.
Definition at line 98 of file SetVector.h.
|
inline |
Erase a single element from the set vector.
Definition at line 166 of file SetVector.h.
|
inline |
Definition at line 64 of file SetVector.h.
|
inline |
Insert a new element into the SetVector.
Definition at line 136 of file SetVector.h.
Referenced by buildExtractionBlockSet(), canRewriteGEPAsOffset(), CloneAliasScopeMetadata(), computeFunctionSummary(), computeKillSet(), computeLiveInValues(), computeLiveOutSeed(), computePath(), llvm::rdf::Liveness::computePhiInfo(), llvm::HexagonFrameLowering::determineCalleeSaves(), DFS(), llvm::HexagonEvaluator::evaluate(), llvm::SetTheory::evaluate(), llvm::CodeExtractor::findInputsOutputs(), findRefEdges(), llvm::rdf::Liveness::getAllReachingDefs(), insertIfNamed(), llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::set_union(), llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::SetVector(), and llvm::UnrollLoop().
|
inline |
Insert a range of elements into the SetVector.
Definition at line 145 of file SetVector.h.
|
inline |
Definition at line 232 of file SetVector.h.
|
inline |
Definition at line 228 of file SetVector.h.
|
inline |
Index into the SetVector.
Definition at line 129 of file SetVector.h.
|
inline |
Remove the last element of the SetVector.
Definition at line 216 of file SetVector.h.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs(), and llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::pop_back_val().
|
inline |
Definition at line 222 of file SetVector.h.
Referenced by llvm::ReassociatePass::run().
|
inline |
Get an reverse_iterator to the end of the SetVector.
Definition at line 103 of file SetVector.h.
|
inline |
Get a const_reverse_iterator to the end of the SetVector.
Definition at line 108 of file SetVector.h.
|
inline |
Remove an item from the set vector.
Definition at line 152 of file SetVector.h.
Referenced by computeLiveInValues().
|
inline |
Remove items from the set vector based on a predicate function.
This is intended to be equivalent to the following code, if we could write it:
However, SetVector doesn't expose non-const iterators, making any algorithm like remove_if impossible to use.
Definition at line 194 of file SetVector.h.
|
inline |
Get a reverse_iterator to the beginning of the SetVector.
Definition at line 113 of file SetVector.h.
|
inline |
Get a const_reverse_iterator to the beginning of the SetVector.
Definition at line 118 of file SetVector.h.
|
inline |
Compute This := This - B TODO: We should be able to use set_subtract from SetOperations.h, but SetVector interface is inconsistent with DenseSet.
Definition at line 255 of file SetVector.h.
Referenced by computeLiveInValues().
|
inline |
Compute This := This u S, return whether 'This' changed.
TODO: We should be able to use set_union from SetOperations.h, but SetVector interface is inconsistent with DenseSet.
Definition at line 240 of file SetVector.h.
Referenced by computeLiveInValues().
|
inline |
Determine the number of elements in the SetVector.
Definition at line 78 of file SetVector.h.
Referenced by canRewriteGEPAsOffset(), computeLiveInValues(), llvm::rdf::Liveness::computePhiInfo(), and llvm::rdf::Liveness::getAllReachingDefs().
|
inline |
Clear the SetVector and return the underlying vector.
Definition at line 67 of file SetVector.h.
Referenced by computeFunctionSummary(), and computeVariableSummary().
1.8.6