LLVM 20.0.0git
|
Functions | |
bool | onlyFirstLaneUsed (const VPValue *Def) |
Returns true if only the first lane of Def is used. | |
bool | onlyFirstPartUsed (const VPValue *Def) |
Returns true if only the first part of Def is used. | |
VPValue * | getOrCreateVPValueForSCEVExpr (VPlan &Plan, const SCEV *Expr, ScalarEvolution &SE) |
Get or create a VPValue that corresponds to the expansion of Expr . | |
bool | isUniformAfterVectorization (const VPValue *VPV) |
Returns true if VPV is uniform after vectorization. | |
bool | isHeaderMask (const VPValue *V, VPlan &Plan) |
Return true if V is a header mask in Plan . | |
VPValue * llvm::vputils::getOrCreateVPValueForSCEVExpr | ( | VPlan & | Plan, |
const SCEV * | Expr, | ||
ScalarEvolution & | SE | ||
) |
Get or create a VPValue that corresponds to the expansion of Expr
.
If Expr
is a SCEVConstant or SCEVUnknown, return a VPValue wrapping the live-in value. Otherwise return a VPExpandSCEVRecipe to expand Expr
. If Plan's
pre-header already contains a recipe expanding Expr
, return it. If not, create a new one.
Definition at line 1610 of file VPlan.cpp.
References llvm::VPlan::addSCEVExpansion(), llvm::VPBasicBlock::appendRecipe(), llvm::VPValue::getDefiningRecipe(), llvm::VPlan::getOrAddLiveIn(), llvm::VPlan::getPreheader(), llvm::VPlan::getSCEVExpansion(), and llvm::VPTransformState::Plan.
Referenced by llvm::VPlan::createInitialVPlan(), createWidenInductionRecipes(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
Return true if V
is a header mask in Plan
.
Definition at line 1627 of file VPlan.cpp.
References A, B, llvm::VPlan::getOrCreateBackedgeTakenCount(), llvm::VPlan::getTripCount(), llvm::VPlanPatternMatch::m_ActiveLaneMask(), llvm::VPlanPatternMatch::m_CanonicalIV(), llvm::VPlanPatternMatch::m_ScalarIVSteps(), llvm::PatternMatch::m_SpecificInt(), llvm::VPlanPatternMatch::m_VPValue(), llvm::PatternMatch::match(), and llvm::VPTransformState::Plan.
Referenced by collectAllHeaderMasks().
Returns true if VPV
is uniform after vectorization.
Definition at line 3810 of file VPlan.h.
References llvm::all_of(), assert(), GEP, llvm::VPValue::getDefiningRecipe(), llvm::VPValue::isDefinedOutsideVectorRegions(), and isUniformAfterVectorization().
Referenced by llvm::VPReplicateRecipe::execute(), llvm::VPLiveOut::fixPhi(), llvm::VPTransformState::get(), isUniformAfterVectorization(), and llvm::InnerLoopVectorizer::scalarizeInstruction().
Returns true if only the first lane of Def
is used.
Definition at line 1600 of file VPlan.cpp.
References llvm::all_of().
Referenced by llvm::VPInstruction::execute(), llvm::VPBlendRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPTransformState::get(), llvm::VPInstruction::onlyFirstLaneUsed(), llvm::VPWidenPointerInductionRecipe::onlyScalarsGenerated(), and removeRedundantCanonicalIVs().
Returns true if only the first part of Def
is used.
Definition at line 1605 of file VPlan.cpp.
References llvm::all_of().
Referenced by llvm::VPInstruction::execute(), and llvm::VPInstruction::onlyFirstPartUsed().