LLVM  15.0.0git
Functions
llvm::vputils Namespace Reference

Functions

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

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

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

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

◆ onlyFirstLaneUsed()

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