LLVM 20.0.0git
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
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 >:
Inheritance graph
[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< T > &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 llvm::AddressRangesBase< T >::Ranges.

◆ clear()

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

◆ contains() [1/2]

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

◆ contains() [2/2]

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

◆ empty()

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

Definition at line 65 of file AddressRanges.h.

References llvm::AddressRangesBase< T >::Ranges.

Referenced by llvm::gsym::InlineInfo::isValid().

◆ end()

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

Definition at line 84 of file AddressRanges.h.

References llvm::AddressRangesBase< T >::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 llvm::AddressRangesBase< T >::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(), and llvm::AddressRangesBase< T >::Ranges.

◆ reserve()

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

Definition at line 72 of file AddressRanges.h.

References llvm::AddressRangesBase< T >::Ranges.

◆ size()

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

Definition at line 73 of file AddressRanges.h.

References llvm::AddressRangesBase< T >::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: