LLVM: llvm::Use Class Reference (original) (raw)

A Use represents the edge between a Value definition and its users. More...

#include "[llvm/IR/Use.h](IR%5F2Use%5F8h%5Fsource.html)"

Public Member Functions
Use (const Use &U)=delete
LLVM_ABI void swap (Use &RHS)
Provide a fast substitute to std::swap that also works with less standard-compliant compilers.
operator Value * () const
Value * get () const
User * getUser () const
Returns the User that contains this Use.
LLVM_ABI void set (Value *Val)
LLVM_ABI Value * operator= (Value *RHS)
LLVM_ABI const Use & operator= (const Use &RHS)
Value * operator-> ()
const Value * operator-> () const
Use * getNext () const
LLVM_ABI unsigned getOperandNo () const
Return the operand # of this use in its User.
Static Public Member Functions
static LLVM_ABI void zap (Use *Start, const Use *Stop, bool del=false)
Destroys Use operands when the number of operands of a User changes.
Friends
class Value
class User

Detailed 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.

Definition at line 35 of file Use.h.

Constructor & Destructor Documentation

Member Function Documentation

get()

Value * llvm::Use::get ( ) const inline

getNext()

Use * llvm::Use::getNext ( ) const inline

Definition at line 71 of file Use.h.

References Use().

getOperandNo()

Return the operand # of this use in its User.

Definition at line 35 of file Use.cpp.

Referenced by allUsesTruncate(), CombineBaseUpdate(), combineOp_VLToVWOp_VL(), combineVSelectToBLENDV(), dominatesAllUsesOf(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), getShape(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::SITargetLowering::hasMemSDNodeUser(), hasNonFlagsUse(), hasNonFlagsUse(), isCompatibleReplacement(), and llvm::propagatesPoison().

getUser()

User * llvm::Use::getUser ( ) const inline

Returns the User that contains this Use.

For an instruction operand, for example, this will return the instruction.

Definition at line 61 of file Use.h.

References User.

Referenced by allUsesTruncate(), CombineBaseUpdate(), combineOp_VLToVWOp_VL(), CombineVLDDUP(), combineVSelectToBLENDV(), llvm::MemorySSA::dominates(), eliminateSwiftErrorAlloca(), ExtendUsesToFormExtLoad(), getCaseResults(), getShape(), llvm::User::growHungoffUses(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::SITargetLowering::hasMemSDNodeUser(), hasNonFlagsUse(), hasNonFlagsUse(), isF128MovedToParts(), isI128MovedToParts(), operandWithNewAddressSpaceOrCreatePoison(), OptimizeGlobalAddressOfAllocation(), passingValueIsAlwaysUndefined(), performMemPairCombine(), PerformMVEVLDCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), llvm::propagatesPoison(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), replaceAllUsesOfWithIn(), shouldConvertToRelLookupTable(), llvm::X86TargetLowering::shouldReduceLoadWidth(), usePartialVectorLoads(), and llvm::Value::Value().

operator Value *()

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

operator->() [1/2]

Value * llvm::Use::operator-> ( ) inline

operator->() [2/2]

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

operator=() [1/2]

operator=() [2/2]

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

set()

void llvm::Use::set ( Value * Val) inline

Definition at line 905 of file Value.h.

References Value.

Referenced by llvm::SDNode::DropOperands(), eliminateSwiftErrorAlloca(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::SelectionDAG::MorphNodeTo(), operator=(), operator=(), OptimizeGlobalAddressOfAllocation(), llvm::SwitchInst::removeCase(), llvm::SelectionDAG::RemoveDeadNodes(), llvm::IndirectBrInst::removeDestination(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), and sinkLastInstruction().

swap()

void Use::swap ( Use & RHS )

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

Definition at line 14 of file Use.cpp.

zap()

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

Definition at line 39 of file Use.cpp.

User

Value


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