16 #ifndef LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H
17 #define LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H
29 class ScalarEvolution;
50 LoopInfo *LI, SmallVectorImpl<WeakVH> &
Dead,
51 IVVisitor *V =
nullptr);
56 LoopInfo *LI, SmallVectorImpl<WeakVH> &
Dead);
const DominatorTree * getDomTree() const
Interface for visiting interesting IV users that are recognized but not simplified by this utility...
This is the base class for all instructions that perform data casts.
bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakVH > &Dead, IVVisitor *V=nullptr)
simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution t...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakVH > &Dead)
SimplifyLoopIVs - Simplify users of induction variables within this loop.
virtual void visitCast(CastInst *Cast)=0