| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanTransforms.h | 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 | VPlanHCFGBuilder.h | 35 class VPlan; variable 50 VPlan &Plan; 65 VPlanHCFGBuilder(Loop *Lp, LoopInfo *LI, VPlan &P) in VPlanHCFGBuilder()
|
| H A D | VPlanVerifier.h | 29 class VPlan; variable 44 static bool verifyPlanIsValid(const VPlan &Plan);
|
| H A D | VPlanTransforms.cpp | 104 bool VPlanTransforms::sinkScalarOperands(VPlan &Plan) { in sinkScalarOperands() 215 bool VPlanTransforms::mergeReplicateRegions(VPlan &Plan) { in mergeReplicateRegions() 299 void VPlanTransforms::removeRedundantInductionCasts(VPlan &Plan) { in removeRedundantInductionCasts() 331 void VPlanTransforms::removeRedundantCanonicalIVs(VPlan &Plan) { in removeRedundantCanonicalIVs() 364 void VPlanTransforms::removeDeadRecipes(VPlan &Plan) { in removeDeadRecipes() 381 void VPlanTransforms::optimizeInductions(VPlan &Plan, ScalarEvolution &SE) { in optimizeInductions() 417 void VPlanTransforms::removeRedundantExpandSCEVRecipes(VPlan &Plan) { in removeRedundantExpandSCEVRecipes()
|
| H A D | VPlan.cpp | 134 VPlan *VPBlockBase::getPlan() { return getPlanEntry(this)->Plan; } in getPlan() 153 void VPBlockBase::setPlan(VPlan *ParentPlan) { in setPlan() 571 VPActiveLaneMaskPHIRecipe *VPlan::getActiveLaneMaskPhi() { in getActiveLaneMaskPhi() 589 void VPlan::prepareToExecute(Value *TripCountV, Value *VectorTripCountV, in prepareToExecute() 666 void VPlan::execute(VPTransformState *State) { in execute() 747 void VPlan::print(raw_ostream &O) const { in print() 783 void VPlan::printDOT(raw_ostream &O) const { in printDOT() 789 void VPlan::dump() const { print(dbgs()); } in dump() 792 void VPlan::addLiveOut(PHINode *PN, VPValue *V) { in addLiveOut() 1062 VPInterleavedAccessInfo::VPInterleavedAccessInfo(VPlan &Plan, in VPInterleavedAccessInfo() [all …]
|
| H A D | VPRecipeBuilder.h | 79 VPlan &Plan, VFRange &Range); 85 VFRange &Range, VPlan &Plan);
|
| H A D | VPlan.h | 63 class VPlan; variable 99 using VPlanPtr = std::unique_ptr<VPlan>; 366 VPlan *Plan; 405 VPlan *Plan = nullptr; 461 VPlan *getPlan(); 462 const VPlan *getPlan() const; 466 void setPlan(VPlan *ParentPlan); 2498 class VPlan { 2547 ~VPlan() { 2745 const VPlan &Plan; [all …]
|
| H A D | CMakeLists.txt | 8 VPlan.cpp
|
| H A D | VPlanValue.h | 432 class VPlan; variable 443 void assignSlots(const VPlan &Plan); 446 VPSlotTracker(const VPlan *Plan = nullptr) {
|
| H A D | VPlanHCFGBuilder.cpp | 43 VPlan &Plan; 73 PlainCFGBuilder(Loop *Lp, LoopInfo *LI, VPlan &P) in PlainCFGBuilder()
|
| H A D | LoopVectorizationPlanner.h | 306 VPlan &getBestPlanFor(ElementCount VF) const; 313 void executePlan(ElementCount VF, unsigned UF, VPlan &BestPlan,
|
| /llvm-project-15.0.7/llvm/docs/Proposals/ |
| H A D | VectorizationPlan.rst | 27 VPlan-based vectorization involves three major steps, taking a "scenario-based 38 3. Execute Step: materialize the best VPlan. Note that this is the only step 48 The design of VPlan follows several high-level guidelines: 93 The low-level design of VPlan comprises of the following classes. 99 Once the best VPlan is determined, including the best VF and UF, this VPlan 102 :VPlan: 159 It is used to model the fact that recipes in VPlan can define multiple 164 VPlan-level instruction to be generated if the VPlan is executed, including 176 The Planning Process and VPlan Roadmap 184 VPlan-to-VPlan algorithms. Finally, VPlan will support the planning process [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/ |
| H A D | vplan_hcfg_stress_test.ll | 5 ; Verify that the stress testing flag for the VPlan H-CFG builder works as 6 ; expected with and without enabling the VPlan H-CFG Verifier. 8 ; VERIFIER: Verifying VPlan H-CFG. 9 ; NO-VERIFIER-NOT: Verifying VPlan H-CFG.
|
| H A D | vplan-stress-test-no-explict-vf.ll | 4 ; This test checks that, when stress testing VPlan, if the computed VF 7 ; CHECK: LV: VPlan computed VF 1. 8 ; CHECK: LV: VPlan stress testing: overriding computed VF.
|
| H A D | vplan-printing.ll | 11 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 57 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 108 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 153 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 197 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 276 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 342 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 392 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 486 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' { 535 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
|
| H A D | vplan-sink-scalars-and-merge.ll | 13 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 80 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 159 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 240 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 315 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 416 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 532 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 642 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 757 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 825 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { [all …]
|
| H A D | first-order-recurrence-sink-replicate-region.ll | 11 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 99 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 174 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 251 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 347 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' { 439 ; CHECK: VPlan 'Initial VPlan for VF={2},UF>=1' {
|
| H A D | vplan-dot-printing.ll | 10 ; CHECK: digraph VPlan { 11 ; CHECK-NEXT: graph [labelloc=t, fontsize=30; label="Vectorization Plan\nInitial VPlan for VF=\{4\…
|
| H A D | vplan-sink-scalars-and-merge-vf1.ll | 10 ; CHECK: VPlan 'Initial VPlan for VF={1},UF>=1' {
|
| H A D | interleave-and-scalarize-only.ll | 7 ; DBG: VPlan 'Initial VPlan for VF={1},UF>=1' { 176 ; DBG: VPlan 'Initial VPlan for VF={1},UF>=1' {
|
| H A D | icmp-uniforms.ll | 39 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/ |
| H A D | VPlanTestBase.h | 67 auto Plan = std::make_unique<VPlan>(); in buildHCFG() 77 auto Plan = std::make_unique<VPlan>(); in buildPlainCFG()
|
| H A D | VPlanTest.cpp | 256 VPlan Plan; in TEST() 272 VPlan Plan; in TEST() 289 VPlan Plan; in TEST() 316 VPlan Plan; in TEST() 355 VPlan Plan; in TEST() 443 VPlan Plan; in TEST() 525 VPlan Plan; in TEST() 572 VPlan Plan; in TEST() 663 VPlan Plan; in TEST() 699 VPlan Plan; in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/ |
| H A D | BUILD.gn | 14 "VPlan.cpp",
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/AArch64/ |
| H A D | sve-tail-folding-forced.ll | 12 ; VPLANS: VPlan 'Initial VPlan for VF={vscale x 1,vscale x 2,vscale x 4},UF>=1' {
|