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

Declared at: llvm/include/llvm/ADT/ilist.h:307

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)

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)

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)

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)

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)

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

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

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

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

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)

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)

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)

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)

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

Declared at: llvm/include/llvm/ADT/ilist.h:197

Parameters

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

Declared at: llvm/include/llvm/ADT/ilist.h:200

Parameters

iplist_impl<IntrusiveListT, TraitsT>&& X

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)

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)

Declared at: llvm/include/llvm/ADT/ilist.h:353

Parameters

iplist_impl<IntrusiveListT, TraitsT>& Right

void pop_back()

Declared at: llvm/include/llvm/ADT/ilist.h:316

void pop_front()

Declared at: llvm/include/llvm/ADT/ilist.h:312

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Declared at: llvm/include/llvm/ADT/ilist.h:221

Parameters

iplist_impl<IntrusiveListT, TraitsT>& RHS

~iplist_impl<IntrusiveListT, TraitsT>()

Declared at: llvm/include/llvm/ADT/ilist.h:208