| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanTransforms.cpp | 22 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 D | VPlanTransforms.h | 31 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 D | VPRecipeBuilder.h | 73 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 D | VPlanHCFGBuilder.cpp | 43 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 D | VPlan.cpp | 156 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 D | VPlanVerifier.cpp | 224 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 D | VPlanHCFGBuilder.h | 50 VPlan &Plan; variable 66 : TheLoop(Lp), LI(LI), Plan(P) {} in VPlanHCFGBuilder()
|
| H A D | LoopVectorize.cpp | 7503 [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 D | VPlanValue.h | 443 void assignSlots(const VPlan &Plan); 446 VPSlotTracker(const VPlan *Plan = nullptr) { 447 if (Plan) 448 assignSlots(*Plan);
|
| H A D | VPlanVerifier.h | 44 static bool verifyPlanIsValid(const VPlan &Plan);
|
| H A D | LoopVectorizationPlanner.h | 325 [&](const VPlanPtr &Plan) { return Plan->hasVF(VF); }); in hasPlanWithVF() 366 void adjustRecipesForReductions(VPBasicBlock *LatchVPBB, VPlanPtr &Plan,
|
| H A D | VPlan.h | 204 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 D | VPlanRecipes.cpp | 132 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 D | VPlanSlpTest.cpp | 50 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 D | VPlanTestBase.h | 67 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 D | VPlanTest.cpp | 256 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 D | VPlanHCFGTest.cpp | 42 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 D | VectorizationPlan.rst | 2 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 D | VariableNames.rst | 2 Variable Names Plan 264 Provisional Plan
|
| H A D | GitHubMove.rst | 157 Straw Man Migration Plan
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/ |
| H A D | vplan-dot-printing.ll | 11 ; CHECK-NEXT: graph [labelloc=t, fontsize=30; label="Vectorization Plan\nInitial VPlan for VF=\{4\…
|