LLVM 22.0.0git
Public Types | Public Member Functions | Protected Member Functions | List of all members
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 = iterator_range< mapped_iterator< detail::index_iterator, std::function< const VPBasicBlock *(size_t)> > >
 

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 1233 of file VPlan.h.

Member Typedef Documentation

◆ const_incoming_blocks_range

Definition at line 1260 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 3783 of file VPlan.h.

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

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 1242 of file VPlan.h.

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

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::VPWidenInductionRecipe, llvm::VPWidenIntOrFpInductionRecipe, and llvm::VPReductionPHIRecipe.

Definition at line 1250 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 1264 of file VPlan.h.

References getIncomingBlock(), getNumIncoming(), Idx, 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 1255 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 1275 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 1537 of file VPlanRecipes.cpp.

References assert(), and getAsRecipe().


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