LLVM 20.0.0git
Public Types | Public Member Functions | List of all members
llvm::UniqueVector< T > Class Template Reference

UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added. More...

#include "llvm/ADT/UniqueVector.h"

Inheritance diagram for llvm::UniqueVector< T >:
Inheritance graph
[legend]

Public Types

using VectorType = typename std::vector< T >
 
using iterator = typename VectorType::iterator
 
using const_iterator = typename VectorType::const_iterator
 

Public Member Functions

unsigned insert (const T &Entry)
 insert - Append entry to the vector if it doesn't already exist.
 
unsigned idFor (const T &Entry) const
 idFor - return the ID for an existing entry.
 
const Toperator[] (unsigned ID) const
 operator[] - Returns a reference to the entry with the specified ID.
 
iterator begin ()
 Return an iterator to the start of the vector.
 
const_iterator begin () const
 Return an iterator to the start of the vector.
 
iterator end ()
 Return an iterator to the end of the vector.
 
const_iterator end () const
 Return an iterator to the end of the vector.
 
size_t size () const
 size - Returns the number of entries in the vector.
 
bool empty () const
 empty - Returns true if the vector is empty.
 
void reset ()
 reset - Clears all the entries.
 

Detailed Description

template<class T>
class llvm::UniqueVector< T >

UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added.

T is the type of entries in the vector. This class should have an implementation of operator== and of operator<. Entries can be fetched using operator[] with the entry ID.

Definition at line 24 of file UniqueVector.h.

Member Typedef Documentation

◆ const_iterator

template<class T >
using llvm::UniqueVector< T >::const_iterator = typename VectorType::const_iterator

Definition at line 28 of file UniqueVector.h.

◆ iterator

template<class T >
using llvm::UniqueVector< T >::iterator = typename VectorType::iterator

Definition at line 27 of file UniqueVector.h.

◆ VectorType

template<class T >
using llvm::UniqueVector< T >::VectorType = typename std::vector<T>

Definition at line 26 of file UniqueVector.h.

Member Function Documentation

◆ begin() [1/2]

template<class T >
iterator llvm::UniqueVector< T >::begin ( )
inline

Return an iterator to the start of the vector.

Definition at line 75 of file UniqueVector.h.

References llvm::Vector.

Referenced by llvm::DebugCounter::begin(), llvm::FunctionVarLocs::init(), and llvm::DebugCounter::print().

◆ begin() [2/2]

template<class T >
const_iterator llvm::UniqueVector< T >::begin ( ) const
inline

Return an iterator to the start of the vector.

Definition at line 78 of file UniqueVector.h.

References llvm::Vector.

◆ empty()

template<class T >
bool llvm::UniqueVector< T >::empty ( ) const
inline

empty - Returns true if the vector is empty.

Definition at line 90 of file UniqueVector.h.

References llvm::Vector.

◆ end() [1/2]

template<class T >
iterator llvm::UniqueVector< T >::end ( )
inline

Return an iterator to the end of the vector.

Definition at line 81 of file UniqueVector.h.

References llvm::Vector.

Referenced by llvm::DebugCounter::end(), llvm::FunctionVarLocs::init(), and llvm::DebugCounter::print().

◆ end() [2/2]

template<class T >
const_iterator llvm::UniqueVector< T >::end ( ) const
inline

Return an iterator to the end of the vector.

Definition at line 84 of file UniqueVector.h.

References llvm::Vector.

◆ idFor()

template<class T >
unsigned llvm::UniqueVector< T >::idFor ( const T Entry) const
inline

idFor - return the ID for an existing entry.

Returns 0 if the entry is not found.

Definition at line 57 of file UniqueVector.h.

References MI.

Referenced by llvm::ValueEnumerator::getComdatID(), and llvm::DebugCounter::getCounterId().

◆ insert()

template<class T >
unsigned llvm::UniqueVector< T >::insert ( const T Entry)
inline

insert - Append entry to the vector if it doesn't already exist.

Returns the entry's index + 1 to be used as a unique ID.

Definition at line 40 of file UniqueVector.h.

References llvm::Vector.

Referenced by llvm::DebugCounter::addCounter(), and FunctionVarLocsBuilder::insertVariable().

◆ operator[]()

template<class T >
const T & llvm::UniqueVector< T >::operator[] ( unsigned  ID) const
inline

operator[] - Returns a reference to the entry with the specified ID.

Definition at line 69 of file UniqueVector.h.

References assert(), llvm::UniqueVector< T >::size(), and llvm::Vector.

◆ reset()

template<class T >
void llvm::UniqueVector< T >::reset ( )
inline

reset - Clears all the entries.

Definition at line 93 of file UniqueVector.h.

References llvm::Vector.

◆ size()

template<class T >
size_t llvm::UniqueVector< T >::size ( ) const
inline

size - Returns the number of entries in the vector.

Definition at line 87 of file UniqueVector.h.

References llvm::Vector.

Referenced by llvm::DebugCounter::getNumCounters(), FunctionVarLocsBuilder::getNumVariables(), llvm::FunctionVarLocs::init(), and llvm::UniqueVector< T >::operator[]().


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