LLVM: include/llvm/ADT/ilist_node_base.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_ADT_ILIST_NODE_BASE_H
10#define LLVM_ADT_ILIST_NODE_BASE_H
11
13
14namespace llvm {
15
17
18template <class NodeBase, bool EnableSentinelTracking> class node_base_prevnext;
19
21 NodeBase *Prev = nullptr;
22 NodeBase *Next = nullptr;
23
24public:
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; }
29
32};
33
36 NodeBase *Next = nullptr;
37
38public:
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; }
43
44 bool isSentinel() const { return PrevAndSentinel.getInt(); }
47};
48
50 ParentTy *Parent = nullptr;
51
52public:
56};
58
59}
60
61
62
63
64template <bool EnableSentinelTracking, class ParentTy>
66 ilist_node_base<EnableSentinelTracking, ParentTy>,
67 EnableSentinelTracking>,
69
70
72
73}
74
75#endif
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.
Definition ilist_node_base.h:49
const ParentTy * getNodeBaseParent() const
Definition ilist_node_base.h:54
ParentTy * getNodeBaseParent()
Definition ilist_node_base.h:55
void setNodeBaseParent(ParentTy *Parent)
Definition ilist_node_base.h:53
void setPrev(NodeBase *Prev)
Definition ilist_node_base.h:25
void initializeSentinel()
Definition ilist_node_base.h:31
NodeBase * getPrev() const
Definition ilist_node_base.h:27
void setNext(NodeBase *Next)
Definition ilist_node_base.h:26
bool isKnownSentinel() const
Definition ilist_node_base.h:30
NodeBase * getNext() const
Definition ilist_node_base.h:28
void setPrev(NodeBase *Prev)
Definition ilist_node_base.h:39
void initializeSentinel()
Definition ilist_node_base.h:46
bool isSentinel() const
Definition ilist_node_base.h:44
void setNext(NodeBase *Next)
Definition ilist_node_base.h:40
bool isKnownSentinel() const
Definition ilist_node_base.h:45
NodeBase * getNext() const
Definition ilist_node_base.h:42
NodeBase * getPrev() const
Definition ilist_node_base.h:41
Definition ilist_node_base.h:18
Base class for ilist nodes.
Definition ilist_node_base.h:68
This is an optimization pass for GlobalISel generic memory operations.