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

#include "llvm/ADT/IntervalMap.h"

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

Classes

class  const_iterator
class  iterator

Public Types

using Allocator = typename Sizer::Allocator
using KeyType = KeyT
using ValueType = ValT
using KeyTraits = Traits

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)
 insert - Add a mapping of [a;b] to y, coalesce with adjacent intervals.
void clear ()
 clear - Remove all entries.
const_iterator begin () const
iterator begin ()
const_iterator end () const
iterator end ()
const_iterator find (KeyT x) const
 find - Return an iterator pointing to the first interval ending at or after x, or end().
iterator find (KeyT x)
bool overlaps (KeyT a, KeyT b) const
 overlaps(a, b) - Return true if the intervals in this map overlap with the interval [a;b].
 IntervalMap (IntervalMap const &RHS)
IntervalMapoperator= (IntervalMap const &RHS)
 IntervalMap (IntervalMap &&RHS)
IntervalMapoperator= (IntervalMap &&RHS)

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 937 of file IntervalMap.h.

Member Typedef Documentation

◆ Allocator

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

Definition at line 963 of file IntervalMap.h.

◆ KeyTraits

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

Definition at line 966 of file IntervalMap.h.

◆ KeyType

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

Definition at line 964 of file IntervalMap.h.

◆ ValueType

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

Definition at line 965 of file IntervalMap.h.

Constructor & Destructor Documentation

◆ IntervalMap() [1/3]

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)
inlineexplicit

Definition at line 1042 of file IntervalMap.h.

◆ IntervalMap() [2/3]

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

NOTE: The moved-from or copied-from object's allocator needs to have a lifetime equal to or exceeding the moved-to or copied-to object to avoid undefined behaviour.

Definition at line 1050 of file IntervalMap.h.

◆ IntervalMap() [3/3]

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

Definition at line 1064 of file IntervalMap.h.

◆ ~IntervalMap()

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 1096 of file IntervalMap.h.

Member Function Documentation

◆ begin() [1/2]

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 1153 of file IntervalMap.h.

◆ begin() [2/2]

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

Definition at line 1147 of file IntervalMap.h.

Referenced by tryToShortenBegin().

◆ clear()

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

clear - Remove all entries.

Definition at line 1330 of file IntervalMap.h.

◆ empty()

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 1102 of file IntervalMap.h.

Referenced by tryToShortenBegin(), and tryToShortenEnd().

◆ end() [1/2]

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 1165 of file IntervalMap.h.

◆ end() [2/2]

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

Definition at line 1159 of file IntervalMap.h.

Referenced by tryToShortenEnd().

◆ find() [1/2]

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 1179 of file IntervalMap.h.

◆ find() [2/2]

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 1173 of file IntervalMap.h.

◆ insert()

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 1130 of file IntervalMap.h.

◆ lookup()

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 1120 of file IntervalMap.h.

◆ operator=() [1/2]

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
IntervalMap & llvm::IntervalMap< KeyT, ValT, N, Traits >::operator= ( IntervalMap< KeyT, ValT, N, Traits > && RHS)
inline

Definition at line 1070 of file IntervalMap.h.

◆ operator=() [2/2]

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
IntervalMap & llvm::IntervalMap< KeyT, ValT, N, Traits >::operator= ( IntervalMap< KeyT, ValT, N, Traits > const & RHS)
inline

Definition at line 1056 of file IntervalMap.h.

◆ overlaps()

template<typename KeyT, typename ValT, unsigned N = IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, typename Traits = IntervalMapInfo<KeyT>>
bool llvm::IntervalMap< KeyT, ValT, N, Traits >::overlaps ( KeyT a,
KeyT b ) const
inline

overlaps(a, b) - Return true if the intervals in this map overlap with the interval [a;b].

Definition at line 1187 of file IntervalMap.h.

◆ start()

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

◆ stop()

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

◆ const_iterator

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

Definition at line 1144 of file IntervalMap.h.

◆ iterator

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

Definition at line 1145 of file IntervalMap.h.

Member Data Documentation

◆ branchData

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

Definition at line 972 of file IntervalMap.h.

◆ leaf

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

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