LLVM 22.0.0git
|
Class that maps (parts of) an existing VPlan to trees of combined VPInstructions. More...
#include "Transforms/Vectorize/VPlanSLP.h"
Public Member Functions | |
VPlanSlp (VPInterleavedAccessInfo &IAI, VPBasicBlock &BB) | |
~VPlanSlp ()=default | |
LLVM_ABI_FOR_TEST VPInstruction * | buildGraph (ArrayRef< VPValue * > Operands) |
Tries to build an SLP tree rooted at Operands and returns a VPInstruction combining Operands , if they can be combined. | |
unsigned | getWidestBundleBits () const |
Return the width of the widest combined bundle in bits. | |
bool | isCompletelySLP () const |
Return true if all visited instruction can be combined. |
Class that maps (parts of) an existing VPlan to trees of combined VPInstructions.
Definition at line 74 of file VPlanSLP.h.
|
inline |
Definition at line 130 of file VPlanSLP.h.
|
default |
References LLVM_ABI_FOR_TEST, and Operands.
VPInstruction * VPlanSlp::buildGraph | ( | ArrayRef< VPValue * > | Operands | ) |
Tries to build an SLP tree rooted at Operands
and returns a VPInstruction combining Operands
, if they can be combined.
Definition at line 415 of file VPlanSLP.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, areCommutative(), assert(), buildGraph(), llvm::cast(), llvm::dbgs(), llvm::ArrayRef< T >::empty(), getOpcode(), getOperands(), I, LLVM_DEBUG, Operands, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::VPInstruction::SLPLoad, llvm::VPInstruction::SLPStore, and llvm::to_vector().
Referenced by buildGraph().
|
inline |
Return the width of the widest combined bundle in bits.
Definition at line 139 of file VPlanSLP.h.
|
inline |
Return true if all visited instruction can be combined.
Definition at line 142 of file VPlanSLP.h.