LLVM: llvm::VPlan Class Reference (original) (raw)

VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. More...

#include "[Transforms/Vectorize/VPlan.h](VPlan%5F8h%5Fsource.html)"

Public Member Functions
VPlan (Loop *L)
Construct a VPlan for L.
VPlan (BasicBlock *ScalarHeaderBB)
Construct a VPlan with a new VPBasicBlock as entry, a VPIRBasicBlock wrapping ScalarHeaderBB and a trip count of TC.
LLVM_ABI_FOR_TEST ~VPlan ()
void setEntry (VPBasicBlock *VPBB)
void execute (VPTransformState *State)
Generate the IR code for this VPlan.
InstructionCost cost (ElementCount VF, VPCostContext &Ctx)
Return the cost of this plan.
VPBasicBlock * getEntry ()
const VPBasicBlock * getEntry () const
VPBasicBlock * getVectorPreheader ()
Returns the preheader of the vector loop region, if one exists, or null otherwise.
LLVM_ABI_FOR_TEST VPRegionBlock * getVectorLoopRegion ()
Returns the VPRegionBlock of the vector loop.
LLVM_ABI_FOR_TEST const VPRegionBlock * getVectorLoopRegion () const
VPBasicBlock * getMiddleBlock ()
Returns the 'middle' block of the plan, that is the block that selects whether to execute the scalar tail loop or the exit block from the loop latch.
const VPBasicBlock * getMiddleBlock () const
VPBasicBlock * getScalarPreheader () const
Return the VPBasicBlock for the preheader of the scalar loop.
VPIRBasicBlock * getScalarHeader () const
Return the VPIRBasicBlock wrapping the header of the scalar loop.
ArrayRef< VPIRBasicBlock * > getExitBlocks () const
Return an ArrayRef containing VPIRBasicBlocks wrapping the exit blocks of the original scalar loop.
VPIRBasicBlock * getExitBlock (BasicBlock *IRBB) const
Return the VPIRBasicBlock corresponding to IRBB.
bool isExitBlock (VPBlockBase *VPBB)
Returns true if VPBB is an exit block.
VPValue * getTripCount () const
The trip count of the original loop.
void setTripCount (VPValue *NewTripCount)
Set the trip count assuming it is currently null; if it is not - use resetTripCount().
void resetTripCount (VPValue *NewTripCount)
Resets the trip count for the VPlan.
VPValue * getOrCreateBackedgeTakenCount ()
The backedge taken count of the original loop.
VPValue * getBackedgeTakenCount () const
VPValue & getVectorTripCount ()
The vector trip count.
VPValue & getVF ()
Returns the VF of the vector loop region.
const VPValue & getVF () const
VPValue & getVFxUF ()
Returns VF * UF of the vector loop region.
LLVMContext & getContext () const
void addVF (ElementCount VF)
void setVF (ElementCount VF)
bool hasVF (ElementCount VF) const
bool hasScalableVF () const
iterator_range< SmallSetVector< ElementCount, 2 >::iterator > vectorFactors () const
Returns an iterator range over all VFs of the plan.
bool hasScalarVFOnly () const
bool hasUF (unsigned UF) const
unsigned getUF () const
void setUF (unsigned UF)
bool isUnrolled () const
Returns true if the VPlan already has been unrolled, i.e.
std::string getName () const
Return a string with the name of the plan and the applicable VFs and UFs.
void setName (const Twine &newName)
VPValue * getOrAddLiveIn (Value *V)
Gets the live-in VPValue for V or adds a new live-in (if none exists yet) for V.
VPValue * getTrue ()
Return a VPValue wrapping i1 true.
VPValue * getFalse ()
Return a VPValue wrapping i1 false.
VPValue * getConstantInt (Type *Ty, uint64_t Val, bool IsSigned=false)
Return a VPValue wrapping a ConstantInt with the given type and value.
VPValue * getConstantInt (unsigned BitWidth, uint64_t Val, bool IsSigned=false)
Return a VPValue wrapping a ConstantInt with the given bitwidth and value.
VPValue * getConstantInt (const APInt &Val)
Return a VPValue wrapping a ConstantInt with the given APInt value.
VPValue * getLiveIn (Value *V) const
Return the live-in VPValue for V, if there is one or nullptr otherwise.
ArrayRef< VPValue * > getLiveIns () const
Return the list of live-in VPValues available in the VPlan.
void printLiveIns (raw_ostream &O) const
Print the live-ins of this VPlan to O.
LLVM_ABI_FOR_TEST void print (raw_ostream &O) const
Print this VPlan to O.
LLVM_ABI_FOR_TEST void printDOT (raw_ostream &O) const
Print this VPlan in DOT format to O.
LLVM_DUMP_METHOD void dump () const
Dump the plan to stderr (for debugging).
LLVM_ABI_FOR_TEST VPlan * duplicate ()
Clone the current VPlan, update all VPValues of the new VPlan and cloned recipes to refer to the clones, and return it.
VPBasicBlock * createVPBasicBlock (const Twine &Name, VPRecipeBase *Recipe=nullptr)
Create a new VPBasicBlock with Name and containing Recipe if present.
VPRegionBlock * createLoopRegion (const std::string &Name="", VPBlockBase *Entry=nullptr, VPBlockBase *Exiting=nullptr)
Create a new loop region with Name and entry and exiting blocks set to Entry and Exiting respectively, if set.
VPRegionBlock * createReplicateRegion (VPBlockBase *Entry, VPBlockBase *Exiting, const std::string &Name="")
Create a new replicate region with Entry, Exiting and Name.
VPIRBasicBlock * createEmptyVPIRBasicBlock (BasicBlock *IRBB)
Create a VPIRBasicBlock wrapping IRBB, but do not create VPIRInstructions wrapping the instructions in tIRBB.
LLVM_ABI_FOR_TEST VPIRBasicBlock * createVPIRBasicBlock (BasicBlock *IRBB)
Create a VPIRBasicBlock from IRBB containing VPIRInstructions for all instructions in IRBB, except its terminator which is managed by the successors of the block in VPlan.
bool hasEarlyExit () const
Returns true if the VPlan is based on a loop with an early exit.
bool hasScalarTail () const
Returns true if the scalar tail may execute after the vector loop.
Friends
class VPlanPrinter
class VPSlotTracker

VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost.

VPlan holds a Hierarchical-CFG of VPBasicBlocks and VPRegionBlocks rooted at an Entry VPBasicBlock.

Definition at line 4284 of file VPlan.h.

VPlan() [1/2]

VPlan() [2/2]

llvm::VPlan::VPlan ( BasicBlock * ScalarHeaderBB) inline

addVF()

cost()

createEmptyVPIRBasicBlock()

createLoopRegion()

Create a new loop region with Name and entry and exiting blocks set to Entry and Exiting respectively, if set.

The returned block is owned by the VPlan and deleted once the VPlan is destroyed.

Definition at line 4611 of file VPlan.h.

Referenced by createLoopRegion().

createReplicateRegion()

Create a new replicate region with Entry, Exiting and Name.

The returned block is owned by the VPlan and deleted once the VPlan is destroyed.

Definition at line 4623 of file VPlan.h.

Referenced by createReplicateRegion().

createVPBasicBlock()

createVPIRBasicBlock()

Create a VPIRBasicBlock from IRBB containing VPIRInstructions for all instructions in IRBB, except its terminator which is managed by the successors of the block in VPlan.

The returned block is owned by the VPlan and deleted once the VPlan is destroyed.

Definition at line 1226 of file VPlan.cpp.

References llvm::BasicBlock::begin(), llvm::VPIRInstruction::create(), createEmptyVPIRBasicBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), I, and llvm::make_range().

Referenced by llvm::VPlanTransforms::attachCheckBlock(), duplicate(), VPlan(), and VPlan().

dump()

duplicate()

VPlan * VPlan::duplicate ( )

Clone the current VPlan, update all VPValues of the new VPlan and cloned recipes to refer to the clones, and return it.

Definition at line 1153 of file VPlan.cpp.

References assert(), llvm::cast(), cloneFrom(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), createVPIRBasicBlock(), llvm::dyn_cast(), llvm::find_if(), llvm::VPIRBasicBlock::getIRBasicBlock(), getLiveIns(), llvm::VPBlockBase::getNumSuccessors(), getScalarHeader(), I, llvm::isa(), remapOperands(), llvm::seq(), and llvm::vp_depth_first_shallow().

Referenced by llvm::LoopVectorizePass::processLoop().

execute()

Generate the IR code for this VPlan.

Generate the code inside the preheader and body of the vectorized loop.

Assumes a single pre-header basic-block was created for this. Introduce additional basic-blocks as needed, and fill them all.

Definition at line 905 of file VPlan.cpp.

References llvm::Block, llvm::cast(), llvm::dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DeleteDeadBlocks(), dump(), llvm::LoopBase< BlockT, LoopT >::getBlocksVector(), getExitBlocks(), llvm::vputils::getFirstLoopHeader(), getScalarHeader(), getScalarPreheader(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getTerminator(), getUF(), llvm::VPBlockBase::hasPredecessors(), llvm::isa(), LLVM_DEBUG, llvm::make_early_inc_range(), and setName().

Referenced by llvm::LoopVectorizationPlanner::executePlan().

getBackedgeTakenCount()

VPValue * llvm::VPlan::getBackedgeTakenCount ( ) const inline

getConstantInt() [1/3]

getConstantInt() [2/3]

Return a VPValue wrapping a ConstantInt with the given type and value.

Definition at line 4552 of file VPlan.h.

References getOrAddLiveIn().

Referenced by llvm::VPlanTransforms::addExplicitVectorLength(), llvm::VPlanTransforms::addMinimumIterationCheck(), addVPLaneMaskPhiAndUpdateExitBranch(), llvm::VPlanTransforms::canonicalizeEVLLoops(), cloneForLane(), llvm::VPBuilder::createElementCount(), llvm::VPlanTransforms::createInterleaveGroups(), getConstantInt(), getFalse(), getTrue(), llvm::VPlanTransforms::materializeBackedgeTakenCount(), llvm::VPlanTransforms::materializeVectorTripCount(), llvm::VPlanTransforms::materializeVFAndVFxUF(), llvm::VPlanTransforms::narrowInterleaveGroups(), optimizeEarlyExitInductionUser(), optimizeLatchExitInductionUser(), optimizeMaskToEVL(), optimizeVectorInductionWidthForTCAndVFUF(), llvm::VPlanTransforms::replaceSymbolicStrides(), scalarizeVPWidenPointerInduction(), and tryToReplaceALMWithWideALM().

getConstantInt() [3/3]

getContext()

Definition at line 4477 of file VPlan.h.

References llvm::BasicBlock::getContext(), llvm::VPIRBasicBlock::getIRBasicBlock(), and getScalarHeader().

Referenced by llvm::VPlanTransforms::addBranchWeightToMiddleTerminator(), llvm::VPlanTransforms::addExplicitVectorLength(), llvm::VPlanTransforms::addMinimumIterationCheck(), llvm::VPlanTransforms::addMinimumVectorEpilogueIterationCheck(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::attachCheckBlock(), llvm::VPlanTransforms::convertToConcreteRecipes(), expandVPWidenIntOrFpInduction(), getConstantInt(), optimizeVectorInductionWidthForTCAndVFUF(), simplifyKnownEVL(), transformRecipestoEVLRecipes(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), and tryToReplaceALMWithWideALM().

getEntry() [1/2]

Definition at line 4377 of file VPlan.h.

Referenced by addInitialSkeleton(), llvm::VPlanTransforms::addMinimumIterationCheck(), llvm::VPlanTransforms::addMinimumVectorEpilogueIterationCheck(), addReplicateRegions(), llvm::VPlanTransforms::canonicalizeEVLLoops(), connectEpilogueVectorLoop(), llvm::VPlanTransforms::convertToConcreteRecipes(), cost(), llvm::VPlanTransforms::createLoopRegions(), llvm::VPlanTransforms::cse(), llvm::VPlanTransforms::dissolveLoopRegions(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), llvm::LoopVectorizationPlanner::executePlan(), llvm::VPlanTransforms::expandSCEVs(), llvm::DomTreeNodeTraits< VPBlockBase >::getEntryNode(), llvm::vputils::getFirstLoopHeader(), llvm::vputils::getOrCreateVPValueForSCEVExpr(), getVectorLoopRegion(), getVectorLoopRegion(), hasScalarTail(), llvm::VPlanTransforms::materializeBroadcasts(), llvm::VPlanTransforms::materializePacksAndUnpacks(), mergeBlocksIntoPredecessors(), mergeReplicateRegionsIntoSuccessors(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), print(), llvm::VPlanTransforms::removeBranchOnConst(), llvm::VPlanTransforms::removeDeadRecipes(), removeRedundantExpandSCEVRecipes(), llvm::VPlanTransforms::replaceSymbolicStrides(), llvm::VPlanTransforms::replicateByVF(), llvm::VPBlockBase::setPlan(), simplifyKnownEVL(), llvm::VPlanTransforms::simplifyRecipes(), sinkScalarOperands(), and llvm::VPlanTransforms::unrollByUF().

getEntry() [2/2]

getExitBlock()

getExitBlocks()

getFalse()

VPValue * llvm::VPlan::getFalse ( ) inline

getLiveIn()

getLiveIns()

getMiddleBlock() [1/2]

Returns the 'middle' block of the plan, that is the block that selects whether to execute the scalar tail loop or the exit block from the loop latch.

If there is an early exit from the vector loop, the middle block conceptully has the early exit block as third successor, split accross 2 VPBBs. In that case, the second VPBB selects whether to execute the scalar tail loop or the exit bock. If the scalar tail loop or exit block are known to always execute, the middle block may branch directly to that block. This function cannot be called once the vector loop region has been removed.

Definition at line 4402 of file VPlan.h.

References assert(), llvm::cast(), getScalarPreheader(), llvm::VPBlockBase::getSingleSuccessor(), getVectorLoopRegion(), and llvm::is_contained().

Referenced by llvm::VPlanTransforms::addBranchWeightToMiddleTerminator(), llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), calculateEarlyExitCost(), getMiddleBlock(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::introduceMasksAndLinearize(), isOutsideLoopWorkProfitable(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), llvm::VPlanTransforms::optimizeInductionExitUsers(), preparePlanForMainVectorLoop(), llvm::LoopVectorizePass::processLoop(), and llvm::VPlanTransforms::updateScalarResumePhis().

getMiddleBlock() [2/2]

getName()

std::string VPlan::getName ( ) const

getOrAddLiveIn()

Gets the live-in VPValue for V or adds a new live-in (if none exists yet) for V.

Definition at line 4531 of file VPlan.h.

References assert(), and llvm::VPValue::isLiveIn().

Referenced by llvm::VPlanTransforms::addActiveLaneMask(), addCanonicalIVRecipes(), llvm::VPlanTransforms::addMinimumVectorEpilogueIterationCheck(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::attachCheckBlock(), llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::VPlanTransforms::expandSCEVs(), getConstantInt(), getConstantInt(), llvm::vputils::getOrCreateVPValueForSCEVExpr(), llvm::VPlanTransforms::narrowInterleaveGroups(), preparePlanForEpilogueVectorLoop(), transformRecipestoEVLRecipes(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), and tryToReplaceALMWithWideALM().

getOrCreateBackedgeTakenCount()

VPValue * llvm::VPlan::getOrCreateBackedgeTakenCount ( ) inline

getScalarHeader()

Return the VPIRBasicBlock wrapping the header of the scalar loop.

Definition at line 4425 of file VPlan.h.

Referenced by addInitialSkeleton(), llvm::VPlanTransforms::addMiddleCheck(), duplicate(), execute(), getContext(), getScalarPreheader(), llvm::VPlanTransforms::handleEarlyExits(), preparePlanForMainVectorLoop(), llvm::VPlanTransforms::replicateByVF(), simplifyRecipe(), and llvm::VPSlotTracker::VPSlotTracker().

getScalarPreheader()

VPBasicBlock * llvm::VPlan::getScalarPreheader ( ) const inline

Return the VPBasicBlock for the preheader of the scalar loop.

Definition at line 4420 of file VPlan.h.

References llvm::cast(), and getScalarHeader().

Referenced by llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), llvm::VPlanTransforms::addMiddleCheck(), llvm::VPlanTransforms::attachCheckBlock(), connectEpilogueVectorLoop(), execute(), llvm::LoopVectorizationPlanner::executePlan(), fixScalarResumeValuesFromBypass(), getMiddleBlock(), llvm::VPlanTransforms::handleMaxMinNumReductions(), hasScalarTail(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), preparePlanForMainVectorLoop(), llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo(), and llvm::VPlanTransforms::updateScalarResumePhis().

getTripCount()

VPValue * llvm::VPlan::getTripCount ( ) const inline

The trip count of the original loop.

Definition at line 4439 of file VPlan.h.

References assert().

Referenced by llvm::VPlanTransforms::addActiveLaneMask(), llvm::VPlanTransforms::addExplicitVectorLength(), llvm::VPlanTransforms::addMiddleCheck(), llvm::VPlanTransforms::addMinimumIterationCheck(), addVPLaneMaskPhiAndUpdateExitBranch(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::LoopVectorizationPlanner::executePlan(), llvm::VPlanTransforms::expandSCEVs(), isConditionTrueViaVFAndUF(), llvm::vputils::isHeaderMask(), llvm::VPlanTransforms::materializeBackedgeTakenCount(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), llvm::VPlanTransforms::materializeVectorTripCount(), llvm::VPlanTransforms::materializeVFAndVFxUF(), optimizeVectorInductionWidthForTCAndVFUF(), preparePlanForEpilogueVectorLoop(), llvm::VPlanTransforms::replaceSymbolicStrides(), and simplifyBranchConditionForVFAndUF().

getTrue()

VPValue * llvm::VPlan::getTrue ( ) inline

getUF()

unsigned llvm::VPlan::getUF ( ) const inline

getVectorLoopRegion() [1/2]

Returns the VPRegionBlock of the vector loop.

Definition at line 1011 of file VPlan.cpp.

References B(), llvm::dyn_cast(), getEntry(), and llvm::vp_depth_first_shallow().

Referenced by llvm::VPlanTransforms::addActiveLaneMask(), llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), llvm::VPlanTransforms::addExplicitVectorLength(), addVPLaneMaskPhiAndUpdateExitBranch(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::attachCheckBlock(), llvm::LoopVectorizationPlanner::buildVPlans(), llvm::calculateRegisterUsageForPlan(), llvm::VPlanTransforms::clearReductionWrapFlags(), collectComplementaryPredicatedMemOps(), llvm::collectEphemeralRecipesForVPlan(), llvm::LoopVectorizationPlanner::computeBestVF(), llvm::VPlanTransforms::convertToAbstractRecipes(), cost(), llvm::VPlanTransforms::createLoopRegions(), createScalarIVSteps(), expandVPWidenIntOrFpInduction(), expandVPWidenPointerInduction(), findHeaderMask(), getMiddleBlock(), llvm::vputils::getRecipesForUncountableExit(), getVectorPreheader(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleMultiUseReductions(), hasReplicatorRegion(), llvm::VPlanTransforms::hoistInvariantLoads(), llvm::VPlanTransforms::introduceMasksAndLinearize(), isConditionTrueViaVFAndUF(), llvm::vputils::isHeaderMask(), legalizeAndOptimizeInductions(), licm(), llvm::VPlanTransforms::materializePacksAndUnpacks(), llvm::VPlanTransforms::narrowInterleaveGroups(), narrowToSingleScalarRecipes(), optimizeEarlyExitInductionUser(), optimizeVectorInductionWidthForTCAndVFUF(), planContainsAdditionalSimplifications(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), removeRedundantCanonicalIVs(), removeRedundantInductionCasts(), llvm::VPlanTransforms::replaceSymbolicStrides(), llvm::VPlanTransforms::replicateByVF(), scalarizeInstruction(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), transformRecipestoEVLRecipes(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), tryToReplaceALMWithWideALM(), llvm::VPlanTransforms::unrollByUF(), llvm::VPlanTransforms::updateScalarResumePhis(), llvm::VPInterleavedAccessInfo::VPInterleavedAccessInfo(), llvm::VPTypeAnalysis::VPTypeAnalysis(), and willGenerateVectors().

getVectorLoopRegion() [2/2]

getVectorPreheader()

Returns the preheader of the vector loop region, if one exists, or null otherwise.

Definition at line 4382 of file VPlan.h.

References llvm::cast(), llvm::VPBlockBase::getSinglePredecessor(), and getVectorLoopRegion().

Referenced by addVPLaneMaskPhiAndUpdateExitBranch(), llvm::VPlanTransforms::attachCheckBlock(), llvm::LoopVectorizationPlanner::executePlan(), expandVPWidenIntOrFpInduction(), llvm::VPlanTransforms::hoistInvariantLoads(), licm(), llvm::VPlanTransforms::materializeBroadcasts(), llvm::VPlanTransforms::narrowInterleaveGroups(), optimizeVectorInductionWidthForTCAndVFUF(), planContainsAdditionalSimplifications(), llvm::LoopVectorizePass::processLoop(), simplifyBranchConditionForVFAndUF(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().

getVectorTripCount()

VPValue & llvm::VPlan::getVectorTripCount ( ) inline

The vector trip count.

Definition at line 4468 of file VPlan.h.

Referenced by addCanonicalIVRecipes(), llvm::VPlanTransforms::addMiddleCheck(), llvm::calculateRegisterUsageForPlan(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::VPlanTransforms::handleMaxMinNumReductions(), isConditionTrueViaVFAndUF(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), llvm::VPlanTransforms::materializeVectorTripCount(), preparePlanForMainVectorLoop(), simplifyBranchConditionForVFAndUF(), and llvm::VPlanTransforms::updateScalarResumePhis().

getVF() [1/2]

VPValue & llvm::VPlan::getVF ( ) inline

getVF() [2/2]

getVFxUF()

VPValue & llvm::VPlan::getVFxUF ( ) inline

hasEarlyExit()

bool llvm::VPlan::hasEarlyExit ( ) const inline

hasScalableVF()

bool llvm::VPlan::hasScalableVF ( ) const inline

hasScalarTail()

bool llvm::VPlan::hasScalarTail ( ) const inline

hasScalarVFOnly()

bool llvm::VPlan::hasScalarVFOnly ( ) const inline

hasUF()

hasVF()

isExitBlock()

isUnrolled()

bool llvm::VPlan::isUnrolled ( ) const inline

print()

printDOT()

printLiveIns()

resetTripCount()

void llvm::VPlan::resetTripCount ( VPValue * NewTripCount) inline

setEntry()

setName()

void llvm::VPlan::setName ( const Twine & newName) inline

setTripCount()

void llvm::VPlan::setTripCount ( VPValue * NewTripCount) inline

setUF()

void llvm::VPlan::setUF ( unsigned UF) inline

setVF()

vectorFactors()

VPlanPrinter

VPSlotTracker


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