class VPBuilder

Declaration

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

Description

VPlan-based builder utility analogous to IRBuilder.

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

Method Overview

  • public VPBuilder()
  • public void clearInsertionPoint()
  • public llvm::VPValue * createAnd(llvm::VPValue * LHS, llvm::VPValue * RHS)
  • public llvm::VPValue * createNaryOp(unsigned int Opcode, ArrayRef<llvm::VPValue *> Operands, llvm::Instruction * Inst = nullptr)
  • public llvm::VPValue * createNaryOp(unsigned int Opcode, std::initializer_list<VPValue *> Operands, llvm::Instruction * Inst = nullptr)
  • public llvm::VPValue * createNot(llvm::VPValue * Operand)
  • public llvm::VPValue * createOr(llvm::VPValue * LHS, llvm::VPValue * RHS)
  • 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:54

void clearInsertionPoint()

Description

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

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

llvm::VPValue* createAnd(llvm::VPValue* LHS,
                         llvm::VPValue* RHS)

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

Parameters

llvm::VPValue* LHS
llvm::VPValue* RHS

llvm::VPValue* createNaryOp(
    unsigned int Opcode,
    ArrayRef<llvm::VPValue*> Operands,
    llvm::Instruction* Inst = nullptr)

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

Parameters

unsigned int Opcode
ArrayRef<llvm::VPValue*> Operands
llvm::Instruction* Inst = nullptr

llvm::VPValue* createNaryOp(
    unsigned int Opcode,
    std::initializer_list<VPValue*> Operands,
    llvm::Instruction* Inst = nullptr)

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

Parameters

unsigned int Opcode
std::initializer_list<VPValue*> Operands
llvm::Instruction* Inst = nullptr

llvm::VPValue* createNot(llvm::VPValue* Operand)

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

Parameters

llvm::VPValue* Operand

llvm::VPValue* createOr(llvm::VPValue* LHS,
                        llvm::VPValue* RHS)

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

Parameters

llvm::VPValue* LHS
llvm::VPValue* RHS

llvm::VPBasicBlock* getInsertBlock() const

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

VPBasicBlock::iterator getInsertPoint() const

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

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

Description

Insert and return the specified instruction.

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

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

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

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

Parameters

llvm::VPBasicBlock* TheBB
VPBasicBlock::iterator IP