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()
VPBuilder()
Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:63
¶void clearInsertionPoint()
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 = "")
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 = "")
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 = "")
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 = "")
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 = "")
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 = "")
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 = "")
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 = "")
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
llvm::VPBasicBlock* getInsertBlock() const
Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:72
¶VPBasicBlock::iterator getInsertPoint() const
VPBasicBlock::iterator getInsertPoint() const
Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:73
¶llvm::VPInstruction* insert(
llvm::VPInstruction* I) const
llvm::VPInstruction* insert(
llvm::VPInstruction* I) const
Description
Insert and return the specified instruction.
Declared at: llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h:119
Parameters
¶void restoreIP(llvm::VPBuilder::VPInsertPoint IP)
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
¶void setInsertPoint(llvm::VPBasicBlock* TheBB)
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)
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