LLVM 22.0.0git
llvm::IVStrideUse Class Referencefinal

IVStrideUse - Keep track of one use of a strided induction variable. More...

#include "llvm/Analysis/IVUsers.h"

Inheritance diagram for llvm::IVStrideUse:
[legend]

Public Member Functions

 IVStrideUse (IVUsers *P, Instruction *U, Value *O)
InstructiongetUser () const
 getUser - Return the user instruction for this use.
void setUser (Instruction *NewUser)
 setUser - Assign a new user instruction for this use.
ValuegetOperandValToReplace () const
 getOperandValToReplace - Return the Value of the operand in the user instruction that this IVStrideUse is representing.
void setOperandValToReplace (Value *Op)
 setOperandValToReplace - Assign a new Value as the operand value to replace.
const PostIncLoopSetgetPostIncLoops () const
 getPostIncLoops - Return the set of loops for which the expression has been adjusted to use post-inc mode.
void transformToPostInc (const Loop *L)
 transformToPostInc - Transform the expression to post-inc form for the given loop.
Public Member Functions inherited from llvm::CallbackVH
 CallbackVH ()
 CallbackVH (Value *P)
 CallbackVH (const Value *P)
 operator Value * () const
virtual void allUsesReplacedWith (Value *)
 Callback for Value RAUW.
Public Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (HandleBaseKind Kind)
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 ~ValueHandleBase ()
Valueoperator= (Value *RHS)
Valueoperator= (const ValueHandleBase &RHS)
Valueoperator-> () const
Valueoperator* () const
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< IVStrideUse, Options... >::type >
self_iterator getIterator ()
reverse_self_iterator getReverseIterator ()
std::enable_if_t< T::is_sentinel_tracking_explicit, boolisSentinel () const
 Check whether this is the sentinel node.
Public Member Functions inherited from llvm::ilist_detail::node_parent_access< ilist_node_impl< ilist_detail::compute_node_options< IVStrideUse, Options... >::type >, ilist_detail::compute_node_options< IVStrideUse, Options... >::type::parent_ty >
const ilist_detail::compute_node_options< IVStrideUse, Options... >::type::parent_ty * getParent () const
void setParent (ilist_detail::compute_node_options< IVStrideUse, Options... >::type::parent_ty *Parent)

Friends

class IVUsers

Additional Inherited Members

Static Public Member Functions inherited from llvm::ValueHandleBase
static LLVM_ABI void ValueIsDeleted (Value *V)
static LLVM_ABI void ValueIsRAUWd (Value *Old, Value *New)
Protected Types inherited from llvm::ValueHandleBase
enum  HandleBaseKind { Assert , Callback , Weak , WeakTracking }
 This indicates what sub class the handle actually is. More...
Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< IVStrideUse, Options... >::type >
using self_iterator
using const_self_iterator
using reverse_self_iterator
using const_reverse_self_iterator
Protected Member Functions inherited from llvm::CallbackVH
 ~CallbackVH ()=default
 CallbackVH (const CallbackVH &)=default
CallbackVHoperator= (const CallbackVH &)=default
void setValPtr (Value *P)
Protected Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (const ValueHandleBase &RHS)
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
ValuegetValPtr () const
LLVM_ABI void RemoveFromUseList ()
 Remove this ValueHandle from its current use list.
void clearValPtr ()
 Clear the underlying pointer without clearing the use list.
Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< IVStrideUse, Options... >::type >
 ilist_node_impl ()=default
Static Protected Member Functions inherited from llvm::ValueHandleBase
static bool isValid (Value *V)

Detailed Description

IVStrideUse - Keep track of one use of a strided induction variable.

The Expr member keeps track of the expression, User is the actual user instruction of the operand, and 'OperandValToReplace' is the operand of the User that is the use.

Definition at line 35 of file IVUsers.h.

Constructor & Destructor Documentation

◆ IVStrideUse()

llvm::IVStrideUse::IVStrideUse ( IVUsers * P,
Instruction * U,
Value * O )
inline

Definition at line 38 of file IVUsers.h.

References llvm::CallbackVH::CallbackVH(), IVUsers, and P.

Member Function Documentation

◆ getOperandValToReplace()

Value * llvm::IVStrideUse::getOperandValToReplace ( ) const
inline

getOperandValToReplace - Return the Value of the operand in the user instruction that this IVStrideUse is representing.

Definition at line 54 of file IVUsers.h.

Referenced by llvm::IVUsers::getReplacementExpr().

◆ getPostIncLoops()

const PostIncLoopSet & llvm::IVStrideUse::getPostIncLoops ( ) const
inline

getPostIncLoops - Return the set of loops for which the expression has been adjusted to use post-inc mode.

Definition at line 66 of file IVUsers.h.

Referenced by llvm::IVUsers::getExpr().

◆ getUser()

Instruction * llvm::IVStrideUse::getUser ( ) const
inline

getUser - Return the user instruction for this use.

Definition at line 43 of file IVUsers.h.

References llvm::cast(), and llvm::ValueHandleBase::getValPtr().

◆ setOperandValToReplace()

void llvm::IVStrideUse::setOperandValToReplace ( Value * Op)
inline

setOperandValToReplace - Assign a new Value as the operand value to replace.

Definition at line 60 of file IVUsers.h.

◆ setUser()

void llvm::IVStrideUse::setUser ( Instruction * NewUser)
inline

setUser - Assign a new user instruction for this use.

Definition at line 48 of file IVUsers.h.

References llvm::CallbackVH::setValPtr().

◆ transformToPostInc()

void IVStrideUse::transformToPostInc ( const Loop * L)

transformToPostInc - Transform the expression to post-inc form for the given loop.

Definition at line 365 of file IVUsers.cpp.

◆ IVUsers

friend class IVUsers
friend

Definition at line 36 of file IVUsers.h.

References IVUsers.

Referenced by IVStrideUse(), and IVUsers.


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