class VPWidenCanonicalIVRecipe

Declaration

class VPWidenCanonicalIVRecipe : public VPRecipeBase, public VPValue { /* full declaration omitted */ };

Description

A Recipe for widening the canonical induction variable of the vector loop.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1917

Inherits from: VPRecipeBase, VPValue

Member Variables

Inherited from VPValue:

protected UnderlyingVal
protected Def

Method Overview

  • public VPWidenCanonicalIVRecipe(llvm::VPCanonicalIVPHIRecipe * CanonicalIV)
  • public static inline bool classof(const llvm::VPDef * D)
  • public static inline bool classof(const llvm::VPUser * U)
  • public static inline bool classof(const llvm::VPRecipeBase * R)
  • public void execute(llvm::VPTransformState & State)
  • public const llvm::Type * getScalarType() const
  • public void print(llvm::raw_ostream & O, const llvm::Twine & Indent, llvm::VPSlotTracker & SlotTracker) const
  • public ~VPWidenCanonicalIVRecipe()

Inherited from VPValue:

Inherited from VPRecipeBase:

Inherited from VPUser:

Inherited from VPDef:

Methods

VPWidenCanonicalIVRecipe(
    llvm::VPCanonicalIVPHIRecipe* CanonicalIV)

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1919

Parameters

llvm::VPCanonicalIVPHIRecipe* CanonicalIV

static inline bool classof(const llvm::VPDef* D)

Description

Method to support type inquiry through isa, cast, and dyn_cast.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1926

Parameters

const llvm::VPDef* D

static inline bool classof(const llvm::VPUser* U)

Description

Extra classof implementations to allow directly casting from VPUser -> VPWidenCanonicalIVRecipe.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1932

Parameters

const llvm::VPUser* U

static inline bool classof(
    const llvm::VPRecipeBase* R)

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1936

Parameters

const llvm::VPRecipeBase* R

void execute(llvm::VPTransformState& State)

Description

Generate a canonical vector induction variable of the vector loop, with start = { <Part *VF, Part*VF+1, ..., Part*VF+VF-1> for 0 < = Part < UF}, and step = <VF *UF, VF*UF, ..., VF*UF>.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1943

Parameters

llvm::VPTransformState& State

const llvm::Type* getScalarType() const

Description

Returns the scalar type of the induction.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1952

void print(llvm::raw_ostream& O,
           const llvm::Twine& Indent,
           llvm::VPSlotTracker& SlotTracker) const

Description

Print the recipe.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1947

Parameters

llvm::raw_ostream& O
const llvm::Twine& Indent
llvm::VPSlotTracker& SlotTracker

~VPWidenCanonicalIVRecipe()

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1923