LLVM 22.0.0git
llvm::ValueMapCallbackVH< KeyT, ValueT, Config > Class Template Reference

#include "llvm/IR/ValueMap.h"

Inheritance diagram for llvm::ValueMapCallbackVH< KeyT, ValueT, Config >:
[legend]

Public Member Functions

KeyT Unwrap () const
void deleted () override
 Callback for Value destruction.
void allUsesReplacedWith (Value *new_key) override
 Callback for Value RAUW.
Public Member Functions inherited from llvm::CallbackVH
 CallbackVH ()
 CallbackVH (Value *P)
 CallbackVH (const Value *P)
 operator Value * () const
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

Friends

class ValueMap< KeyT, ValueT, Config >
struct DenseMapInfo< ValueMapCallbackVH >

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...
Protected Member Functions inherited from llvm::CallbackVH
 ~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.
Static Protected Member Functions inherited from llvm::ValueHandleBase
static bool isValid (Value *V)

Detailed Description

template<typename KeyT, typename ValueT, typename Config>
class llvm::ValueMapCallbackVH< KeyT, ValueT, Config >

Definition at line 245 of file ValueMap.h.

Member Function Documentation

◆ allUsesReplacedWith()

template<typename KeyT, typename ValueT, typename Config>
void llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::allUsesReplacedWith ( Value * )
inlineoverridevirtual

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 from llvm::CallbackVH.

Definition at line 275 of file ValueMap.h.

References assert(), llvm::cast(), I, and llvm::isa().

◆ deleted()

template<typename KeyT, typename ValueT, typename Config>
void llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::deleted ( )
inlineoverridevirtual

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 from llvm::CallbackVH.

Definition at line 264 of file ValueMap.h.

◆ Unwrap()

template<typename KeyT, typename ValueT, typename Config>
KeyT llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::Unwrap ( ) const
inline

◆ DenseMapInfo< ValueMapCallbackVH >

template<typename KeyT, typename ValueT, typename Config>
friend struct DenseMapInfo< ValueMapCallbackVH >
friend

Definition at line 233 of file ValueMap.h.

◆ ValueMap< KeyT, ValueT, Config >

template<typename KeyT, typename ValueT, typename Config>
friend class ValueMap< KeyT, ValueT, Config >
friend

Definition at line 233 of file ValueMap.h.


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