LLVM 20.0.0git
|
#include "llvm/ADT/IntervalMap.h"
Public Types | |
using | iterator_category = std::bidirectional_iterator_tag |
using | value_type = ValT |
using | difference_type = std::ptrdiff_t |
using | pointer = value_type * |
using | reference = value_type & |
Public Member Functions | |
const_iterator ()=default | |
const_iterator - Create an iterator that isn't pointing anywhere. | |
void | setMap (const IntervalMap &m) |
setMap - Change the map iterated over. | |
bool | valid () const |
valid - Return true if the current position is valid, false for end(). | |
bool | atBegin () const |
atBegin - Return true if the current position is the first map entry. | |
const KeyT & | start () const |
start - Return the beginning of the current interval. | |
const KeyT & | stop () const |
stop - Return the end of the current interval. | |
const ValT & | value () const |
value - Return the mapped value at the current interval. | |
const ValT & | operator* () const |
bool | operator== (const const_iterator &RHS) const |
bool | operator!= (const const_iterator &RHS) const |
void | goToBegin () |
goToBegin - Move to the first interval in map. | |
void | goToEnd () |
goToEnd - Move beyond the last interval in map. | |
const_iterator & | operator++ () |
preincrement - Move to the next interval. | |
const_iterator | operator++ (int) |
postincrement - Don't do that! | |
const_iterator & | operator-- () |
predecrement - Move to the previous interval. | |
const_iterator | operator-- (int) |
postdecrement - Don't do that! | |
void | find (KeyT x) |
find - Move to the first interval with stop >= x, or end(). | |
void | advanceTo (KeyT x) |
advanceTo - Move to the first interval with stop >= x, or end(). | |
Protected Member Functions | |
const_iterator (const IntervalMap &map) | |
bool | branched () const |
void | setRoot (unsigned Offset) |
void | pathFillFind (KeyT x) |
pathFillFind - Complete path by searching for x. | |
void | treeFind (KeyT x) |
treeFind - Find in a branched tree. | |
void | treeAdvanceTo (KeyT x) |
treeAdvanceTo - Find position after the current one. | |
KeyT & | unsafeStart () const |
unsafeStart - Writable access to start() for iterator. | |
KeyT & | unsafeStop () const |
unsafeStop - Writable access to stop() for iterator. | |
ValT & | unsafeValue () const |
unsafeValue - Writable access to value() for iterator. | |
Protected Attributes | |
IntervalMap * | map = nullptr |
IntervalMapImpl::Path | path |
Friends | |
class | IntervalMap |
Definition at line 1343 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::difference_type = std::ptrdiff_t |
Definition at line 1349 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::iterator_category = std::bidirectional_iterator_tag |
Definition at line 1347 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::pointer = value_type * |
Definition at line 1350 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::reference = value_type & |
Definition at line 1351 of file IntervalMap.h.
using llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::value_type = ValT |
Definition at line 1348 of file IntervalMap.h.
|
inlineexplicitprotected |
Definition at line 1361 of file IntervalMap.h.
|
default |
const_iterator - Create an iterator that isn't pointing anywhere.
|
inline |
advanceTo - Move to the first interval with stop >= x, or end().
The search is started from the current position, and no earlier positions can be found. This is much faster than find() for small moves.
Definition at line 1494 of file IntervalMap.h.
References llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::findFrom(), and llvm::IntervalMapImpl::Path::leafOffset().
|
inline |
atBegin - Return true if the current position is the first map entry.
Definition at line 1413 of file IntervalMap.h.
References llvm::IntervalMapImpl::Path::atBegin().
|
inlineprotected |
Definition at line 1364 of file IntervalMap.h.
References assert().
|
inline |
find - Move to the first interval with stop >= x, or end().
This is a full search from the root, the current position is ignored.
Definition at line 1484 of file IntervalMap.h.
References llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::findFrom().
|
inline |
goToBegin - Move to the first interval in map.
Definition at line 1440 of file IntervalMap.h.
References llvm::IntervalMapImpl::Path::fillLeft().
|
inline |
goToEnd - Move beyond the last interval in map.
Definition at line 1447 of file IntervalMap.h.
|
inline |
Definition at line 1435 of file IntervalMap.h.
References llvm::operator==(), and RHS.
|
inline |
Definition at line 1424 of file IntervalMap.h.
References value.
|
inline |
preincrement - Move to the next interval.
Definition at line 1452 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::Path::leafOffset(), llvm::IntervalMapImpl::Path::leafSize(), and llvm::IntervalMapImpl::Path::moveRight().
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::operator++().
|
inline |
postincrement - Don't do that!
Definition at line 1460 of file IntervalMap.h.
|
inline |
predecrement - Move to the previous interval.
Definition at line 1467 of file IntervalMap.h.
References llvm::IntervalMapImpl::Path::leafOffset(), and llvm::IntervalMapImpl::Path::moveLeft().
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::operator--().
|
inline |
postdecrement - Don't do that!
Definition at line 1476 of file IntervalMap.h.
|
inline |
Definition at line 1426 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::Path::leafOffset(), and RHS.
|
protected |
pathFillFind - Complete path by searching for x.
x | Key to search for. |
Definition at line 1508 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeRef::get(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::safeFind(), and llvm::IntervalMapImpl::NodeRef::subtree().
|
inline |
setMap - Change the map iterated over.
This call must be followed by a call to goToBegin(), goToEnd(), or find()
Definition at line 1407 of file IntervalMap.h.
|
inlineprotected |
Definition at line 1369 of file IntervalMap.h.
References llvm::Offset, and llvm::IntervalMapImpl::Path::setRoot().
|
inline |
start - Return the beginning of the current interval.
Definition at line 1416 of file IntervalMap.h.
|
inline |
stop - Return the end of the current interval.
Definition at line 1419 of file IntervalMap.h.
|
protected |
treeAdvanceTo - Find position after the current one.
x | Key to search for. |
Definition at line 1532 of file IntervalMap.h.
References llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop(), and llvm::IntervalMapImpl::BranchNode< KeyT, ValT, N, Traits >::stop().
|
protected |
treeFind - Find in a branched tree.
x | Key to search for. |
Definition at line 1522 of file IntervalMap.h.
|
inlineprotected |
unsafeStart - Writable access to start() for iterator.
Definition at line 1381 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::Path::leaf(), llvm::IntervalMapImpl::Path::leafOffset(), llvm::IntervalMap< KeyT, ValT, N, Traits >::start(), and llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::start().
|
inlineprotected |
unsafeStop - Writable access to stop() for iterator.
Definition at line 1388 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::Path::leaf(), llvm::IntervalMapImpl::Path::leafOffset(), llvm::IntervalMap< KeyT, ValT, N, Traits >::stop(), and llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop().
|
inlineprotected |
unsafeValue - Writable access to value() for iterator.
Definition at line 1395 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::Path::leaf(), llvm::IntervalMapImpl::Path::leafOffset(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::value(), and value.
|
inline |
valid - Return true if the current position is valid, false for end().
Definition at line 1410 of file IntervalMap.h.
References llvm::IntervalMapImpl::Path::valid().
|
inline |
value - Return the mapped value at the current interval.
Definition at line 1422 of file IntervalMap.h.
|
friend |
Definition at line 1344 of file IntervalMap.h.
|
protected |
Definition at line 1355 of file IntervalMap.h.
|
protected |
Definition at line 1359 of file IntervalMap.h.