LLVM  4.0.0
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::IVUsers Class Reference

#include <IVUsers.h>

Public Types

typedef ilist< IVStrideUse >
::iterator 
iterator
 
typedef ilist< IVStrideUse >
::const_iterator 
const_iterator
 

Public Member Functions

 IVUsers (Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT, ScalarEvolution *SE)
 
 IVUsers (IVUsers &&X)
 
 IVUsers (const IVUsers &)=delete
 
IVUsersoperator= (IVUsers &&)=delete
 
IVUsersoperator= (const IVUsers &)=delete
 
LoopgetLoop () const
 
bool AddUsersIfInteresting (Instruction *I)
 AddUsersIfInteresting - Inspect the specified Instruction. More...
 
IVStrideUseAddUser (Instruction *User, Value *Operand)
 
const SCEVgetReplacementExpr (const IVStrideUse &IU) const
 getReplacementExpr - Return a SCEV expression which computes the value of the OperandValToReplace of the given IVStrideUse. More...
 
const SCEVgetExpr (const IVStrideUse &IU) const
 getExpr - Return the expression for the use. More...
 
const SCEVgetStride (const IVStrideUse &IU, const Loop *L) const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
bool empty () const
 
bool isIVUserOrOperand (Instruction *Inst) const
 
void releaseMemory ()
 
void print (raw_ostream &OS, const Module *=nullptr) const
 
void dump () const
 dump - This method is used for debugging. More...
 

Protected Member Functions

bool AddUsersImpl (Instruction *I, SmallPtrSetImpl< Loop * > &SimpleLoopNests)
 AddUsersImpl - Inspect the specified instruction. More...
 

Friends

class IVStrideUse
 

Detailed Description

Definition at line 94 of file IVUsers.h.

Member Typedef Documentation

Definition at line 144 of file IVUsers.h.

Definition at line 143 of file IVUsers.h.

Constructor & Destructor Documentation

IVUsers::IVUsers ( Loop L,
AssumptionCache AC,
LoopInfo LI,
DominatorTree DT,
ScalarEvolution SE 
)
llvm::IVUsers::IVUsers ( IVUsers &&  X)
inline

Definition at line 114 of file IVUsers.h.

llvm::IVUsers::IVUsers ( const IVUsers )
delete

Member Function Documentation

IVStrideUse & IVUsers::AddUser ( Instruction User,
Value Operand 
)

Definition at line 250 of file IVUsers.cpp.

References IVStrideUse.

Referenced by AddUsersImpl().

bool IVUsers::AddUsersIfInteresting ( Instruction I)

AddUsersIfInteresting - Inspect the specified Instruction.

If it is a reducible SCEV, recursively add its users to the IVUsesByStride set and return true. Otherwise, return false.

Definition at line 241 of file IVUsers.cpp.

References AddUsersImpl().

Referenced by IVUsers().

bool IVUsers::AddUsersImpl ( Instruction I,
SmallPtrSetImpl< Loop * > &  SimpleLoopNests 
)
protected
iterator llvm::IVUsers::begin ( )
inline

Definition at line 145 of file IVUsers.h.

const_iterator llvm::IVUsers::begin ( ) const
inline

Definition at line 147 of file IVUsers.h.

LLVM_DUMP_METHOD void IVUsers::dump ( ) const

dump - This method is used for debugging.

Definition at line 296 of file IVUsers.cpp.

References llvm::dbgs(), and print().

bool llvm::IVUsers::empty ( ) const
inline

Definition at line 149 of file IVUsers.h.

iterator llvm::IVUsers::end ( )
inline

Definition at line 146 of file IVUsers.h.

const_iterator llvm::IVUsers::end ( ) const
inline

Definition at line 148 of file IVUsers.h.

const SCEV * IVUsers::getExpr ( const IVStrideUse IU) const
Loop* llvm::IVUsers::getLoop ( ) const
inline

Definition at line 125 of file IVUsers.h.

References L.

const SCEV * IVUsers::getReplacementExpr ( const IVStrideUse IU) const

getReplacementExpr - Return a SCEV expression which computes the value of the OperandValToReplace of the given IVStrideUse.

getReplacementExpr - Return a SCEV expression which computes the value of the OperandValToReplace.

Definition at line 335 of file IVUsers.cpp.

References llvm::IVStrideUse::getOperandValToReplace(), and llvm::ScalarEvolution::getSCEV().

Referenced by getExpr(), and print().

const SCEV * IVUsers::getStride ( const IVStrideUse IU,
const Loop L 
) const

Definition at line 366 of file IVUsers.cpp.

References findAddRecForLoop(), and getExpr().

bool llvm::IVUsers::isIVUserOrOperand ( Instruction Inst) const
inline

Definition at line 151 of file IVUsers.h.

IVUsers& llvm::IVUsers::operator= ( IVUsers &&  )
delete
IVUsers& llvm::IVUsers::operator= ( const IVUsers )
delete
void IVUsers::print ( raw_ostream OS,
const Module M = nullptr 
) const
void IVUsers::releaseMemory ( )

Definition at line 299 of file IVUsers.cpp.

Friends And Related Function Documentation

friend class IVStrideUse
friend

Definition at line 95 of file IVUsers.h.

Referenced by AddUser().


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