Home
last modified time | relevance | path

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

12

/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Vectorize/
DVPlan.h343 class VPBlockBase {
357 SmallVector<VPBlockBase *, 1> Predecessors;
360 SmallVector<VPBlockBase *, 1> Successors;
369 void appendSuccessor(VPBlockBase *Successor) { in appendSuccessor()
375 void appendPredecessor(VPBlockBase *Predecessor) { in appendPredecessor()
381 void removePredecessor(VPBlockBase *Predecessor) { in removePredecessor()
388 void removeSuccessor(VPBlockBase *Successor) { in removeSuccessor()
395 VPBlockBase(const unsigned char SC, const std::string &N) in VPBlockBase() function
405 using VPBlocksTy = SmallVectorImpl<VPBlockBase *>;
407 virtual ~VPBlockBase() = default;
[all …]
DVPlanVerifier.cpp30 static bool hasDuplicates(const SmallVectorImpl<VPBlockBase *> &VPBlockVec) { in hasDuplicates()
31 SmallDenseSet<const VPBlockBase *, 8> VPBlockSet; in hasDuplicates()
45 for (const VPBlockBase *VPB : in verifyBlocksInRegion()
46 make_range(df_iterator<const VPBlockBase *>::begin(Region->getEntry()), in verifyBlocksInRegion()
47 df_iterator<const VPBlockBase *>::end(Region->getExit()))) { in verifyBlocksInRegion()
64 for (const VPBlockBase *Succ : Successors) { in verifyBlocksInRegion()
81 for (const VPBlockBase *Pred : Predecessors) { in verifyBlocksInRegion()
99 const VPBlockBase *Entry = Region->getEntry(); in verifyRegion()
100 const VPBlockBase *Exit = Region->getExit(); in verifyRegion()
117 for (const VPBlockBase *VPB : in verifyRegionRec()
[all …]
DVPlanLoopInfo.h23 class VPBlockBase; variable
27 class VPLoop : public LoopBase<VPBlockBase, VPLoop> {
29 friend class LoopInfoBase<VPBlockBase, VPLoop>;
30 explicit VPLoop(VPBlockBase *VPB) : LoopBase<VPBlockBase, VPLoop>(VPB) {} in VPLoop()
40 typedef LoopInfoBase<VPBlockBase, VPLoop> VPLoopInfo;
DVPlan.cpp60 const VPBasicBlock *VPBlockBase::getEntryBasicBlock() const { in getEntryBasicBlock()
61 const VPBlockBase *Block = this; in getEntryBasicBlock()
67 VPBasicBlock *VPBlockBase::getEntryBasicBlock() { in getEntryBasicBlock()
68 VPBlockBase *Block = this; in getEntryBasicBlock()
75 const VPBasicBlock *VPBlockBase::getExitBasicBlock() const { in getExitBasicBlock()
76 const VPBlockBase *Block = this; in getExitBasicBlock()
82 VPBasicBlock *VPBlockBase::getExitBasicBlock() { in getExitBasicBlock()
83 VPBlockBase *Block = this; in getExitBasicBlock()
89 VPBlockBase *VPBlockBase::getEnclosingBlockWithSuccessors() { in getEnclosingBlockWithSuccessors()
97 VPBlockBase *VPBlockBase::getEnclosingBlockWithPredecessors() { in getEnclosingBlockWithPredecessors()
[all …]
DVPlanPredicator.cpp117 VPlanPredicator::getEdgeTypeBetween(VPBlockBase *FromBlock, in getEdgeTypeBetween()
118 VPBlockBase *ToBlock) { in getEdgeTypeBetween()
120 for (VPBlockBase *SuccBlock : FromBlock->getSuccessors()) { in getEdgeTypeBetween()
133 void VPlanPredicator::createOrPropagatePredicates(VPBlockBase *CurrBlock, in createOrPropagatePredicates()
154 for (VPBlockBase *PredBlock : CurrBlock->getPredecessors()) { in createOrPropagatePredicates()
189 ReversePostOrderTraversal<VPBlockBase *> RPOT(EntryBlock); in predicateRegionRec()
194 for (VPBlockBase *Block : make_range(RPOT.begin(), RPOT.end())) { in predicateRegionRec()
208 ReversePostOrderTraversal<VPBlockBase *> RPOT(Region->getEntry()); in linearizeRegionRec()
209 VPBlockBase *PrevBlock = nullptr; in linearizeRegionRec()
211 for (VPBlockBase *CurrBlock : make_range(RPOT.begin(), RPOT.end())) { in linearizeRegionRec()
DVPlanPredicator.h46 EdgeType getEdgeTypeBetween(VPBlockBase *FromBlock, VPBlockBase *ToBlock);
58 void createOrPropagatePredicates(VPBlockBase *CurrBlock,
DVPlanTransforms.cpp25 ReversePostOrderTraversal<VPBlockBase *> RPOT(TopRegion->getEntry()); in VPInstructionsToVPRecipes()
30 for (VPBlockBase *Base : RPOT) { in VPInstructionsToVPRecipes()
38 for (VPBlockBase *Base : RPOT) { in VPInstructionsToVPRecipes()
DVPlanDominatorTree.h26 using VPDominatorTree = DomTreeBase<VPBlockBase>;
28 using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>;
DVPlanHCFGBuilder.cpp84 SmallVector<VPBlockBase *, 8> VPBBPreds; in setVPBBPredsFromBB()
258 VPBlockBase *HeaderVPBB = getOrCreateVPBB(TheLoop->getHeader()); in buildPlainCFG()
/external/llvm-project/llvm/lib/Transforms/Vectorize/
DVPlanVerifier.cpp31 static bool hasDuplicates(const SmallVectorImpl<VPBlockBase *> &VPBlockVec) { in hasDuplicates()
32 SmallDenseSet<const VPBlockBase *, 8> VPBlockSet; in hasDuplicates()
46 for (const VPBlockBase *VPB : in verifyBlocksInRegion()
47 make_range(df_iterator<const VPBlockBase *>::begin(Region->getEntry()), in verifyBlocksInRegion()
48 df_iterator<const VPBlockBase *>::end(Region->getExit()))) { in verifyBlocksInRegion()
65 for (const VPBlockBase *Succ : Successors) { in verifyBlocksInRegion()
80 for (const VPBlockBase *Pred : Predecessors) { in verifyBlocksInRegion()
96 const VPBlockBase *Entry = Region->getEntry(); in verifyRegion()
97 const VPBlockBase *Exit = Region->getExit(); in verifyRegion()
114 for (const VPBlockBase *VPB : in verifyRegionRec()
[all …]
DVPlan.h374 class VPBlockBase {
387 SmallVector<VPBlockBase *, 1> Predecessors;
390 SmallVector<VPBlockBase *, 1> Successors;
403 void appendSuccessor(VPBlockBase *Successor) { in appendSuccessor()
409 void appendPredecessor(VPBlockBase *Predecessor) { in appendPredecessor()
415 void removePredecessor(VPBlockBase *Predecessor) { in removePredecessor()
422 void removeSuccessor(VPBlockBase *Successor) { in removeSuccessor()
429 VPBlockBase(const unsigned char SC, const std::string &N) in VPBlockBase() function
439 using VPBlocksTy = SmallVectorImpl<VPBlockBase *>;
441 virtual ~VPBlockBase() = default;
[all …]
DVPlanLoopInfo.h23 class VPBlockBase; variable
27 class VPLoop : public LoopBase<VPBlockBase, VPLoop> {
29 friend class LoopInfoBase<VPBlockBase, VPLoop>;
30 explicit VPLoop(VPBlockBase *VPB) : LoopBase<VPBlockBase, VPLoop>(VPB) {} in VPLoop()
40 typedef LoopInfoBase<VPBlockBase, VPLoop> VPLoopInfo;
DVPlan.cpp183 VPlan *VPBlockBase::getPlan() { return getPlanEntry(this)->Plan; } in getPlan()
185 const VPlan *VPBlockBase::getPlan() const { return getPlanEntry(this)->Plan; } in getPlan()
188 const VPBasicBlock *VPBlockBase::getEntryBasicBlock() const { in getEntryBasicBlock()
189 const VPBlockBase *Block = this; in getEntryBasicBlock()
195 VPBasicBlock *VPBlockBase::getEntryBasicBlock() { in getEntryBasicBlock()
196 VPBlockBase *Block = this; in getEntryBasicBlock()
202 void VPBlockBase::setPlan(VPlan *ParentPlan) { in setPlan()
209 const VPBasicBlock *VPBlockBase::getExitBasicBlock() const { in getExitBasicBlock()
210 const VPBlockBase *Block = this; in getExitBasicBlock()
216 VPBasicBlock *VPBlockBase::getExitBasicBlock() { in getExitBasicBlock()
[all …]
DVPlanPredicator.cpp117 VPlanPredicator::getEdgeTypeBetween(VPBlockBase *FromBlock, in getEdgeTypeBetween()
118 VPBlockBase *ToBlock) { in getEdgeTypeBetween()
120 for (VPBlockBase *SuccBlock : FromBlock->getSuccessors()) { in getEdgeTypeBetween()
133 void VPlanPredicator::createOrPropagatePredicates(VPBlockBase *CurrBlock, in createOrPropagatePredicates()
154 for (VPBlockBase *PredBlock : CurrBlock->getPredecessors()) { in createOrPropagatePredicates()
189 ReversePostOrderTraversal<VPBlockBase *> RPOT(EntryBlock); in predicateRegionRec()
194 for (VPBlockBase *Block : make_range(RPOT.begin(), RPOT.end())) { in predicateRegionRec()
208 ReversePostOrderTraversal<VPBlockBase *> RPOT(Region->getEntry()); in linearizeRegionRec()
209 VPBlockBase *PrevBlock = nullptr; in linearizeRegionRec()
211 for (VPBlockBase *CurrBlock : make_range(RPOT.begin(), RPOT.end())) { in linearizeRegionRec()
DVPlanPredicator.h46 EdgeType getEdgeTypeBetween(VPBlockBase *FromBlock, VPBlockBase *ToBlock);
58 void createOrPropagatePredicates(VPBlockBase *CurrBlock,
DVPlanDominatorTree.h26 using VPDominatorTree = DomTreeBase<VPBlockBase>;
28 using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>;
DVPlanTransforms.cpp25 ReversePostOrderTraversal<VPBlockBase *> RPOT(TopRegion->getEntry()); in VPInstructionsToVPRecipes()
30 for (VPBlockBase *Base : RPOT) { in VPInstructionsToVPRecipes()
39 for (VPBlockBase *Base : RPOT) { in VPInstructionsToVPRecipes()
DVPlanHCFGBuilder.cpp84 SmallVector<VPBlockBase *, 8> VPBBPreds; in setVPBBPredsFromBB()
258 VPBlockBase *HeaderVPBB = getOrCreateVPBB(TheLoop->getHeader()); in buildPlainCFG()
DVPlanValue.h309 void assignSlots(const VPBlockBase *VPBB);
/external/llvm-project/llvm/unittests/Transforms/Vectorize/
DVPlanPredicatorTest.cpp70 VPBlockBase *PH = TopRegion->getEntry(); in TEST_F()
71 VPBlockBase *H = PH->getSingleSuccessor(); in TEST_F()
72 VPBlockBase *InnerLoopH = H->getSingleSuccessor(); in TEST_F()
73 VPBlockBase *OuterIf = InnerLoopH->getSuccessors()[0]; in TEST_F()
74 VPBlockBase *InnerLoopLatch = InnerLoopH->getSuccessors()[1]; in TEST_F()
75 VPBlockBase *InnerIf = OuterIf->getSuccessors()[0]; in TEST_F()
83 VPBlockBase *InnerLoopLinSucc = InnerLoopH->getSingleSuccessor(); in TEST_F()
84 VPBlockBase *OuterIfLinSucc = OuterIf->getSingleSuccessor(); in TEST_F()
85 VPBlockBase *InnerIfLinSucc = InnerIf->getSingleSuccessor(); in TEST_F()
171 VPBlockBase *PH = TopRegion->getEntry(); in TEST_F()
[all …]
DVPlanLoopInfoTest.cpp51 VPBlockBase *PH = TopRegion->getEntry(); in TEST_F()
52 VPBlockBase *H = PH->getSingleSuccessor(); in TEST_F()
53 VPBlockBase *IfThen = H->getSuccessors()[0]; in TEST_F()
54 VPBlockBase *IfElse = H->getSuccessors()[1]; in TEST_F()
55 VPBlockBase *Latch = IfThen->getSingleSuccessor(); in TEST_F()
56 VPBlockBase *Exit = Latch->getSuccessors()[0] != H in TEST_F()
DVPlanSlpTest.cpp100 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
172 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
244 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
307 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
444 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
516 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
588 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
664 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
725 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
788 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
[all …]
DVPlanDominatorTreeTest.cpp49 VPBlockBase *PH = TopRegion->getEntry(); in TEST_F()
50 VPBlockBase *H = PH->getSingleSuccessor(); in TEST_F()
51 VPBlockBase *IfThen = H->getSuccessors()[0]; in TEST_F()
52 VPBlockBase *IfElse = H->getSuccessors()[1]; in TEST_F()
53 VPBlockBase *Latch = IfThen->getSingleSuccessor(); in TEST_F()
54 VPBlockBase *Exit = Latch->getSuccessors()[0] != H in TEST_F()
DVPlanHCFGTest.cpp166 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
/external/llvm-project/llvm/docs/Proposals/
DVectorizationPlan.rst115 :VPBlockBase:
117 VPBasicBlock and VPRegionBlock, see below. VPBlockBase models the hierarchical
119 BasicBlock, a VPBlockBase models its control-flow successors and predecessors
121 branches that "use" the VPBlockBase.
124 VPBasicBlock is a subclass of VPBlockBase, and serves as the leaves of the
132 VPRegionBlock is a subclass of VPBlockBase. It models a collection of

12