LLVM 23.0.0git
LoopVectorizationPlanner.h File Reference

This file provides a LoopVectorizationPlanner class. More...

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< unsignedllvm::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< boolllvm::EnableVPlanNativePath
cl::opt< unsignedllvm::ForceTargetInstructionCost
cl::opt< boolllvm::PreferInLoopReductions

Detailed Description

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.