LLVM  8.0.1
Classes | Namespaces
LoopVectorizationPlanner.h File Reference

This file provides a LoopVectorizationPlanner class. More...

#include "VPlan.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
Include dependency graph for LoopVectorizationPlanner.h:
This graph shows which files directly or indirectly include this file:

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...
 
class  llvm::LoopVectorizationPlanner
 Planner drives the vectorization process after having passed Legality checks. More...
 

Namespaces

 llvm
 This class represents lattice values for constants.
 

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.