LLVM 18.0.0git
|
A value that is used outside the VPlan. More...
#include "Transforms/Vectorize/VPlan.h"
Static Public Member Functions | |
static bool | classof (const VPUser *U) |
Additional Inherited Members | |
![]() | |
enum class | VPUserID { Recipe , LiveOut } |
Subclass identifier (for isa/dyn_cast). More... | |
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 |
![]() | |
void | printOperands (raw_ostream &O, VPSlotTracker &SlotTracker) const |
Print the operands to O . | |
VPUser (ArrayRef< VPValue * > Operands, VPUserID ID) | |
VPUser (std::initializer_list< VPValue * > Operands, VPUserID ID) | |
template<typename IterT > | |
VPUser (iterator_range< IterT > Operands, VPUserID ID) | |
A value that is used outside the VPlan.
The operand of the user needs to be added to the associated LCSSA phi node.
Definition at line 674 of file VPlan.h.
References llvm::VPUser::LiveOut.
void VPLiveOut::fixPhi | ( | VPlan & | Plan, |
VPTransformState & | State | ||
) |
Fixup the wrapped LCSSA phi node in the unique exit block.
This simply means we need to add the appropriate incoming value from the middle block as exiting edges from the scalar epilogue loop (if present) are already in place, and we exit the vector loop exclusively to the middle block.
Definition at line 166 of file VPlanRecipes.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::VPTransformState::CFG, llvm::VPTransformState::get(), llvm::VPLane::getFirstLane(), llvm::VPLane::getLastLaneForVF(), llvm::VPBlockBase::getNumSuccessors(), llvm::VPUser::getOperand(), llvm::VPBlockBase::getSingleSuccessor(), llvm::VPlan::getVectorLoopRegion(), llvm::vputils::isUniformAfterVectorization(), llvm::VPTransformState::UF, llvm::VPTransformState::VF, and llvm::VPTransformState::CFGState::VPBB2IRBB.
|
inline |
void VPLiveOut::print | ( | raw_ostream & | O, |
VPSlotTracker & | SlotTracker | ||
) | const |
Print the VPLiveOut to O
.
Definition at line 181 of file VPlanRecipes.cpp.
References llvm::VPUser::getOperand(), getPhi(), llvm::Value::printAsOperand(), and llvm::VPValue::printAsOperand().
Returns true if the VPLiveOut uses scalars of operand Op
.
Reimplemented from llvm::VPUser.
Definition at line 686 of file VPlan.h.
References assert(), llvm::is_contained(), and llvm::VPUser::operands().