@@ -380,10 +380,6 @@ cl::opt<bool> llvm::EnableLoopVectorization(
380
380
" vectorize-loops" , cl::init(true ), cl::Hidden,
381
381
cl::desc(" Run the Loop vectorization passes" ));
382
382
383
- static cl::opt<bool > PrintVPlansInDotFormat (
384
- " vplan-print-in-dot-format" , cl::Hidden,
385
- cl::desc (" Use dot format instead of plain text when dumping VPlans" ));
386
-
387
383
static cl::opt<cl::boolOrDefault> ForceSafeDivisor (
388
384
" force-widen-divrem-via-safe-divisor" , cl::Hidden,
389
385
cl::desc (
@@ -7302,19 +7298,6 @@ ElementCount LoopVectorizationPlanner::getBestVF() {
7302
7298
return BestFactor.Width ;
7303
7299
}
7304
7300
7305
- VPlan &LoopVectorizationPlanner::getBestPlanFor (ElementCount VF) const {
7306
- assert (count_if (VPlans,
7307
- [VF](const VPlanPtr &Plan) { return Plan->hasVF (VF); }) ==
7308
- 1 &&
7309
- " Best VF has not a single VPlan." );
7310
-
7311
- for (const VPlanPtr &Plan : VPlans) {
7312
- if (Plan->hasVF (VF))
7313
- return *Plan.get ();
7314
- }
7315
- llvm_unreachable (" No plan found!" );
7316
- }
7317
-
7318
7301
static void AddRuntimeUnrollDisableMetaData (Loop *L) {
7319
7302
SmallVector<Metadata *, 4 > MDs;
7320
7303
// Reserve first location for self reference to the LoopID metadata node.
@@ -7559,16 +7542,6 @@ LoopVectorizationPlanner::executePlan(
7559
7542
return {State.ExpandedSCEVs , ReductionResumeValues};
7560
7543
}
7561
7544
7562
- #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
7563
- void LoopVectorizationPlanner::printPlans (raw_ostream &O) {
7564
- for (const auto &Plan : VPlans)
7565
- if (PrintVPlansInDotFormat)
7566
- Plan->printDOT (O);
7567
- else
7568
- Plan->print (O);
7569
- }
7570
- #endif
7571
-
7572
7545
// ===--------------------------------------------------------------------===//
7573
7546
// EpilogueVectorizerMainLoop
7574
7547
// ===--------------------------------------------------------------------===//
@@ -7858,37 +7831,6 @@ void EpilogueVectorizerEpilogueLoop::printDebugTracesAtEnd() {
7858
7831
});
7859
7832
}
7860
7833
7861
- bool LoopVectorizationPlanner::getDecisionAndClampRange (
7862
- const std::function<bool (ElementCount)> &Predicate, VFRange &Range) {
7863
- assert (!Range.isEmpty () && " Trying to test an empty VF range." );
7864
- bool PredicateAtRangeStart = Predicate (Range.Start );
7865
-
7866
- for (ElementCount TmpVF : VFRange (Range.Start * 2 , Range.End ))
7867
- if (Predicate (TmpVF) != PredicateAtRangeStart) {
7868
- Range.End = TmpVF;
7869
- break ;
7870
- }
7871
-
7872
- return PredicateAtRangeStart;
7873
- }
7874
-
7875
- // / Build VPlans for the full range of feasible VF's = {\p MinVF, 2 * \p MinVF,
7876
- // / 4 * \p MinVF, ..., \p MaxVF} by repeatedly building a VPlan for a sub-range
7877
- // / of VF's starting at a given VF and extending it as much as possible. Each
7878
- // / vectorization decision can potentially shorten this sub-range during
7879
- // / buildVPlan().
7880
- void LoopVectorizationPlanner::buildVPlans (ElementCount MinVF,
7881
- ElementCount MaxVF) {
7882
- auto MaxVFTimes2 = MaxVF * 2 ;
7883
- for (ElementCount VF = MinVF; ElementCount::isKnownLT (VF, MaxVFTimes2);) {
7884
- VFRange SubRange = {VF, MaxVFTimes2};
7885
- auto Plan = buildVPlan (SubRange);
7886
- VPlanTransforms::optimize (*Plan, *PSE.getSE ());
7887
- VPlans.push_back (std::move (Plan));
7888
- VF = SubRange.End ;
7889
- }
7890
- }
7891
-
7892
7834
iterator_range<mapped_iterator<Use *, std::function<VPValue *(Value *)>>>
7893
7835
VPRecipeBuilder::mapToVPValues (User::op_range Operands) {
7894
7836
std::function<VPValue *(Value *)> Fn = [this ](Value *Op) {
0 commit comments