LLVM 20.0.0git
|
#include "llvm/ADT/IntervalMap.h"
Public Member Functions | |
template<unsigned M> | |
void | copy (const NodeBase< T1, T2, 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 | erase (unsigned i, unsigned Size) |
erase - Erase element at i. | |
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. | |
Public Attributes | |
T1 | first [N] |
T2 | second [N] |
Static Public Attributes | |
static constexpr unsigned | Capacity = N |
Definition at line 223 of file IntervalMap.h.
|
inline |
adjustFromLeftSib - Adjust the number if elements in this node by moving elements to or from a left sibling node.
Size | Number of elements in this. |
Sib | Right sibling node. |
SSize | Number of elements in sib. |
Add | The number of elements to add to this node, possibly < 0. |
Definition at line 319 of file IntervalMap.h.
References llvm::Add, N, Size, llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToLeftSib(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToRightSib().
|
inline |
copy - Copy elements from another node.
Other | Node elements are copied from. |
i | Beginning of the source range in other. |
j | Beginning of the destination range in this. |
Count | Number of elements to copy. |
Definition at line 236 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::first, N, llvm::Other, and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::second.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveLeft(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToLeftSib(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToRightSib().
|
inline |
erase - Erase elements [i;j).
i | Beginning of the range to erase. |
j | End of the range. (Exclusive). |
Size | Number of elements in node. |
Definition at line 272 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveLeft(), and Size.
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::erase(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::erase(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToLeftSib().
|
inline |
erase - Erase element at i.
i | Index of element to erase. |
Size | Number of elements in node. |
Definition at line 279 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< T1, T2, N >::erase(), and Size.
|
inline |
moveLeft - Move elements to the left.
i | Beginning of the source range. |
j | Beginning of the destination range. |
Count | Number of elements to copy. |
Definition at line 250 of file IntervalMap.h.
References assert(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::copy().
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::erase().
|
inline |
moveRight - Move elements to the right.
i | Beginning of the source range. |
j | Beginning of the destination range. |
Count | Number of elements to copy. |
Definition at line 259 of file IntervalMap.h.
References assert(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::first, N, and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::second.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::shift(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::transferToRightSib().
|
inline |
shift - Shift elements [i;size) 1 position to the right.
i | Beginning of the range to move. |
Size | Number of elements in node. |
Definition at line 286 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveRight(), and Size.
|
inline |
transferToLeftSib - Transfer elements to a left sibling node.
Size | Number of elements in this. |
Sib | Left sibling node. |
SSize | Number of elements in sib. |
Count | Number of elements to transfer. |
Definition at line 295 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< T1, T2, N >::copy(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::erase(), and Size.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::adjustFromLeftSib().
|
inline |
transferToRightSib - Transfer elements to a right sibling node.
Size | Number of elements in this. |
Sib | Right sibling node. |
SSize | Number of elements in sib. |
Count | Number of elements to transfer. |
Definition at line 306 of file IntervalMap.h.
References llvm::IntervalMapImpl::NodeBase< T1, T2, N >::copy(), llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveRight(), and Size.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::adjustFromLeftSib().
|
staticconstexpr |
Definition at line 225 of file IntervalMap.h.
T1 llvm::IntervalMapImpl::NodeBase< T1, T2, N >::first[N] |
Definition at line 227 of file IntervalMap.h.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::copy(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveRight().
T2 llvm::IntervalMapImpl::NodeBase< T1, T2, N >::second[N] |
Definition at line 228 of file IntervalMap.h.
Referenced by llvm::IntervalMapImpl::NodeBase< T1, T2, N >::copy(), and llvm::IntervalMapImpl::NodeBase< T1, T2, N >::moveRight().