LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::iplist< NodeTy, Traits > Class Template Reference

#include <ilist.h>

Inheritance diagram for llvm::iplist< NodeTy, Traits >:

Inheritance graph
[legend]
Collaboration diagram for llvm::iplist< NodeTy, Traits >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef NodeTy * pointer
typedef const NodeTy * const_pointer
typedef NodeTy & reference
typedef const NodeTy & const_reference
typedef NodeTy value_type
typedef ilist_iterator< NodeTy > iterator
typedef ilist_iterator< const
NodeTy > 
const_iterator
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef std::reverse_iterator<
const_iterator
const_reverse_iterator
typedef std::reverse_iterator<
iterator
reverse_iterator

Public Member Functions

 iplist ()
 ~iplist ()
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin ()
const_reverse_iterator rbegin () const
reverse_iterator rend ()
const_reverse_iterator rend () const
size_type max_size () const
bool empty () const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
void swap (iplist &RHS)
iterator insert (iterator where, NodeTy *New)
NodeTy * remove (iterator &IT)
NodeTy * remove (const iterator &IT)
iterator erase (iterator where)
size_type size () const
iterator erase (iterator first, iterator last)
void clear ()
void push_front (NodeTy *val)
void push_back (NodeTy *val)
void pop_front ()
void pop_back ()
template<class InIt>
void insert (iterator where, InIt first, InIt last)
void splice (iterator where, iplist &L2)
void splice (iterator where, iplist &L2, iterator first)
void splice (iterator where, iplist &L2, iterator first, iterator last)
void erase (const NodeTy &val)
template<class Pr1>
void erase_if (Pr1 pred)
template<class Pr2>
void unique (Pr2 pred)
void unique ()
template<class Pr3>
void merge (iplist &right, Pr3 pred)
void merge (iplist &right)
template<class Pr3>
void sort (Pr3 pred)
void sort ()
void reverse ()

Detailed Description

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
class llvm::iplist< NodeTy, Traits >

iplist - The subset of list functionality that can safely be used on nodes of polymorphic types, i.e. a heterogenous list with a common base class that holds the next/prev pointers. The only state of the list itself is a single pointer to the head of the list.

This list can be in one of three interesting states: 1. The list may be completely unconstructed. In this case, the head pointer is null. When in this form, any query for an iterator (e.g. begin() or end()) causes the list to transparently change to state #2. 2. The list may be empty, but contain a sentinal for the end iterator. This sentinal is created by the Traits::createSentinel method and is a link in the list. When the list is empty, the pointer in the iplist points to the sentinal. Once the sentinal is constructed, it is not destroyed until the list is. 3. The list may contain actual objects in it, which are stored as a doubly linked list of nodes. One invariant of the list is that the predecessor of the first node in the list always points to the last node in the list, and the successor pointer for the sentinal (which always stays at the end of the list) is always null.

Definition at line 261 of file ilist.h.


Member Typedef Documentation

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef ilist_iterator<const NodeTy> llvm::iplist< NodeTy, Traits >::const_iterator
 

Definition at line 296 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef const NodeTy* llvm::iplist< NodeTy, Traits >::const_pointer
 

Definition at line 291 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef const NodeTy& llvm::iplist< NodeTy, Traits >::const_reference
 

Definition at line 293 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef std::reverse_iterator<const_iterator> llvm::iplist< NodeTy, Traits >::const_reverse_iterator
 

Definition at line 299 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef ptrdiff_t llvm::iplist< NodeTy, Traits >::difference_type
 

Definition at line 298 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef ilist_iterator<NodeTy> llvm::iplist< NodeTy, Traits >::iterator
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 295 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef NodeTy* llvm::iplist< NodeTy, Traits >::pointer
 

Definition at line 290 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef NodeTy& llvm::iplist< NodeTy, Traits >::reference
 

Definition at line 292 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef std::reverse_iterator<iterator> llvm::iplist< NodeTy, Traits >::reverse_iterator
 

Definition at line 300 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef size_t llvm::iplist< NodeTy, Traits >::size_type
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 297 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
typedef NodeTy llvm::iplist< NodeTy, Traits >::value_type
 

Definition at line 294 of file ilist.h.


Constructor & Destructor Documentation

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
llvm::iplist< NodeTy, Traits >::iplist  )  [inline]
 

Definition at line 302 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
llvm::iplist< NodeTy, Traits >::~iplist  )  [inline]
 

Definition at line 303 of file ilist.h.


Member Function Documentation

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_reference llvm::iplist< NodeTy, Traits >::back  )  const [inline]
 

Definition at line 351 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
reference llvm::iplist< NodeTy, Traits >::back  )  [inline]
 

Definition at line 347 of file ilist.h.

Referenced by llvm::AliasSetTracker::add(), llvm::AliasSetTracker::getAliasSetForPointer(), and llvm::BasicBlock::getTerminator().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_iterator llvm::iplist< NodeTy, Traits >::begin  )  const [inline]
 

Definition at line 314 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
iterator llvm::iplist< NodeTy, Traits >::begin  )  [inline]
 

Definition at line 310 of file ilist.h.

Referenced by llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::Recycler< MachineBasicBlock >::clear(), llvm::SparseBitVector< ElementSize >::count(), llvm::SparseBitVector< ElementSize >::find_first(), llvm::SparseBitVector< ElementSize >::getHashValue(), llvm::ilist< SparseBitVectorElement< ElementSize > >::ilist(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::iplist< Argument >::merge(), llvm::SparseBitVector< ElementSize >::operator &=(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::SparseBitVector< ElementSize >::operator==(), llvm::SparseBitVector< ElementSize >::operator|=(), CppWriter::printFunctions(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::SparseBitVector< ElementSize >::SparseBitVector(), and llvm::iplist< Argument >::splice().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::clear  )  [inline]
 

Definition at line 483 of file ilist.h.

Referenced by llvm::Function::dropAllReferences(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::Archive::loadArchive(), llvm::Archive::loadSymbolTable(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::BasicBlock::~BasicBlock(), llvm::Function::~Function(), llvm::MachineFunction::~MachineFunction(), and Module::~Module().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
bool llvm::iplist< NodeTy, Traits >::empty  )  const [inline]
 

Definition at line 336 of file ilist.h.

Referenced by llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::Recycler< MachineBasicBlock >::clear(), llvm::SparseBitVector< ElementSize >::empty(), llvm::SparseBitVector< ElementSize >::find_first(), llvm::BasicBlock::getTerminator(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::SparseBitVector< ElementSize >::operator &=(), llvm::SparseBitVector< ElementSize >::operator|=(), llvm::BasicBlock::removePredecessor(), llvm::SparseBitVector< ElementSize >::reset(), llvm::SparseBitVector< ElementSize >::set(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::iplist< Argument >::splice(), llvm::SparseBitVector< ElementSize >::test(), llvm::Archive::writeToDisk(), and llvm::Recycler< MachineBasicBlock >::~Recycler().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_iterator llvm::iplist< NodeTy, Traits >::end  )  const [inline]
 

Definition at line 322 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
iterator llvm::iplist< NodeTy, Traits >::end  )  [inline]
 

Definition at line 318 of file ilist.h.

Referenced by llvm::SparseBitVector< ElementSize >::count(), llvm::SparseBitVector< ElementSize >::getHashValue(), llvm::ilist< SparseBitVectorElement< ElementSize > >::ilist(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::iplist< Argument >::merge(), llvm::SparseBitVector< ElementSize >::operator &=(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::SparseBitVector< ElementSize >::operator==(), llvm::SparseBitVector< ElementSize >::operator|=(), CppWriter::printFunctions(), llvm::SparseBitVector< ElementSize >::reset(), llvm::SparseBitVector< ElementSize >::set(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::SparseBitVector< ElementSize >::SparseBitVector(), llvm::iplist< Argument >::splice(), llvm::BasicBlock::splitBasicBlock(), and llvm::SparseBitVector< ElementSize >::test().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::erase const NodeTy &  val  )  [inline]
 

Definition at line 525 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
iterator llvm::iplist< NodeTy, Traits >::erase iterator  first,
iterator  last
[inline]
 

Definition at line 477 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
iterator llvm::iplist< NodeTy, Traits >::erase iterator  where  )  [inline]
 

Definition at line 406 of file ilist.h.

Referenced by llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::SparseBitVector< ElementSize >::operator &=(), llvm::ReplaceInstWithValue(), llvm::SparseBitVector< ElementSize >::reset(), LowerAllocations::runOnBasicBlock(), and SRAGlobal().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
template<class Pr1>
void llvm::iplist< NodeTy, Traits >::erase_if Pr1  pred  )  [inline]
 

Definition at line 532 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_reference llvm::iplist< NodeTy, Traits >::front  )  const [inline]
 

Definition at line 343 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
reference llvm::iplist< NodeTy, Traits >::front  )  [inline]
 

Definition at line 339 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
template<class InIt>
void llvm::iplist< NodeTy, Traits >::insert iterator  where,
InIt  first,
InIt  last
[inline]
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 498 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
iterator llvm::iplist< NodeTy, Traits >::insert iterator  where,
NodeTy *  New
[inline]
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 361 of file ilist.h.

Referenced by llvm::Archive::addFileBefore(), ProfilerRS::Duplicate(), llvm::ReplaceInstWithInst(), and SRAGlobal().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
size_type llvm::iplist< NodeTy, Traits >::max_size  )  const [inline]
 

Definition at line 335 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::merge iplist< NodeTy, Traits > &  right  )  [inline]
 

Definition at line 565 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
template<class Pr3>
void llvm::iplist< NodeTy, Traits >::merge iplist< NodeTy, Traits > &  right,
Pr3  pred
[inline]
 

Definition at line 552 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::pop_back  )  [inline]
 

Definition at line 492 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::pop_front  )  [inline]
 

Definition at line 488 of file ilist.h.

Referenced by llvm::BasicBlock::removePredecessor().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::push_back NodeTy *  val  )  [inline]
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 487 of file ilist.h.

Referenced by Module::getOrInsertFunction(), llvm::Archive::loadArchive(), and llvm::Archive::loadSymbolTable().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::push_front NodeTy *  val  )  [inline]
 

Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, and llvm::ilist< SparseBitVectorElement< ElementSize > >.

Definition at line 486 of file ilist.h.

Referenced by llvm::Recycler< MachineBasicBlock >::Deallocate().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_reverse_iterator llvm::iplist< NodeTy, Traits >::rbegin  )  const [inline]
 

Definition at line 329 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
reverse_iterator llvm::iplist< NodeTy, Traits >::rbegin  )  [inline]
 

Definition at line 328 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
NodeTy* llvm::iplist< NodeTy, Traits >::remove const iterator IT  )  [inline]
 

Definition at line 400 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
NodeTy* llvm::iplist< NodeTy, Traits >::remove iterator IT  )  [inline]
 

Definition at line 376 of file ilist.h.

Referenced by llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::Recycler< MachineBasicBlock >::clear(), and llvm::SelectionDAG::RemoveDeadNodes().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
const_reverse_iterator llvm::iplist< NodeTy, Traits >::rend  )  const [inline]
 

Definition at line 331 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
reverse_iterator llvm::iplist< NodeTy, Traits >::rend  )  [inline]
 

Definition at line 330 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::reverse  ) 
 

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
size_type llvm::iplist< NodeTy, Traits >::size  )  const [inline]
 

Definition at line 465 of file ilist.h.

Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), llvm::SelectionDAG::dump(), llvm::AliasSetTracker::print(), and llvm::Recycler< MachineBasicBlock >::PrintStats().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::sort  )  [inline]
 

Definition at line 568 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
template<class Pr3>
void llvm::iplist< NodeTy, Traits >::sort Pr3  pred  ) 
 

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::splice iterator  where,
iplist< NodeTy, Traits > &  L2,
iterator  first,
iterator  last
[inline]
 

Definition at line 512 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::splice iterator  where,
iplist< NodeTy, Traits > &  L2,
iterator  first
[inline]
 

Definition at line 507 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::splice iterator  where,
iplist< NodeTy, Traits > &  L2
[inline]
 

Definition at line 503 of file ilist.h.

Referenced by llvm::BasicBlock::splitBasicBlock().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::swap iplist< NodeTy, Traits > &  RHS  )  [inline]
 

Definition at line 356 of file ilist.h.

Referenced by std::swap().

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
void llvm::iplist< NodeTy, Traits >::unique  )  [inline]
 

Definition at line 550 of file ilist.h.

template<typename NodeTy, typename Traits = ilist_traits<NodeTy>>
template<class Pr2>
void llvm::iplist< NodeTy, Traits >::unique Pr2  pred  )  [inline]
 

Definition at line 540 of file ilist.h.


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.