LLVM
8.0.1
|
VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More...
#include "Transforms/Vectorize/VPlan.h"
Classes | |
struct | CFGState |
Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks. More... | |
struct | DataState |
Public Member Functions | |
VPTransformState (unsigned VF, unsigned UF, LoopInfo *LI, DominatorTree *DT, IRBuilder<> &Builder, VectorizerValueMap &ValueMap, InnerLoopVectorizer *ILV, VPCallback &Callback) | |
Value * | get (VPValue *Def, unsigned Part) |
Get the generated Value for a given VPValue and a given Part. More... | |
void | set (VPValue *Def, Value *V, unsigned Part) |
Set the generated Value for a given VPValue and a given Part. More... | |
Public Attributes | |
unsigned | VF |
The chosen Vectorization and Unroll Factors of the loop being vectorized. More... | |
unsigned | UF |
Optional< VPIteration > | Instance |
Hold the indices to generate specific scalar instructions. More... | |
struct llvm::VPTransformState::DataState | Data |
struct llvm::VPTransformState::CFGState | CFG |
LoopInfo * | LI |
Hold a pointer to LoopInfo to register new basic blocks in the loop. More... | |
DominatorTree * | DT |
Hold a pointer to Dominator Tree to register new basic blocks in the loop. More... | |
IRBuilder & | Builder |
Hold a reference to the IRBuilder used to generate output IR code. More... | |
VectorizerValueMap & | ValueMap |
Hold a reference to the Value state information used when generating the Values of the output IR. More... | |
VPValue2ValueTy | VPValue2Value |
Hold a reference to a mapping between VPValues in VPlan and original Values they correspond to. More... | |
Value * | TripCount = nullptr |
Hold the trip count of the scalar loop. More... | |
InnerLoopVectorizer * | ILV |
Hold a pointer to InnerLoopVectorizer to reuse its IR generation methods. More... | |
VPCallback & | Callback |
VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR.
|
inline |
Get the generated Value for a given VPValue and a given Part.
Note that as some Defs are still created by ILV and managed in its ValueMap, this method will delegate the call to ILV in such cases in order to provide callers a consistent API.
Definition at line 264 of file VPlan.h.
References llvm::Data.
Referenced by llvm::VPRecipeBase::eraseFromParent(), llvm::VPBlendRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), and llvm::VPWidenMemoryInstructionRecipe::execute().
Set the generated Value for a given VPValue and a given Part.
Definition at line 273 of file VPlan.h.
References llvm::Data, and llvm::tgtok::Def.
Referenced by llvm::VPRecipeBase::eraseFromParent().
IRBuilder& llvm::VPTransformState::Builder |
Hold a reference to the IRBuilder used to generate output IR code.
Definition at line 313 of file VPlan.h.
Referenced by llvm::VPRecipeBase::eraseFromParent(), llvm::VPBlendRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().
VPCallback& llvm::VPTransformState::Callback |
Definition at line 329 of file VPlan.h.
Referenced by llvm::VPBasicBlock::execute().
struct llvm::VPTransformState::CFGState llvm::VPTransformState::CFG |
Referenced by llvm::VPBranchOnMaskRecipe::execute(), llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().
struct llvm::VPTransformState::DataState llvm::VPTransformState::Data |
DominatorTree* llvm::VPTransformState::DT |
Hold a pointer to Dominator Tree to register new basic blocks in the loop.
Definition at line 310 of file VPlan.h.
Referenced by llvm::VPlan::execute().
InnerLoopVectorizer* llvm::VPTransformState::ILV |
Hold a pointer to InnerLoopVectorizer to reuse its IR generation methods.
Definition at line 327 of file VPlan.h.
Referenced by llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPWidenPHIRecipe::execute(), llvm::VPBlendRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReplicateRecipe::execute(), and llvm::VPWidenMemoryInstructionRecipe::execute().
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 248 of file VPlan.h.
Referenced by llvm::VPInstruction::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPBasicBlock::execute(), and llvm::VPRegionBlock::execute().
LoopInfo* llvm::VPTransformState::LI |
Hold a pointer to LoopInfo to register new basic blocks in the loop.
Definition at line 307 of file VPlan.h.
Referenced by llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().
Value* llvm::VPTransformState::TripCount = nullptr |
Hold the trip count of the scalar loop.
Definition at line 324 of file VPlan.h.
Referenced by llvm::VPlan::execute().
unsigned llvm::VPTransformState::UF |
Definition at line 243 of file VPlan.h.
Referenced by llvm::VPInstruction::execute(), llvm::VPWidenPHIRecipe::execute(), llvm::VPBlendRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPWidenMemoryInstructionRecipe::execute(), and llvm::VPRegionBlock::execute().
VectorizerValueMap& llvm::VPTransformState::ValueMap |
Hold a reference to the Value state information used when generating the Values of the output IR.
Definition at line 317 of file VPlan.h.
Referenced by llvm::VPBlendRecipe::execute(), llvm::VPReplicateRecipe::execute(), and llvm::VPPredInstPHIRecipe::execute().
unsigned llvm::VPTransformState::VF |
The chosen Vectorization and Unroll Factors of the loop being vectorized.
Definition at line 242 of file VPlan.h.
Referenced by llvm::VPWidenPHIRecipe::execute(), llvm::VPReplicateRecipe::execute(), and llvm::VPRegionBlock::execute().
VPValue2ValueTy llvm::VPTransformState::VPValue2Value |
Hold a reference to a mapping between VPValues in VPlan and original Values they correspond to.
Definition at line 321 of file VPlan.h.
Referenced by llvm::VPlan::execute().