LLVM 20.0.0git
Public Member Functions | List of all members
llvm::AddressRangesMap Class Reference

AddressRangesMap class maps values to the address ranges. More...

#include "llvm/ADT/AddressRanges.h"

Inheritance diagram for llvm::AddressRangesMap:
Inheritance graph
[legend]

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< AddressRangeValuePairgetRangeThatContains (uint64_t Addr) const
 
Collection::const_iterator begin () const
 
Collection::const_iterator end () const
 
const AddressRangeValuePairoperator[] (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
 

Detailed Description

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.

Member Function Documentation

◆ insert()

void llvm::AddressRangesMap::insert ( AddressRange  Range,
int64_t  Value 
)
inline

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