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:

protected UnderlyingVal

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:

Inherited from VPUser:

Inherited from VPValue:

Methods

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)

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)

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)

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

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

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

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

llvm::Instruction* getUnderlyingInstr()

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

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

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

Description

Print the VPInstruction.

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

Parameters

llvm::raw_ostream& O

void setUnderlyingInstr(llvm::Instruction* I)

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

Parameters

llvm::Instruction* I