LLVM 17.0.0git
llvm::vputils Namespace Reference


bool onlyFirstLaneUsed (VPValue *Def)
 Returns true if only the first lane of Def is used.
VPValuegetOrCreateVPValueForSCEVExpr (VPlan &Plan, const SCEV *Expr, ScalarEvolution &SE)
 Get or create a VPValue that corresponds to the expansion of Expr.
bool isUniformAfterVectorization (VPValue *VPV)
 Returns true if VPV is uniform after vectorization.

Function Documentation

◆ getOrCreateVPValueForSCEVExpr()

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 1141 of file VPlan.cpp.

References llvm::VPlan::addSCEVExpansion(), llvm::VPBasicBlock::appendRecipe(), E, llvm::VPValue::getDefiningRecipe(), llvm::VPlan::getPreheader(), llvm::VPlan::getSCEVExpansion(), llvm::VPlan::getVPValueOrAddLiveIn(), and llvm::VPTransformState::Plan.

Referenced by llvm::VPlan::createInitialVPlan(), createWidenInductionRecipes(), llvm::VPlanTransforms::optimizeInductions(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().

◆ isUniformAfterVectorization()

bool llvm::vputils::isUniformAfterVectorization ( VPValue VPV)

◆ onlyFirstLaneUsed()

bool llvm::vputils::onlyFirstLaneUsed ( VPValue Def)