LLVM API Documentation

Classes | Public Types | Public Member Functions | Friends
llvm::IntervalMap< KeyT, ValT, N, Traits > Class Template Reference

#include <IntervalMap.h>

Inheritance diagram for llvm::IntervalMap< KeyT, ValT, N, Traits >:
Inheritance graph
[legend]

List of all members.

Classes

class  const_iterator
class  iterator
struct  RootBranchData

Public Types

typedef Sizer::Allocator Allocator
typedef KeyT KeyType
typedef ValT ValueType
typedef Traits KeyTraits

Public Member Functions

 IntervalMap (Allocator &a)
 ~IntervalMap ()
bool empty () const
 empty - Return true when no intervals are mapped.
KeyT start () const
 start - Return the smallest mapped key in a non-empty map.
KeyT stop () const
 stop - Return the largest mapped key in a non-empty map.
ValT lookup (KeyT x, ValT NotFound=ValT()) const
 lookup - Return the mapped value at x or NotFound.
void insert (KeyT a, KeyT b, ValT y)
void clear ()
 clear - Remove all entries.
const_iterator begin () const
iterator begin ()
const_iterator end () const
iterator end ()
const_iterator find (KeyT x) const
iterator find (KeyT x)

Friends

class const_iterator
class iterator

Detailed Description

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
class llvm::IntervalMap< KeyT, ValT, N, Traits >

Definition at line 931 of file IntervalMap.h.


Member Typedef Documentation

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
typedef Sizer::Allocator llvm::IntervalMap< KeyT, ValT, N, Traits >::Allocator

Definition at line 962 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
typedef Traits llvm::IntervalMap< KeyT, ValT, N, Traits >::KeyTraits

Definition at line 965 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
typedef KeyT llvm::IntervalMap< KeyT, ValT, N, Traits >::KeyType

Definition at line 963 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
typedef ValT llvm::IntervalMap< KeyT, ValT, N, Traits >::ValueType

Definition at line 964 of file IntervalMap.h.


Constructor & Destructor Documentation

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
llvm::IntervalMap< KeyT, ValT, N, Traits >::IntervalMap ( Allocator a) [inline, explicit]

Definition at line 1053 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
llvm::IntervalMap< KeyT, ValT, N, Traits >::~IntervalMap ( ) [inline]

Definition at line 1059 of file IntervalMap.h.


Member Function Documentation

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
const_iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::begin ( ) const [inline]
template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::begin ( ) [inline]

Definition at line 1116 of file IntervalMap.h.

template<typename KeyT , typename ValT , unsigned N, typename Traits >
void llvm::IntervalMap< KeyT, ValT, N, Traits >::clear ( )

clear - Remove all entries.

Definition at line 1282 of file IntervalMap.h.

Referenced by llvm::LiveIntervalUnion::clear(), INITIALIZE_PASS(), and llvm::SplitEditor::reset().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
bool llvm::IntervalMap< KeyT, ValT, N, Traits >::empty ( ) const [inline]

empty - Return true when no intervals are mapped.

Definition at line 1065 of file IntervalMap.h.

Referenced by llvm::SplitEditor::dump(), and llvm::LiveIntervalUnion::empty().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
const_iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::end ( ) const [inline]
template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::end ( ) [inline]

Definition at line 1128 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
const_iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::find ( KeyT  x) const [inline]

find - Return an iterator pointing to the first interval ending at or after x, or end().

Definition at line 1136 of file IntervalMap.h.

Referenced by llvm::LiveIntervalUnion::extract(), llvm::LiveIntervalUnion::find(), llvm::IntervalPartition::getBlockInterval(), and llvm::LiveIntervalUnion::unify().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
iterator llvm::IntervalMap< KeyT, ValT, N, Traits >::find ( KeyT  x) [inline]

Definition at line 1142 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
void llvm::IntervalMap< KeyT, ValT, N, Traits >::insert ( KeyT  a,
KeyT  b,
ValT  y 
) [inline]

insert - Add a mapping of [a;b] to y, coalesce with adjacent intervals. It is assumed that no key in the interval is mapped to another value, but overlapping intervals already mapped to y will be coalesced.

Definition at line 1093 of file IntervalMap.h.

Referenced by llvm::SplitEditor::enterIntvAtEnd(), llvm::SplitEditor::leaveIntvAtTop(), llvm::SplitEditor::overlapIntv(), and llvm::SplitEditor::useIntv().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
ValT llvm::IntervalMap< KeyT, ValT, N, Traits >::lookup ( KeyT  x,
ValT  NotFound = ValT() 
) const [inline]

lookup - Return the mapped value at x or NotFound.

Definition at line 1083 of file IntervalMap.h.

Referenced by llvm::SplitEditor::finish().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
KeyT llvm::IntervalMap< KeyT, ValT, N, Traits >::start ( ) const [inline]

start - Return the smallest mapped key in a non-empty map.

Definition at line 1070 of file IntervalMap.h.

Referenced by llvm::overlap(), and llvm::LiveIntervalUnion::startIndex().

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
KeyT llvm::IntervalMap< KeyT, ValT, N, Traits >::stop ( ) const [inline]

stop - Return the largest mapped key in a non-empty map.

Definition at line 1076 of file IntervalMap.h.

Referenced by llvm::overlap().


Friends And Related Function Documentation

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
friend class const_iterator [friend]

Definition at line 1106 of file IntervalMap.h.

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
friend class iterator [friend]

Definition at line 1108 of file IntervalMap.h.


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