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:167
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::reference IT)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::pointer IT)
- public llvm::iplist_impl::iterator erase(llvm::iplist_impl::iterator where)
- 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 llvm::iplist_impl::iterator insert(llvm::iplist_impl::iterator where, llvm::iplist_impl::const_reference New)
- public llvm::iplist_impl::iterator insert(llvm::iplist_impl::iterator where, llvm::iplist_impl::pointer New)
- public template <class InIt>void insert(llvm::iplist_impl::iterator where, InIt first, InIt last)
- public llvm::iplist_impl::iterator insertAfter(llvm::iplist_impl::iterator where, llvm::iplist_impl::pointer New)
- public iplist_impl<IntrusiveListT, TraitsT>(iplist_impl<IntrusiveListT, TraitsT> && X)
- public iplist_impl<IntrusiveListT, TraitsT>(const iplist_impl<IntrusiveListT, TraitsT> &)
- public iplist_impl<IntrusiveListT, TraitsT>()
- public llvm::iplist_impl::size_type max_size() const
- public void merge(iplist_impl<IntrusiveListT, TraitsT> & Right)
- public template <class Compare>void merge(iplist_impl<IntrusiveListT, TraitsT> & Right, Compare comp)
- private static bool op_equal(llvm::iplist_impl::const_reference L, llvm::iplist_impl::const_reference R)
- private static bool op_less(llvm::iplist_impl::const_reference L, llvm::iplist_impl::const_reference R)
- 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::reference IT)
- public llvm::iplist_impl::pointer remove(llvm::iplist_impl::pointer IT)
- public llvm::iplist_impl::pointer remove(const llvm::iplist_impl::iterator & IT)
- public llvm::iplist_impl::pointer remove(llvm::iplist_impl::iterator & IT)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2)
- 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, 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::reference N)
- public void splice(llvm::iplist_impl::iterator where, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::pointer N)
- public void swap(iplist_impl<IntrusiveListT, TraitsT> & RHS)
- private void transfer(llvm::iplist_impl::iterator position, iplist_impl<IntrusiveListT, TraitsT> & L2, llvm::iplist_impl::iterator first, llvm::iplist_impl::iterator last)
- public ~iplist_impl<IntrusiveListT, TraitsT>()
Methods
¶void clear()
void clear()
Declared at: llvm/include/llvm/ADT/ilist.h:310
¶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:281
¶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:246
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:304
Parameters
- llvm::iplist_impl::iterator first
- llvm::iplist_impl::iterator last
¶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:274
Parameters
- llvm::iplist_impl::reference IT
¶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:273
Parameters
- llvm::iplist_impl::pointer IT
¶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:268
Parameters
- llvm::iplist_impl::iterator where
¶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:380
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:373
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:368
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:361
Parameters
- llvm::iplist_impl::reference N
¶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:234
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::const_reference New
¶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:229
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::pointer New
¶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:325
Templates
- InIt
Parameters
- llvm::iplist_impl::iterator where
- InIt first
- InIt last
¶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:238
Parameters
- llvm::iplist_impl::iterator where
- llvm::iplist_impl::pointer New
¶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:201
Parameters
- iplist_impl<IntrusiveListT, TraitsT>&& X
¶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:198
Parameters
- const iplist_impl<IntrusiveListT, TraitsT>&
¶iplist_impl<IntrusiveListT, TraitsT>()
iplist_impl<IntrusiveListT, TraitsT>()
Declared at: llvm/include/llvm/ADT/ilist.h:196
¶llvm::iplist_impl::size_type max_size() const
llvm::iplist_impl::size_type max_size() const
Declared at: llvm/include/llvm/ADT/ilist.h:214
¶void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right)
void merge(
iplist_impl<IntrusiveListT, TraitsT>& Right)
Declared at: llvm/include/llvm/ADT/ilist.h:356
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& Right
¶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:350
Templates
- Compare
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& Right
- Compare comp
¶static bool op_equal(
llvm::iplist_impl::const_reference L,
llvm::iplist_impl::const_reference R)
static bool op_equal(
llvm::iplist_impl::const_reference L,
llvm::iplist_impl::const_reference R)
Declared at: llvm/include/llvm/ADT/ilist.h:193
Parameters
- llvm::iplist_impl::const_reference L
- llvm::iplist_impl::const_reference R
¶static bool op_less(
llvm::iplist_impl::const_reference L,
llvm::iplist_impl::const_reference R)
static bool op_less(
llvm::iplist_impl::const_reference L,
llvm::iplist_impl::const_reference R)
Declared at: llvm/include/llvm/ADT/ilist.h:192
Parameters
- llvm::iplist_impl::const_reference L
- llvm::iplist_impl::const_reference R
¶void pop_back()
void pop_back()
Declared at: llvm/include/llvm/ADT/ilist.h:319
¶void pop_front()
void pop_front()
Declared at: llvm/include/llvm/ADT/ilist.h:315
¶void push_back(llvm::iplist_impl::pointer val)
void push_back(llvm::iplist_impl::pointer val)
Declared at: llvm/include/llvm/ADT/ilist.h:314
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:313
Parameters
- llvm::iplist_impl::pointer val
¶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:265
Parameters
- llvm::iplist_impl::reference IT
¶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:264
Parameters
- llvm::iplist_impl::pointer 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:259
Parameters
- const llvm::iplist_impl::iterator& 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:252
Parameters
- llvm::iplist_impl::iterator& IT
¶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:330
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
¶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:334
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,
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:339
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::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:342
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::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:345
Parameters
- llvm::iplist_impl::iterator where
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::pointer N
¶void swap(
iplist_impl<IntrusiveListT, TraitsT>& RHS)
void swap(
iplist_impl<IntrusiveListT, TraitsT>& RHS)
Declared at: llvm/include/llvm/ADT/ilist.h:224
Parameters
- iplist_impl<IntrusiveListT, TraitsT>& RHS
¶void transfer(
llvm::iplist_impl::iterator position,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
void transfer(
llvm::iplist_impl::iterator position,
iplist_impl<IntrusiveListT, TraitsT>& L2,
llvm::iplist_impl::iterator first,
llvm::iplist_impl::iterator last)
Declared at: llvm/include/llvm/ADT/ilist.h:287
Parameters
- llvm::iplist_impl::iterator position
- iplist_impl<IntrusiveListT, TraitsT>& L2
- llvm::iplist_impl::iterator first
- llvm::iplist_impl::iterator last
¶~iplist_impl<IntrusiveListT, TraitsT>()
~iplist_impl<IntrusiveListT, TraitsT>()
Declared at: llvm/include/llvm/ADT/ilist.h:211