LLVM 22.0.0git
|
#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. | |
VPValue * | llvm::vputils::getOrCreateVPValueForSCEVExpr (VPlan &Plan, const SCEV *Expr) |
Get or create a VPValue that corresponds to the expansion of Expr . | |
const SCEV * | llvm::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. | |
VPBasicBlock * | llvm::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. |