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

#include "llvm/Analysis/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

◆ const_iterator

Definition at line 144 of file IVUsers.h.

◆ iterator

Definition at line 143 of file IVUsers.h.

Constructor & Destructor Documentation

◆ IVUsers() [1/3]

IVUsers::IVUsers ( Loop L,
AssumptionCache AC,
LoopInfo LI,
DominatorTree DT,
ScalarEvolution SE 
)

◆ IVUsers() [2/3]

llvm::IVUsers::IVUsers ( IVUsers &&  X)
inline

Definition at line 114 of file IVUsers.h.

References llvm::IVStrideUse::IVUsers, and llvm::CallbackVH::operator=().

◆ IVUsers() [3/3]

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

Member Function Documentation

◆ AddUser()

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

Definition at line 300 of file IVUsers.cpp.

◆ AddUsersIfInteresting()

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 291 of file IVUsers.cpp.

Referenced by IVUsers().

◆ AddUsersImpl()

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

◆ begin() [1/2]

iterator llvm::IVUsers::begin ( )
inline

Definition at line 145 of file IVUsers.h.

◆ begin() [2/2]

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

Definition at line 147 of file IVUsers.h.

◆ dump()

LLVM_DUMP_METHOD void IVUsers::dump ( ) const

dump - This method is used for debugging.

Definition at line 346 of file IVUsers.cpp.

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

◆ empty()

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

Definition at line 149 of file IVUsers.h.

Referenced by mayUsePostIncMode().

◆ end() [1/2]

iterator llvm::IVUsers::end ( )
inline

Definition at line 146 of file IVUsers.h.

◆ end() [2/2]

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

Definition at line 148 of file IVUsers.h.

◆ getExpr()

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

getExpr - Return the expression for the use.

Definition at line 390 of file IVUsers.cpp.

References llvm::IVStrideUse::getPostIncLoops(), and llvm::normalizeForPostIncUse().

◆ getLoop()

Loop* llvm::IVUsers::getLoop ( ) const
inline

Definition at line 125 of file IVUsers.h.

References llvm::HexagonMCInstrInfo::getExpr(), and I.

◆ getReplacementExpr()

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 385 of file IVUsers.cpp.

References llvm::IVStrideUse::getOperandValToReplace().

Referenced by print().

◆ getStride()

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

Definition at line 412 of file IVUsers.cpp.

References findAddRecForLoop(), and llvm::HexagonMCInstrInfo::getExpr().

◆ isIVUserOrOperand()

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

◆ operator=() [1/2]

IVUsers& llvm::IVUsers::operator= ( IVUsers &&  )
delete

◆ operator=() [2/2]

IVUsers& llvm::IVUsers::operator= ( const IVUsers )
delete

◆ print()

void IVUsers::print ( raw_ostream OS,
const Module M = nullptr 
) const

◆ releaseMemory()

void IVUsers::releaseMemory ( )

Definition at line 349 of file IVUsers.cpp.

Friends And Related Function Documentation

◆ IVStrideUse

friend class IVStrideUse
friend

Definition at line 95 of file IVUsers.h.


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