Lines Matching defs:Plan

1 //===- VPlan.cpp - Vectorizer Plan ----------------------------------------===//
154 VPlan *VPBlockBase::getPlan() { return getPlanEntry(this)->Plan; }
156 const VPlan *VPBlockBase::getPlan() const { return getPlanEntry(this)->Plan; }
175 Plan = ParentPlan;
219 InnerLoopVectorizer *ILV, VPlan *Plan,
221 : TTI(TTI), VF(VF), CFG(DT), LI(LI), Builder(Builder), ILV(ILV), Plan(Plan),
273 CFG.VPBB2IRBB[Plan->getVectorPreheader()];
382 unsigned UF = Plan->getUF();
849 auto Plan = std::make_unique<VPlan>(TheLoop);
850 VPBlockBase *ScalarHeader = Plan->getScalarHeader();
858 VPBasicBlock *VecPreheader = Plan->createVPBasicBlock("vector.ph");
859 VPBlockUtils::connectBlocks(Plan->getEntry(), VecPreheader);
870 Plan->TripCount =
871 vputils::getOrCreateVPValueForSCEVExpr(*Plan, TripCount, SE);
875 VPBasicBlock *HeaderVPBB = Plan->createVPBasicBlock("vector.body");
876 VPBasicBlock *LatchVPBB = Plan->createVPBasicBlock("vector.latch");
878 auto *TopRegion = Plan->createVPRegionBlock(
882 VPBasicBlock *MiddleVPBB = Plan->createVPBasicBlock("middle.block");
885 VPBasicBlock *ScalarPH = Plan->createVPBasicBlock("scalar.ph");
889 return Plan;
901 auto *VPExitBlock = Plan->createVPIRBasicBlock(IRExitBlock);
914 ? Plan->getOrAddLiveIn(ConstantInt::getTrue(
916 : Builder.createICmp(CmpInst::ICMP_EQ, Plan->getTripCount(),
917 &Plan->getVectorTripCount(),
921 return Plan;
1278 OS << "graph [labelloc=t, fontsize=30; label=\"Vectorization Plan";
1279 if (!Plan.getName().empty())
1280 OS << "\\n" << DOT::EscapeString(Plan.getName());
1286 Plan.printLiveIns(SS);
1298 for (const VPBlockBase *Block : vp_depth_first_shallow(Plan.getEntry()))
1509 VPInterleavedAccessInfo::VPInterleavedAccessInfo(VPlan &Plan,
1512 visitRegion(Plan.getVectorLoopRegion(), Old2New, IAI);
1554 void VPSlotTracker::assignNames(const VPlan &Plan) {
1555 if (Plan.VF.getNumUsers() > 0)
1556 assignName(&Plan.VF);
1557 if (Plan.VFxUF.getNumUsers() > 0)
1558 assignName(&Plan.VFxUF);
1559 assignName(&Plan.VectorTripCount);
1560 if (Plan.BackedgeTakenCount)
1561 assignName(Plan.BackedgeTakenCount);
1562 for (VPValue *LI : Plan.VPLiveInsToFree)
1566 RPOT(VPBlockDeepTraversalWrapper<const VPBlockBase *>(Plan.getEntry()));
1630 auto Plan = buildVPlan(SubRange);
1631 VPlanTransforms::optimize(*Plan);
1634 Plan->getVectorLoopRegion()->getExiting()->setName("vector.latch");
1635 VPlans.push_back(std::move(Plan));
1642 [VF](const VPlanPtr &Plan) { return Plan->hasVF(VF); }) ==
1646 for (const VPlanPtr &Plan : VPlans) {
1647 if (Plan->hasVF(VF))
1648 return *Plan.get();
1659 for (const auto &Plan : VPlans)
1661 Plan->printDOT(O);
1663 Plan->print(O);