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
PHINodegetHeaderPHI () const
 Returns the header PHI described by this descriptor.
PHINodegetBackedgePHI () const
 Returns the backedge PHI that selects between StepInst and the HeaderPHI.
InstructiongetStepInst () const
 Returns the instruction that updates the conditional induction PHI.
const SCEVgetStartSCEV () const
 Returns a SCEV expression for the initial value of the conditional induction PHI.
const SCEVgetStepSCEV () const
 Returns a SCEV expression for the step of the conditional induction PHI.
SCEVNoWrapFlags 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()

SCEVNoWrapFlags 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: