Home | History | Annotate | Download | only in Support

Lines Matching refs:ValueHandleBase

22 class ValueHandleBase;
24 // ValueHandleBase** is only 4-byte aligned.
26 class PointerLikeTypeTraits<ValueHandleBase**> {
28 static inline void *getAsVoidPointer(ValueHandleBase** P) { return P; }
29 static inline ValueHandleBase **getFromVoidPointer(void *P) {
30 return static_cast<ValueHandleBase**>(P);
35 /// ValueHandleBase - This is the common base class of value handles.
40 class ValueHandleBase {
54 PointerIntPair<ValueHandleBase**, 2, HandleBaseKind> PrevPair;
55 ValueHandleBase *Next;
58 explicit ValueHandleBase(const ValueHandleBase&); // DO NOT IMPLEMENT.
60 explicit ValueHandleBase(HandleBaseKind Kind)
62 ValueHandleBase(HandleBaseKind Kind, Value *V)
67 ValueHandleBase(HandleBaseKind Kind, const ValueHandleBase &RHS)
72 ~ValueHandleBase() {
85 Value *operator=(const ValueHandleBase &RHS) {
110 ValueHandleBase **getPrevPtr() const { return PrevPair.getPointer(); }
112 void setPrevPtr(ValueHandleBase **Ptr) { PrevPair.setPointer(Ptr); }
117 void AddToExistingUseList(ValueHandleBase **List);
121 void AddToExistingUseListAfter(ValueHandleBase *Node);
134 class WeakVH : public ValueHandleBase {
136 WeakVH() : ValueHandleBase(Weak) {}
137 WeakVH(Value *P) : ValueHandleBase(Weak, P) {}
139 : ValueHandleBase(Weak, RHS) {}
142 return ValueHandleBase::operator=(RHS);
144 Value *operator=(const ValueHandleBase &RHS) {
145 return ValueHandleBase::operator=(RHS);
180 : public ValueHandleBase
186 return static_cast<ValueTy*>(ValueHandleBase::getValPtr());
189 ValueHandleBase::operator=(GetAsValue(P));
204 AssertingVH() : ValueHandleBase(Assert) {}
205 AssertingVH(ValueTy *P) : ValueHandleBase(Assert, GetAsValue(P)) {}
206 AssertingVH(const AssertingVH &RHS) : ValueHandleBase(Assert, RHS) {}
282 class TrackingVH : public ValueHandleBase {
284 Value *VP = ValueHandleBase::getValPtr();
292 assert(ValueHandleBase::isValid(VP) && "Tracked Value was deleted!");
304 return (ValueTy*)ValueHandleBase::getValPtr();
308 ValueHandleBase::operator=(GetAsValue(P));
317 TrackingVH() : ValueHandleBase(Tracking) {}
318 TrackingVH(ValueTy *P) : ValueHandleBase(Tracking, GetAsValue(P)) {}
319 TrackingVH(const TrackingVH &RHS) : ValueHandleBase(Tracking, RHS) {}
354 /// rearrange itself when the pointer changes). Unlike ValueHandleBase, this
356 class CallbackVH : public ValueHandleBase {
359 : ValueHandleBase(Callback, RHS) {}
364 ValueHandleBase::operator=(P);
368 CallbackVH() : ValueHandleBase(Callback) {}
369 CallbackVH(Value *P) : ValueHandleBase(Callback, P) {}