LLVM 20.0.0git |
AddressRangesMap class maps values to the address ranges.More...
#include "llvm/ADT/AddressRanges.h"
Public Member Functions | |
void | insert (AddressRangeRange, int64_tValue) |
![]() | |
void | clear () |
bool | empty ()const |
bool | contains (uint64_tAddr)const |
bool | contains (AddressRangeRange)const |
void | reserve (size_t Capacity) |
size_t | size ()const |
std::optional<AddressRangeValuePair > | getRangeThatContains (uint64_tAddr)const |
Collection::const_iterator | begin ()const |
Collection::const_iterator | end ()const |
constAddressRangeValuePair & | operator[] (size_t i)const |
bool | operator== (constAddressRangesBase<AddressRangeValuePair > &RHS)const |
Additional Inherited Members | |
![]() | |
using | Collection =SmallVector<AddressRangeValuePair > |
![]() | |
Collection::const_iterator | find (uint64_t Start,uint64_tEnd)const |
![]() | |
Collection | Ranges |
AddressRangesMap class maps values to the address ranges.
It keeps normalized address ranges and corresponding values. This class keeps a sorted vector ofAddressRangeValuePair 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 line165 of fileAddressRanges.h.
| inline |
Definition at line167 of fileAddressRanges.h.
Referencesllvm::SmallVectorTemplateCommon< T, typename >::begin(),llvm::SmallVectorTemplateCommon< T, typename >::end(),llvm::SmallVectorImpl< T >::insert(),Range, andllvm::AddressRangesBase< AddressRangeValuePair >::Ranges.
Referenced byllvm::dwarf_linker::classic::CompileUnit::addFunctionRange(), andllvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame().