LLVM
13.0.0git
|
VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More...
#include "Transforms/Vectorize/VPlan.h"
Public Types | |
using | RecipeListTy = iplist< VPRecipeBase > |
using | iterator = RecipeListTy::iterator |
Instruction iterators... More... | |
using | const_iterator = RecipeListTy::const_iterator |
using | reverse_iterator = RecipeListTy::reverse_iterator |
using | const_reverse_iterator = RecipeListTy::const_reverse_iterator |
![]() | |
using | VPBlockTy = enum { VPBasicBlockSC, VPRegionBlockSC } |
An enumeration for keeping track of the concrete subclass of VPBlockBase that are actually instantiated. More... | |
using | VPBlocksTy = SmallVectorImpl< VPBlockBase * > |
Static Public Member Functions | |
static RecipeListTy VPBasicBlock::* | getSublistAccess (VPRecipeBase *) |
Returns a pointer to a member of the recipe list. More... | |
static bool | classof (const VPBlockBase *V) |
Method to support type inquiry through isa, cast, and dyn_cast. More... | |
![]() | |
static void | deleteCFG (VPBlockBase *Entry) |
Delete all blocks reachable from a given VPBlockBase, inclusive. More... | |
Additional Inherited Members | |
![]() | |
VPBlockBase (const unsigned char SC, const std::string &N) | |
VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph.
It holds a sequence of zero or more VPRecipe's each representing a sequence of output IR instructions.
Instruction iterators...
|
inline |
Definition at line 1306 of file VPlan.h.
References appendRecipe().
|
inlineoverride |
Definition at line 1312 of file VPlan.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clear().
|
inline |
Augment the existing recipes of a VPBasicBlock with an additional Recipe
as the last recipe.
Definition at line 1362 of file VPlan.h.
References end(), and insert().
Referenced by llvm::VPRecipeBuilder::handleReplication(), and VPBasicBlock().
|
inline |
|
inline |
|
inline |
Recipe iterator methods.
Definition at line 1323 of file VPlan.h.
Referenced by getFirstNonPhi(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
|
inline |
|
inlinestatic |
Method to support type inquiry through isa, cast, and dyn_cast.
Definition at line 1349 of file VPlan.h.
References llvm::VPBlockBase::getVPBlockID().
|
overridevirtual |
Replace all operands of VPUsers in the block with NewValue
and also replaces all uses of VPValues defined in the block with NewValue.
Implements llvm::VPBlockBase.
Definition at line 377 of file VPlan.cpp.
References llvm::tgtok::Def, E, and I.
|
inline |
|
inline |
Definition at line 1325 of file VPlan.h.
Referenced by appendRecipe(), getFirstNonPhi(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
|
inline |
|
overridevirtual |
The method which generates the output IR instructions that correspond to this VPBasicBlock, thereby "executing" the VPlan.
Implements llvm::VPBlockBase.
Definition at line 311 of file VPlan.cpp.
References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), assert(), llvm::VPTransformState::Builder, llvm::VPTransformState::CFG, llvm::BranchInst::Create(), llvm::IRBuilderBase::CreateUnreachable(), llvm::dbgs(), empty(), EnableVPlanNativePath, execute(), llvm::VPTransformState::get(), llvm::VPBlockBase::getCondBit(), llvm::VPBlockBase::getExitBasicBlock(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Value::getName(), llvm::VPBlockBase::getName(), llvm::VPBlockBase::getPredecessors(), llvm::VPBlockBase::getSingleHierarchicalPredecessor(), llvm::VPBlockBase::getSingleHierarchicalSuccessor(), llvm::BasicBlock::getTerminator(), llvm::VPValue::getUnderlyingValue(), llvm::VPTransformState::Instance, llvm::VPTransformState::CFGState::LastBB, llvm::VPTransformState::LI, LLVM_DEBUG, llvm::VPTransformState::CFGState::PrevBB, llvm::VPTransformState::CFGState::PrevVPBB, llvm::ReplaceInstWithInst(), llvm::IRBuilderBase::SetInsertPoint(), llvm::MCID::Terminator, and llvm::VPTransformState::CFGState::VPBB2IRBB.
Referenced by execute().
|
inline |
|
inline |
VPBasicBlock::iterator VPBasicBlock::getFirstNonPhi | ( | ) |
|
inline |
Returns a reference to the list of recipes.
Definition at line 1341 of file VPlan.h.
Referenced by llvm::VPRecipeBase::eraseFromParent(), llvm::VPRecipeBase::insertAfter(), llvm::VPRecipeBase::insertBefore(), and llvm::VPRecipeBase::removeFromParent().
|
inlinestatic |
|
inline |
Definition at line 1353 of file VPlan.h.
References assert(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by appendRecipe().
|
inline |
|
inline |
|
inline |
|
inline |