|
LLVM 24.0.0git
|
Lightweight SCEV-to-VPlan expander. More...
#include "Transforms/Vectorize/VPlanUtils.h"
Public Member Functions | |
| VPSCEVExpander (VPBuilder &Builder, ScalarEvolution &SE, DebugLoc DL, const Loop *HoistOutOf=nullptr) | |
| VPValue * | expand (const SCEV *S) |
Expand S into recipes and live-ins using the builder. | |
| VPValue * | expand (VPExpandSCEVRecipe &R) |
Expand the expression of R, or return R if it must be expanded in IR. | |
Lightweight SCEV-to-VPlan expander.
Converts SCEV expressions into VPInstructions and live-ins. Canonical IVs and non-affine SCEVAddRecExprs are wrapped in a VPExpandSCEVRecipe to be expanded to IR later. Expansions are reused across calls to expand(), so the builder's insert point must only move to positions dominated by all earlier insert points.
Definition at line 276 of file VPlanUtils.h.
|
inline |
Definition at line 303 of file VPlanUtils.h.
Expand S into recipes and live-ins using the builder.
Definition at line 974 of file VPlanUtils.cpp.
References assert(), dominatesInsertPoint(), and llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
Referenced by llvm::VPlanTransforms::addMinimumIterationCheck(), llvm::VPlanTransforms::convertToStridedAccesses(), createDiffRuntimeChecks(), createRuntimeChecks(), expand(), llvm::VPlanTransforms::expandSCEVsToVPInstructions(), and optimizeLatchExitIVUserViaSCEV().
|
inline |
Expand the expression of R, or return R if it must be expanded in IR.
Definition at line 312 of file VPlanUtils.h.
References expand().