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:
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:
- public addUser
- public dump
- public getDef
- public getDef
- public getLiveInIRValue
- public getLiveInIRValue
- public getNumUsers
- public getUnderlyingValue
- public getUnderlyingValue
- public getVPValueID
- public hasMoreThanOneUniqueUser
- public print
- public printAsOperand
- public removeUser
- public replaceAllUsesWith
- protected setUnderlyingValue
- public user_begin
- public user_begin
- public user_end
- public user_end
- public users
- public users
Inherited from VPRecipeBase:
- public classof
- public classof
- public eraseFromParent
- public execute
- public getParent
- public getParent
- public getUnderlyingInstr
- public getUnderlyingInstr
- public insertAfter
- public insertBefore
- public insertBefore
- public isPhi
- public mayHaveSideEffects
- public mayReadFromMemory
- public mayReadOrWriteMemory
- public mayWriteToMemory
- public moveAfter
- public moveBefore
- public removeFromParent
Inherited from VPUser:
- public addOperand
- public classof
- public getNumOperands
- public getOperand
- public getVPUserID
- public onlyFirstLaneUsed
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operands
- public operands
- protected printOperands
- public removeLastOperand
- public setOperand
- public usesScalars
Inherited from VPDef:
- public definedValues
- public definedValues
- public dump
- public getNumDefinedValues
- public getVPDefID
- public getVPSingleValue
- public getVPSingleValue
- public getVPValue
- public getVPValue
- public print
Methods
¶VPHeaderPHIRecipe(unsigned char VPVID,
unsigned char VPDefID,
llvm::PHINode* Phi,
llvm::VPValue* Start = nullptr)
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)
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)
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)
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()
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()
llvm::VPValue* getBackedgeValue()
Description
Returns the incoming value from the loop backedge.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1171
¶llvm::VPValue* getStartValue()
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
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
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()
~VPHeaderPHIRecipe()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1133