LLVM
8.0.1
|
This is a concrete Recipe that models a single VPlan-level instruction. More...
#include "Transforms/Vectorize/VPlan.h"
Public Types | |
enum | { Not = Instruction::OtherOpsEnd + 1, ICmpULE, SLPLoad, SLPStore } |
VPlan opcodes, extending LLVM IR with idiomatics instructions. More... | |
Public Types inherited from llvm::VPUser | |
typedef SmallVectorImpl< VPValue * >::iterator | operand_iterator |
typedef SmallVectorImpl< VPValue * >::const_iterator | const_operand_iterator |
typedef iterator_range< operand_iterator > | operand_range |
typedef iterator_range< const_operand_iterator > | const_operand_range |
Public Types inherited from llvm::VPValue | |
enum | { VPValueSC, VPUserSC, VPInstructionSC } |
An enumeration for keeping track of the concrete subclass of VPValue that are actually instantiated. More... | |
typedef SmallVectorImpl< VPUser * >::iterator | user_iterator |
typedef SmallVectorImpl< VPUser * >::const_iterator | const_user_iterator |
typedef iterator_range< user_iterator > | user_range |
typedef iterator_range< const_user_iterator > | const_user_range |
Public Types inherited from llvm::VPRecipeBase | |
using | VPRecipeTy = enum { VPBlendSC, VPBranchOnMaskSC, VPInstructionSC, VPInterleaveSC, VPPredInstPHISC, VPReplicateSC, VPWidenIntOrFpInductionSC, VPWidenMemoryInstructionSC, VPWidenPHISC, VPWidenSC, } |
An enumeration for keeping track of the concrete subclass of VPRecipeBase that is actually instantiated. More... | |
Static Public Member Functions | |
static bool | classof (const VPValue *V) |
Method to support type inquiry through isa, cast, and dyn_cast. More... | |
static bool | classof (const VPRecipeBase *R) |
Method to support type inquiry through isa, cast, and dyn_cast. More... | |
Static Public Member Functions inherited from llvm::VPUser | |
static bool | classof (const VPValue *V) |
Method to support type inquiry through isa, cast, and dyn_cast. More... | |
Protected Member Functions | |
Instruction * | getUnderlyingInstr () |
void | setUnderlyingInstr (Instruction *I) |
Protected Member Functions inherited from llvm::VPUser | |
VPUser (const unsigned char SC) | |
VPUser (const unsigned char SC, ArrayRef< VPValue *> Operands) | |
Protected Member Functions inherited from llvm::VPValue | |
VPValue (const unsigned char SC, Value *UV=nullptr) | |
Value * | getUnderlyingValue () |
Return the underlying Value attached to this VPValue. More... | |
void | setUnderlyingValue (Value *Val) |
Protected Member Functions inherited from llvm::ilist_node_with_parent< VPRecipeBase, VPBasicBlock > | |
ilist_node_with_parent ()=default | |
Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type > | |
ilist_node_impl ()=default | |
Friends | |
class | VPlanHCFGTransforms |
class | VPlanSlp |
Additional Inherited Members | |
Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type > | |
using | self_iterator = ilist_iterator< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type, false, false > |
using | const_self_iterator = ilist_iterator< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type, false, true > |
using | reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type, true, false > |
using | const_reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type, true, true > |
Protected Attributes inherited from llvm::VPValue | |
Value * | UnderlyingVal |
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.
anonymous enum |
Method to support type inquiry through isa, cast, and dyn_cast.
Definition at line 648 of file VPlan.h.
References llvm::VPValue::getVPValueID(), and llvm::VPValue::VPInstructionSC.
|
inlinestatic |
Method to support type inquiry through isa, cast, and dyn_cast.
Definition at line 658 of file VPlan.h.
References llvm::VPRecipeBase::getVPRecipeID().
|
inline |
|
overridevirtual |
Generate the instruction.
TODO: We currently execute only per-part unless a specific instance is provided.
Implements llvm::VPRecipeBase.
Definition at line 318 of file VPlan.cpp.
References assert(), llvm::VPTransformState::Instance, and llvm::VPTransformState::UF.
|
inline |
Definition at line 662 of file VPlan.h.
References Indent, llvm::RISCVFenceField::O, and print().
Referenced by areConsecutiveOrMatch().
|
inlineprotected |
|
inline |
Return true if this instruction may modify memory.
Definition at line 676 of file VPlan.h.
References llvm::MCID::Call, and llvm::SPII::Store.
|
overridevirtual |
Print the Recipe.
Implements llvm::VPRecipeBase.
Definition at line 324 of file VPlan.cpp.
References llvm::VPBlockBase::print().
void VPInstruction::print | ( | raw_ostream & | O | ) | const |
Print the VPInstruction.
Definition at line 330 of file VPlan.cpp.
References getOpcode(), llvm::Instruction::getOpcodeName(), ICmpULE, Not, llvm::VPBlockBase::printAsOperand(), SLPLoad, and SLPStore.
|
inlineprotected |
|
friend |