Lines Matching defs:VPBB
412 // BB stands for IR BasicBlocks. VPBB stands for VPlan VPBasicBlocks.
503 // A. the first VPBB reuses the loop pre-header BB - when PrevVPBB is null;
504 // B. when the current VPBB has a single (hierarchical) predecessor which
507 // C. when the current VPBB is an entry of a region replica - where PrevVPBB
508 // is the exiting VPBB of this region from a previous instance, or the
538 LLVM_DEBUG(dbgs() << "LV: vectorizing VPBB:" << getName()
585 static bool hasConditionalTerminator(const VPBasicBlock *VPBB) {
586 if (VPBB->empty()) {
588 VPBB->getNumSuccessors() < 2 &&
593 const VPRecipeBase *R = &VPBB->back();
599 if (VPBB->getNumSuccessors() >= 2 ||
600 (VPBB->isExiting() && !VPBB->getParent()->isReplicator())) {
955 /// Replace \p VPBB with a VPIRBasicBlock wrapping \p IRBB. All recipes from \p
956 /// VPBB are moved to the newly created VPIRBasicBlock. VPBB must have a single
958 /// VPBB, if any, are rewired to the new VPIRBasicBlock.
959 static void replaceVPBBWithIRVPBB(VPBasicBlock *VPBB, BasicBlock *IRBB) {
961 for (auto &R : make_early_inc_range(*VPBB))
963 VPBlockBase *PredVPBB = VPBB->getSinglePredecessor();
964 VPBlockUtils::disconnectBlocks(PredVPBB, VPBB);
966 for (auto *Succ : to_vector(VPBB->getSuccessors())) {
968 VPBlockUtils::disconnectBlocks(VPBB, Succ);
970 delete VPBB;
988 // Replace regular VPBB's for the middle and scalar preheader blocks with
995 // Find the VPBB for the scalar preheader, relying on the current structure
1476 if (VPBasicBlock *VPBB = dyn_cast<VPBasicBlock>(Block)) {
1477 for (VPRecipeBase &VPI : *VPBB) {
1561 for (const VPBasicBlock *VPBB :
1563 assignNames(VPBB);
1566 void VPSlotTracker::assignNames(const VPBasicBlock *VPBB) {
1567 for (const VPRecipeBase &Recipe : *VPBB)