class PhiValues::PhiValuesCallbackVH
Declaration
class PhiValues::PhiValuesCallbackVH : public CallbackVH { /* full declaration omitted */ };
Description
A CallbackVH to notify PhiValues when a value is deleted or replaced, so that the cached information for that value can be cleared to avoid dangling pointers to invalid values.
Declared at: llvm/include/llvm/Analysis/PhiValues.h:90
Inherits from: CallbackVH
Member Variables
- private llvm::PhiValues* PV
Method Overview
- public PhiValuesCallbackVH(llvm::Value * V, llvm::PhiValues * PV = nullptr)
- private void allUsesReplacedWith(llvm::Value * New)
- private void deleted()
Inherited from CallbackVH:
Inherited from ValueHandleBase:
- protected RemoveFromUseList
- public ValueIsDeleted
- public ValueIsRAUWd
- protected clearValPtr
- protected getValPtr
- protected isValid
Methods
¶PhiValuesCallbackVH(llvm::Value* V,
llvm::PhiValues* PV = nullptr)
PhiValuesCallbackVH(llvm::Value* V,
llvm::PhiValues* PV = nullptr)
Declared at: llvm/include/llvm/Analysis/PhiValues.h:96
Parameters
- llvm::Value* V
- llvm::PhiValues* PV = nullptr
¶void allUsesReplacedWith(llvm::Value* New)
void allUsesReplacedWith(llvm::Value* New)
Description
Callback for Value RAUW. Called when this->getValPtr()->replaceAllUsesWith(new_value) is called, _before_ any of the uses have actually been replaced. If WeakTrackingVH were implemented as a CallbackVH, it would use this method to call setValPtr(new_value). AssertingVH would do nothing in this method.
Declared at: llvm/include/llvm/Analysis/PhiValues.h:93
Parameters
- llvm::Value* New
¶void deleted()
void deleted()
Description
Callback for Value destruction. Called when this->getValPtr() is destroyed, inside ~Value(), so you may call any non-virtual Value method on getValPtr(), but no subclass methods. If WeakTrackingVH were implemented as a CallbackVH, it would use this method to call setValPtr(NULL). AssertingVH would use this method to cause an assertion failure. All implementations must remove the reference from this object to the Value that's being destroyed.
Declared at: llvm/include/llvm/Analysis/PhiValues.h:92