| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanCFG.h | 39 VPBlockBase> { 95 const VPBlockBase *operator*() const { return deref(Block, SuccessorIdx); } 130 template <> struct GraphTraits<VPBlockDeepTraversalWrapper<VPBlockBase *>> { 131 using NodeRef = VPBlockBase *; 132 using ChildIteratorType = VPAllSuccessorsIterator<VPBlockBase *>; 134 static NodeRef getEntryNode(VPBlockDeepTraversalWrapper<VPBlockBase *> N) { 148 struct GraphTraits<VPBlockDeepTraversalWrapper<const VPBlockBase *>> { 149 using NodeRef = const VPBlockBase *; 150 using ChildIteratorType = VPAllSuccessorsIterator<const VPBlockBase *>; 153 getEntryNode(VPBlockDeepTraversalWrapper<const VPBlockBase *> N) { [all …]
|
| H A D | VPlanUtils.h | 116 static void insertBlockAfter(VPBlockBase *NewBlock, VPBlockBase *BlockPtr) { in insertBlockAfter() 121 SmallVector<VPBlockBase *> Succs(BlockPtr->successors()); in insertBlockAfter() 122 for (VPBlockBase *Succ : Succs) { in insertBlockAfter() 134 static void insertBlockBefore(VPBlockBase *NewBlock, VPBlockBase *BlockPtr) { in insertBlockBefore() 139 for (VPBlockBase *Pred : to_vector(BlockPtr->predecessors())) { in insertBlockBefore() 153 static void insertTwoBlocksAfter(VPBlockBase *IfTrue, VPBlockBase *IfFalse, in insertTwoBlocksAfter() 154 VPBlockBase *BlockPtr) { in insertTwoBlocksAfter() 172 static void connectBlocks(VPBlockBase *From, VPBlockBase *To, 191 static void disconnectBlocks(VPBlockBase *From, VPBlockBase *To) { in disconnectBlocks() 199 static void reassociateBlocks(VPBlockBase *Old, VPBlockBase *New) { in reassociateBlocks() [all …]
|
| H A D | VPlan.cpp | 155 VPlan *VPBlockBase::getPlan() { return getPlanEntry(this)->Plan; } in getPlan() 157 const VPlan *VPBlockBase::getPlan() const { return getPlanEntry(this)->Plan; } in getPlan() 160 const VPBasicBlock *VPBlockBase::getEntryBasicBlock() const { in getEntryBasicBlock() 161 const VPBlockBase *Block = this; in getEntryBasicBlock() 167 VPBasicBlock *VPBlockBase::getEntryBasicBlock() { in getEntryBasicBlock() 168 VPBlockBase *Block = this; in getEntryBasicBlock() 174 void VPBlockBase::setPlan(VPlan *ParentPlan) { in setPlan() 180 const VPBasicBlock *VPBlockBase::getExitingBasicBlock() const { in getExitingBasicBlock() 181 const VPBlockBase *Block = this; in getExitingBasicBlock() 187 VPBasicBlock *VPBlockBase::getExitingBasicBlock() { in getExitingBasicBlock() [all …]
|
| H A D | VPlanDominatorTree.h | 27 template <> struct DomTreeNodeTraits<VPBlockBase> { 28 using NodeType = VPBlockBase; 29 using NodePtr = VPBlockBase *; 38 class VPDominatorTree : public DominatorTreeBase<VPBlockBase, false> { 39 using Base = DominatorTreeBase<VPBlockBase, false>; 50 using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>;
|
| H A D | VPlanVerifier.cpp | 47 bool verifyBlock(const VPBlockBase *VPB); 315 static bool hasDuplicates(const SmallVectorImpl<VPBlockBase *> &VPBlockVec) { in hasDuplicates() 316 SmallDenseSet<const VPBlockBase *, 8> VPBlockSet; in hasDuplicates() 324 bool VPlanVerifier::verifyBlock(const VPBlockBase *VPB) { in verifyBlock() 353 for (const VPBlockBase *Succ : Successors) { in verifyBlock() 372 for (const VPBlockBase *Pred : Predecessors) { in verifyBlock() 390 for (const VPBlockBase *VPB : vp_depth_first_shallow(Region->getEntry())) { in verifyBlocksInRegion() 404 const VPBlockBase *Entry = Region->getEntry(); in verifyRegion() 405 const VPBlockBase *Exiting = Region->getExiting(); in verifyRegion() 424 [this](const VPBlockBase *VPB) { in verifyRegionRec() [all …]
|
| H A D | VPlanConstruction.cpp | 79 SmallVector<VPBlockBase *, 2> VPBBPreds; in setVPBBPredsFromBB() 224 for (VPBlockBase *Pred : VPBB->getPredecessors()) in createVPInstructionsForVPBB() 286 SmallVector<VPBlockBase *> Succs = { in buildPlainCFG() 354 static bool canonicalHeaderAndLatch(VPBlockBase *HeaderVPB, in canonicalHeaderAndLatch() 356 ArrayRef<VPBlockBase *> Preds = HeaderVPB->getPredecessors(); in canonicalHeaderAndLatch() 401 static void createLoopRegion(VPlan &Plan, VPBlockBase *HeaderVPB) { in createLoopRegion() 407 VPBlockBase *LatchExitVPB = LatchVPBB->getSingleSuccessor(); in createLoopRegion() 422 for (VPBlockBase *VPBB : vp_depth_first_shallow(HeaderVPB)) in createLoopRegion() 465 VPBlockBase *HeaderVPB = Plan.getEntry()->getSingleSuccessor(); in prepareForVectorization() 467 VPBlockBase *LatchVPB = HeaderVPB->getPredecessors()[1]; in prepareForVectorization() [all …]
|
| H A D | VPlanHelpers.h | 423 SmallDenseMap<const VPBlockBase *, unsigned> BlockID; 431 void dumpBlock(const VPBlockBase *Block); 435 void dumpEdges(const VPBlockBase *Block); 444 unsigned getOrCreateBID(const VPBlockBase *Block) { in getOrCreateBID() 448 Twine getOrCreateName(const VPBlockBase *Block); 450 Twine getUID(const VPBlockBase *Block); 453 void drawEdge(const VPBlockBase *From, const VPBlockBase *To, bool Hidden,
|
| H A D | VPlan.h | 81 class LLVM_ABI_FOR_TEST VPBlockBase { 94 SmallVector<VPBlockBase *, 1> Predecessors; 97 SmallVector<VPBlockBase *, 1> Successors; 104 void appendSuccessor(VPBlockBase *Successor) { in appendSuccessor() 110 void appendPredecessor(VPBlockBase *Predecessor) { in appendPredecessor() 116 void removePredecessor(VPBlockBase *Predecessor) { in removePredecessor() 123 void removeSuccessor(VPBlockBase *Successor) { in removeSuccessor() 131 void replacePredecessor(VPBlockBase *Old, VPBlockBase *New) { in replacePredecessor() 141 void replaceSuccessor(VPBlockBase *Old, VPBlockBase *New) { in replaceSuccessor() 150 VPBlockBase(const unsigned char SC, const std::string &N) in VPBlockBase() function [all …]
|
| H A D | VPlanUnroll.cpp | 80 void unrollBlock(VPBlockBase *VPB); 128 VPBlockBase *InsertPt = VPR->getSingleSuccessor(); in unrollReplicateRegionByUF() 326 void UnrollState::unrollBlock(VPBlockBase *VPB) { in unrollBlock() 334 ReversePostOrderTraversal<VPBlockShallowTraversalWrapper<VPBlockBase *>> in unrollBlock() 336 for (VPBlockBase *VPB : RPOT) in unrollBlock() 428 ReversePostOrderTraversal<VPBlockShallowTraversalWrapper<VPBlockBase *>> RPOT( in unrollByUF() 430 for (VPBlockBase *VPB : RPOT) in unrollByUF()
|
| H A D | VPlanPredicator.cpp | 136 for (auto *Predecessor : SetVector<VPBlockBase *>( in createBlockInMask() 269 ReversePostOrderTraversal<VPBlockShallowTraversalWrapper<VPBlockBase *>> RPOT( in introduceMasksAndLinearize() 272 for (VPBlockBase *VPB : RPOT) { in introduceMasksAndLinearize() 288 VPBlockBase *PrevVPBB = nullptr; in introduceMasksAndLinearize()
|
| H A D | VPlanSLP.h | 25 class VPBlockBase; variable 46 void visitBlock(VPBlockBase *Block, Old2NewTy &Old2New,
|
| H A D | VPlanAnalysis.cpp | 351 template void DomTreeBuilder::Calculate<DominatorTreeBase<VPBlockBase, false>>( 352 DominatorTreeBase<VPBlockBase, false> &DT); 368 const VPBlockBase *ParentA = A->getParent(); in properlyDominates() 369 const VPBlockBase *ParentB = B->getParent(); in properlyDominates() 439 ReversePostOrderTraversal<VPBlockDeepTraversalWrapper<VPBlockBase *>> RPOT( in calculateRegisterUsageForPlan()
|
| H A D | VPlanSLP.cpp | 48 ReversePostOrderTraversal<VPBlockShallowTraversalWrapper<VPBlockBase *>> RPOT( in visitRegion() 50 for (VPBlockBase *Base : RPOT) { in visitRegion() 55 void VPInterleavedAccessInfo::visitBlock(VPBlockBase *Block, Old2NewTy &Old2New, in visitBlock()
|
| H A D | VPlanUtils.cpp | 133 auto I = find_if(DepthFirst, [&VPDT](VPBlockBase *VPB) { in getFirstLoopHeader()
|
| H A D | VPlanTransforms.cpp | 47 ReversePostOrderTraversal<VPBlockDeepTraversalWrapper<VPBlockBase *>> RPOT( in tryToConvertVPInstructionsToVPRecipes() 323 for (VPBlockBase *Pred : make_early_inc_range(Region1->getPredecessors())) { in mergeReplicateRegionsIntoSuccessors() 550 ReversePostOrderTraversal<VPBlockDeepTraversalWrapper<VPBlockBase *>> RPOT( in removeDeadRecipes() 772 VPBlockBase *PredVPBB, in optimizeEarlyExitInductionUser() 828 VPBlockBase *PredVPBB, VPValue *Op, in optimizeLatchExitInductionUser() 877 VPBlockBase *MiddleVPBB = Plan.getMiddleBlock(); in optimizeInductionExitUsers() 1211 ReversePostOrderTraversal<VPBlockDeepTraversalWrapper<VPBlockBase *>> RPOT( in simplifyRecipes() 1493 VPBlockBase *Preheader = VectorRegion->getSinglePredecessor(); in simplifyBranchConditionForVFAndUF() 1494 VPBlockBase *Exit = VectorRegion->getSingleSuccessor(); in simplifyBranchConditionForVFAndUF() 1498 for (VPBlockBase *B : vp_depth_first_shallow(VectorRegion->getEntry())) in simplifyBranchConditionForVFAndUF() [all …]
|
| H A D | LoopVectorize.cpp | 632 VPBlockBase *VectorPHVPB; 2301 VPBlockBase *ScalarPH = Plan.getScalarPreheader(); in introduceCheckBlockInVPlan() 2302 VPBlockBase *PreVectorPH = VectorPHVPB->getSinglePredecessor(); in introduceCheckBlockInVPlan() 8706 ReversePostOrderTraversal<VPBlockShallowTraversalWrapper<VPBlockBase *>> RPOT( in tryToBuildVPlanWithVPRecipes()
|
| H A D | VPlanRecipes.cpp | 1337 VPBlockBase *Pred = getParent()->getPredecessors()[Idx]; in execute() 1357 void VPPhiAccessors::removeIncomingValueFor(VPBlockBase *IncomingBlock) const { in removeIncomingValueFor()
|