Widen Induction Variables ‐ Extend the width of an IV to cover its widest uses.
Synopsis
Declared in <llvm/Transforms/Utils/SimplifyIndVar.h>
PHINode*
createWideIV(
WideIVInfo const& WI,
LoopInfo* LI,
ScalarEvolution* SE,
SCEVExpander& Rewriter,
DominatorTree* DT,
SmallVectorImpl<WeakTrackingVH>& DeadInsts,
unsigned int& NumElimExt,
unsigned int& NumWidened,
bool HasGuards,
bool UsePostIncrementRanges);
Parameters
Name |
Description |
WI |
Collect information about induction variables that are used by sign/zero extend operations. This information is recorded by CollectExtend and provides the input to WidenIV. |
SE |
The main scalar evolution driver. Because client code (intentionally) can't do much with the SCEV objects directly, they must ask this class for services. |
Rewriter |
This class uses information about analyze scalars to rewrite expressions in canonical form. |
DT |
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. |
DeadInsts |
This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. |
Created with MrDocs