LLVM  7.0.0svn
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...


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)

Definition at line 114 of file IVUsers.h.

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

◆ IVUsers() [3/3]

llvm::IVUsers::IVUsers ( const IVUsers )

Member Function Documentation

◆ AddUser()

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

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

Referenced by IVUsers().

◆ AddUsersImpl()

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

◆ begin() [1/2]

iterator llvm::IVUsers::begin ( )

Definition at line 145 of file IVUsers.h.

◆ begin() [2/2]

const_iterator llvm::IVUsers::begin ( ) const

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

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

◆ empty()

bool llvm::IVUsers::empty ( ) const

Definition at line 149 of file IVUsers.h.

◆ end() [1/2]

iterator llvm::IVUsers::end ( )

Definition at line 146 of file IVUsers.h.

◆ end() [2/2]

const_iterator llvm::IVUsers::end ( ) const

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

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

◆ getLoop()

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

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

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

◆ isIVUserOrOperand()

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

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ print()

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

◆ releaseMemory()

void IVUsers::releaseMemory ( )

Definition at line 347 of file IVUsers.cpp.

Friends And Related Function Documentation

◆ IVStrideUse

friend class IVStrideUse

Definition at line 95 of file IVUsers.h.

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