LLVM API Documentation

Classes | Public Types | Public Member Functions
llvm::SetVector< T, Vector, Set > Class Template Reference

A vector that has set insertion semantics. More...

#include <SetVector.h>

Inheritance diagram for llvm::SetVector< T, Vector, Set >:
Inheritance graph
[legend]

List of all members.

Classes

class  TestAndEraseFromSet
 A wrapper predicate designed for use with std::remove_if.

Public Types

typedef T value_type
typedef T key_type
typedef Treference
typedef const Tconst_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.
template<typename It >
 SetVector (It Start, It End)
 Initialize a SetVector with a range of elements.
bool empty () const
 Determine if the SetVector is empty or not.
size_type size () const
 Determine the number of elements in the SetVector.
iterator begin ()
 Get an iterator to the beginning of the SetVector.
const_iterator begin () const
 Get a const_iterator to the beginning of the SetVector.
iterator end ()
 Get an iterator to the end of the SetVector.
const_iterator end () const
 Get a const_iterator to the end of the SetVector.
const Tback () const
 Return the last element of the SetVector.
const_reference operator[] (size_type n) const
 Index into the SetVector.
bool insert (const value_type &X)
 Insert a new element into the SetVector.
template<typename It >
void insert (It Start, It End)
 Insert a range of elements into the SetVector.
bool remove (const value_type &X)
 Remove an item from the set vector.
template<typename UnaryPredicate >
bool remove_if (UnaryPredicate P)
 Remove items from the set vector based on a predicate function.
size_type count (const key_type &key) const
 Count the number of elements of a given key in the SetVector.
void clear ()
 Completely clear the SetVector.
void pop_back ()
 Remove the last element of the SetVector.
T LLVM_ATTRIBUTE_UNUSED_RESULT pop_back_val ()
bool operator== (const SetVector &that) const
bool operator!= (const SetVector &that) const

Detailed Description

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
class llvm::SetVector< T, Vector, Set >

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.


Member Typedef Documentation

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::const_iterator

Definition at line 46 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef const T& llvm::SetVector< T, Vector, Set >::const_reference

Definition at line 42 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef vector_type::const_iterator llvm::SetVector< T, Vector, Set >::iterator

Definition at line 45 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef T llvm::SetVector< T, Vector, Set >::key_type

Definition at line 40 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef T& llvm::SetVector< T, Vector, Set >::reference

Definition at line 41 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef Set llvm::SetVector< T, Vector, Set >::set_type

Definition at line 43 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef vector_type::size_type llvm::SetVector< T, Vector, Set >::size_type

Definition at line 47 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef T llvm::SetVector< T, Vector, Set >::value_type

Definition at line 39 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
typedef Vector llvm::SetVector< T, Vector, Set >::vector_type

Definition at line 44 of file SetVector.h.


Constructor & Destructor Documentation

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
llvm::SetVector< T, Vector, Set >::SetVector ( ) [inline]

Construct an empty SetVector.

Definition at line 50 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
template<typename It >
llvm::SetVector< T, Vector, Set >::SetVector ( It  Start,
It  End 
) [inline]

Initialize a SetVector with a range of elements.

Definition at line 54 of file SetVector.h.


Member Function Documentation

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
const T& llvm::SetVector< T, Vector, Set >::back ( ) const [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
iterator llvm::SetVector< T, Vector, Set >::begin ( ) [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
const_iterator llvm::SetVector< T, Vector, Set >::begin ( ) const [inline]

Get a const_iterator to the beginning of the SetVector.

Definition at line 74 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
void llvm::SetVector< T, Vector, Set >::clear ( ) [inline]

Completely clear the SetVector.

Definition at line 161 of file SetVector.h.

Referenced by buildExtractionBlockSet(), and llvm::FindUsedTypes::runOnModule().

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
size_type llvm::SetVector< T, Vector, Set >::count ( const key_type key) const [inline]

Count the number of elements of a given key in the SetVector.

Returns:
0 if the element is not in the SetVector, 1 if it is.

Definition at line 156 of file SetVector.h.

Referenced by buildExtractionBlockSet(), definedInCaller(), definedInRegion(), and llvm::CodeExtractor::extractCodeRegion().

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
bool llvm::SetVector< T, Vector, Set >::empty ( ) const [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
iterator llvm::SetVector< T, Vector, Set >::end ( ) [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
const_iterator llvm::SetVector< T, Vector, Set >::end ( ) const [inline]

Get a const_iterator to the end of the SetVector.

Definition at line 84 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
bool llvm::SetVector< T, Vector, Set >::insert ( const value_type X) [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
template<typename It >
void llvm::SetVector< T, Vector, Set >::insert ( It  Start,
It  End 
) [inline]

Insert a range of elements into the SetVector.

Definition at line 111 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
bool llvm::SetVector< T, Vector, Set >::operator!= ( const SetVector< T, Vector, Set > &  that) const [inline]

Definition at line 183 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
bool llvm::SetVector< T, Vector, Set >::operator== ( const SetVector< T, Vector, Set > &  that) const [inline]

Definition at line 179 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
const_reference llvm::SetVector< T, Vector, Set >::operator[] ( size_type  n) const [inline]

Index into the SetVector.

Definition at line 95 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
void llvm::SetVector< T, Vector, Set >::pop_back ( ) [inline]
template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
T LLVM_ATTRIBUTE_UNUSED_RESULT llvm::SetVector< T, Vector, Set >::pop_back_val ( ) [inline]

Definition at line 173 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
bool llvm::SetVector< T, Vector, Set >::remove ( const value_type X) [inline]

Remove an item from the set vector.

Definition at line 118 of file SetVector.h.

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
template<typename UnaryPredicate >
bool llvm::SetVector< T, Vector, Set >::remove_if ( UnaryPredicate  P) [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:

   V.erase(std::remove_if(V.begin(), V.end(), P), V.end());

However, SetVector doesn't expose non-const iterators, making any algorithm like remove_if impossible to use.

Returns:
true if any element is removed.

Definition at line 143 of file SetVector.h.

Referenced by llvm::SetVector< unsigned, SmallVector< unsigned, N >, SmallSet< unsigned, N > >::remove_if().

template<typename T, typename Vector = std::vector<T>, typename Set = SmallSet<T, 16>>
size_type llvm::SetVector< T, Vector, Set >::size ( ) const [inline]

Determine the number of elements in the SetVector.

Definition at line 64 of file SetVector.h.

Referenced by llvm::ARMAsmPrinter::EmitStartOfAsmFile(), and tryToMakeAllocaBePromotable().


The documentation for this class was generated from the following file: