LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Friends | List of all members
llvm::ValueMapCallbackVH< KeyT, ValueT, Config > Class Template Reference

#include <ValueMap.h>

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

Public Member Functions

KeyT Unwrap () const
 
virtual void deleted ()
 
virtual void allUsesReplacedWith (Value *new_key)
 
- Public Member Functions inherited from llvm::CallbackVH
 CallbackVH ()
 
 CallbackVH (Value *P)
 
 operator Value * () const
 
- Public Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (HandleBaseKind Kind)
 
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
 
 ~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 void ValueIsDeleted (Value *V)
 
static void ValueIsRAUWd (Value *Old, Value *New)
 
- Protected Types inherited from llvm::ValueHandleBase
enum  HandleBaseKind { Assert, Callback, Tracking, Weak }
 
- Protected Member Functions inherited from llvm::CallbackVH
 CallbackVH (const CallbackVH &RHS)
 
virtual ~CallbackVH ()
 
void setValPtr (Value *P)
 
- Protected Member Functions inherited from llvm::ValueHandleBase
ValuegetValPtr () const
 
void setValPtrInt (unsigned K)
 
unsigned getValPtrInt () const
 
- 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 38 of file ValueMap.h.

Member Function Documentation

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

Called when this->getValPtr()->replaceAllUsesWith(new_value) is called, before any of the uses have actually been replaced. If WeakVH 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 223 of file ValueMap.h.

References llvm::sys::SmartMutex< mt_only >::acquire(), I, llvm::sys::SmartMutex< mt_only >::release(), and llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second.

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

Called when this->getValPtr() is destroyed, inside ~Value(), so you may call any non-virtual Value method on getValPtr(), but no subclass methods. If WeakVH 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 212 of file ValueMap.h.

References llvm::sys::SmartMutex< mt_only >::acquire(), and llvm::sys::SmartMutex< mt_only >::release().

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

Friends And Related Function Documentation

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

Definition at line 199 of file ValueMap.h.

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

Definition at line 198 of file ValueMap.h.


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