LLVM 22.0.0git
llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits > Class Template Reference

#include "llvm/ADT/IntervalMap.h"

Inheritance diagram for llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >:
[legend]

Public Member Functions

const KeyTstart (unsigned i) const
const KeyTstop (unsigned i) const
const ValTvalue (unsigned i) const
KeyTstart (unsigned i)
KeyTstop (unsigned i)
ValTvalue (unsigned i)
unsigned findFrom (unsigned i, unsigned Size, KeyT x) const
 findFrom - Find the first interval after i that may contain x.
unsigned safeFind (unsigned i, KeyT x) const
 safeFind - Find an interval that is known to exist.
ValT safeLookup (KeyT x, ValT NotFound) const
 safeLookup - Lookup mapped value for a safe key.
unsigned insertFrom (unsigned &Pos, unsigned Size, KeyT a, KeyT b, ValT y)
 insertFrom - Add mapping of [a;b] to y if possible, coalescing as much as possible.
Public Member Functions inherited from llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >
void copy (const NodeBase< std::pair< KeyT, KeyT >, ValT, M > &Other, unsigned i, unsigned j, unsigned Count)
 copy - Copy elements from another node.
void moveLeft (unsigned i, unsigned j, unsigned Count)
 moveLeft - Move elements to the left.
void moveRight (unsigned i, unsigned j, unsigned Count)
 moveRight - Move elements to the right.
void erase (unsigned i, unsigned j, unsigned Size)
 erase - Erase elements [i;j).
void shift (unsigned i, unsigned Size)
 shift - Shift elements [i;size) 1 position to the right.
void transferToLeftSib (unsigned Size, NodeBase &Sib, unsigned SSize, unsigned Count)
 transferToLeftSib - Transfer elements to a left sibling node.
void transferToRightSib (unsigned Size, NodeBase &Sib, unsigned SSize, unsigned Count)
 transferToRightSib - Transfer elements to a right sibling node.
int adjustFromLeftSib (unsigned Size, NodeBase &Sib, unsigned SSize, int Add)
 adjustFromLeftSib - Adjust the number if elements in this node by moving elements to or from a left sibling node.

Additional Inherited Members

Public Attributes inherited from llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >
std::pair< KeyT, KeyTfirst [N]
ValT second [N]
Static Public Attributes inherited from llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >
static constexpr unsigned Capacity

Detailed Description

template<typename KeyT, typename ValT, unsigned N, typename Traits>
class llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >

Definition at line 567 of file IntervalMap.h.

Member Function Documentation

◆ findFrom()

template<typename KeyT, typename ValT, unsigned N, typename Traits>
unsigned llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::findFrom ( unsigned i,
unsigned Size,
KeyT x ) const
inline

findFrom - Find the first interval after i that may contain x.

Parameters
iStarting index for the search.
SizeNumber of elements in node.
xKey to search for.
Returns
First index with !stopLess(key[i].stop, x), or size. This is the first interval that can possibly contain x.

Definition at line 583 of file IntervalMap.h.

◆ insertFrom()

template<typename KeyT, typename ValT, unsigned N, typename Traits>
unsigned llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::insertFrom ( unsigned & Pos,
unsigned Size,
KeyT a,
KeyT b,
ValT y )

insertFrom - Add mapping of [a;b] to y if possible, coalescing as much as possible.

This may cause the node to grow by 1, or it may cause the node to shrink because of coalescing.

Parameters
PosStarting index = insertFrom(0, size, a)
SizeNumber of elements in node.
aInterval start.
bInterval stop.
yValue be mapped.
Returns
(insert position, new size), or (i, Capacity+1) on overflow.

Definition at line 630 of file IntervalMap.h.

References assert(), llvm::erase(), N, llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >::shift(), Size, start(), stop(), and value().

Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::insert().

◆ safeFind()

template<typename KeyT, typename ValT, unsigned N, typename Traits>
unsigned llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::safeFind ( unsigned i,
KeyT x ) const
inline

safeFind - Find an interval that is known to exist.

This is the same as findFrom except is it assumed that x is at least within range of the last interval.

Parameters
iStarting index for the search.
xKey to search for.
Returns
First index with !stopLess(key[i].stop, x), never size. This is the first interval that can possibly contain x.

Definition at line 598 of file IntervalMap.h.

◆ safeLookup()

template<typename KeyT, typename ValT, unsigned N, typename Traits>
ValT llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::safeLookup ( KeyT x,
ValT NotFound ) const
inline

safeLookup - Lookup mapped value for a safe key.

It is assumed that x is within range of the last entry.

Parameters
xKey to search for.
NotFoundValue to return if x is not in any interval.
Returns
The mapped value at x or NotFound.

Definition at line 612 of file IntervalMap.h.

◆ start() [1/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
KeyT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::start ( unsigned i)
inline

Definition at line 573 of file IntervalMap.h.

◆ start() [2/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
const KeyT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::start ( unsigned i) const
inline

Definition at line 569 of file IntervalMap.h.

Referenced by insertFrom().

◆ stop() [1/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
KeyT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop ( unsigned i)
inline

Definition at line 574 of file IntervalMap.h.

◆ stop() [2/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
const KeyT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::stop ( unsigned i) const
inline

Definition at line 570 of file IntervalMap.h.

Referenced by insertFrom().

◆ value() [1/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
ValT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::value ( unsigned i)
inline

Definition at line 575 of file IntervalMap.h.

◆ value() [2/2]

template<typename KeyT, typename ValT, unsigned N, typename Traits>
const ValT & llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::value ( unsigned i) const
inline

Definition at line 571 of file IntervalMap.h.

Referenced by insertFrom().


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