forked from OSchip/llvm-project
[LV] Remove the redundant using LoopVectorizationPlanner:VPlanPtr
VPlan.h already contains the declaration of VPlanPtr type alias: using VPlanPtr = std::unique_ptr<VPlan>; The LoopVectorizationPlanner class also contains the same declaration of VPlanPtr and therefore LoopVectorize requires a long wording when its methods return VPlanPtr: LoopVectorizationPlanner::VPlanPtr LoopVectorizationPlanner::buildVPlanWithVPRecipes(...) but LoopVectorize.cpp includes VPlan.h (via LoopVectorizationPlanner.h) and can use VPlanPtr from that header. Patch by Pavel Samolysov. Reviewers: hsaito, rengolin, fhahn Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D62576 llvm-svn: 362126
This commit is contained in:
parent
ec1b4d1f6f
commit
9bbdde2598
|
@ -198,11 +198,9 @@ class LoopVectorizationPlanner {
|
||||||
/// The legality analysis.
|
/// The legality analysis.
|
||||||
LoopVectorizationLegality *Legal;
|
LoopVectorizationLegality *Legal;
|
||||||
|
|
||||||
/// The profitablity analysis.
|
/// The profitability analysis.
|
||||||
LoopVectorizationCostModel &CM;
|
LoopVectorizationCostModel &CM;
|
||||||
|
|
||||||
using VPlanPtr = std::unique_ptr<VPlan>;
|
|
||||||
|
|
||||||
SmallVector<VPlanPtr, 4> VPlans;
|
SmallVector<VPlanPtr, 4> VPlans;
|
||||||
|
|
||||||
/// This class is used to enable the VPlan to invoke a method of ILV. This is
|
/// This class is used to enable the VPlan to invoke a method of ILV. This is
|
||||||
|
|
|
@ -56,6 +56,7 @@
|
||||||
#include "llvm/Transforms/Vectorize/LoopVectorize.h"
|
#include "llvm/Transforms/Vectorize/LoopVectorize.h"
|
||||||
#include "LoopVectorizationPlanner.h"
|
#include "LoopVectorizationPlanner.h"
|
||||||
#include "VPRecipeBuilder.h"
|
#include "VPRecipeBuilder.h"
|
||||||
|
#include "VPlan.h"
|
||||||
#include "VPlanHCFGBuilder.h"
|
#include "VPlanHCFGBuilder.h"
|
||||||
#include "VPlanHCFGTransforms.h"
|
#include "VPlanHCFGTransforms.h"
|
||||||
#include "VPlanPredicator.h"
|
#include "VPlanPredicator.h"
|
||||||
|
@ -6829,8 +6830,7 @@ void LoopVectorizationPlanner::buildVPlansWithVPRecipes(unsigned MinVF,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LoopVectorizationPlanner::VPlanPtr
|
VPlanPtr LoopVectorizationPlanner::buildVPlanWithVPRecipes(
|
||||||
LoopVectorizationPlanner::buildVPlanWithVPRecipes(
|
|
||||||
VFRange &Range, SmallPtrSetImpl<Value *> &NeedDef,
|
VFRange &Range, SmallPtrSetImpl<Value *> &NeedDef,
|
||||||
SmallPtrSetImpl<Instruction *> &DeadInstructions) {
|
SmallPtrSetImpl<Instruction *> &DeadInstructions) {
|
||||||
// Hold a mapping from predicated instructions to their recipes, in order to
|
// Hold a mapping from predicated instructions to their recipes, in order to
|
||||||
|
@ -6954,8 +6954,7 @@ LoopVectorizationPlanner::buildVPlanWithVPRecipes(
|
||||||
return Plan;
|
return Plan;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoopVectorizationPlanner::VPlanPtr
|
VPlanPtr LoopVectorizationPlanner::buildVPlan(VFRange &Range) {
|
||||||
LoopVectorizationPlanner::buildVPlan(VFRange &Range) {
|
|
||||||
// Outer loop handling: They may require CFG and instruction level
|
// Outer loop handling: They may require CFG and instruction level
|
||||||
// transformations before even evaluating whether vectorization is profitable.
|
// transformations before even evaluating whether vectorization is profitable.
|
||||||
// Since we cannot modify the incoming IR, we need to build VPlan upfront in
|
// Since we cannot modify the incoming IR, we need to build VPlan upfront in
|
||||||
|
|
Loading…
Reference in New Issue