LLVM 20.0.0git
|
#include "llvm/ADT/IntervalMap.h"
Classes | |
class | const_iterator |
class | iterator |
Public Types | |
using | Allocator = typename Sizer::Allocator |
using | KeyType = KeyT |
using | ValueType = ValT |
using | KeyTraits = Traits |
Public Member Functions | |
IntervalMap (Allocator &a) | |
~IntervalMap () | |
bool | empty () const |
empty - Return true when no intervals are mapped. | |
KeyT | start () const |
start - Return the smallest mapped key in a non-empty map. | |
KeyT | stop () const |
stop - Return the largest mapped key in a non-empty map. | |
ValT | lookup (KeyT x, ValT NotFound=ValT()) const |
lookup - Return the mapped value at x or NotFound. | |
void | insert (KeyT a, KeyT b, ValT y) |
insert - Add a mapping of [a;b] to y, coalesce with adjacent intervals. | |
void | clear () |
clear - Remove all entries. | |
const_iterator | begin () const |
iterator | begin () |
const_iterator | end () const |
iterator | end () |
const_iterator | find (KeyT x) const |
find - Return an iterator pointing to the first interval ending at or after x, or end(). | |
iterator | find (KeyT x) |
bool | overlaps (KeyT a, KeyT b) const |
overlaps(a, b) - Return true if the intervals in this map overlap with the interval [a;b]. | |
IntervalMap (IntervalMap const &RHS) | |
IntervalMap & | operator= (IntervalMap const &RHS) |
IntervalMap (IntervalMap &&RHS) | |
IntervalMap & | operator= (IntervalMap &&RHS) |
Friends | |
class | const_iterator |
class | iterator |
Definition at line 936 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::Allocator = typename Sizer::Allocator |
Definition at line 962 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::KeyTraits = Traits |
Definition at line 965 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::KeyType = KeyT |
Definition at line 963 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::ValueType = ValT |
Definition at line 964 of file IntervalMap.h.
|
inlineexplicit |
Definition at line 1041 of file IntervalMap.h.
References allocator.
|
inline |
NOTE: The moved-from or copied-from object's allocator needs to have a lifetime equal to or exceeding the moved-to or copied-to object to avoid undefined behaviour.
Definition at line 1049 of file IntervalMap.h.
References allocator, assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), and RHS.
|
inline |
Definition at line 1063 of file IntervalMap.h.
References allocator, assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), and RHS.
|
inline |
Definition at line 1095 of file IntervalMap.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::clear().
|
inline |
Definition at line 1152 of file IntervalMap.h.
References I.
|
inline |
Definition at line 1146 of file IntervalMap.h.
References I.
Referenced by llvm::CoalescingBitVector< IndexT >::begin(), llvm::CoalescingBitVector< IndexT >::count(), llvm::SplitEditor::dump(), llvm::LiveIntervalUnion::getOneVReg(), llvm::CoalescingBitVector< IndexT >::operator==(), llvm::CoalescingBitVector< IndexT >::print(), llvm::LiveIntervalUnion::print(), tryToShortenBegin(), and llvm::LiveIntervalUnion::verify().
void llvm::IntervalMap< KeyT, ValT, N, Traits >::clear |
clear - Remove all entries.
Definition at line 1329 of file IntervalMap.h.
Referenced by llvm::CoalescingBitVector< IndexT >::clear(), llvm::IntervalMap< KeyT, ValT, N, Traits >::operator=(), llvm::SplitEditor::reset(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::~IntervalMap().
|
inline |
empty - Return true when no intervals are mapped.
Definition at line 1101 of file IntervalMap.h.
Referenced by llvm::SplitEditor::dump(), llvm::CoalescingBitVector< IndexT >::empty(), llvm::pdb::NativeSession::findSymbolBySectOffset(), llvm::IntervalMap< KeyT, ValT, N, Traits >::IntervalMap(), llvm::IntervalMap< KeyT, ValT, N, Traits >::lookup(), llvm::IntervalMap< KeyT, ValT, N, Traits >::start(), llvm::IntervalMap< KeyT, ValT, N, Traits >::stop(), tryToShortenBegin(), and tryToShortenEnd().
|
inline |
Definition at line 1164 of file IntervalMap.h.
References I.
|
inline |
Definition at line 1158 of file IntervalMap.h.
References I.
Referenced by llvm::CoalescingBitVector< IndexT >::count(), llvm::CoalescingBitVector< IndexT >::find(), llvm::pdb::NativeSession::moduleIndexForSectOffset(), llvm::pdb::NativeSession::moduleIndexForVA(), llvm::CoalescingBitVector< IndexT >::operator==(), llvm::CoalescingBitVector< IndexT >::print(), llvm::CoalescingBitVector< IndexT >::reset(), llvm::CoalescingBitVector< IndexT >::test(), and tryToShortenEnd().
|
inline |
Definition at line 1178 of file IntervalMap.h.
References I.
|
inline |
find - Return an iterator pointing to the first interval ending at or after x, or end().
Definition at line 1172 of file IntervalMap.h.
References I.
Referenced by llvm::LiveIntervalUnion::extract(), llvm::CoalescingBitVector< IndexT >::find(), llvm::IntervalMap< KeyT, ValT, N, Traits >::insert(), llvm::CoalescingBitVector< IndexT >::intersectWithComplement(), llvm::pdb::NativeSession::moduleIndexForSectOffset(), llvm::pdb::NativeSession::moduleIndexForVA(), llvm::IntervalMap< KeyT, ValT, N, Traits >::overlaps(), llvm::CoalescingBitVector< IndexT >::reset(), llvm::CoalescingBitVector< IndexT >::test(), and llvm::LiveIntervalUnion::unify().
|
inline |
insert - Add a mapping of [a;b] to y, coalesce with adjacent intervals.
It is assumed that no key in the interval is mapped to another value, but overlapping intervals already mapped to y will be coalesced.
Definition at line 1129 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >::Capacity, llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::findFrom(), and llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::insertFrom().
Referenced by accumulateLocs(), llvm::SplitEditor::enterIntvAtEnd(), llvm::SplitEditor::leaveIntvAtTop(), llvm::InstrProfSymtab::mapVTableAddress(), llvm::IntervalMap< KeyT, ValT, N, Traits >::operator=(), llvm::SplitEditor::overlapIntv(), and llvm::SplitEditor::useIntv().
|
inline |
lookup - Return the mapped value at x or NotFound.
Definition at line 1119 of file IntervalMap.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::safeLookup(), llvm::IntervalMap< KeyT, ValT, N, Traits >::start(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::stop().
Referenced by llvm::SplitEditor::finish(), and llvm::InstrProfSymtab::getVTableHashFromAddress().
|
inline |
Definition at line 1069 of file IntervalMap.h.
References allocator, llvm::IntervalMap< KeyT, ValT, N, Traits >::clear(), and RHS.
|
inline |
Definition at line 1055 of file IntervalMap.h.
References allocator, llvm::IntervalMap< KeyT, ValT, N, Traits >::clear(), End, llvm::IntervalMap< KeyT, ValT, N, Traits >::insert(), and RHS.
|
inline |
overlaps(a, b) - Return true if the intervals in this map overlap with the interval [a;b].
Definition at line 1186 of file IntervalMap.h.
References assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), and I.
|
inline |
start - Return the smallest mapped key in a non-empty map.
Definition at line 1106 of file IntervalMap.h.
References assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), and llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::start().
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::lookup(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::unsafeStart().
|
inline |
stop - Return the largest mapped key in a non-empty map.
Definition at line 1112 of file IntervalMap.h.
References assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop(), and llvm::IntervalMapImpl::BranchNode< KeyT, ValT, N, Traits >::stop().
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::lookup(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::unsafeStop().
|
friend |
Definition at line 1143 of file IntervalMap.h.
|
friend |
Definition at line 1144 of file IntervalMap.h.
RootBranchData llvm::IntervalMap< KeyT, ValT, N, Traits >::branchData |
Definition at line 971 of file IntervalMap.h.
RootLeaf llvm::IntervalMap< KeyT, ValT, N, Traits >::leaf |
Definition at line 970 of file IntervalMap.h.