16 #ifndef LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H 17 #define LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H 28 class ScalarEvolution;
60 #endif // LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H This class represents lattice values for constants.
The main scalar evolution driver.
virtual ~IVVisitor()=default
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.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead)
SimplifyLoopIVs - Simplify users of induction variables within this loop.
const DominatorTree * getDomTree() const
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
This class uses information about analyze scalars to rewrite expressions in canonical form...
Virtual Register Rewriter
virtual void visitCast(CastInst *Cast)=0
Represents a single loop in the control flow graph.
bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead, SCEVExpander &Rewriter, IVVisitor *V=nullptr)
simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution t...