10 #ifndef LLVM_ADT_ILIST_BASE_H
11 #define LLVM_ADT_ILIST_BASE_H
16 #include <type_traits>
21 template <
bool EnableSentinelTracking>
class ilist_base {
51 First.setPrev(
nullptr);
52 Final->setNext(
nullptr);
57 if (&Next == &Last || &First == &Last)
63 "Insertion point can't be one of the transferred nodes");
68 First.getPrev()->setNext(&Last);
69 Last.setPrev(First.getPrev());
95 #endif // LLVM_ADT_ILIST_BASE_H
static void insertBefore(T &Next, T &N)
static void transferBefore(T &Next, T &First, T &Last)
static void removeImpl(node_base_type &N)
static void insertBeforeImpl(node_base_type &Next, node_base_type &N)
Base class for ilist nodes.
static void transferBeforeImpl(node_base_type &Next, node_base_type &First, node_base_type &Last)
static void removeRange(T &First, T &Last)
Implementations of list algorithms using ilist_node_base.
ilist_node_base< EnableSentinelTracking > node_base_type
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
static void removeRangeImpl(node_base_type &First, node_base_type &Last)