LLVM API Documentation
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::size_type | size_type |
Public Member Functions | |
SetVector () | |
Construct an empty SetVector. More... | |
template<typename It > | |
SetVector (It Start, It End) | |
Initialize a SetVector with a range of elements. 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... | |
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... | |
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... | |
T LLVM_ATTRIBUTE_UNUSED_RESULT | pop_back_val () |
bool | operator== (const SetVector &that) const |
bool | operator!= (const SetVector &that) const |
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 37 of file SetVector.h.
typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::const_iterator |
Definition at line 46 of file SetVector.h.
typedef const T& llvm::SetVector< T, Vector, Set >::const_reference |
Definition at line 42 of file SetVector.h.
typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::iterator |
Definition at line 45 of file SetVector.h.
typedef T llvm::SetVector< T, Vector, Set >::key_type |
Definition at line 40 of file SetVector.h.
typedef T& llvm::SetVector< T, Vector, Set >::reference |
Definition at line 41 of file SetVector.h.
typedef Set llvm::SetVector< T, Vector, Set >::set_type |
Definition at line 43 of file SetVector.h.
typedef vector_type::size_type llvm::SetVector< T, Vector, Set >::size_type |
Definition at line 47 of file SetVector.h.
typedef T llvm::SetVector< T, Vector, Set >::value_type |
Definition at line 39 of file SetVector.h.
typedef Vector llvm::SetVector< T, Vector, Set >::vector_type |
Definition at line 44 of file SetVector.h.
|
inline |
Construct an empty SetVector.
Definition at line 50 of file SetVector.h.
|
inline |
Initialize a SetVector with a range of elements.
Definition at line 54 of file SetVector.h.
|
inline |
Return the last element of the SetVector.
Definition at line 89 of file SetVector.h.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::SetVector< llvm::BasicBlock * >::pop_back(), and llvm::SetVector< llvm::BasicBlock * >::pop_back_val().
|
inline |
Get an iterator to the beginning of the SetVector.
Definition at line 69 of file SetVector.h.
Referenced by buildExtractionBlockSet(), and VerifyPHIs().
|
inline |
Get a const_iterator to the beginning of the SetVector.
Definition at line 74 of file SetVector.h.
|
inline |
Completely clear the SetVector.
Definition at line 161 of file SetVector.h.
Referenced by buildExtractionBlockSet().
|
inline |
Count the number of elements of a given key in the SetVector.
Definition at line 156 of file SetVector.h.
Referenced by buildExtractionBlockSet(), definedInCaller(), and definedInRegion().
|
inline |
Determine if the SetVector is empty or not.
Definition at line 59 of file SetVector.h.
Referenced by llvm::SetVector< llvm::BasicBlock * >::back(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::SetVector< llvm::BasicBlock * >::pop_back(), and tryToMakeAllocaBePromotable().
|
inline |
Get an iterator to the end of the SetVector.
Definition at line 79 of file SetVector.h.
Referenced by buildExtractionBlockSet().
|
inline |
Get a const_iterator to the end of the SetVector.
Definition at line 84 of file SetVector.h.
|
inline |
Insert a new element into the SetVector.
Definition at line 102 of file SetVector.h.
Referenced by buildExtractionBlockSet(), llvm::ARMAsmPrinter::EmitStartOfAsmFile(), llvm::CodeExtractor::findInputsOutputs(), llvm::SetVector< llvm::BasicBlock * >::SetVector(), and tryToMakeAllocaBePromotable().
|
inline |
Insert a range of elements into the SetVector.
Definition at line 111 of file SetVector.h.
|
inline |
Definition at line 183 of file SetVector.h.
|
inline |
Definition at line 179 of file SetVector.h.
|
inline |
Index into the SetVector.
Definition at line 95 of file SetVector.h.
|
inline |
Remove the last element of the SetVector.
Definition at line 167 of file SetVector.h.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs(), and llvm::SetVector< llvm::BasicBlock * >::pop_back_val().
|
inline |
Definition at line 173 of file SetVector.h.
|
inline |
Remove an item from the set vector.
Definition at line 118 of file SetVector.h.
|
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 143 of file SetVector.h.
|
inline |
Determine the number of elements in the SetVector.
Definition at line 64 of file SetVector.h.
Referenced by llvm::ARMAsmPrinter::EmitStartOfAsmFile(), and tryToMakeAllocaBePromotable().