LLVM 22.0.0git
|
#include "llvm/Analysis/IVUsers.h"
Public Types | |
typedef ilist< IVStrideUse >::iterator | iterator |
typedef ilist< IVStrideUse >::const_iterator | const_iterator |
Friends | |
class | IVStrideUse |
typedef ilist<IVStrideUse>::iterator llvm::IVUsers::iterator |
IVUsers::IVUsers | ( | Loop * | L, |
AssumptionCache * | AC, | ||
LoopInfo * | LI, | ||
DominatorTree * | DT, | ||
ScalarEvolution * | SE ) |
Definition at line 251 of file IVUsers.cpp.
References AddUsersIfInteresting(), llvm::CodeMetrics::collectEphemeralValues(), I, and llvm::isa().
Referenced by IVUsers(), IVUsers(), operator=(), and operator=().
|
inline |
Definition at line 111 of file IVUsers.h.
References IVStrideUse, IVUsers(), llvm::move(), and X.
IVStrideUse & IVUsers::AddUser | ( | Instruction * | User, |
Value * | Operand ) |
Definition at line 246 of file IVUsers.cpp.
References IVStrideUse.
Referenced by AddUsersIfInteresting().
bool IVUsers::AddUsersIfInteresting | ( | Instruction * | I | ) |
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().
|
inline |
LLVM_DUMP_METHOD void IVUsers::dump | ( | ) | const |
dump - This method is used for debugging.
Definition at line 292 of file IVUsers.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
|
inline |
const SCEV * IVUsers::getExpr | ( | const IVStrideUse & | IU | ) | const |
getExpr - Return the expression for the use.
Returns nullptr if the result is not invertible.
Definition at line 334 of file IVUsers.cpp.
References llvm::IVStrideUse::getPostIncLoops(), getReplacementExpr(), IVStrideUse, and llvm::normalizeForPostIncUse().
Referenced by getStride().
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 329 of file IVUsers.cpp.
References llvm::IVStrideUse::getOperandValToReplace(), and IVStrideUse.
Definition at line 356 of file IVUsers.cpp.
References findAddRecForLoop(), getExpr(), and IVStrideUse.
|
inline |
void IVUsers::print | ( | raw_ostream & | OS, |
const Module * | M = nullptr ) const |
Definition at line 265 of file IVUsers.cpp.
References getReplacementExpr(), and IVStrideUse.
Referenced by dump().
void IVUsers::releaseMemory | ( | ) |
Definition at line 295 of file IVUsers.cpp.
|
friend |
Definition at line 92 of file IVUsers.h.
References IVStrideUse.
Referenced by AddUser(), AddUsersIfInteresting(), getExpr(), getReplacementExpr(), getStride(), IVStrideUse, IVUsers(), and print().