LLVM 19.0.0git
Public Member Functions | Friends | List of all members
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:
Inheritance graph
[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 deleted ()
 Callback for Value destruction.
 
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< OptionsT >
self_iterator getIterator ()
 
const_self_iterator getIterator () const
 
reverse_self_iterator getReverseIterator ()
 
const_reverse_self_iterator getReverseIterator () const
 
bool isSentinel () const
 Check whether this is the sentinel node.
 

Friends

class IVUsers
 

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 , Weak , WeakTracking }
 This indicates what sub class the handle actually is. More...
 
- Protected Types inherited from llvm::ilist_node_impl< OptionsT >
using self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, false >::type
 
using const_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, true >::type
 
using reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, false >::type
 
using const_reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, true >::type
 
- 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
 
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< OptionsT >
 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 34 of file IVUsers.h.

Constructor & Destructor Documentation

◆ IVStrideUse()

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

Definition at line 37 of file IVUsers.h.

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 53 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 65 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 42 of file IVUsers.h.

References 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 59 of file IVUsers.h.

◆ setUser()

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

setUser - Assign a new user instruction for this use.

Definition at line 47 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 367 of file IVUsers.cpp.

References llvm::SmallPtrSetImpl< PtrType >::insert().

Friends And Related Function Documentation

◆ IVUsers

friend class IVUsers
friend

Definition at line 35 of file IVUsers.h.


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