LLVM  6.0.0svn
Classes | Public Member Functions | Public Attributes | List of all members
llvm::VPTransformState Struct Reference

VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More...

#include "Transforms/Vectorize/VPlan.h"

Collaboration diagram for llvm::VPTransformState:
Collaboration graph
[legend]

Classes

struct  CFGState
 Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks. More...
 

Public Member Functions

 VPTransformState (unsigned VF, unsigned UF, LoopInfo *LI, DominatorTree *DT, IRBuilder<> &Builder, VectorizerValueMap &ValueMap, InnerLoopVectorizer *ILV)
 

Public Attributes

unsigned VF
 The chosen Vectorization and Unroll Factors of the loop being vectorized. More...
 
unsigned UF
 
Optional< VPIterationInstance
 Hold the indices to generate specific scalar instructions. More...
 
struct llvm::VPTransformState::CFGState CFG
 
LoopInfoLI
 Hold a pointer to LoopInfo to register new basic blocks in the loop. More...
 
DominatorTreeDT
 Hold a pointer to Dominator Tree to register new basic blocks in the loop. More...
 
IRBuilderBuilder
 Hold a reference to the IRBuilder used to generate output IR code. More...
 
VectorizerValueMapValueMap
 Hold a reference to the Value state information used when generating the Values of the output IR. More...
 
InnerLoopVectorizerILV
 Hold a pointer to InnerLoopVectorizer to reuse its IR generation methods. More...
 

Detailed Description

VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR.

Definition at line 200 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPTransformState()

llvm::VPTransformState::VPTransformState ( unsigned  VF,
unsigned  UF,
LoopInfo LI,
DominatorTree DT,
IRBuilder<> &  Builder,
VectorizerValueMap ValueMap,
InnerLoopVectorizer ILV 
)
inline

Definition at line 201 of file VPlan.h.

Member Data Documentation

◆ Builder

IRBuilder& llvm::VPTransformState::Builder

Hold a reference to the IRBuilder used to generate output IR code.

Definition at line 244 of file VPlan.h.

Referenced by AddRuntimeUnrollDisableMetaData(), llvm::InnerLoopVectorizer::createBlockInMask(), llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().

◆ CFG

struct llvm::VPTransformState::CFGState llvm::VPTransformState::CFG

◆ DT

DominatorTree* llvm::VPTransformState::DT

Hold a pointer to Dominator Tree to register new basic blocks in the loop.

Definition at line 241 of file VPlan.h.

Referenced by llvm::VPlan::execute().

◆ ILV

InnerLoopVectorizer* llvm::VPTransformState::ILV

Hold a pointer to InnerLoopVectorizer to reuse its IR generation methods.

Definition at line 251 of file VPlan.h.

Referenced by AddRuntimeUnrollDisableMetaData(), and llvm::InnerLoopVectorizer::createBlockInMask().

◆ Instance

Optional<VPIteration> llvm::VPTransformState::Instance

Hold the indices to generate specific scalar instructions.

Null indicates that all instances are to be generated, using either scalar or vector instructions.

Definition at line 214 of file VPlan.h.

Referenced by AddRuntimeUnrollDisableMetaData(), llvm::InnerLoopVectorizer::createBlockInMask(), llvm::VPBasicBlock::execute(), and llvm::VPRegionBlock::execute().

◆ LI

LoopInfo* llvm::VPTransformState::LI

Hold a pointer to LoopInfo to register new basic blocks in the loop.

Definition at line 238 of file VPlan.h.

Referenced by llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().

◆ UF

unsigned llvm::VPTransformState::UF

◆ ValueMap

VectorizerValueMap& llvm::VPTransformState::ValueMap

Hold a reference to the Value state information used when generating the Values of the output IR.

Definition at line 248 of file VPlan.h.

Referenced by AddRuntimeUnrollDisableMetaData(), and llvm::InnerLoopVectorizer::createBlockInMask().

◆ VF

unsigned llvm::VPTransformState::VF

The chosen Vectorization and Unroll Factors of the loop being vectorized.

Definition at line 208 of file VPlan.h.

Referenced by AddRuntimeUnrollDisableMetaData(), llvm::InnerLoopVectorizer::createBlockInMask(), and llvm::VPRegionBlock::execute().


The documentation for this struct was generated from the following file: