class VPInstruction
Declaration
class VPInstruction : public VPUser, public VPRecipeBase { /* full declaration omitted */ };
Description
This is a concrete Recipe that models a single VPlan-level instruction. While as any Recipe it may generate a sequence of IR instructions when executed, these instructions would always form a single-def expression as the VPInstruction is also a single def-use vertex.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:652
Inherits from: VPUser, VPRecipeBase
Member Variables
Inherited from VPValue:
Method Overview
- public VPInstruction(unsigned int Opcode, ArrayRef<llvm::VPValue *> Operands)
- public VPInstruction(unsigned int Opcode, std::initializer_list<VPValue *> Operands)
- public static inline bool classof(const llvm::VPValue * V)
- public static inline bool classof(const llvm::VPRecipeBase * R)
- public llvm::VPInstruction * clone() const
- public void execute(llvm::VPTransformState & State)
- public unsigned int getOpcode() const
- protected llvm::Instruction * getUnderlyingInstr()
- public bool mayWriteToMemory() const
- public void print(llvm::raw_ostream & O, const llvm::Twine & Indent) const
- public void print(llvm::raw_ostream & O) const
- protected void setUnderlyingInstr(llvm::Instruction * I)
Inherited from VPRecipeBase:
- public eraseFromParent
- public execute
- public getParent
- public getParent
- public getVPRecipeID
- public insertAfter
- public insertBefore
- public moveAfter
- public print
- public removeFromParent
Inherited from VPUser:
- public addOperand
- public classof
- public getNumOperands
- public getOperand
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operands
- public operands
- public setOperand
Inherited from VPValue:
- public addUser
- public getNumUsers
- protected getUnderlyingValue
- public getVPValueID
- public hasMoreThanOneUniqueUser
- public printAsOperand
- public replaceAllUsesWith
- protected setUnderlyingValue
- public user_begin
- public user_begin
- public user_end
- public user_end
- public users
- public users
Methods
¶VPInstruction(unsigned int Opcode,
ArrayRef<llvm::VPValue*> Operands)
VPInstruction(unsigned int Opcode,
ArrayRef<llvm::VPValue*> Operands)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:680
Parameters
- unsigned int Opcode
- ArrayRef<llvm::VPValue*> Operands
¶VPInstruction(
unsigned int Opcode,
std::initializer_list<VPValue*> Operands)
VPInstruction(
unsigned int Opcode,
std::initializer_list<VPValue*> Operands)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:684
Parameters
- unsigned int Opcode
- std::initializer_list<VPValue*> Operands
¶static inline bool classof(const llvm::VPValue* V)
static inline bool classof(const llvm::VPValue* V)
Description
Method to support type inquiry through isa, cast, and dyn_cast.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:688
Parameters
- const llvm::VPValue* V
¶static inline bool classof(
const llvm::VPRecipeBase* R)
static inline bool classof(
const llvm::VPRecipeBase* R)
Description
Method to support type inquiry through isa, cast, and dyn_cast.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:698
Parameters
- const llvm::VPRecipeBase* R
¶llvm::VPInstruction* clone() const
llvm::VPInstruction* clone() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:692
¶void execute(llvm::VPTransformState& State)
void execute(llvm::VPTransformState& State)
Description
Generate the instruction. TODO: We currently execute only per-part unless a specific instance is provided.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:707
Parameters
- llvm::VPTransformState& State
¶unsigned int getOpcode() const
unsigned int getOpcode() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:702
¶llvm::Instruction* getUnderlyingInstr()
llvm::Instruction* getUnderlyingInstr()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:673
¶bool mayWriteToMemory() const
bool mayWriteToMemory() const
Description
Return true if this instruction may modify memory.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:716
¶void print(llvm::raw_ostream& O,
const llvm::Twine& Indent) const
void print(llvm::raw_ostream& O,
const llvm::Twine& Indent) const
Description
Print the Recipe.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:710
Parameters
- llvm::raw_ostream& O
- const llvm::Twine& Indent
¶void print(llvm::raw_ostream& O) const
void print(llvm::raw_ostream& O) const
Description
Print the VPInstruction.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:713
Parameters
¶void setUnderlyingInstr(llvm::Instruction* I)
void setUnderlyingInstr(llvm::Instruction* I)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:677