LLVM 22.0.0git
llvm::CallbackVH Class Reference

Value handle with callbacks on RAUW and destruction. More...

#include "llvm/IR/ValueHandle.h"

Inheritance diagram for llvm::CallbackVH:
[legend]

Public Member Functions

 CallbackVH ()
 CallbackVH (Value *P)
 CallbackVH (const Value *P)
 operator Value * () const
virtual void deleted ()
 Callback for Value destruction.
virtual void allUsesReplacedWith (Value *)
 Callback for Value RAUW.
Public Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (HandleBaseKind Kind)
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 ~ValueHandleBase ()
Valueoperator= (Value *RHS)
Valueoperator= (const ValueHandleBase &RHS)
Valueoperator-> () const
Valueoperator* () const

Protected Member Functions

 ~CallbackVH ()=default
 CallbackVH (const CallbackVH &)=default
CallbackVHoperator= (const CallbackVH &)=default
void setValPtr (Value *P)
Protected Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (const ValueHandleBase &RHS)
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
ValuegetValPtr () const
LLVM_ABI void RemoveFromUseList ()
 Remove this ValueHandle from its current use list.
void clearValPtr ()
 Clear the underlying pointer without clearing the use list.

Additional Inherited Members

Static Public Member Functions inherited from llvm::ValueHandleBase
static LLVM_ABI void ValueIsDeleted (Value *V)
static LLVM_ABI void ValueIsRAUWd (Value *Old, Value *New)
Protected Types inherited from llvm::ValueHandleBase
enum  HandleBaseKind { Assert , Callback , Weak , WeakTracking }
 This indicates what sub class the handle actually is. More...
Static Protected Member Functions inherited from llvm::ValueHandleBase
static bool isValid (Value *V)

Detailed Description

Value handle with callbacks on RAUW and destruction.

This is a value handle that allows subclasses to define callbacks that run when the underlying Value has RAUW called on it or is destroyed. This class can be used as the key of a map, as long as the user takes it out of the map before calling setValPtr() (since the map has to rearrange itself when the pointer changes). Unlike ValueHandleBase, this class has a vtable.

Definition at line 384 of file ValueHandle.h.

Constructor & Destructor Documentation

◆ ~CallbackVH()

llvm::CallbackVH::~CallbackVH ( )
protecteddefault

◆ CallbackVH() [1/4]

◆ CallbackVH() [2/4]

llvm::CallbackVH::CallbackVH ( )
inline

◆ CallbackVH() [3/4]

llvm::CallbackVH::CallbackVH ( Value * P)
inline

◆ CallbackVH() [4/4]

llvm::CallbackVH::CallbackVH ( const Value * P)
inline

Definition at line 398 of file ValueHandle.h.

References CallbackVH(), P, and llvm::ValueHandleBase::Value.

Member Function Documentation

◆ allUsesReplacedWith()

virtual void llvm::CallbackVH::allUsesReplacedWith ( Value * )
inlinevirtual

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.

Reimplemented in llvm::PreservedCFGCheckerInstrumentation::BBGuard, and llvm::ValueMapCallbackVH< KeyT, ValueT, Config >.

Definition at line 424 of file ValueHandle.h.

References llvm::ValueHandleBase::Value.

◆ deleted()

virtual void llvm::CallbackVH::deleted ( )
inlinevirtual

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.

Reimplemented in llvm::bfi_detail::BFICallbackVH< BasicBlock, BFIImplT >, llvm::PreservedCFGCheckerInstrumentation::BBGuard, and llvm::ValueMapCallbackVH< KeyT, ValueT, Config >.

Definition at line 415 of file ValueHandle.h.

References setValPtr().

Referenced by llvm::PreservedCFGCheckerInstrumentation::BBGuard::allUsesReplacedWith(), and llvm::PreservedCFGCheckerInstrumentation::BBGuard::deleted().

◆ operator Value *()

llvm::CallbackVH::operator Value * ( ) const
inline

◆ operator=()

CallbackVH & llvm::CallbackVH::operator= ( const CallbackVH & )
protecteddefault

References CallbackVH().

◆ setValPtr()

void llvm::CallbackVH::setValPtr ( Value * P)
inlineprotected

The documentation for this class was generated from the following files: