LLVM 22.0.0git
|
This file implements explicit unrolling for VPlans. More...
#include "VPRecipeBuilder.h"
#include "VPlan.h"
#include "VPlanAnalysis.h"
#include "VPlanCFG.h"
#include "VPlanHelpers.h"
#include "VPlanPatternMatch.h"
#include "VPlanTransforms.h"
#include "VPlanUtils.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Analysis/IVDescriptors.h"
#include "llvm/IR/Intrinsics.h"
Go to the source code of this file.
Functions | |
static VPReplicateRecipe * | cloneForLane (VPlan &Plan, VPBuilder &Builder, Type *IdxTy, VPReplicateRecipe *RepR, VPLane Lane, const DenseMap< VPValue *, SmallVector< VPValue * > > &Def2LaneDefs) |
Create a single-scalar clone of RepR for lane Lane . | |
This file implements explicit unrolling for VPlans.
Definition in file VPlanUnroll.cpp.
|
static |
Create a single-scalar clone of RepR
for lane Lane
.
Use Def2LaneDefs
to look up scalar definitions for operands of \RepR.
Definition at line 469 of file VPlanUnroll.cpp.
References llvm::VPBuilder::createNaryOp(), llvm::VPInstruction::ExtractLastElement, llvm::VPLane::getKind(), llvm::VPLane::getKnownLane(), llvm::VPlan::getOrAddLiveIn(), llvm::VPSingleDefRecipe::getUnderlyingInstr(), Idx, llvm::vputils::isSingleScalar(), llvm::VPlanPatternMatch::m_BuildVector(), llvm::PatternMatch::match(), llvm::VPUser::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::VPLane::ScalableLast.
Referenced by llvm::VPlanTransforms::replicateByVF().