Home
last modified time | relevance | path

Searched refs:Plan (Results 1 – 21 of 21) sorted by relevance

/llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/
H A DVPlanTransforms.cpp22 Loop *OrigLoop, VPlanPtr &Plan, in VPInstructionsToVPRecipes() argument
28 RPOT(Plan->getEntry()); in VPInstructionsToVPRecipes()
55 Plan->addVPValue(Phi, VPPhi); in VPInstructionsToVPRecipes()
96 Plan->removeVPValueFor(Inst); in VPInstructionsToVPRecipes()
98 Plan->addVPValue(Inst, Def); in VPInstructionsToVPRecipes()
104 bool VPlanTransforms::sinkScalarOperands(VPlan &Plan) { in sinkScalarOperands() argument
215 bool VPlanTransforms::mergeReplicateRegions(VPlan &Plan) { in mergeReplicateRegions() argument
332 VPCanonicalIVPHIRecipe *CanonicalIV = Plan.getCanonicalIV(); in removeRedundantCanonicalIVs()
364 void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { in removeDeadRecipes() argument
366 RPOT(Plan.getEntry()); in removeDeadRecipes()
[all …]
H A DVPlanTransforms.h31 VPInstructionsToVPRecipes(Loop *OrigLoop, VPlanPtr &Plan,
37 static bool sinkScalarOperands(VPlan &Plan);
39 static bool mergeReplicateRegions(VPlan &Plan);
47 static void removeRedundantInductionCasts(VPlan &Plan);
51 static void removeRedundantCanonicalIVs(VPlan &Plan);
53 static void removeDeadRecipes(VPlan &Plan);
59 static void optimizeInductions(VPlan &Plan, ScalarEvolution &SE);
63 static void removeRedundantExpandSCEVRecipes(VPlan &Plan);
H A DVPRecipeBuilder.h73 VFRange &Range, VPlanPtr &Plan);
79 VPlan &Plan, VFRange &Range);
85 VFRange &Range, VPlan &Plan);
92 VPlanPtr &Plan);
122 VFRange &Range, VPlanPtr &Plan);
137 VPValue *createBlockInMask(BasicBlock *BB, VPlanPtr &Plan);
141 VPValue *createEdgeMask(BasicBlock *Src, BasicBlock *Dst, VPlanPtr &Plan);
162 VPlanPtr &Plan);
172 VPlanPtr &Plan);
H A DVPlanHCFGBuilder.cpp43 VPlan &Plan; member in __anon69ef2ce80111::PlainCFGBuilder
74 : TheLoop(Lp), LI(LI), Plan(P) {} in PlainCFGBuilder()
199 VPValue *NewVPVal = Plan.getOrAddExternalDef(IRVal); in getOrCreateVPOperand()
275 IRDef2VPValue[&I] = Plan.getOrAddExternalDef(&I); in buildPlainCFG()
379 PlainCFGBuilder PCFGBuilder(TheLoop, LI, Plan); in buildPlainCFG()
387 Plan.setEntry(EntryVPBB); in buildHierarchicalCFG()
388 LLVM_DEBUG(Plan.setName("HCFGBuilder: Plain CFG\n"); dbgs() << Plan); in buildHierarchicalCFG()
390 VPRegionBlock *TopRegion = Plan.getVectorLoopRegion(); in buildHierarchicalCFG()
H A DVPlan.cpp156 Plan = ParentPlan; in setPlan()
854 if (!Plan.getName().empty()) in dump()
856 if (Plan.BackedgeTakenCount) { in dump()
858 Plan.BackedgeTakenCount->print(OS, SlotTracker); in dump()
1075 for (const auto &P : Plan.VPExternalDefs) in assignSlots()
1078 assignSlot(&Plan.VectorTripCount); in assignSlots()
1079 if (Plan.BackedgeTakenCount) in assignSlots()
1080 assignSlot(Plan.BackedgeTakenCount); in assignSlots()
1085 Plan.getEntry())); in assignSlots()
1101 return Plan.getOrAddExternalDef(E->getValue()); in getOrCreateVPValueForSCEVExpr()
[all …]
H A DVPlanVerifier.cpp224 bool VPlanVerifier::verifyPlanIsValid(const VPlan &Plan) { in verifyPlanIsValid() argument
228 VPBlockRecursiveTraversalWrapper<const VPBlockBase *>(Plan.getEntry())); in verifyPlanIsValid()
238 const VPRegionBlock *TopRegion = Plan.getVectorLoopRegion(); in verifyPlanIsValid()
274 Plan.getEntry())))) { in verifyPlanIsValid()
285 for (auto &KV : Plan.getLiveOuts()) in verifyPlanIsValid()
H A DVPlanHCFGBuilder.h50 VPlan &Plan; variable
66 : TheLoop(Lp), LI(LI), Plan(P) {} in VPlanHCFGBuilder()
H A DLoopVectorize.cpp7503 [VF](const VPlanPtr &Plan) { return Plan->hasVF(VF); }) == in getBestPlanFor() argument
7508 if (Plan->hasVF(VF)) in getBestPlanFor()
7638 Plan->printDOT(O); in printPlans()
7640 Plan->print(O); in printPlans()
8358 VPlanPtr &Plan) { in handleReplication() argument
9023 Plan->addVF(VF); in buildVPlanWithVPRecipes()
9026 Plan->addVF(VF); in buildVPlanWithVPRecipes()
9049 return Plan; in buildVPlanWithVPRecipes()
9069 Plan->addVF(VF); in buildVPlan()
9073 OrigLoop, Plan, in buildVPlan()
[all …]
H A DVPlanValue.h443 void assignSlots(const VPlan &Plan);
446 VPSlotTracker(const VPlan *Plan = nullptr) {
447 if (Plan)
448 assignSlots(*Plan);
H A DVPlanVerifier.h44 static bool verifyPlanIsValid(const VPlan &Plan);
H A DLoopVectorizationPlanner.h325 [&](const VPlanPtr &Plan) { return Plan->hasVF(VF); }); in hasPlanWithVF()
366 void adjustRecipesForReductions(VPBasicBlock *LatchVPBB, VPlanPtr &Plan,
H A DVPlan.h204 InnerLoopVectorizer *ILV, VPlan *Plan) in VPTransformState()
205 : VF(VF), UF(UF), LI(LI), DT(DT), Builder(Builder), ILV(ILV), Plan(Plan), in VPTransformState()
366 VPlan *Plan; member
405 VPlan *Plan = nullptr; variable
642 void fixPhi(VPlan &Plan, VPTransformState &State);
2745 const VPlan &Plan;
2785 : OS(O), Plan(P), SlotTracker(&P) {}
2803 inline raw_ostream &operator<<(raw_ostream &OS, const VPlan &Plan) {
2804 Plan.print(OS);
2941 VPInterleavedAccessInfo(VPlan &Plan, InterleavedAccessInfo &IAI);
[all …]
H A DVPlanRecipes.cpp132 void VPLiveOut::fixPhi(VPlan &Plan, VPTransformState &State) { in fixPhi() argument
135 if (Plan.isUniformAfterVectorization(ExitValue)) in fixPhi()
327 auto *Plan = getParent()->getPlan(); in generateInstruction() local
328 VPRegionBlock *TopRegion = Plan->getVectorLoopRegion(); in generateInstruction()
/llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/
H A DVPlanSlpTest.cpp50 return {Plan, *IAI}; in getInterleavedAccessInfo()
97 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
170 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
241 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
305 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
443 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
515 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
587 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
663 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
723 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
[all …]
H A DVPlanTestBase.h67 auto Plan = std::make_unique<VPlan>(); in buildHCFG() local
68 VPlanHCFGBuilder HCFGBuilder(LI->getLoopFor(LoopHeader), LI.get(), *Plan); in buildHCFG()
70 return Plan; in buildHCFG()
77 auto Plan = std::make_unique<VPlan>(); in buildPlainCFG() local
78 VPlanHCFGBuilder HCFGBuilder(LI->getLoopFor(LoopHeader), LI.get(), *Plan); in buildPlainCFG()
80 Plan->setEntry(EntryVPBB); in buildPlainCFG()
81 return Plan; in buildPlainCFG()
H A DVPlanTest.cpp256 VPlan Plan; in TEST() local
272 VPlan Plan; in TEST() local
289 VPlan Plan; in TEST() local
316 VPlan Plan; in TEST() local
355 VPlan Plan; in TEST() local
443 VPlan Plan; in TEST() local
525 VPlan Plan; in TEST() local
572 VPlan Plan; in TEST() local
663 VPlan Plan; in TEST() local
699 VPlan Plan; in TEST() local
[all …]
H A DVPlanHCFGTest.cpp42 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
44 VPBasicBlock *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
57 EXPECT_EQ(&*Plan, VecBB->getPlan()); in TEST_F()
97 Plan->addVPValue(&*F->arg_begin()); in TEST_F()
100 Plan->printDOT(OS); in TEST_F()
102 graph [labelloc=t, fontsize=30; label="Vectorization Plan"] in TEST_F()
139 LI->getLoopFor(LoopHeader), Plan, [](PHINode *P) { return nullptr; }, in TEST_F()
165 auto Plan = buildHCFG(LoopHeader); in TEST_F() local
169 LI->getLoopFor(LoopHeader), Plan, [](PHINode *P) { return nullptr; }, in TEST_F()
172 VPBlockBase *Entry = Plan->getEntry()->getEntryBasicBlock(); in TEST_F()
/llvm-project-15.0.7/llvm/docs/Proposals/
H A DVectorizationPlan.rst2 Vectorization Plan
17 The Vectorization Plan is an explicit model for describing vectorization
32 2. Plan Step:
212 tree, where TSLP [3]_ adds Plan Step 2.b.
217 3. Loop Vectorizer: the Vectorization Plan aims to upgrade the infrastructure of
H A DVariableNames.rst2 Variable Names Plan
264 Provisional Plan
H A DGitHubMove.rst157 Straw Man Migration Plan
/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/
H A Dvplan-dot-printing.ll11 ; CHECK-NEXT: graph [labelloc=t, fontsize=30; label="Vectorization Plan\nInitial VPlan for VF=\{4\…