Home
last modified time | relevance | path

Searched refs:VPBlockBase (Results 1 – 17 of 17) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanCFG.h39 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 DVPlanUtils.h116 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 DVPlan.cpp155 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 DVPlanDominatorTree.h27 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 DVPlanVerifier.cpp47 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 DVPlanConstruction.cpp79 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 DVPlanHelpers.h423 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 DVPlan.h81 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 DVPlanUnroll.cpp80 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 DVPlanPredicator.cpp136 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 DVPlanSLP.h25 class VPBlockBase; variable
46 void visitBlock(VPBlockBase *Block, Old2NewTy &Old2New,
H A DVPlanAnalysis.cpp351 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 DVPlanSLP.cpp48 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 DVPlanUtils.cpp133 auto I = find_if(DepthFirst, [&VPDT](VPBlockBase *VPB) { in getFirstLoopHeader()
H A DVPlanTransforms.cpp47 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 DLoopVectorize.cpp632 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 DVPlanRecipes.cpp1337 VPBlockBase *Pred = getParent()->getPredecessors()[Idx]; in execute()
1357 void VPPhiAccessors::removeIncomingValueFor(VPBlockBase *IncomingBlock) const { in removeIncomingValueFor()