LLVM 20.0.0git
|
The AddressRanges class helps normalize address range collections. More...
#include "llvm/ADT/AddressRanges.h"
Public Member Functions | |
Collection::const_iterator | insert (AddressRange Range) |
Public Member Functions inherited from llvm::AddressRangesBase< AddressRange > | |
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< AddressRange > | getRangeThatContains (uint64_t Addr) const |
Collection::const_iterator | begin () const |
Collection::const_iterator | end () const |
const AddressRange & | operator[] (size_t i) const |
bool | operator== (const AddressRangesBase< AddressRange > &RHS) const |
Additional Inherited Members | |
Protected Types inherited from llvm::AddressRangesBase< AddressRange > | |
using | Collection = SmallVector< AddressRange > |
Protected Member Functions inherited from llvm::AddressRangesBase< AddressRange > | |
Collection::const_iterator | find (uint64_t Start, uint64_t End) const |
Protected Attributes inherited from llvm::AddressRangesBase< AddressRange > | |
Collection | Ranges |
The AddressRanges class helps normalize address range collections.
This class keeps a sorted vector of AddressRange objects and can perform insertions and searches efficiently. Intersecting([100,200), [150,300)) and adjacent([100,200), [200,300)) address ranges are combined during insertion.
Definition at line 121 of file AddressRanges.h.
|
inline |
Definition at line 123 of file AddressRanges.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), llvm::SmallVectorImpl< T >::insert(), Range, llvm::AddressRangesBase< AddressRange >::Ranges, and llvm::upper_bound().
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmitRanges().