Home
last modified time | relevance | path

Searched refs:VPBB (Results 1 – 13 of 13) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanPredicator.cpp46 VPValue *getBlockInMask(VPBasicBlock *VPBB) const { in getBlockInMask()
47 return BlockMaskCache.lookup(VPBB); in getBlockInMask()
52 void setBlockInMask(VPBasicBlock *VPBB, VPValue *Mask) { in setBlockInMask() argument
55 assert(!getBlockInMask(VPBB) && "Mask already set"); in setBlockInMask()
56 BlockMaskCache[VPBB] = Mask; in setBlockInMask()
79 VPValue *createBlockInMask(VPBasicBlock *VPBB);
82 void convertPhisToBlends(VPBasicBlock *VPBB);
129 VPValue *VPPredicator::createBlockInMask(VPBasicBlock *VPBB) { in createBlockInMask() argument
131 Builder.setInsertPoint(VPBB, VPBB->getFirstNonPhi()); in createBlockInMask()
137 VPBB->getPredecessors().begin(), VPBB->getPredecessors().end())) { in createBlockInMask()
[all …]
H A DVPlanVerifier.cpp38 bool verifyPhiRecipes(const VPBasicBlock *VPBB);
45 bool verifyVPBasicBlock(const VPBasicBlock *VPBB);
72 bool VPlanVerifier::verifyPhiRecipes(const VPBasicBlock *VPBB) { in verifyPhiRecipes() argument
73 auto RecipeI = VPBB->begin(); in verifyPhiRecipes()
74 auto End = VPBB->end(); in verifyPhiRecipes()
76 bool IsHeaderVPBB = VPBlockUtils::isHeader(VPBB, VPDT); in verifyPhiRecipes()
104 if (PhiIRI->getNumOperands() != VPBB->getNumPredecessors()) { in verifyPhiRecipes()
213 bool VPlanVerifier::verifyVPBasicBlock(const VPBasicBlock *VPBB) { in verifyVPBasicBlock() argument
214 if (!verifyPhiRecipes(VPBB)) in verifyVPBasicBlock()
220 for (const VPRecipeBase &R : *VPBB) in verifyVPBasicBlock()
[all …]
H A DVPlanConstruction.cpp57 void setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB);
64 void createVPInstructionsForVPBB(VPBasicBlock *VPBB, BasicBlock *BB);
77 void PlainCFGBuilder::setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB) { in setVPBBPredsFromBB() argument
82 VPBB->setPredecessors(VPBBPreds); in setVPBBPredsFromBB()
112 if (auto *VPBB = BB2VPBB.lookup(BB)) { in getOrCreateVPBB() local
114 return VPBB; in getOrCreateVPBB()
120 VPBasicBlock *VPBB = Plan->createVPBasicBlock(Name); in getOrCreateVPBB() local
121 BB2VPBB[BB] = VPBB; in getOrCreateVPBB()
122 return VPBB; in getOrCreateVPBB()
173 void PlainCFGBuilder::createVPInstructionsForVPBB(VPBasicBlock *VPBB, in createVPInstructionsForVPBB() argument
[all …]
H A DVPlanTransforms.cpp49 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(RPOT)) { in tryToConvertVPInstructionsToVPRecipes()
51 if (!VPBB->getParent()) in tryToConvertVPInstructionsToVPRecipes()
53 VPRecipeBase *Term = VPBB->getTerminator(); in tryToConvertVPInstructionsToVPRecipes()
54 auto EndIter = Term ? Term->getIterator() : VPBB->end(); in tryToConvertVPInstructionsToVPRecipes()
57 make_early_inc_range(make_range(VPBB->begin(), EndIter))) { in tryToConvertVPInstructionsToVPRecipes()
134 VPBasicBlock *VPBB = dyn_cast<VPBasicBlock>(EntryVPBB->getSuccessors()[0]); in sinkScalarOperands() local
135 if (!VPBB || VPBB->getSingleSuccessor() != VPR->getExitingBasicBlock()) in sinkScalarOperands()
137 for (auto &Recipe : *VPBB) { in sinkScalarOperands()
141 WorkList.insert(std::make_pair(VPBB, Def)); in sinkScalarOperands()
379 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>( in addReplicateRegions()
[all …]
H A DVPlanUnroll.cpp286 VPBasicBlock &VPBB = *R.getParent(); in unrollRecipeByUF() local
289 Copy->insertBefore(VPBB, InsertPt); in unrollRecipeByUF()
342 auto *VPBB = cast<VPBasicBlock>(VPB); in unrollBlock() local
343 auto InsertPtForPhi = VPBB->getFirstNonPhi(); in unrollBlock()
344 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) { in unrollBlock()
407 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(Iter)) { in unrollByUF()
408 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) { in unrollByUF()
506 for (VPBasicBlock *VPBB : VPBBsToUnroll) { in replicateByVF()
507 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) { in replicateByVF()
H A DVPlan.cpp212 auto *VPBB = dyn_cast<VPBasicBlock>(VPB); in isHeader() local
213 if (!VPBB) in isHeader()
218 if (auto *R = VPBB->getParent()) in isHeader()
219 return !R->isReplicator() && VPBB->getNumPredecessors() == 0; in isHeader()
644 static bool hasConditionalTerminator(const VPBasicBlock *VPBB) { in hasConditionalTerminator() argument
645 if (VPBB->empty()) { in hasConditionalTerminator()
647 VPBB->getNumSuccessors() < 2 && in hasConditionalTerminator()
652 const VPRecipeBase *R = &VPBB->back(); in hasConditionalTerminator()
660 if (VPBB->getNumSuccessors() == 2 || in hasConditionalTerminator()
661 (VPBB->isExiting() && !VPBB->getParent()->isReplicator())) { in hasConditionalTerminator()
[all …]
H A DVPlanAnalysis.cpp319 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>( in collectEphemeralRecipesForVPlan()
321 for (VPRecipeBase &R : *VPBB) { in collectEphemeralRecipesForVPlan()
441 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(RPOT)) { in calculateRegisterUsageForPlan()
442 if (!VPBB->getParent()) in calculateRegisterUsageForPlan()
444 for (VPRecipeBase &R : *VPBB) { in calculateRegisterUsageForPlan()
470 if (VPBB == Plan.getVectorLoopRegion()->getExiting()) { in calculateRegisterUsageForPlan()
H A DVPRecipeBuilder.h187 VPValue *getBlockInMask(VPBasicBlock *VPBB) const { in getBlockInMask() argument
188 return BlockMaskCache.lookup(VPBB); in getBlockInMask()
H A DVPlanSLP.cpp57 if (VPBasicBlock *VPBB = dyn_cast<VPBasicBlock>(Block)) { in visitBlock() local
58 for (VPRecipeBase &VPI : *VPBB) { in visitBlock()
H A DVPlanHelpers.h398 void assignNames(const VPBasicBlock *VPBB);
H A DLoopVectorize.cpp2413 static void replaceVPBBWithIRVPBB(VPBasicBlock *VPBB, BasicBlock *IRBB) { in replaceVPBBWithIRVPBB() argument
2414 VPIRBasicBlock *IRVPBB = VPBB->getPlan()->createVPIRBasicBlock(IRBB); in replaceVPBBWithIRVPBB()
2415 for (auto &R : make_early_inc_range(*VPBB)) { in replaceVPBBWithIRVPBB()
2421 VPBlockUtils::reassociateBlocks(VPBB, IRVPBB); in replaceVPBBWithIRVPBB()
2702 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(Iter)) { in fixNonInductionPHIs()
2703 for (VPRecipeBase &P : VPBB->phis()) { in fixNonInductionPHIs()
2712 const VPBasicBlock *VPBB = VPPhi->getIncomingBlock(Idx); in fixNonInductionPHIs() local
2713 NewPhi->addIncoming(State.get(Inc), State.CFG.VPBB2IRBB[VPBB]); in fixNonInductionPHIs()
4025 for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(Iter)) { in emitInvalidCostRemarks()
4026 for (auto &R : *VPBB) { in emitInvalidCostRemarks()
[all …]
H A DVPlan.h3941 void setEntry(VPBasicBlock *VPBB) {
3942 Entry = VPBB;
3943 VPBB->setPlan(this);
4015 bool isExitBlock(VPBlockBase *VPBB);
H A DVPlanRecipes.cpp540 static BranchInst *createCondBranch(Value *Cond, VPBasicBlock *VPBB, in createCondBranch() argument
546 VPBasicBlock *SecondVPSucc = cast<VPBasicBlock>(VPBB->getSuccessors()[1]); in createCondBranch()
548 BasicBlock *IRBB = State.CFG.VPBB2IRBB[VPBB]; in createCondBranch()