LLVM 22.0.0git
llvm::VPPhiAccessors Class Referenceabstract

Helper type to provide functions to access incoming values and blocks for phi-like recipes. More...

#include "Transforms/Vectorize/VPlan.h"

Inheritance diagram for llvm::VPPhiAccessors:
[legend]

Public Types

using const_incoming_blocks_range

Public Member Functions

virtual ~VPPhiAccessors ()=default
VPValuegetIncomingValue (unsigned Idx) const
 Returns the incoming VPValue with index Idx.
const VPBasicBlockgetIncomingBlock (unsigned Idx) const
 Returns the incoming block with index Idx.
virtual unsigned getNumIncoming () const
 Returns the number of incoming values, also number of incoming blocks.
VPUser::const_operand_range incoming_values () const
 Returns an interator range over the incoming values.
const_incoming_blocks_range incoming_blocks () const
 Returns an iterator range over the incoming blocks.
detail::zippy< llvm::detail::zip_first, VPUser::const_operand_range, const_incoming_blocks_rangeincoming_values_and_blocks () const
 Returns an iterator range over pairs of incoming values and corresponding incoming blocks.
void removeIncomingValueFor (VPBlockBase *IncomingBlock) const
 Removes the incoming value for IncomingBlock, which must be a predecessor.
void printPhiOperands (raw_ostream &O, VPSlotTracker &SlotTracker) const
 Print the recipe.

Protected Member Functions

virtual const VPRecipeBasegetAsRecipe () const =0
 Return a VPRecipeBase* to the current object.

Detailed Description

Helper type to provide functions to access incoming values and blocks for phi-like recipes.

Definition at line 1245 of file VPlan.h.

Member Typedef Documentation

◆ const_incoming_blocks_range

Initial value:
detail::index_iterator, std::function<const VPBasicBlock *(size_t)>>>
VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph.
Definition VPlan.h:3750
A range adaptor for a pair of iterators.

Definition at line 1272 of file VPlan.h.

Constructor & Destructor Documentation

◆ ~VPPhiAccessors()

virtual llvm::VPPhiAccessors::~VPPhiAccessors ( )
virtualdefault

Member Function Documentation

◆ getAsRecipe()

virtual const VPRecipeBase * llvm::VPPhiAccessors::getAsRecipe ( ) const
protectedpure virtual

◆ getIncomingBlock()

const VPBasicBlock * llvm::VPPhiAccessors::getIncomingBlock ( unsigned Idx) const
inline

Returns the incoming block with index Idx.

Definition at line 3894 of file VPlan.h.

References getAsRecipe(), llvm::VPBasicBlock::getCFGPredecessor(), and llvm::VPRecipeBase::getParent().

Referenced by llvm::VPPhi::execute(), incoming_blocks(), and printPhiOperands().

◆ getIncomingValue()

VPValue * llvm::VPPhiAccessors::getIncomingValue ( unsigned Idx) const
inline

Returns the incoming VPValue with index Idx.

Definition at line 1254 of file VPlan.h.

References getAsRecipe(), and llvm::VPUser::getOperand().

Referenced by llvm::VPPhi::execute().

◆ getNumIncoming()

virtual unsigned llvm::VPPhiAccessors::getNumIncoming ( ) const
inlinevirtual

Returns the number of incoming values, also number of incoming blocks.

Reimplemented in llvm::VPReductionPHIRecipe, llvm::VPWidenInductionRecipe, and llvm::VPWidenIntOrFpInductionRecipe.

Definition at line 1262 of file VPlan.h.

References getAsRecipe(), and llvm::VPUser::getNumOperands().

Referenced by llvm::VPPhi::execute(), incoming_blocks(), and incoming_values().

◆ incoming_blocks()

const_incoming_blocks_range llvm::VPPhiAccessors::incoming_blocks ( ) const
inline

Returns an iterator range over the incoming blocks.

Definition at line 1276 of file VPlan.h.

References getIncomingBlock(), getNumIncoming(), and llvm::map_range().

Referenced by incoming_values_and_blocks().

◆ incoming_values()

VPUser::const_operand_range llvm::VPPhiAccessors::incoming_values ( ) const
inline

Returns an interator range over the incoming values.

Definition at line 1267 of file VPlan.h.

References getAsRecipe(), getNumIncoming(), and llvm::make_range().

Referenced by incoming_values_and_blocks().

◆ incoming_values_and_blocks()

detail::zippy< llvm::detail::zip_first, VPUser::const_operand_range, const_incoming_blocks_range > llvm::VPPhiAccessors::incoming_values_and_blocks ( ) const
inline

Returns an iterator range over pairs of incoming values and corresponding incoming blocks.

Definition at line 1287 of file VPlan.h.

References incoming_blocks(), incoming_values(), and llvm::zip_equal().

Referenced by llvm::InnerLoopVectorizer::fixNonInductionPHIs(), and llvm::VPIRPhi::print().

◆ printPhiOperands()

void VPPhiAccessors::printPhiOperands ( raw_ostream & O,
VPSlotTracker & SlotTracker ) const

◆ removeIncomingValueFor()

void VPPhiAccessors::removeIncomingValueFor ( VPBlockBase * IncomingBlock) const

Removes the incoming value for IncomingBlock, which must be a predecessor.

Definition at line 1544 of file VPlanRecipes.cpp.

References assert(), and getAsRecipe().


The documentation for this class was generated from the following files: