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

References llvm::VPBasicBlock::appendRecipe(), E, llvm::VPlan::getEntry(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::VPlan::getOrAddExternalDef(), and llvm::VPTransformState::Plan.

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

◆ isUniformAfterVectorization()

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

◆ onlyFirstLaneUsed()

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