LLVM 20.0.0git
|
AddressRangesMap class maps values to the address ranges. More...
#include "llvm/ADT/AddressRanges.h"
Public Member Functions | |
void | insert (AddressRange Range, int64_t Value) |
Public Member Functions inherited from llvm::AddressRangesBase< AddressRangeValuePair > | |
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< AddressRangeValuePair > | getRangeThatContains (uint64_t Addr) const |
Collection::const_iterator | begin () const |
Collection::const_iterator | end () const |
const AddressRangeValuePair & | operator[] (size_t i) const |
bool | operator== (const AddressRangesBase< AddressRangeValuePair > &RHS) const |
Additional Inherited Members | |
Protected Types inherited from llvm::AddressRangesBase< AddressRangeValuePair > | |
using | Collection = SmallVector< AddressRangeValuePair > |
Protected Member Functions inherited from llvm::AddressRangesBase< AddressRangeValuePair > | |
Collection::const_iterator | find (uint64_t Start, uint64_t End) const |
Protected Attributes inherited from llvm::AddressRangesBase< AddressRangeValuePair > | |
Collection | Ranges |
AddressRangesMap class maps values to the address ranges.
It keeps normalized address ranges and corresponding values. This class keeps a sorted vector of AddressRangeValuePair objects and can perform insertions and searches efficiently. Intersecting([100,200), [150,300)) ranges splitted into non-conflicting parts([100,200), [200,300)). Adjacent([100,200), [200,300)) address ranges are not combined during insertion.
Definition at line 165 of file AddressRanges.h.
|
inline |
Definition at line 167 of file AddressRanges.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), Range, and llvm::AddressRangesBase< AddressRangeValuePair >::Ranges.
Referenced by llvm::dwarf_linker::classic::CompileUnit::addFunctionRange(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame().