LLVM API Documentation
#include <ilist.h>


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) |
| iterator | insertAfter (iterator where, NodeTy *New) |
| NodeTy * | remove (iterator &IT) |
| NodeTy * | remove (const iterator &IT) |
| iterator | erase (iterator where) |
| void | clearAndLeakNodesUnsafely () |
| 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 () |
iplist - The subset of list functionality that can safely be used on nodes of polymorphic types, i.e. a heterogeneous 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 sentinel for the end iterator. This sentinel 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 sentinel. Once the sentinel 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 sentinel (which always stays at the end of the list) is always null.
| typedef ilist_iterator<const NodeTy> llvm::iplist< NodeTy, Traits >::const_iterator |
| typedef const NodeTy* llvm::iplist< NodeTy, Traits >::const_pointer |
| typedef const NodeTy& llvm::iplist< NodeTy, Traits >::const_reference |
| typedef std::reverse_iterator<const_iterator> llvm::iplist< NodeTy, Traits >::const_reverse_iterator |
| typedef ptrdiff_t llvm::iplist< NodeTy, Traits >::difference_type |
| typedef ilist_iterator<NodeTy> llvm::iplist< NodeTy, Traits >::iterator |
Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< Token >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, llvm::ilist< IndexListEntry >, llvm::ilist< NamedMDNode >, llvm::ilist< SparseBitVectorElement< ElementSize > >, llvm::ilist< EdgeEntry >, llvm::ilist< NodeEntry >, and llvm::ilist< IVStrideUse >.
| typedef NodeTy* llvm::iplist< NodeTy, Traits >::pointer |
| typedef NodeTy& llvm::iplist< NodeTy, Traits >::reference |
| typedef std::reverse_iterator<iterator> llvm::iplist< NodeTy, Traits >::reverse_iterator |
| typedef size_t llvm::iplist< NodeTy, Traits >::size_type |
Reimplemented in llvm::ilist< NodeTy >, llvm::ilist< SDNode >, llvm::ilist< Token >, llvm::ilist< AliasSet >, llvm::ilist< MachineInstr >, llvm::ilist< MachineBasicBlock >, llvm::ilist< IndexListEntry >, llvm::ilist< NamedMDNode >, llvm::ilist< SparseBitVectorElement< ElementSize > >, llvm::ilist< EdgeEntry >, llvm::ilist< NodeEntry >, and llvm::ilist< IVStrideUse >.
| typedef NodeTy llvm::iplist< NodeTy, Traits >::value_type |
| llvm::iplist< NodeTy, Traits >::iplist | ( | ) | [inline] |
| llvm::iplist< NodeTy, Traits >::~iplist | ( | ) | [inline] |
| reference llvm::iplist< NodeTy, Traits >::back | ( | ) | [inline] |
Definition at line 396 of file ilist.h.
Referenced by llvm::AliasSetTracker::addUnknown(), llvm::IVUsers::AddUser(), llvm::IVUsers::AddUsersImpl(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::BasicBlock::back(), llvm::MachineBasicBlock::back(), llvm::Archive::back(), llvm::MachineFunction::back(), llvm::Function::back(), llvm::AliasSetTracker::getAliasSetForPointer(), llvm::SlotIndexes::getLastIndex(), llvm::BasicBlock::getTerminator(), llvm::SlotIndexes::insertMBBInMaps(), and llvm::SlotIndexes::runOnMachineFunction().
| const_reference llvm::iplist< NodeTy, Traits >::back | ( | ) | const [inline] |
| iterator llvm::iplist< NodeTy, Traits >::begin | ( | ) | [inline] |
Definition at line 359 of file ilist.h.
Referenced by llvm::Module::alias_begin(), llvm::SelectionDAG::allnodes_begin(), llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::Function::arg_begin(), llvm::IVUsers::begin(), llvm::BasicBlock::begin(), llvm::Archive::begin(), llvm::MachineFunction::begin(), llvm::Function::begin(), llvm::AliasSetTracker::begin(), llvm::Module::begin(), llvm::MCSectionData::begin(), llvm::MCAssembler::begin(), llvm::Recycler< MachineBasicBlock >::clear(), llvm::iplist< IVStrideUse >::clear(), llvm::SparseBitVector< ElementSize >::count(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::Function::dropAllReferences(), llvm::SlotIndexes::dump(), PBQP::Graph::edgesBegin(), llvm::iplist< IVStrideUse >::erase(), llvm::iplist< IVStrideUse >::erase_if(), llvm::SparseBitVector< ElementSize >::find_first(), llvm::Module::global_begin(), llvm::ilist< IVStrideUse >::ilist(), llvm::iplist< IVStrideUse >::insertAfter(), llvm::MachineBasicBlock::instr_begin(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::iplist< IVStrideUse >::merge(), llvm::Module::named_metadata_begin(), PBQP::Graph::nodesBegin(), llvm::SparseBitVector< ElementSize >::operator&=(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::SparseBitVector< ElementSize >::operator==(), llvm::SparseBitVector< ElementSize >::operator|=(), llvm::iplist< IVStrideUse >::pop_front(), llvm::IVUsers::print(), llvm::iplist< IVStrideUse >::push_front(), llvm::iplist< IVStrideUse >::rend(), llvm::SlotIndexes::renumberIndexes(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::iplist< IVStrideUse >::size(), llvm::SparseBitVector< ElementSize >::SparseBitVector(), llvm::iplist< IVStrideUse >::splice(), llvm::MCAssembler::symbol_begin(), and llvm::iplist< IVStrideUse >::unique().
| const_iterator llvm::iplist< NodeTy, Traits >::begin | ( | ) | const [inline] |
| void llvm::iplist< NodeTy, Traits >::clear | ( | ) | [inline] |
Definition at line 548 of file ilist.h.
Referenced by llvm::AliasSetTracker::clear(), PBQP::Graph::clear(), llvm::SparseBitVector< ElementSize >::clear(), llvm::MachineBasicBlock::clear(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::Archive::loadArchive(), llvm::Archive::loadSymbolTable(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::yaml::Scanner::peekNext(), llvm::SlotIndexes::releaseMemory(), llvm::MCAssembler::reset(), llvm::BasicBlock::~BasicBlock(), llvm::Function::~Function(), llvm::iplist< IVStrideUse >::~iplist(), and llvm::Module::~Module().
| void llvm::iplist< NodeTy, Traits >::clearAndLeakNodesUnsafely | ( | ) | [inline] |
Remove all nodes from the list like clear(), but do not call removeNodeFromList() or deleteNode().
This should only be used immediately before freeing nodes in bulk to avoid traversing the list and bringing all the nodes into cache.
Definition at line 473 of file ilist.h.
Referenced by llvm::Recycler< MachineBasicBlock >::clear().
| bool llvm::iplist< NodeTy, Traits >::empty | ( | ) | const [inline] |
Definition at line 385 of file ilist.h.
Referenced by llvm::Module::alias_empty(), llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::iplist< IVStrideUse >::back(), llvm::Recycler< MachineBasicBlock >::clear(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::Function::dropAllReferences(), llvm::IVUsers::empty(), llvm::BasicBlock::empty(), llvm::MachineBasicBlock::empty(), llvm::Archive::empty(), llvm::MachineFunction::empty(), llvm::Function::empty(), llvm::Module::empty(), llvm::MCSectionData::empty(), llvm::SparseBitVector< ElementSize >::empty(), llvm::SparseBitVector< ElementSize >::find_first(), llvm::iplist< IVStrideUse >::front(), llvm::yaml::Scanner::getNext(), llvm::BasicBlock::getTerminator(), llvm::Module::global_empty(), llvm::iplist< IVStrideUse >::insertAfter(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::Module::named_metadata_empty(), llvm::SparseBitVector< ElementSize >::operator&=(), llvm::SparseBitVector< ElementSize >::operator|=(), llvm::yaml::Scanner::peekNext(), llvm::iplist< IVStrideUse >::pop_back(), llvm::iplist< IVStrideUse >::pop_front(), llvm::BasicBlock::removePredecessor(), llvm::SparseBitVector< ElementSize >::reset(), llvm::SlotIndexes::runOnMachineFunction(), llvm::SparseBitVector< ElementSize >::set(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::iplist< IVStrideUse >::splice(), llvm::SparseBitVector< ElementSize >::test(), llvm::iplist< IVStrideUse >::unique(), llvm::Archive::writeToDisk(), and llvm::Recycler< MachineBasicBlock >::~Recycler().
| iterator llvm::iplist< NodeTy, Traits >::end | ( | ) | [inline] |
Definition at line 367 of file ilist.h.
Referenced by llvm::Module::alias_end(), llvm::SelectionDAG::allnodes_end(), llvm::Function::arg_end(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::iplist< IVStrideUse >::clear(), llvm::SparseBitVector< ElementSize >::count(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::SlotIndexes::dump(), PBQP::Graph::edgesEnd(), llvm::IVUsers::end(), llvm::BasicBlock::end(), llvm::Archive::end(), llvm::MachineFunction::end(), llvm::Function::end(), llvm::AliasSetTracker::end(), llvm::Module::end(), llvm::MCSectionData::end(), llvm::MCAssembler::end(), llvm::iplist< IVStrideUse >::erase(), llvm::iplist< IVStrideUse >::erase_if(), PBQP::Graph::findEdge(), llvm::SlotIndexes::getNextNonNullIndex(), llvm::Module::global_end(), llvm::ilist< IVStrideUse >::ilist(), llvm::MachineBasicBlock::instr_end(), llvm::SparseBitVector< ElementSize >::intersects(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::iplist< IVStrideUse >::merge(), llvm::Module::named_metadata_end(), PBQP::Graph::nodesEnd(), llvm::SparseBitVector< ElementSize >::operator&=(), llvm::SparseBitVector< ElementSize >::operator=(), llvm::SparseBitVector< ElementSize >::operator==(), llvm::SparseBitVector< ElementSize >::operator|=(), llvm::iplist< IVStrideUse >::pop_back(), llvm::IVUsers::print(), llvm::iplist< IVStrideUse >::push_back(), llvm::iplist< IVStrideUse >::rbegin(), llvm::iplist< IVStrideUse >::remove(), llvm::SlotIndexes::renumberIndexes(), llvm::SparseBitVector< ElementSize >::reset(), llvm::SparseBitVector< ElementSize >::set(), llvm::SymbolTableListTraits< ValueSubClass, ItemParentClass >::setSymTabObject(), llvm::iplist< IVStrideUse >::size(), llvm::SparseBitVector< ElementSize >::SparseBitVector(), llvm::iplist< IVStrideUse >::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::MCAssembler::symbol_end(), llvm::SparseBitVector< ElementSize >::test(), and llvm::iplist< IVStrideUse >::unique().
| const_iterator llvm::iplist< NodeTy, Traits >::end | ( | ) | const [inline] |
| iterator llvm::iplist< NodeTy, Traits >::erase | ( | iterator | where | ) | [inline] |
Definition at line 463 of file ilist.h.
Referenced by llvm::iplist< IVStrideUse >::clear(), llvm::Archive::erase(), llvm::MachineFunction::erase(), llvm::MachineBasicBlock::erase(), llvm::iplist< IVStrideUse >::erase(), llvm::iplist< IVStrideUse >::erase_if(), llvm::SlotIndexes::eraseIndex(), llvm::Module::eraseNamedMetadata(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), llvm::SparseBitVector< ElementSize >::operator&=(), llvm::iplist< IVStrideUse >::pop_back(), llvm::iplist< IVStrideUse >::pop_front(), PBQP::Graph::removeEdge(), PBQP::Graph::removeNode(), llvm::ReplaceInstWithValue(), llvm::SparseBitVector< ElementSize >::reset(), SRAGlobal(), llvm::iplist< IVStrideUse >::unique(), and llvm::MachineFunction::~MachineFunction().
| iterator llvm::iplist< NodeTy, Traits >::erase | ( | iterator | first, |
| iterator | last | ||
| ) | [inline] |
| void llvm::iplist< NodeTy, Traits >::erase | ( | const NodeTy & | val | ) | [inline] |
| void llvm::iplist< NodeTy, Traits >::erase_if | ( | Pr1 | pred | ) | [inline] |
| reference llvm::iplist< NodeTy, Traits >::front | ( | ) | [inline] |
Definition at line 388 of file ilist.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), llvm::BasicBlock::front(), llvm::MachineBasicBlock::front(), llvm::Archive::front(), llvm::MachineFunction::front(), llvm::Function::front(), llvm::SlotIndexes::getZeroIndex(), and llvm::yaml::Scanner::peekNext().
| const_reference llvm::iplist< NodeTy, Traits >::front | ( | ) | const [inline] |
| iterator llvm::iplist< NodeTy, Traits >::insert | ( | iterator | where, |
| NodeTy * | New | ||
| ) | [inline] |
Definition at line 410 of file ilist.h.
Referenced by llvm::Archive::addFileBefore(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::MCSectionData::getSubsectionInsertionPoint(), llvm::iplist< IVStrideUse >::insert(), llvm::iplist< IVStrideUse >::insertAfter(), llvm::iplist< IVStrideUse >::push_back(), llvm::iplist< IVStrideUse >::push_front(), llvm::ReplaceInstWithInst(), and SRAGlobal().
| void llvm::iplist< NodeTy, Traits >::insert | ( | iterator | where, |
| InIt | first, | ||
| InIt | last | ||
| ) | [inline] |
| iterator llvm::iplist< NodeTy, Traits >::insertAfter | ( | iterator | where, |
| NodeTy * | New | ||
| ) | [inline] |
Definition at line 426 of file ilist.h.
Referenced by llvm::MachineBasicBlock::insertAfter(), and llvm::SlotIndexes::insertMBBInMaps().
| size_type llvm::iplist< NodeTy, Traits >::max_size | ( | ) | const [inline] |
| void llvm::iplist< NodeTy, Traits >::merge | ( | iplist< NodeTy, Traits > & | right, |
| Pr3 | pred | ||
| ) | [inline] |
| void llvm::iplist< NodeTy, Traits >::merge | ( | iplist< NodeTy, Traits > & | right | ) | [inline] |
Definition at line 630 of file ilist.h.
Referenced by llvm::iplist< IVStrideUse >::merge().
| void llvm::iplist< NodeTy, Traits >::pop_back | ( | ) | [inline] |
Definition at line 557 of file ilist.h.
Referenced by llvm::MachineBasicBlock::pop_back().
| void llvm::iplist< NodeTy, Traits >::pop_front | ( | ) | [inline] |
Definition at line 553 of file ilist.h.
Referenced by llvm::yaml::Scanner::getNext(), llvm::MachineBasicBlock::pop_front(), and llvm::BasicBlock::removePredecessor().
| void llvm::iplist< NodeTy, Traits >::push_back | ( | NodeTy * | val | ) | [inline] |
Definition at line 552 of file ilist.h.
Referenced by llvm::Module::getOrInsertFunction(), llvm::Archive::loadArchive(), and llvm::Archive::loadSymbolTable().
| void llvm::iplist< NodeTy, Traits >::push_front | ( | NodeTy * | val | ) | [inline] |
Definition at line 551 of file ilist.h.
Referenced by llvm::Recycler< MachineBasicBlock >::Deallocate().
| reverse_iterator llvm::iplist< NodeTy, Traits >::rbegin | ( | ) | [inline] |
Definition at line 377 of file ilist.h.
Referenced by llvm::MachineBasicBlock::instr_rbegin(), llvm::BasicBlock::rbegin(), llvm::Archive::rbegin(), llvm::MachineFunction::rbegin(), and llvm::MCSectionData::rbegin().
| const_reverse_iterator llvm::iplist< NodeTy, Traits >::rbegin | ( | ) | const [inline] |
| NodeTy* llvm::iplist< NodeTy, Traits >::remove | ( | iterator & | IT | ) | [inline] |
Definition at line 433 of file ilist.h.
Referenced by llvm::Recycler< MachineBasicBlock >::Allocate(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::Recycler< MachineBasicBlock >::clear(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::SlotIndexes::eraseIndex(), llvm::MachineFunction::remove(), llvm::MachineBasicBlock::remove(), llvm::MachineBasicBlock::remove_instr(), and llvm::SelectionDAG::RepositionNode().
| NodeTy* llvm::iplist< NodeTy, Traits >::remove | ( | const iterator & | IT | ) | [inline] |
| reverse_iterator llvm::iplist< NodeTy, Traits >::rend | ( | ) | [inline] |
Definition at line 379 of file ilist.h.
Referenced by llvm::MachineBasicBlock::instr_rend(), llvm::BasicBlock::rend(), llvm::Archive::rend(), llvm::MachineFunction::rend(), and llvm::MCSectionData::rend().
| const_reverse_iterator llvm::iplist< NodeTy, Traits >::rend | ( | ) | const [inline] |
| size_type llvm::iplist< NodeTy, Traits >::size | ( | ) | const [inline] |
Definition at line 537 of file ilist.h.
Referenced by llvm::Module::alias_size(), llvm::SelectionDAG::allnodes_size(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::SelectionDAG::dump(), llvm::Module::named_metadata_size(), llvm::AliasSetTracker::print(), llvm::Recycler< MachineBasicBlock >::PrintStats(), llvm::BasicBlock::size(), llvm::MachineBasicBlock::size(), llvm::Archive::size(), llvm::MachineFunction::size(), llvm::Function::size(), llvm::Module::size(), llvm::MCSectionData::size(), llvm::MCAssembler::size(), and llvm::MCAssembler::symbol_size().
| void llvm::iplist< NodeTy, Traits >::sort | ( | Pr3 | pred | ) |
| void llvm::iplist< NodeTy, Traits >::sort | ( | ) | [inline] |
Definition at line 633 of file ilist.h.
Referenced by llvm::iplist< IVStrideUse >::sort().
| void llvm::iplist< NodeTy, Traits >::splice | ( | iterator | where, |
| iplist< NodeTy, Traits > & | L2 | ||
| ) | [inline] |
Definition at line 568 of file ilist.h.
Referenced by llvm::Archive::splice(), llvm::MachineFunction::splice(), llvm::MachineBasicBlock::splice(), and llvm::BasicBlock::splitBasicBlock().
| void llvm::iplist< NodeTy, Traits >::swap | ( | iplist< NodeTy, Traits > & | RHS | ) | [inline] |
Definition at line 405 of file ilist.h.
Referenced by llvm::iplist< IVStrideUse >::swap(), and std::swap().
| void llvm::iplist< NodeTy, Traits >::unique | ( | Pr2 | pred | ) | [inline] |
| void llvm::iplist< NodeTy, Traits >::unique | ( | ) | [inline] |
Definition at line 615 of file ilist.h.
Referenced by llvm::iplist< IVStrideUse >::unique().