LLVM  8.0.1
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]
Collaboration diagram for llvm::IVStrideUse:
Collaboration graph
[legend]

Public Member Functions

 IVStrideUse (IVUsers *P, Instruction *U, Value *O)
 
InstructiongetUser () const
 getUser - Return the user instruction for this use. More...
 
void setUser (Instruction *NewUser)
 setUser - Assign a new user instruction for this use. More...
 
ValuegetOperandValToReplace () const
 getOperandValToReplace - Return the Value of the operand in the user instruction that this IVStrideUse is representing. More...
 
void setOperandValToReplace (Value *Op)
 setOperandValToReplace - Assign a new Value as the operand value to replace. More...
 
const PostIncLoopSetgetPostIncLoops () const
 getPostIncLoops - Return the set of loops for which the expression has been adjusted to use post-inc mode. More...
 
void transformToPostInc (const Loop *L)
 transformToPostInc - Transform the expression to post-inc form for the given loop. More...
 
- Public Member Functions inherited from llvm::CallbackVH
 CallbackVH ()
 
 CallbackVH (Value *P)
 
 operator Value * () const
 
virtual void allUsesReplacedWith (Value *)
 Callback for Value RAUW. More...
 
- 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 ()
 
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. More...
 

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< ilist_detail::compute_node_options< IVStrideUse, Options... >::type >
using self_iterator = ilist_iterator< ilist_detail::compute_node_options< IVStrideUse, Options... >::type, false, false >
 
using const_self_iterator = ilist_iterator< ilist_detail::compute_node_options< IVStrideUse, Options... >::type, false, true >
 
using reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< IVStrideUse, Options... >::type, true, false >
 
using const_reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< IVStrideUse, Options... >::type, true, true >
 
- 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. More...
 
void clearValPtr ()
 Clear the underlying pointer without clearing the use list. More...
 
- 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 38 of file IVUsers.h.

Constructor & Destructor Documentation

◆ IVStrideUse()

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

Definition at line 41 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 57 of file IVUsers.h.

Referenced by llvm::IVUsers::getReplacementExpr(), and isAlwaysFoldable().

◆ 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 69 of file IVUsers.h.

References transformToPostInc().

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

◆ getUser()

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

getUser - Return the user instruction for this use.

Definition at line 46 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 63 of file IVUsers.h.

◆ setUser()

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

setUser - Assign a new user instruction for this use.

Definition at line 51 of file IVUsers.h.

References llvm::CallbackVH::setValPtr().

Referenced by isAlwaysFoldable().

◆ transformToPostInc()

void IVStrideUse::transformToPostInc ( const Loop L)

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

Definition at line 418 of file IVUsers.cpp.

Referenced by getPostIncLoops(), and isAlwaysFoldable().

Friends And Related Function Documentation

◆ IVUsers

friend class IVUsers
friend

Definition at line 39 of file IVUsers.h.

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


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