class VPBuilder

Declaration

class VPBuilder { /* full declaration omitted */ };

Description

VPlan-based builder utility analogous to IRBuilder.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:43

Member Variables

private llvm::VPBasicBlock* BB = nullptr
private VPBasicBlock::iterator InsertPt = llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>()

Method Overview

  • public VPBuilder()
  • public void clearInsertionPoint()
  • public llvm::VPValue * createAnd(llvm::VPValue * LHS, llvm::VPValue * RHS, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • private llvm::VPInstruction * createInstruction(unsigned int Opcode, ArrayRef<llvm::VPValue *> Operands, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • private llvm::VPInstruction * createInstruction(unsigned int Opcode, std::initializer_list<VPValue *> Operands, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • public llvm::VPValue * createNaryOp(unsigned int Opcode, ArrayRef<llvm::VPValue *> Operands, llvm::Instruction * Inst = nullptr, const llvm::Twine & Name = "")
  • public llvm::VPValue * createNaryOp(unsigned int Opcode, ArrayRef<llvm::VPValue *> Operands, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • public llvm::VPValue * createNot(llvm::VPValue * Operand, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • public llvm::VPValue * createOr(llvm::VPValue * LHS, llvm::VPValue * RHS, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • public llvm::VPValue * createSelect(llvm::VPValue * Cond, llvm::VPValue * TrueVal, llvm::VPValue * FalseVal, llvm::DebugLoc DL, const llvm::Twine & Name = "")
  • public llvm::VPBasicBlock * getInsertBlock() const
  • public VPBasicBlock::iterator getInsertPoint() const
  • public llvm::VPInstruction * insert(llvm::VPInstruction * I) const
  • public void restoreIP(llvm::VPBuilder::VPInsertPoint IP)
  • public void setInsertPoint(llvm::VPBasicBlock * TheBB)
  • public void setInsertPoint(llvm::VPBasicBlock * TheBB, VPBasicBlock::iterator IP)

Methods

VPBuilder()

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:63

void clearInsertionPoint()

Description

Clear the insertion point: created instructions will not be inserted into a block.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:67

llvm::VPValue* createAnd(
    llvm::VPValue* LHS,
    llvm::VPValue* RHS,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:144

Parameters

llvm::VPValue* LHS
llvm::VPValue* RHS
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPInstruction* createInstruction(
    unsigned int Opcode,
    ArrayRef<llvm::VPValue*> Operands,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:47

Parameters

unsigned int Opcode
ArrayRef<llvm::VPValue*> Operands
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPInstruction* createInstruction(
    unsigned int Opcode,
    std::initializer_list<VPValue*> Operands,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:56

Parameters

unsigned int Opcode
std::initializer_list<VPValue*> Operands
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPValue* createNaryOp(
    unsigned int Opcode,
    ArrayRef<llvm::VPValue*> Operands,
    llvm::Instruction* Inst = nullptr,
    const llvm::Twine& Name = "")

Description

Create an N-ary operation with \p Opcode, \p Operands and set \p Inst as its underlying Instruction.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:126

Parameters

unsigned int Opcode
ArrayRef<llvm::VPValue*> Operands
llvm::Instruction* Inst = nullptr
const llvm::Twine& Name = ""

llvm::VPValue* createNaryOp(
    unsigned int Opcode,
    ArrayRef<llvm::VPValue*> Operands,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:135

Parameters

unsigned int Opcode
ArrayRef<llvm::VPValue*> Operands
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPValue* createNot(
    llvm::VPValue* Operand,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:140

Parameters

llvm::VPValue* Operand
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPValue* createOr(
    llvm::VPValue* LHS,
    llvm::VPValue* RHS,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:149

Parameters

llvm::VPValue* LHS
llvm::VPValue* RHS
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPValue* createSelect(
    llvm::VPValue* Cond,
    llvm::VPValue* TrueVal,
    llvm::VPValue* FalseVal,
    llvm::DebugLoc DL,
    const llvm::Twine& Name = "")

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:154

Parameters

llvm::VPValue* Cond
llvm::VPValue* TrueVal
llvm::VPValue* FalseVal
llvm::DebugLoc DL
const llvm::Twine& Name = ""

llvm::VPBasicBlock* getInsertBlock() const

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:72

VPBasicBlock::iterator getInsertPoint() const

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:73

llvm::VPInstruction* insert(
    llvm::VPInstruction* I) const

Description

Insert and return the specified instruction.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:119

Parameters

llvm::VPInstruction* I

void restoreIP(llvm::VPBuilder::VPInsertPoint IP)

Description

Sets the current insert point to a previously-saved location.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:96

Parameters

llvm::VPBuilder::VPInsertPoint IP

void setInsertPoint(llvm::VPBasicBlock* TheBB)

Description

This specifies that created VPInstructions should be appended to the end of the specified block.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:105

Parameters

llvm::VPBasicBlock* TheBB

void setInsertPoint(llvm::VPBasicBlock* TheBB,
                    VPBasicBlock::iterator IP)

Description

This specifies that created instructions should be inserted at the specified point.

Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:113

Parameters

llvm::VPBasicBlock* TheBB
VPBasicBlock::iterator IP