LLVM 22.0.0git
VPlanUtils.h File Reference
#include "VPlan.h"

Go to the source code of this file.

Classes

class  llvm::VPBlockUtils
 Class that provides utilities for VPBlockBases in VPlan. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::vputils

Functions

bool llvm::vputils::onlyFirstLaneUsed (const VPValue *Def)
 Returns true if only the first lane of Def is used.
bool llvm::vputils::onlyFirstPartUsed (const VPValue *Def)
 Returns true if only the first part of Def is used.
bool llvm::vputils::onlyScalarValuesUsed (const VPValue *Def)
 Returns true if only scalar values of Def are used by all users.
VPValuellvm::vputils::getOrCreateVPValueForSCEVExpr (VPlan &Plan, const SCEV *Expr)
 Get or create a VPValue that corresponds to the expansion of Expr.
const SCEVllvm::vputils::getSCEVExprForVPValue (VPValue *V, ScalarEvolution &SE)
 Return the SCEV expression for V.
bool llvm::vputils::isSingleScalar (const VPValue *VPV)
 Returns true if VPV is a single scalar, either because it produces the same value for all lanes or only has its first lane used.
bool llvm::vputils::isHeaderMask (const VPValue *V, VPlan &Plan)
 Return true if V is a header mask in Plan.
bool llvm::vputils::isUniformAcrossVFsAndUFs (VPValue *V)
 Checks if V is uniform across all VF lanes and UF parts.
VPBasicBlockllvm::vputils::getFirstLoopHeader (VPlan &Plan, VPDominatorTree &VPDT)
 Returns the header block of the first, top-level loop, or null if none exist.
std::optional< VPValue * > llvm::vputils::getRecipesForUncountableExit (VPlan &Plan, SmallVectorImpl< VPRecipeBase * > &Recipes, SmallVectorImpl< VPRecipeBase * > &GEPs)
 Returns the VPValue representing the uncountable exit comparison used by AnyOf if the recipes it depends on can be traced back to live-ins and the addresses (in GEP/PtrAdd form) of any (non-masked) load used in generating the values for the comparison.