LLVM
8.0.1
|
#include "llvm/Analysis/IVUsers.h"
Public Types | |
typedef ilist< IVStrideUse >::iterator | iterator |
typedef ilist< IVStrideUse >::const_iterator | const_iterator |
Protected Member Functions | |
bool | AddUsersImpl (Instruction *I, SmallPtrSetImpl< Loop *> &SimpleLoopNests) |
AddUsersImpl - Inspect the specified instruction. More... | |
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 305 of file IVUsers.cpp.
References AddUsersIfInteresting(), llvm::BasicBlock::begin(), llvm::CodeMetrics::collectEphemeralValues(), llvm::LoopBase< BlockT, LoopT >::getHeader(), and I.
|
inline |
Definition at line 114 of file IVUsers.h.
References llvm::IVStrideUse::IVUsers, and llvm::CallbackVH::operator=().
IVStrideUse & IVUsers::AddUser | ( | Instruction * | User, |
Value * | Operand | ||
) |
Definition at line 300 of file IVUsers.cpp.
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().
|
protected |
AddUsersImpl - 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 168 of file IVUsers.cpp.
References llvm::dbgs(), llvm::denormalizeForPostIncUse(), llvm::Module::getDataLayout(), llvm::PHINode::getIncomingValueNumForOperand(), llvm::Instruction::getModule(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::DataLayout::getTypeSizeInBits(), llvm::SmallPtrSetImpl< PtrType >::insert(), isInteresting(), llvm::DataLayout::isLegalInteger(), llvm::isSafeToSpeculativelyExecute(), isSimplifiedLoopNest(), IVUseShouldUsePostIncValue(), LLVM_DEBUG, llvm::normalizeForPostIncUseIf(), and llvm::Value::uses().
|
inline |
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().
|
inline |
Definition at line 149 of file IVUsers.h.
Referenced by mayUsePostIncMode().
|
inline |
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().
|
inline |
Definition at line 125 of file IVUsers.h.
References llvm::HexagonMCInstrInfo::getExpr(), and I.
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().
Definition at line 412 of file IVUsers.cpp.
References findAddRecForLoop(), and llvm::HexagonMCInstrInfo::getExpr().
|
inline |
Definition at line 151 of file IVUsers.h.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::createIVUsersPass(), llvm::dump(), and print().
void IVUsers::print | ( | raw_ostream & | OS, |
const Module * | M = nullptr |
||
) | const |
Definition at line 319 of file IVUsers.cpp.
References llvm::ScalarEvolution::getBackedgeTakenCount(), llvm::LoopBase< BlockT, LoopT >::getHeader(), getReplacementExpr(), llvm::ScalarEvolution::hasLoopInvariantBackedgeTakenCount(), and llvm::Value::printAsOperand().
Referenced by dump().
void IVUsers::releaseMemory | ( | ) |
Definition at line 349 of file IVUsers.cpp.
|
friend |