9#ifndef LLVM_ADT_ILIST_NODE_BASE_H
10#define LLVM_ADT_ILIST_NODE_BASE_H
16namespace ilist_detail {
21 NodeBase *Prev =
nullptr;
22 NodeBase *Next =
nullptr;
25 void setPrev(NodeBase *Prev) { this->Prev = Prev; }
26 void setNext(NodeBase *Next) { this->Next = Next; }
27 NodeBase *
getPrev()
const {
return Prev; }
28 NodeBase *
getNext()
const {
return Next; }
36 NodeBase *Next =
nullptr;
39 void setPrev(NodeBase *Prev) { PrevAndSentinel.setPointer(Prev); }
40 void setNext(NodeBase *Next) { this->Next = Next; }
41 NodeBase *
getPrev()
const {
return PrevAndSentinel.getPointer(); }
42 NodeBase *
getNext()
const {
return Next; }
44 bool isSentinel()
const {
return PrevAndSentinel.getInt(); }
50 ParentTy *Parent =
nullptr;
64template <
bool EnableSentinelTracking,
class ParentTy>
66 ilist_node_base<EnableSentinelTracking, ParentTy>,
67 EnableSentinelTracking>,
static bool isSentinel(const DWARFDebugNames::AttributeEncoding &AE)
This file defines the PointerIntPair class.
PointerIntPair - This class implements a pair of a pointer and small integer.
const ParentTy * getNodeBaseParent() const
ParentTy * getNodeBaseParent()
void setNodeBaseParent(ParentTy *Parent)
void setPrev(NodeBase *Prev)
void initializeSentinel()
NodeBase * getPrev() const
void setNext(NodeBase *Next)
bool isKnownSentinel() const
NodeBase * getNext() const
void setPrev(NodeBase *Prev)
void initializeSentinel()
void setNext(NodeBase *Next)
bool isKnownSentinel() const
NodeBase * getNext() const
NodeBase * getPrev() const
Base class for ilist nodes.
This is an optimization pass for GlobalISel generic memory operations.