9#ifndef LLVM_ADT_ADDRESSRANGES_H
10#define LLVM_ADT_ADDRESSRANGES_H
33 return Start < R.End && R.Start < End;
36 return Start == R.Start && End == R.End;
40 return std::make_pair(Start, End) < std::make_pair(R.Start, R.End);
114 typename ValuesCollection::iterator ValuesIt =
Values.begin() +
Idx;
128 std::optional<std::pair<AddressRange, T>>
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This file defines the SmallVector class.
A class that represents an address range.
AddressRange(uint64_t S, uint64_t E)
bool operator<(const AddressRange &R) const
bool intersects(const AddressRange &R) const
bool operator!=(const AddressRange &R) const
bool contains(uint64_t Addr) const
bool operator==(const AddressRange &R) const
AddressRangesMap class maps values to the address ranges.
std::pair< AddressRange, T > operator[](size_t Idx) const
bool contains(AddressRange Range) const
bool contains(uint64_t Addr) const
SmallVector< T > ValuesCollection
void insert(AddressRange Range, T Value)
std::optional< std::pair< AddressRange, T > > getRangeValueThatContains(uint64_t Addr) const
The AddressRanges class helps normalize address range collections.
bool contains(AddressRange Range) const
Collection::const_iterator end() const
bool operator==(const AddressRanges &RHS) const
bool contains(uint64_t Addr) const
std::optional< AddressRange > getRangeThatContains(uint64_t Addr) const
const AddressRange & operator[](size_t i) const
void reserve(size_t Capacity)
Collection::const_iterator insert(AddressRange Range)
Collection::const_iterator begin() const
Collection::const_iterator find(uint64_t Addr) const
void reserve(size_type N)
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.