LLVM API Documentation

Classes | Public Member Functions
llvm::IntervalMapImpl::Path Class Reference

#include <IntervalMap.h>

List of all members.

Classes

struct  Entry

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().
unsigned height () const
NodeRefsubtree (unsigned Level) const
void reset (unsigned Level)
void push (NodeRef Node, unsigned Offset)
void pop ()
 pop - Remove the last path entry.
void setSize (unsigned Level, unsigned Size)
void setRoot (void *Node, unsigned Size, unsigned Offset)
void replaceRoot (void *Root, unsigned Size, IdxPair Offsets)
NodeRef getLeftSibling (unsigned Level) const
void moveLeft (unsigned Level)
void fillLeft (unsigned Height)
NodeRef getRightSibling (unsigned Level) const
void moveRight (unsigned Level)
bool atBegin () const
 atBegin - Return true if path is at begin().
bool atLastEntry (unsigned Level) const
void legalizeForInsert (unsigned Level)

Detailed Description

Definition at line 767 of file IntervalMap.h.


Member Function Documentation

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

Definition at line 894 of file IntervalMap.h.

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

Parameters:
LevelNode to examine.

Definition at line 904 of file IntervalMap.h.

Referenced by getRightSibling(), and moveRight().

fillLeft - Grow path to Height by taking leftmost branches.

Parameters:
HeightThe target height.

Definition at line 878 of file IntervalMap.h.

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

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

Definition at line 25 of file IntervalMap.cpp.

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

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

Parameters:
LevelGet 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 - Return the height of the tree corresponding to this path. This matches map->height in a full path.

Definition at line 813 of file IntervalMap.h.

Referenced by moveLeft().

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

Definition at line 799 of file IntervalMap.h.

Definition at line 804 of file IntervalMap.h.

Definition at line 802 of file IntervalMap.h.

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:
LevelThe level where an insertion is about to take place.

Definition at line 913 of file IntervalMap.h.

moveLeft - Move path to the left sibling at Level. Leave nodes below Level unaltered.

Parameters:
LevelMove node(Level).

Definition at line 48 of file IntervalMap.cpp.

References height(), offset(), llvm::SmallVectorImpl< T >::resize(), llvm::IntervalMapImpl::NodeRef::size(), llvm::IntervalMapImpl::NodeRef::subtree(), subtree(), and valid().

moveRight - Move path to the left sibling at Level. Leave nodes below Level unaltered.

Parameters:
LevelMove node(Level).

Definition at line 98 of file IntervalMap.cpp.

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

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

Definition at line 791 of file IntervalMap.h.

Definition at line 795 of file IntervalMap.h.

Referenced by getLeftSibling(), getRightSibling(), moveLeft(), and moveRight().

Definition at line 796 of file IntervalMap.h.

pop - Remove the last path entry.

Definition at line 836 of file IntervalMap.h.

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

push - Add entry to path.

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

Definition at line 831 of file IntervalMap.h.

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:
RootThe new root node.
SizeNumber of entries in the new root.
OffsetsOffsets into the root and first branch nodes.

Definition at line 19 of file IntervalMap.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::insert(), and subtree().

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

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

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

Parameters:
Level1..height. THe node to update after parent node changed.

Definition at line 824 of file IntervalMap.h.

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

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

Parameters:
NodeNew root node.
SizeNew root size.
OffsetOffset into root node.

Definition at line 854 of file IntervalMap.h.

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:
Level0..height. Note that setting the root size won't change map->rootSize.
SizeNew node size.

Definition at line 844 of file IntervalMap.h.

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

Definition at line 794 of file IntervalMap.h.

Referenced by moveRight().

subtree - Get the subtree referenced from Level. When the path is consistent, node(Level + 1) == subtree(Level).

Parameters:
Level0..height-1. The leaves have no subtrees.

Definition at line 818 of file IntervalMap.h.

References llvm::IntervalMapImpl::NodeRef::subtree().

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

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

Definition at line 807 of file IntervalMap.h.

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


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