class iplist_impl
Declaration
template <class IntrusiveListT, class TraitsT>
class iplist_impl { /* full declaration omitted */ };
Description
A wrapper around an intrusive list with callbacks and non-intrusive ownership. This wraps a purely intrusive list (like simple_ilist) with a configurable traits class. The traits can implement callbacks and customize the ownership semantics. This is a subset of ilist 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 an ilist_sentinel, which holds pointers to the first and last nodes in the list.
Declared at: llvm/include/llvm/ADT/ilist.h:166
Templates
- IntrusiveListT
- TraitsT
Method Overview
- public void clear()
- public void clearAndLeakNodesUnsafely()
- public template <class Cloner>void cloneFrom(const iplist_impl<IntrusiveListT, TraitsT> & L2, Cloner clone)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::iterator first, llvm::iplist_impl::iterator last)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::iterator where)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::pointer IT)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::reference IT)
- public llvm::iplist_impl::const_pointer getNextNode(llvm::iplist_impl::const_reference N) const
- public llvm::iplist_impl::pointer getNextNode(llvm::iplist_impl::reference N) const
- public llvm::iplist_impl::const_pointer getPrevNode(llvm::iplist_impl::const_reference N) const
- public llvm::iplist_impl::pointer getPrevNode(llvm::iplist_impl::reference N) const
- public template <class InIt>void insert(llvm::iplist_impl::iterator where, InIt first, InIt last)
- public llvm::iplist_impl::iterator insert(llvm::iplist_impl::iterator where, llvm::iplist_impl::pointer New)
- public llvm::iplist_impl::iterator insert(llvm::iplist_impl::iterator where, llvm::iplist_impl::const_reference New)
- public llvm::iplist_impl::iterator insertAfter(llvm::iplist_impl::iterator where, llvm::iplist_impl::pointer New)
- public iplist_impl<IntrusiveListT, TraitsT>(const iplist_impl<IntrusiveListT, TraitsT> &)
- public iplist_impl<IntrusiveListT, TraitsT>()
- public iplist_impl<IntrusiveListT, TraitsT>(iplist_impl<IntrusiveListT, TraitsT> && X)
- public llvm::iplist_impl::size_type max_size() const
- public template <class Compare>void merge(iplist_impl<IntrusiveListT, TraitsT> & Right, Compare comp)
- public void merge(iplist_impl<IntrusiveListT, TraitsT> & Right)
- public void pop_back()
- public void pop_front()
- public void push_back(llvm::iplist_impl::pointer val)
- public void push_front(llvm::iplist_impl::pointer val)
- public llvm::iplist_impl::pointer remove(llvm::iplist_impl::pointer IT)
- public llvm::iplist_impl::pointer remove(llvm::iplist_impl::iterator & IT)
- public llvm::iplist_impl::pointer remove(const llvm::iplist_impl::iterator & IT)
- public llvm::iplist_impl::pointer remove(llvm::iplist_impl::reference IT)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::pointer N)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::reference N)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::iterator first, llvm::iplist_impl::iterator last)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::iterator first)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2)
- public void swap(iplist_impl<IntrusiveListT, TraitsT> & RHS)
- public ~iplist_impl<IntrusiveListT, TraitsT>()
Methods
¶void clear()
void clear()
Declared at: llvm/include/llvm/ADT/ilist.h:307
¶void clearAndLeakNodesUnsafely()
void clearAndLeakNodesUnsafely()
Description
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.
Declared at: llvm/include/llvm/ADT/ilist.h:278
¶template <class Cloner>
void cloneFrom(const iplist_impl<IntrusiveListT,
TraitsT>& L2,
Cloner clone)
template <class Cloner>
void cloneFrom(const iplist_impl<IntrusiveListT,
TraitsT>& L2,
Cloner clone)
Description
Clone another list.
Declared at: llvm/include/llvm/ADT/ilist.h:243
Templates
- Cloner
Parameters
- const iplist_impl<IntrusiveListT, TraitsT>& L2
- Cloner clone
¶llvm::iplist_impl::iterator erase(
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
llvm::iplist_impl::iterator erase(
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
Declared at: llvm/include/llvm/ADT/ilist.h:301
Parameters
- llvm::iplist_impl::iterator first
- llvm::iplist_impl::iterator last
¶llvm::iplist_impl::iterator erase(
llvm::iplist_impl::iterator where)
llvm::iplist_impl::iterator erase(
llvm::iplist_impl::iterator where)
Declared at: llvm/include/llvm/ADT/ilist.h:265
Parameters
- llvm::iplist_impl::iterator where
¶llvm::iplist_impl::iterator erase(
llvm::iplist_impl::pointer IT)
llvm::iplist_impl::iterator erase(
llvm::iplist_impl::pointer IT)
Declared at: llvm/include/llvm/ADT/ilist.h:270
Parameters
- llvm::iplist_impl::pointer IT
¶llvm::iplist_impl::iterator erase(
llvm::iplist_impl::reference IT)
llvm::iplist_impl::iterator erase(
llvm::iplist_impl::reference IT)
Declared at: llvm/include/llvm/ADT/ilist.h:271
Parameters
- llvm::iplist_impl::reference IT
¶llvm::iplist_impl::const_pointer getNextNode(
llvm::iplist_impl::const_reference N) const
llvm::iplist_impl::const_pointer getNextNode(
llvm::iplist_impl::const_reference N) const
Description
Get the next node, or \c nullptr for the list tail.
Declared at: llvm/include/llvm/ADT/ilist.h:377
Parameters
- llvm::iplist_impl::const_reference N
¶llvm::iplist_impl::pointer getNextNode(
llvm::iplist_impl::reference N) const
llvm::iplist_impl::pointer getNextNode(
llvm::iplist_impl::reference N) const
Description
Get the next node, or \c nullptr for the list tail.
Declared at: llvm/include/llvm/ADT/ilist.h:370
Parameters
- llvm::iplist_impl::reference N
¶llvm::iplist_impl::const_pointer getPrevNode(
llvm::iplist_impl::const_reference N) const
llvm::iplist_impl::const_pointer getPrevNode(
llvm::iplist_impl::const_reference N) const
Description
Get the previous node, or \c nullptr for the list head.
Declared at: llvm/include/llvm/ADT/ilist.h:365
Parameters
- llvm::iplist_impl::const_reference N
¶llvm::iplist_impl::pointer getPrevNode(
llvm::iplist_impl::reference N) const
llvm::iplist_impl::pointer getPrevNode(
llvm::iplist_impl::reference N) const
Description
Get the previous node, or \c nullptr for the list head.
Declared at: llvm/include/llvm/ADT/ilist.h:358
Parameters
- llvm::iplist_impl::reference N
¶template <class InIt>
void insert(llvm::iplist_impl::iterator where,
InIt first,
InIt last)
template <class InIt>
void insert(llvm::iplist_impl::iterator where,
InIt first,
InIt last)
Declared at: llvm/include/llvm/ADT/ilist.h:322
Templates
- InIt
Parameters
- llvm::iplist_impl::iterator where
- InIt first
- InIt last
¶llvm::iplist_impl::iterator insert(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::pointer New)
llvm::iplist_impl::iterator insert(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::pointer New)
Declared at: llvm/include/llvm/ADT/ilist.h:226
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::pointer New
¶llvm::iplist_impl::iterator insert(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::const_reference New)
llvm::iplist_impl::iterator insert(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::const_reference New)
Declared at: llvm/include/llvm/ADT/ilist.h:231
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::const_reference New
¶llvm::iplist_impl::iterator insertAfter(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::pointer New)
llvm::iplist_impl::iterator insertAfter(
llvm::iplist_impl::iterator where,
llvm::iplist_impl::pointer New)
Declared at: llvm/include/llvm/ADT/ilist.h:235
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::pointer New
¶iplist_impl<IntrusiveListT, TraitsT>(
const iplist_impl<IntrusiveListT, TraitsT>&)
iplist_impl<IntrusiveListT, TraitsT>(
const iplist_impl<IntrusiveListT, TraitsT>&)
Declared at: llvm/include/llvm/ADT/ilist.h:197
Parameters
- const iplist_impl<IntrusiveListT, TraitsT>&
¶iplist_impl<IntrusiveListT, TraitsT>()
iplist_impl<IntrusiveListT, TraitsT>()
Declared at: llvm/include/llvm/ADT/ilist.h:195
¶iplist_impl<IntrusiveListT, TraitsT>(
iplist_impl<IntrusiveListT, TraitsT>&& X)
iplist_impl<IntrusiveListT, TraitsT>(
iplist_impl<IntrusiveListT, TraitsT>&& X)
Declared at: llvm/include/llvm/ADT/ilist.h:200
Parameters
- iplist_impl<IntrusiveListT, TraitsT>&& X
¶llvm::iplist_impl::size_type max_size() const
llvm::iplist_impl::size_type max_size() const
Declared at: llvm/include/llvm/ADT/ilist.h:211
¶template <class Compare>
void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right,
Compare comp)
template <class Compare>
void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right,
Compare comp)
Declared at: llvm/include/llvm/ADT/ilist.h:347
Templates
- Compare
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& Right
- Compare comp
¶void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right)
void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right)
Declared at: llvm/include/llvm/ADT/ilist.h:353
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& Right
¶void pop_back()
void pop_back()
Declared at: llvm/include/llvm/ADT/ilist.h:316
¶void pop_front()
void pop_front()
Declared at: llvm/include/llvm/ADT/ilist.h:312
¶void push_back(llvm::iplist_impl::pointer val)
void push_back(llvm::iplist_impl::pointer val)
Declared at: llvm/include/llvm/ADT/ilist.h:311
Parameters
- llvm::iplist_impl::pointer val
¶void push_front(llvm::iplist_impl::pointer val)
void push_front(llvm::iplist_impl::pointer val)
Declared at: llvm/include/llvm/ADT/ilist.h:310
Parameters
- llvm::iplist_impl::pointer val
¶llvm::iplist_impl::pointer remove(
llvm::iplist_impl::pointer IT)
llvm::iplist_impl::pointer remove(
llvm::iplist_impl::pointer IT)
Declared at: llvm/include/llvm/ADT/ilist.h:261
Parameters
- llvm::iplist_impl::pointer IT
¶llvm::iplist_impl::pointer remove(
llvm::iplist_impl::iterator& IT)
llvm::iplist_impl::pointer remove(
llvm::iplist_impl::iterator& IT)
Declared at: llvm/include/llvm/ADT/ilist.h:249
Parameters
- llvm::iplist_impl::iterator& IT
¶llvm::iplist_impl::pointer remove(
const llvm::iplist_impl::iterator& IT)
llvm::iplist_impl::pointer remove(
const llvm::iplist_impl::iterator& IT)
Declared at: llvm/include/llvm/ADT/ilist.h:256
Parameters
- const llvm::iplist_impl::iterator& IT
¶llvm::iplist_impl::pointer remove(
llvm::iplist_impl::reference IT)
llvm::iplist_impl::pointer remove(
llvm::iplist_impl::reference IT)
Declared at: llvm/include/llvm/ADT/ilist.h:262
Parameters
- llvm::iplist_impl::reference IT
¶void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::pointer N)
void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::pointer N)
Declared at: llvm/include/llvm/ADT/ilist.h:342
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::pointer N
¶void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::reference N)
void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::reference N)
Declared at: llvm/include/llvm/ADT/ilist.h:339
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::reference N
¶void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
Declared at: llvm/include/llvm/ADT/ilist.h:336
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::iterator first
- llvm::iplist_impl::iterator last
¶void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first)
void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first)
Declared at: llvm/include/llvm/ADT/ilist.h:331
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::iterator first
¶void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2)
void splice(
llvm::iplist_impl::iterator where,
iplist_impl<IntrusiveListT, TraitsT>& L2)
Declared at: llvm/include/llvm/ADT/ilist.h:327
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
¶void swap(
iplist_impl<IntrusiveListT, TraitsT>& RHS)
void swap(
iplist_impl<IntrusiveListT, TraitsT>& RHS)
Declared at: llvm/include/llvm/ADT/ilist.h:221
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& RHS
¶~iplist_impl<IntrusiveListT, TraitsT>()
~iplist_impl<IntrusiveListT, TraitsT>()
Declared at: llvm/include/llvm/ADT/ilist.h:208