LLVM
8.0.1
|
This file contains the declarations of the Vectorization Plan base classes: More...
#include "VPlanLoopInfo.h"
#include "VPlanValue.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/ilist.h"
#include "llvm/ADT/ilist_node.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/IR/IRBuilder.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <map>
#include <string>
Go to the source code of this file.
Classes | |
class | llvm::InterleaveGroup< InstTy > |
The group of interleaved loads/stores sharing the same stride and close to each other. More... | |
struct | llvm::VFRange |
A range of powers-of-2 vectorization factors with fixed start and adjustable end. More... | |
struct | llvm::VPIteration |
In what follows, the term "input IR" refers to code that is fed into the vectorizer whereas the term "output IR" refers to code that is generated by the vectorizer. More... | |
struct | llvm::VectorizerValueMap |
This is a helper struct for maintaining vectorization state. More... | |
struct | llvm::VPCallback |
This class is used to enable the VPlan to invoke a method of ILV. More... | |
struct | llvm::VPTransformState |
VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More... | |
struct | llvm::VPTransformState::DataState |
struct | llvm::VPTransformState::CFGState |
Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks. More... | |
class | llvm::VPBlockBase |
VPBlockBase is the building block of the Hierarchical Control-Flow Graph. More... | |
class | llvm::VPRecipeBase |
VPRecipeBase is a base class modeling a sequence of one or more output IR instructions. More... | |
class | llvm::VPInstruction |
This is a concrete Recipe that models a single VPlan-level instruction. More... | |
class | llvm::VPWidenRecipe |
VPWidenRecipe is a recipe for producing a copy of vector type for each Instruction in its ingredients independently, in order. More... | |
class | llvm::VPWidenIntOrFpInductionRecipe |
A recipe for handling phi nodes of integer and floating-point inductions, producing their vector and scalar values. More... | |
class | llvm::VPWidenPHIRecipe |
A recipe for handling all phi nodes except for integer and FP inductions. More... | |
class | llvm::VPBlendRecipe |
A recipe for vectorizing a phi-node as a sequence of mask-based select instructions. More... | |
class | llvm::VPInterleaveRecipe |
VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles. More... | |
class | llvm::VPReplicateRecipe |
VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original scalar type, one per lane, instead of producing a single copy of widened type for all lanes. More... | |
class | llvm::VPBranchOnMaskRecipe |
A recipe for generating conditional branches on the bits of a mask. More... | |
class | llvm::VPPredInstPHIRecipe |
VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More... | |
class | llvm::VPWidenMemoryInstructionRecipe |
A Recipe for widening load/store operations. More... | |
class | llvm::VPBasicBlock |
VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More... | |
class | llvm::VPRegionBlock |
VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exit subgraph of the output IR CFG. More... | |
class | llvm::VPlan |
VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. More... | |
class | llvm::VPlanPrinter |
VPlanPrinter prints a given VPlan to a given output stream. More... | |
struct | llvm::VPlanIngredient |
struct | llvm::GraphTraits< VPBlockBase * > |
struct | llvm::GraphTraits< const VPBlockBase * > |
struct | llvm::GraphTraits< Inverse< VPBlockBase * > > |
struct | llvm::GraphTraits< VPRegionBlock * > |
struct | llvm::GraphTraits< const VPRegionBlock * > |
struct | llvm::GraphTraits< Inverse< VPRegionBlock * > > |
class | llvm::VPBlockUtils |
Class that provides utilities for VPBlockBases in VPlan. More... | |
class | llvm::VPInterleavedAccessInfo |
class | llvm::VPlanSlp |
Class that maps (parts of) an existing VPlan to trees of combined VPInstructions. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Typedefs | |
using | llvm::VPlanPtr = std::unique_ptr< VPlan > |
Functions | |
raw_ostream & | llvm::operator<< (raw_ostream &OS, const VPlanIngredient &I) |
raw_ostream & | llvm::operator<< (raw_ostream &OS, VPlan &Plan) |
This file contains the declarations of the Vectorization Plan base classes:
Definition in file VPlan.h.