LLVM 24.0.0git
llvm::ConditionalInductionDescriptor Class Reference

Describes a conditional induction variable: an induction variable that is updated only on loop iterations for which a certain predicate is satisfied. More...

#include "llvm/Analysis/IVDescriptors.h"

Public Member Functions

 ConditionalInductionDescriptor ()=default
PHINode * getHeaderPHI () const
 Returns the header PHI described by this descriptor.
PHINode * getBackedgePHI () const
 Returns the backedge PHI that selects between StepInst and the HeaderPHI.
Instruction * getStepInst () const
 Returns the instruction that updates the conditional induction PHI.
const SCEV * getStartSCEV () const
 Returns a SCEV expression for the initial value of the conditional induction PHI.
const SCEV * getStepSCEV () const
 Returns a SCEV expression for the step of the conditional induction PHI.
SCEVFlags getSCEVNoWrapFlags () const
 Returns the SCEV no-wrap flags that apply to StepInst.

Static Public Member Functions

static LLVM_ABI bool isConditionalInductionPHI (PHINode *PN, const Loop *L, ConditionalInductionDescriptor &Desc, ScalarEvolution &SE)
 Returns true if PN is a conditional induction variable in the loop L.

Detailed Description

Describes a conditional induction variable: an induction variable that is updated only on loop iterations for which a certain predicate is satisfied.

Its step must be loop-invariant.

Definition at line 489 of file IVDescriptors.h.

Constructor & Destructor Documentation

◆ ConditionalInductionDescriptor()

llvm::ConditionalInductionDescriptor::ConditionalInductionDescriptor ( )
default

Member Function Documentation

◆ getBackedgePHI()

PHINode * llvm::ConditionalInductionDescriptor::getBackedgePHI ( ) const
inline

Returns the backedge PHI that selects between StepInst and the HeaderPHI.

Definition at line 504 of file IVDescriptors.h.

◆ getHeaderPHI()

PHINode * llvm::ConditionalInductionDescriptor::getHeaderPHI ( ) const
inline

Returns the header PHI described by this descriptor.

Definition at line 501 of file IVDescriptors.h.

◆ getSCEVNoWrapFlags()

SCEVFlags llvm::ConditionalInductionDescriptor::getSCEVNoWrapFlags ( ) const
inline

Returns the SCEV no-wrap flags that apply to StepInst.

Definition at line 518 of file IVDescriptors.h.

◆ getStartSCEV()

const SCEV * llvm::ConditionalInductionDescriptor::getStartSCEV ( ) const
inline

Returns a SCEV expression for the initial value of the conditional induction PHI.

Definition at line 511 of file IVDescriptors.h.

◆ getStepInst()

Instruction * llvm::ConditionalInductionDescriptor::getStepInst ( ) const
inline

Returns the instruction that updates the conditional induction PHI.

Definition at line 507 of file IVDescriptors.h.

◆ getStepSCEV()

const SCEV * llvm::ConditionalInductionDescriptor::getStepSCEV ( ) const
inline

Returns a SCEV expression for the step of the conditional induction PHI.

This is the value it increments by when the predicate is satisfied.

Definition at line 515 of file IVDescriptors.h.

◆ isConditionalInductionPHI()


The documentation for this class was generated from the following files: