LLVM 20.0.0git
|
This file defines classes to implement an intrusive doubly linked list class (i.e. More...
Go to the source code of this file.
Classes | |
struct | llvm::ilist_alloc_traits< NodeTy > |
Use delete by default for iplist and ilist. More... | |
struct | llvm::ilist_noalloc_traits< NodeTy > |
Custom traits to do nothing on deletion. More... | |
struct | llvm::ilist_callback_traits< NodeTy > |
Callbacks do nothing by default in iplist and ilist. More... | |
struct | llvm::ilist_node_traits< NodeTy > |
A fragment for template traits for intrusive list that provides default node related operations. More... | |
struct | llvm::ilist_traits< NodeTy > |
Template traits for intrusive list. More... | |
struct | llvm::ilist_traits< const Ty > |
Const traits should never be instantiated. More... | |
class | llvm::iplist_impl< IntrusiveListT, TraitsT > |
A wrapper around an intrusive list with callbacks and non-intrusive ownership. More... | |
class | llvm::iplist< T, Options > |
An intrusive list with ownership and callbacks specified/controlled by ilist_traits, only with API safe for polymorphic types. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | std |
Implement std::hash so that hash_code can be used in STL containers. | |
Typedefs | |
template<class T , class... Options> | |
using | llvm::ilist = iplist< T, Options... > |
Functions | |
template<class Ty > | |
void | std::swap (llvm::iplist< Ty > &Left, llvm::iplist< Ty > &Right) |
This file defines classes to implement an intrusive doubly linked list class (i.e.
each node of the list must contain a next and previous field for the list.
The ilist class itself should be a plug in replacement for list. This list replacement does not provide a constant time size() method, so be careful to use empty() when you really want to know if it's empty.
The ilist class is implemented as a circular list. The list itself contains a sentinel node, whose Next points at begin() and whose Prev points at rbegin(). The sentinel node itself serves as end() and rend().
Definition in file ilist.h.