LLVM 20.0.0git
Classes | Namespaces
LoopVectorizationPlanner.h File Reference

This file provides a LoopVectorizationPlanner class. More...

#include "VPlan.h"
#include "llvm/ADT/SmallSet.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::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.
 

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.