|
LLVM 23.0.0git
|
This file provides a LoopVectorizationPlanner class. More...
#include "VPlan.h"#include "llvm/ADT/SmallSet.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Support/InstructionCost.h"Go to the source code of this file.
Classes | |
| class | llvm::VPBuilder |
| VPlan-based builder utility analogous to IRBuilder. More... | |
| class | llvm::VPBuilder::VPInsertPoint |
| InsertPoint - A saved insertion point. More... | |
| class | llvm::VPBuilder::InsertPointGuard |
| RAII object that stores the current insertion point and restores it when the object is destroyed. More... | |
| struct | llvm::VectorizationFactor |
| TODO: The following VectorizationFactor was pulled out of LoopVectorizationCostModel class. More... | |
| struct | llvm::FixedScalableVFPair |
| A class that represents two vectorization factors (initialized with 0 by default). More... | |
| class | llvm::VFSelectionContext |
| Holds state needed to make cost decisions before computing costs per-VF, including the maximum VFs. More... | |
| class | llvm::LoopVectorizationPlanner |
| Planner drives the vectorization process after having passed Legality checks. More... | |
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
| std::optional< unsigned > | llvm::getMaxVScale (const Function &F, const TargetTransformInfo &TTI) |
| void | llvm::reportVectorizationInfo (const StringRef Msg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, const Loop *TheLoop, Instruction *I=nullptr, DebugLoc DL={}) |
Reports an informative message: print Msg for debugging purposes as well as an optimization remark. | |
Variables | |
| cl::opt< bool > | llvm::EnableVPlanNativePath |
| cl::opt< unsigned > | llvm::ForceTargetInstructionCost |
| cl::opt< bool > | llvm::PreferInLoopReductions |
This file provides a LoopVectorizationPlanner class.
InnerLoopVectorizer vectorizes loops which contain only one basic LoopVectorizationPlanner - drives the vectorization process after having passed Legality checks. The planner builds and optimizes the Vectorization Plans which record the decisions how to vectorize the given loop. In particular, represent the control-flow of the vectorized version, the replication of instructions that are to be scalarized, and interleave access groups.
Also provides a VPlan-based builder utility analogous to IRBuilder. It provides an instruction-level API for generating VPInstructions while abstracting away the Recipe manipulation details.
Definition in file LoopVectorizationPlanner.h.