LLVM
15.0.0git
|
Functions | |
bool | onlyFirstLaneUsed (VPValue *Def) |
Returns true if only the first lane of Def is used. More... | |
VPValue * | getOrCreateVPValueForSCEVExpr (VPlan &Plan, const SCEV *Expr, ScalarEvolution &SE) |
Get or create a VPValue that corresponds to the expansion of Expr . More... | |
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().
bool llvm::vputils::onlyFirstLaneUsed | ( | VPValue * | Def | ) |
Returns true if only the first lane of Def
is used.
Definition at line 1046 of file VPlan.cpp.
References llvm::all_of(), and llvm::tgtok::Def.
Referenced by buildScalarSteps(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPWidenPointerInductionRecipe::onlyScalarsGenerated(), and llvm::VPlanTransforms::removeRedundantCanonicalIVs().