Lines Matching defs:VPBB

63   void setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB);
64 void setRegionPredsFromBB(VPRegionBlock *VPBB, BasicBlock *BB);
71 void createVPInstructionsForVPBB(VPBasicBlock *VPBB, BasicBlock *BB);
82 // Set predecessors of \p VPBB in the same order as they are in \p BB. \p VPBB
84 void PlainCFGBuilder::setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB) {
98 assert(VPBB == cast<VPBasicBlock>(PredRegion->getSingleSuccessor()) &&
99 "successor must already be set for PredRegion; it must have VPBB "
101 VPBB->setPredecessors({PredRegion});
104 // Collect VPBB predecessors.
108 VPBB->setPredecessors(VPBBPreds);
155 static bool isHeaderVPBB(VPBasicBlock *VPBB) {
156 return VPBB->getParent() && VPBB->getParent()->getEntry() == VPBB;
177 if (auto *VPBB = BB2VPBB.lookup(BB)) {
178 // Retrieve existing VPBB.
179 return VPBB;
182 // Create new VPBB.
185 VPBasicBlock *VPBB = Plan.createVPBasicBlock(Name);
186 BB2VPBB[BB] = VPBB;
191 return VPBB;
197 VPBB->setParent(RegionOfVPBB);
198 return VPBB;
210 RegionOfVPBB->setEntry(VPBB);
212 return VPBB;
283 void PlainCFGBuilder::createVPInstructionsForVPBB(VPBasicBlock *VPBB,
285 VPIRBuilder.setInsertPoint(VPBB);
317 VPBB->appendRecipe(cast<VPWidenPHIRecipe>(NewVPV));
341 // latch/exiting VPBB's of top-level region have yet to be created.
381 // block after having visited its predecessor basic blocks. Create a VPBB for
401 VPBasicBlock *VPBB = getOrCreateVPBB(BB);
402 VPRegionBlock *Region = VPBB->getParent();
403 createVPInstructionsForVPBB(VPBB, BB);
405 // Set VPBB predecessors in the same order as they are in the incoming BB.
407 setVPBBPredsFromBB(VPBB, BB);
411 assert(isHeaderVPBB(VPBB) && "isHeaderBB and isHeaderVPBB disagree");
417 VPBB->setOneSuccessor(VectorLatchVPBB);
419 VectorLatchVPBB->setPredecessors({VPBB});
423 // Set VPBB successors. We create empty VPBBs for successors if they don't
430 VPBB->setOneSuccessor(isHeaderVPBB(Successor)
438 // representing the condition bit in VPlan (which may be in another VPBB).
448 // of VPBB and it should be set to the exit, i.e., non-header successor,
455 Region->setExiting(VPBB);
463 VPBB->setOneSuccessor(Successor1);
467 VPBB->setOneSuccessor(Successor0);
472 VPBB->setTwoSuccessors(Successor0, Successor1);