LLVM: llvm::IVUsers Class Reference (original) (raw)

#include "[llvm/Analysis/IVUsers.h](IVUsers%5F8h%5Fsource.html)"

Public Member Functions
IVUsers (Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT, ScalarEvolution *SE)
IVUsers (IVUsers &&X)
IVUsers (const IVUsers &)=delete
IVUsers & operator= (IVUsers &&)=delete
IVUsers & operator= (const IVUsers &)=delete
Loop * getLoop () const
bool AddUsersIfInteresting (Instruction *I)
AddUsersIfInteresting - Inspect the specified Instruction.
IVStrideUse & AddUser (Instruction *User, Value *Operand)
const SCEV * getReplacementExpr (const IVStrideUse &IU) const
getReplacementExpr - Return a SCEV expression which computes the value of the OperandValToReplace of the given IVStrideUse.
const SCEV * getExpr (const IVStrideUse &IU) const
getExpr - Return the expression for the use.
const SCEV * getStride (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.
Friends
class IVStrideUse

Definition at line 91 of file IVUsers.h.

const_iterator

iterator

IVUsers() [1/3]

IVUsers() [2/3]

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

IVUsers() [3/3]

AddUser()

AddUsersIfInteresting()

AddUsersIfInteresting - Inspect the specified Instruction.

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

References AddUser(), AddUsersIfInteresting(), llvm::cast(), llvm::dbgs(), llvm::denormalizeForPostIncUse(), DL, I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isa(), isInteresting(), llvm::isSafeToSpeculativelyExecute(), IVStrideUse, IVUseShouldUsePostIncValue(), LLVM_DEBUG, and llvm::normalizeForPostIncUseIf().

Referenced by AddUsersIfInteresting(), and IVUsers().

begin() [1/2]

iterator llvm::IVUsers::begin ( ) inline

begin() [2/2]

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

dump()

empty()

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

end() [1/2]

iterator llvm::IVUsers::end ( ) inline

end() [2/2]

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

getExpr()

getLoop()

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

getReplacementExpr()

getStride()

isIVUserOrOperand()

operator=() [1/2]

operator=() [2/2]

print()

releaseMemory()

void IVUsers::releaseMemory ( )

IVStrideUse


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