LLVM 22.0.0git
llvm::AddressRangesBase< T > Class Template Reference

The AddressRangesBase class presents the base functionality for the normalized address ranges collection. More...

#include "llvm/ADT/AddressRanges.h"

Inheritance diagram for llvm::AddressRangesBase< T >:
[legend]

Public Member Functions

void clear ()
bool empty () const
bool contains (uint64_t Addr) const
bool contains (AddressRange Range) const
void reserve (size_t Capacity)
size_t size () const
std::optional< TgetRangeThatContains (uint64_t Addr) const
Collection::const_iterator begin () const
Collection::const_iterator end () const
const Toperator[] (size_t I) const
bool operator== (const AddressRangesBase &RHS) const

Protected Types

using Collection = SmallVector<T>

Protected Member Functions

Collection::const_iterator find (uint64_t Start, uint64_t End) const

Protected Attributes

Collection Ranges

Detailed Description

template<typename T>
class llvm::AddressRangesBase< T >

The AddressRangesBase class presents the base functionality for the normalized address ranges collection.

This class keeps a sorted vector of AddressRange-like objects and can perform searches efficiently. The address ranges are always sorted and never contain any invalid, empty or intersected address ranges.

Definition at line 58 of file AddressRanges.h.

Member Typedef Documentation

◆ Collection

template<typename T>
using llvm::AddressRangesBase< T >::Collection = SmallVector<T>
protected

Definition at line 60 of file AddressRanges.h.

Member Function Documentation

◆ begin()

template<typename T>
Collection::const_iterator llvm::AddressRangesBase< T >::begin ( ) const
inline

Definition at line 83 of file AddressRanges.h.

References Ranges.

◆ clear()

template<typename T>
void llvm::AddressRangesBase< T >::clear ( )
inline

Definition at line 64 of file AddressRanges.h.

References Ranges.

◆ contains() [1/2]

template<typename T>
bool llvm::AddressRangesBase< T >::contains ( AddressRange Range) const
inline

Definition at line 69 of file AddressRanges.h.

References find(), Range, and Ranges.

◆ contains() [2/2]

template<typename T>
bool llvm::AddressRangesBase< T >::contains ( uint64_t Addr) const
inline

Definition at line 66 of file AddressRanges.h.

References find(), and Ranges.

Referenced by parseInlineInfo().

◆ empty()

template<typename T>
bool llvm::AddressRangesBase< T >::empty ( ) const
inline

Definition at line 65 of file AddressRanges.h.

References Ranges.

◆ end()

template<typename T>
Collection::const_iterator llvm::AddressRangesBase< T >::end ( ) const
inline

Definition at line 84 of file AddressRanges.h.

References Ranges.

◆ find()

template<typename T>
Collection::const_iterator llvm::AddressRangesBase< T >::find ( uint64_t Start,
uint64_t End ) const
inlineprotected

◆ getRangeThatContains()

template<typename T>
std::optional< T > llvm::AddressRangesBase< T >::getRangeThatContains ( uint64_t Addr) const
inline

◆ operator==()

template<typename T>
bool llvm::AddressRangesBase< T >::operator== ( const AddressRangesBase< T > & RHS) const
inline

Definition at line 91 of file AddressRanges.h.

References Ranges, and RHS.

◆ operator[]()

template<typename T>
const T & llvm::AddressRangesBase< T >::operator[] ( size_t I) const
inline

Definition at line 86 of file AddressRanges.h.

References assert(), I, Ranges, and T.

◆ reserve()

template<typename T>
void llvm::AddressRangesBase< T >::reserve ( size_t Capacity)
inline

Definition at line 72 of file AddressRanges.h.

References Ranges.

◆ size()

template<typename T>
size_t llvm::AddressRangesBase< T >::size ( ) const
inline

Definition at line 73 of file AddressRanges.h.

References Ranges.

Referenced by llvm::operator<<().

Member Data Documentation

◆ Ranges

template<typename T>
Collection llvm::AddressRangesBase< T >::Ranges
protected

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