LLVM 20.0.0git
Classes | Namespaces | Functions
SimplifyIndVar.h File Reference
#include <utility>

Go to the source code of this file.

Classes

class  llvm::IVVisitor
 Interface for visiting interesting IV users that are recognized but not simplified by this utility. More...
 
struct  llvm::WideIVInfo
 Collect information about induction variables that are used by sign/zero extend operations. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Functions

std::pair< bool, boolllvm::simplifyUsersOfIV (PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, SmallVectorImpl< WeakTrackingVH > &Dead, SCEVExpander &Rewriter, IVVisitor *V=nullptr)
 simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.
 
bool llvm::simplifyLoopIVs (Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, SmallVectorImpl< WeakTrackingVH > &Dead)
 SimplifyLoopIVs - Simplify users of induction variables within this loop.
 
PHINodellvm::createWideIV (const WideIVInfo &WI, LoopInfo *LI, ScalarEvolution *SE, SCEVExpander &Rewriter, DominatorTree *DT, SmallVectorImpl< WeakTrackingVH > &DeadInsts, unsigned &NumElimExt, unsigned &NumWidened, bool HasGuards, bool UsePostIncrementRanges)
 Widen Induction Variables - Extend the width of an IV to cover its widest uses.