LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
llvm::ValueHandleBase Class Reference

This is the common base class of value handles. More...

#include "llvm/IR/ValueHandle.h"

Inheritance diagram for llvm::ValueHandleBase:
Inheritance graph
[legend]

Public Member Functions

 ValueHandleBase (HandleBaseKind Kind)
 
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 
 ~ValueHandleBase ()
 
Valueoperator= (Value *RHS)
 
Valueoperator= (const ValueHandleBase &RHS)
 
Valueoperator-> () const
 
Valueoperator* () const
 

Static Public Member Functions

static void ValueIsDeleted (Value *V)
 
static void ValueIsRAUWd (Value *Old, Value *New)
 

Protected Types

enum  HandleBaseKind { Assert , Callback , Weak , WeakTracking }
 This indicates what sub class the handle actually is. More...
 

Protected Member Functions

 ValueHandleBase (const ValueHandleBase &RHS)
 
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
 
ValuegetValPtr () const
 
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

static bool isValid (Value *V)
 

Friends

class Value
 

Detailed Description

This is the common base class of value handles.

ValueHandle's are smart pointers to Value's that have special behavior when the value is deleted or ReplaceAllUsesWith'd. See the specific handles below for details.

Definition at line 29 of file ValueHandle.h.

Member Enumeration Documentation

◆ HandleBaseKind

This indicates what sub class the handle actually is.

This is to avoid having a vtable for the light-weight handle pointers. The fully general Callback version does have a vtable.

Enumerator
Assert 
Callback 
Weak 
WeakTracking 

Definition at line 37 of file ValueHandle.h.

Constructor & Destructor Documentation

◆ ValueHandleBase() [1/4]

llvm::ValueHandleBase::ValueHandleBase ( const ValueHandleBase RHS)
inlineprotected

Definition at line 39 of file ValueHandle.h.

◆ ValueHandleBase() [2/4]

llvm::ValueHandleBase::ValueHandleBase ( HandleBaseKind  Kind,
const ValueHandleBase RHS 
)
inlineprotected

Definition at line 42 of file ValueHandle.h.

References getValPtr(), isValid(), and RHS.

◆ ValueHandleBase() [3/4]

llvm::ValueHandleBase::ValueHandleBase ( HandleBaseKind  Kind)
inlineexplicit

Definition at line 56 of file ValueHandle.h.

◆ ValueHandleBase() [4/4]

llvm::ValueHandleBase::ValueHandleBase ( HandleBaseKind  Kind,
Value V 
)
inline

Definition at line 58 of file ValueHandle.h.

References getValPtr(), and isValid().

◆ ~ValueHandleBase()

llvm::ValueHandleBase::~ValueHandleBase ( )
inline

Definition at line 64 of file ValueHandle.h.

References getValPtr(), isValid(), and RemoveFromUseList().

Member Function Documentation

◆ clearValPtr()

void llvm::ValueHandleBase::clearValPtr ( )
inlineprotected

Clear the underlying pointer without clearing the use list.

This should only be used if a derived class has manually removed the handle from the use list.

Definition at line 114 of file ValueHandle.h.

◆ getValPtr()

Value * llvm::ValueHandleBase::getValPtr ( ) const
inlineprotected

◆ isValid()

static bool llvm::ValueHandleBase::isValid ( Value V)
inlinestaticprotected

◆ operator*()

Value & llvm::ValueHandleBase::operator* ( ) const
inline

Definition at line 92 of file ValueHandle.h.

References assert(), and getValPtr().

◆ operator->()

Value * llvm::ValueHandleBase::operator-> ( ) const
inline

Definition at line 91 of file ValueHandle.h.

References getValPtr().

◆ operator=() [1/2]

Value * llvm::ValueHandleBase::operator= ( const ValueHandleBase RHS)
inline

Definition at line 80 of file ValueHandle.h.

References getValPtr(), isValid(), RemoveFromUseList(), and RHS.

◆ operator=() [2/2]

Value * llvm::ValueHandleBase::operator= ( Value RHS)
inline

◆ RemoveFromUseList()

void ValueHandleBase::RemoveFromUseList ( )
protected

Remove this ValueHandle from its current use list.

Definition at line 1176 of file Value.cpp.

Referenced by operator=(), and ~ValueHandleBase().

◆ ValueIsDeleted()

void ValueHandleBase::ValueIsDeleted ( Value V)
static

Definition at line 1202 of file Value.cpp.

◆ ValueIsRAUWd()

void ValueHandleBase::ValueIsRAUWd ( Value Old,
Value New 
)
static

Friends And Related Function Documentation

◆ Value

friend class Value
friend

Definition at line 30 of file ValueHandle.h.


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