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