class VPHeaderPHIRecipe

Declaration

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

Description

A pure virtual base class for all recipes modeling header phis, including phis for first order recurrences, pointer inductions and reductions. The start value is the first operand of the recipe and the incoming value from the backedge is the second operand.

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

Inherits from: VPRecipeBase, VPValue

Member Variables

Inherited from VPValue:

protected UnderlyingVal
protected Def

Method Overview

  • protected VPHeaderPHIRecipe(unsigned char VPVID, unsigned char VPDefID, llvm::PHINode * Phi, llvm::VPValue * Start = nullptr)
  • public static inline bool classof(const llvm::VPRecipeBase * B)
  • public static inline bool classof(const llvm::VPValue * V)
  • public void execute(llvm::VPTransformState & State)
  • public llvm::VPRecipeBase * getBackedgeRecipe()
  • public llvm::VPValue * getBackedgeValue()
  • public llvm::VPValue * getStartValue()
  • public llvm::VPValue * getStartValue() const
  • public void print(llvm::raw_ostream & O, const llvm::Twine & Indent, llvm::VPSlotTracker & SlotTracker) const
  • public ~VPHeaderPHIRecipe()

Inherited from VPValue:

Inherited from VPRecipeBase:

Inherited from VPUser:

Inherited from VPDef:

Methods

VPHeaderPHIRecipe(unsigned char VPVID,
                  unsigned char VPDefID,
                  llvm::PHINode* Phi,
                  llvm::VPValue* Start = nullptr)

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

Parameters

unsigned char VPVID
unsigned char VPDefID
llvm::PHINode* Phi
llvm::VPValue* Start = nullptr

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

Description

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

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

Parameters

const llvm::VPRecipeBase* B

static inline bool classof(const llvm::VPValue* V)

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

Parameters

const llvm::VPValue* V

void execute(llvm::VPTransformState& State)

Description

Generate the phi nodes.

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

Parameters

llvm::VPTransformState& State

llvm::VPRecipeBase* getBackedgeRecipe()

Description

Returns the backedge value as a recipe. The backedge value is guaranteed to be a recipe.

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

llvm::VPValue* getBackedgeValue()

Description

Returns the incoming value from the loop backedge.

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

llvm::VPValue* getStartValue()

Description

Returns the start value of the phi, if one is set.

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

llvm::VPValue* getStartValue() const

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

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

Parameters

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

~VPHeaderPHIRecipe()

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