class TrackingVH

Declaration

template <typename ValueTy>
class TrackingVH { /* full declaration omitted */ };

Description

Value handle that tracks a Value across RAUW. TrackingVH is designed for situations where a client needs to hold a handle to a Value (or subclass) across some operations which may move that value, but should never destroy it or replace it with some unacceptable type. It is an error to attempt to replace a value with one of a type which is incompatible with any of its outstanding TrackingVHs. It is an error to read from a TrackingVH that does not point to a valid value. A TrackingVH is said to not point to a valid value if either it hasn't yet been assigned a value yet or because the value it was tracking has since been deleted. Assigning a value to a TrackingVH is always allowed, even if said TrackingVH no longer points to a valid value.

Declared at: llvm/include/llvm/IR/ValueHandle.h:331

Templates

ValueTy

Member Variables

private llvm::WeakTrackingVH InnerHandle

Method Overview

Methods

static llvm::Value* GetAsValue(llvm::Value* V)

Declared at: llvm/include/llvm/IR/ValueHandle.h:356

Parameters

llvm::Value* V

static llvm::Value* GetAsValue(
    const llvm::Value* V)

Declared at: llvm/include/llvm/IR/ValueHandle.h:357

Parameters

const llvm::Value* V

TrackingVH<ValueTy>()

Declared at: llvm/include/llvm/IR/ValueHandle.h:360

TrackingVH<ValueTy>(ValueTy* P)

Declared at: llvm/include/llvm/IR/ValueHandle.h:361

Parameters

ValueTy* P

ValueTy* getValPtr() const

Declared at: llvm/include/llvm/IR/ValueHandle.h:335

ValueTy* operator type - parameter - 0 -
    0 *() const

Declared at: llvm/include/llvm/IR/ValueHandle.h:363

void setValPtr(ValueTy* P)

Declared at: llvm/include/llvm/IR/ValueHandle.h:348

Parameters

ValueTy* P