LLVM  7.0.0svn
llvm::IntervalMapImpl::Path Class Reference

#include "llvm/ADT/IntervalMap.h"

Public Member Functions

template<typename NodeT >
NodeT & node (unsigned Level) const

unsigned size (unsigned Level) const

unsigned offset (unsigned Level) const

unsignedoffset (unsigned Level)

template<typename NodeT >
NodeT & leaf () const

unsigned leafSize () const

unsigned leafOffset () const

unsignedleafOffset ()

bool valid () const
valid - Return true if path is at a valid node, not at end(). More...

unsigned height () const
height - Return the height of the tree corresponding to this path. More...

NodeRefsubtree (unsigned Level) const
subtree - Get the subtree referenced from Level. More...

void reset (unsigned Level)
reset - Reset cached information about node(Level) from subtree(Level -1). More...

void push (NodeRef Node, unsigned Offset)
push - Add entry to path. More...

void pop ()
pop - Remove the last path entry. More...

void setSize (unsigned Level, unsigned Size)
setSize - Set the size of a node both in the path and in the tree. More...

void setRoot (void *Node, unsigned Size, unsigned Offset)
setRoot - Clear the path and set a new root node. More...

void replaceRoot (void *Root, unsigned Size, IdxPair Offsets)
replaceRoot - Replace the current root node with two new entries after the tree height has increased. More...

NodeRef getLeftSibling (unsigned Level) const
getLeftSibling - Get the left sibling node at Level, or a null NodeRef. More...

void moveLeft (unsigned Level)
moveLeft - Move path to the left sibling at Level. More...

void fillLeft (unsigned Height)
fillLeft - Grow path to Height by taking leftmost branches. More...

NodeRef getRightSibling (unsigned Level) const
getLeftSibling - Get the left sibling node at Level, or a null NodeRef. More...

void moveRight (unsigned Level)
moveRight - Move path to the left sibling at Level. More...

bool atBegin () const
atBegin - Return true if path is at begin(). More...

bool atLastEntry (unsigned Level) const
atLastEntry - Return true if the path is at the last entry of the node at Level. More...

void legalizeForInsert (unsigned Level)
legalizeForInsert - Prepare the path for an insertion at Level. More...

Detailed Description

Definition at line 770 of file IntervalMap.h.

◆ atBegin()

 bool llvm::IntervalMapImpl::Path::atBegin ( ) const
inline

atBegin - Return true if path is at begin().

Definition at line 897 of file IntervalMap.h.

◆ atLastEntry()

 bool llvm::IntervalMapImpl::Path::atLastEntry ( unsigned Level ) const
inline

atLastEntry - Return true if the path is at the last entry of the node at Level.

Parameters
 Level Node to examine.

Definition at line 907 of file IntervalMap.h.

◆ fillLeft()

 void llvm::IntervalMapImpl::Path::fillLeft ( unsigned Height )
inline

fillLeft - Grow path to Height by taking leftmost branches.

Parameters
 Height The target height.

Definition at line 881 of file IntervalMap.h.

◆ getLeftSibling()

 NodeRef llvm::IntervalMapImpl::Path::getLeftSibling ( unsigned Level ) const

getLeftSibling - Get the left sibling node at Level, or a null NodeRef.

Parameters
 Level Get the sibling to node(Level).
Returns
Left sibling, or NodeRef().

Definition at line 25 of file IntervalMap.cpp.

◆ getRightSibling()

 NodeRef llvm::IntervalMapImpl::Path::getRightSibling ( unsigned Level ) const

getLeftSibling - Get the left sibling node at Level, or a null NodeRef.

Parameters
 Level Get the sinbling to node(Level).
Returns
Left sibling, or NodeRef().

Definition at line 75 of file IntervalMap.cpp.

References atLastEntry(), offset(), and llvm::IntervalMapImpl::NodeRef::subtree().

◆ height()

 unsigned llvm::IntervalMapImpl::Path::height ( ) const
inline

height - Return the height of the tree corresponding to this path.

This matches map->height in a full path.

Definition at line 816 of file IntervalMap.h.

Referenced by moveLeft().

◆ leaf()

template<typename NodeT >
 NodeT& llvm::IntervalMapImpl::Path::leaf ( ) const
inline

◆ leafOffset() [1/2]

 unsigned llvm::IntervalMapImpl::Path::leafOffset ( ) const
inline

◆ leafOffset() [2/2]

 unsigned& llvm::IntervalMapImpl::Path::leafOffset ( )
inline

Definition at line 807 of file IntervalMap.h.

◆ leafSize()

 unsigned llvm::IntervalMapImpl::Path::leafSize ( ) const
inline

Definition at line 805 of file IntervalMap.h.

◆ legalizeForInsert()

 void llvm::IntervalMapImpl::Path::legalizeForInsert ( unsigned Level )
inline

legalizeForInsert - Prepare the path for an insertion at Level.

When the path is at end(), node(Level) may not be a legal node. legalizeForInsert ensures that node(Level) is real by moving back to the last node at Level, and setting offset(Level) to size(Level) if required.

Parameters
 Level The level where an insertion is about to take place.

Definition at line 916 of file IntervalMap.h.

References N.

◆ moveLeft()

 void llvm::IntervalMapImpl::Path::moveLeft ( unsigned Level )

moveLeft - Move path to the left sibling at Level.

Leave nodes below Level unaltered.

Parameters
 Level Move node(Level).

Definition at line 48 of file IntervalMap.cpp.

◆ moveRight()

 void llvm::IntervalMapImpl::Path::moveRight ( unsigned Level )

moveRight - Move path to the left sibling at Level.

Leave nodes below Level unaltered.

Parameters
 Level Move node(Level).

Definition at line 98 of file IntervalMap.cpp.

◆ node()

template<typename NodeT >
 NodeT& llvm::IntervalMapImpl::Path::node ( unsigned Level ) const
inline

Definition at line 794 of file IntervalMap.h.

◆ offset() [1/2]

 unsigned llvm::IntervalMapImpl::Path::offset ( unsigned Level ) const
inline

◆ offset() [2/2]

 unsigned& llvm::IntervalMapImpl::Path::offset ( unsigned Level )
inline

Definition at line 799 of file IntervalMap.h.

◆ pop()

 void llvm::IntervalMapImpl::Path::pop ( )
inline

pop - Remove the last path entry.

Definition at line 839 of file IntervalMap.h.

◆ push()

 void llvm::IntervalMapImpl::Path::push ( NodeRef Node, unsigned Offset )
inline

push - Add entry to path.

Parameters
 Node Node to add, should be subtree(path.size()-1). Offset Offset into Node.

Definition at line 834 of file IntervalMap.h.

◆ replaceRoot()

 void llvm::IntervalMapImpl::Path::replaceRoot ( void * Root, unsigned Size, IdxPair Offsets )

replaceRoot - Replace the current root node with two new entries after the tree height has increased.

Parameters
 Root The new root node. Size Number of entries in the new root. Offsets Offsets into the root and first branch nodes.

Definition at line 19 of file IntervalMap.cpp.

◆ reset()

 void llvm::IntervalMapImpl::Path::reset ( unsigned Level )
inline

reset - Reset cached information about node(Level) from subtree(Level -1).

Parameters
 Level 1..height. THe node to update after parent node changed.

Definition at line 827 of file IntervalMap.h.

◆ setRoot()

 void llvm::IntervalMapImpl::Path::setRoot ( void * Node, unsigned Size, unsigned Offset )
inline

setRoot - Clear the path and set a new root node.

Parameters
 Node New root node. Size New root size. Offset Offset into root node.

Definition at line 857 of file IntervalMap.h.

◆ setSize()

 void llvm::IntervalMapImpl::Path::setSize ( unsigned Level, unsigned Size )
inline

setSize - Set the size of a node both in the path and in the tree.

Parameters
 Level 0..height. Note that setting the root size won't change map->rootSize. Size New node size.

Definition at line 847 of file IntervalMap.h.

◆ size()

 unsigned llvm::IntervalMapImpl::Path::size ( unsigned Level ) const
inline

Definition at line 797 of file IntervalMap.h.

◆ subtree()

 NodeRef& llvm::IntervalMapImpl::Path::subtree ( unsigned Level ) const
inline

subtree - Get the subtree referenced from Level.

When the path is consistent, node(Level + 1) == subtree(Level).

Parameters
 Level 0..height-1. The leaves have no subtrees.

Definition at line 821 of file IntervalMap.h.

Referenced by moveLeft(), moveRight(), and replaceRoot().

◆ valid()

 bool llvm::IntervalMapImpl::Path::valid ( ) const
inline

valid - Return true if path is at a valid node, not at end().

Definition at line 810 of file IntervalMap.h.

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