LLVM
8.0.1
|
VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exit subgraph of the output IR CFG. More...
#include "Transforms/Vectorize/VPlan.h"
Static Public Member Functions | |
static bool | classof (const VPBlockBase *V) |
Method to support type inquiry through isa, cast, and dyn_cast. More... | |
Static Public Member Functions inherited from llvm::VPBlockBase | |
static void | deleteCFG (VPBlockBase *Entry) |
Delete all blocks reachable from a given VPBlockBase, inclusive. More... | |
Additional Inherited Members | |
Public Types inherited from llvm::VPBlockBase | |
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 * > |
Protected Member Functions inherited from llvm::VPBlockBase | |
VPBlockBase (const unsigned char SC, const std::string &N) | |
VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exit subgraph of the output IR CFG.
A VPRegionBlock may indicate that its contents are to be replicated several times. This is designed to support predicated scalarization, in which a scalar if-then code structure needs to be generated VF * UF times. Having this replication indicator helps to keep a single model for multiple candidate VF's. The actual replication takes place only once the desired VF and UF have been determined.
|
inline |
Definition at line 1063 of file VPlan.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::VPBlockBase::getPredecessors(), llvm::VPBlockBase::getSuccessors(), and llvm::VPBlockBase::setParent().
|
inlinestatic |
Method to support type inquiry through isa, cast, and dyn_cast.
Definition at line 1082 of file VPlan.h.
References llvm::VPBlockBase::getVPBlockID().
|
overridevirtual |
The method which generates the output IR instructions that correspond to this VPRegionBlock, thereby "executing" the VPlan.
Implements llvm::VPBlockBase.
Definition at line 231 of file VPlan.cpp.
References assert(), llvm::dbgs(), llvm::VPTransformState::Instance, LLVM_DEBUG, llvm::VPTransformState::UF, and llvm::VPTransformState::VF.
|
inline |
|
inline |
Definition at line 1086 of file VPlan.h.
Referenced by llvm::VPlan::execute(), llvm::VPBlockBase::getEnclosingBlockWithPredecessors(), llvm::GraphTraits< VPRegionBlock * >::getEntryNode(), llvm::GraphTraits< const VPRegionBlock * >::getEntryNode(), llvm::GraphTraits< VPRegionBlock * >::nodes_begin(), llvm::GraphTraits< const VPRegionBlock * >::nodes_begin(), llvm::VPValue::replaceAllUsesWith(), verifyBlocksInRegion(), verifyRegion(), verifyRegionRec(), and llvm::VPlanHCFGTransforms::VPInstructionsToVPRecipes().
|
inline |
|
inline |
Definition at line 1104 of file VPlan.h.
Referenced by llvm::VPBlockBase::getEnclosingBlockWithSuccessors(), llvm::GraphTraits< Inverse< VPRegionBlock * > >::nodes_begin(), verifyBlocksInRegion(), verifyRegion(), and verifyRegionRec().
|
inline |
|
inline |
An indicator whether this region is to generate multiple replicated instances of output IR corresponding to its VPBlockBases.
Definition at line 1118 of file VPlan.h.
Referenced by llvm::VPlan::execute().
|
inline |
Set EntryBlock
as the entry VPBlockBase of this VPRegionBlock.
EntryBlock
must have no predecessors.
Definition at line 1091 of file VPlan.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::VPBlockBase::getPredecessors(), and llvm::VPBlockBase::setParent().
|
inline |
Set ExitBlock
as the exit VPBlockBase of this VPRegionBlock.
ExitBlock
must have no successors.
Definition at line 1109 of file VPlan.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::VPBlockBase::getSuccessors(), and llvm::VPBlockBase::setParent().