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.