|
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 VPValue * | cloneForLane (VPlan &Plan, VPBuilder &Builder, Type *IdxTy, VPRecipeWithIRFlags *DefR, VPLane Lane, const DenseMap< VPValue *, SmallVector< VPValue * > > &Def2LaneDefs) |
Create a single-scalar clone of DefR (must be a VPReplicateRecipe or VPInstruction) for lane Lane. | |
This file implements explicit unrolling for VPlans.
Definition in file VPlanUnroll.cpp.
|
static |
Create a single-scalar clone of DefR (must be a VPReplicateRecipe or VPInstruction) for lane Lane.
Use Def2LaneDefs to look up scalar definitions for operands of \DefR.
Definition at line 468 of file VPlanUnroll.cpp.
References assert(), llvm::cast(), llvm::VPRecipeWithIRFlags::clone(), llvm::dyn_cast(), llvm::enumerate(), llvm::VPInstruction::ExtractLastElement, llvm::VPlan::getConstantInt(), llvm::VPLane::getKind(), llvm::VPLane::getKnownLane(), llvm::isa(), llvm::vputils::isSingleScalar(), llvm::VPlanPatternMatch::m_BuildVector(), llvm::VPlanPatternMatch::m_VPInstruction(), llvm::VPlanPatternMatch::m_VPValue(), llvm::PatternMatch::match(), llvm::VPUser::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::VPLane::ScalableLast.
Referenced by llvm::VPlanTransforms::replicateByVF().