class Use

Declaration

class Use { /* full declaration omitted */ };

Description

A Use represents the edge between a Value definition and its users. This is notionally a two-dimensional linked list. It supports traversing all of the uses for a particular value definition. It also supports jumping directly to the used value when we arrive from the User's operands, and jumping directly to the User when we arrive from the Value's uses.

Declared at: llvm/include/llvm/IR/Use.h:43

Member Variables

private llvm::Value* Val = nullptr
private llvm::Use* Next = nullptr
private llvm::Use** Prev = nullptr
private llvm::User* Parent = nullptr

Method Overview

  • public Use(const llvm::Use & U)
  • private Use(llvm::User * Parent)
  • private void addToList(llvm::Use ** List)
  • public llvm::Value * get() const
  • public llvm::Use * getNext() const
  • public unsigned int getOperandNo() const
  • public llvm::User * getUser() const
  • public llvm::Value * operator llvm::Value *() const
  • private void removeFromList()
  • public inline void set(llvm::Value * Val)
  • public void swap(llvm::Use & RHS)
  • public static void zap(llvm::Use * Start, const llvm::Use * Stop, bool del = false)
  • private ~Use()

Methods

Use(const llvm::Use& U)

Declared at: llvm/include/llvm/IR/Use.h:45

Parameters

const llvm::Use& U

Use(llvm::User* Parent)

Description

Constructor

Declared at: llvm/include/llvm/IR/Use.h:59

Parameters

llvm::User* Parent

void addToList(llvm::Use** List)

Declared at: llvm/include/llvm/IR/Use.h:98

Parameters

llvm::Use** List

llvm::Value* get() const

Declared at: llvm/include/llvm/IR/Use.h:66

llvm::Use* getNext() const

Declared at: llvm/include/llvm/IR/Use.h:82

unsigned int getOperandNo() const

Description

Return the operand # of this use in its User.

Declared at: llvm/include/llvm/IR/Use.h:85

llvm::User* getUser() const

Description

Returns the User that contains this Use. For an instruction operand, for example, this will return the instruction.

Declared at: llvm/include/llvm/IR/Use.h:72

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

Declared at: llvm/include/llvm/IR/Use.h:65

void removeFromList()

Declared at: llvm/include/llvm/IR/Use.h:106

inline void set(llvm::Value* Val)

Declared at: llvm/include/llvm/IR/Use.h:74

Parameters

llvm::Value* Val

void swap(llvm::Use& RHS)

Description

Provide a fast substitute to std::swap <Use > that also works with less standard-compliant compilers

Declared at: llvm/include/llvm/IR/Use.h:49

Parameters

llvm::Use& RHS

static void zap(llvm::Use* Start,
                const llvm::Use* Stop,
                bool del = false)

Description

Destroys Use operands when the number of operands of a User changes.

Declared at: llvm/include/llvm/IR/Use.h:89

Parameters

llvm::Use* Start
const llvm::Use* Stop
bool del = false

~Use()

Description

Destructor - Only for zap()

Declared at: llvm/include/llvm/IR/Use.h:53