LLVM
15.0.0git
|
#include "Transforms/Vectorize/VPlanValue.h"
Public Types | |
enum | { VPValueSC, VPVInstructionSC, VPVMemoryInstructionSC, VPVReductionSC, VPVReplicateSC, VPVWidenSC, VPVWidenCallSC, VPVWidenCanonicalIVSC, VPVWidenGEPSC, VPVWidenSelectSC, VPVBlendSC, VPVCanonicalIVPHISC, VPVFirstOrderRecurrencePHISC, VPVWidenPHISC, VPVWidenIntOrFpInductionSC, VPVWidenPointerInductionSC, VPVPredInstPHI, VPVReductionPHISC } |
An enumeration for keeping track of the concrete subclass of VPValue that are actually instantiated. More... | |
typedef SmallVectorImpl< VPUser * >::iterator | user_iterator |
typedef SmallVectorImpl< VPUser * >::const_iterator | const_user_iterator |
typedef iterator_range< user_iterator > | user_range |
typedef iterator_range< const_user_iterator > | const_user_range |
Protected Member Functions | |
VPValue (const unsigned char SC, Value *UV=nullptr, VPDef *Def=nullptr) | |
void | setUnderlyingValue (Value *Val) |
Protected Attributes | |
Value * | UnderlyingVal |
VPDef * | Def |
Pointer to the VPDef that defines this VPValue. More... | |
Friends | |
class | VPBuilder |
class | VPDef |
class | VPInstruction |
struct | VPlanTransforms |
class | VPBasicBlock |
class | VPInterleavedAccessInfo |
class | VPSlotTracker |
class | VPRecipeBase |
class | VPWidenMemoryInstructionRecipe |
Definition at line 44 of file VPlanValue.h.
Definition at line 154 of file VPlanValue.h.
Definition at line 156 of file VPlanValue.h.
typedef SmallVectorImpl<VPUser *>::iterator llvm::VPValue::user_iterator |
Definition at line 153 of file VPlanValue.h.
Definition at line 155 of file VPlanValue.h.
anonymous enum |
An enumeration for keeping track of the concrete subclass of VPValue that are actually instantiated.
Values of this enumeration are kept in the SubclassID field of the VPValue objects. They are used for concrete type identification.
Definition at line 91 of file VPlanValue.h.
Definition at line 114 of file VPlanValue.h.
|
virtual |
|
inline |
Definition at line 135 of file VPlanValue.h.
References Users.
Referenced by llvm::VPUser::addOperand().
void VPValue::dump | ( | ) | const |
Dump the value to stderr (for debugging).
Definition at line 96 of file VPlan.cpp.
References llvm::dbgs(), Def, llvm::VPRecipeBase::getParent(), llvm::VPBlockBase::getPlan(), and print().
|
inline |
Definition at line 181 of file VPlanValue.h.
References Def.
Referenced by llvm::VPHeaderPHIRecipe::getBackedgeRecipe(), getLiveInIRValue(), llvm::vputils::getOrCreateVPValueForSCEVExpr(), llvm::VPWidenCanonicalIVRecipe::getScalarType(), and llvm::VPlan::isUniformAfterVectorization().
Definition at line 182 of file VPlanValue.h.
References Def.
|
inline |
Returns the underlying IR value, if this VPValue is defined outside the scope of VPlan.
Returns nullptr if the VPValue is defined by a VPDef inside a VPlan.
Definition at line 187 of file VPlanValue.h.
References assert(), getDef(), and getUnderlyingValue().
Referenced by llvm::VPReductionPHIRecipe::execute(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), and llvm::VPCanonicalIVPHIRecipe::getScalarType().
Definition at line 192 of file VPlanValue.h.
References assert(), getDef(), and getUnderlyingValue().
|
inline |
Definition at line 134 of file VPlanValue.h.
References Users.
Referenced by hasMoreThanOneUniqueUser().
|
inline |
Return the underlying Value attached to this VPValue.
Definition at line 84 of file VPlanValue.h.
References UnderlyingVal.
Referenced by llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), llvm::InnerLoopVectorizer::fixReduction(), getLiveInIRValue(), llvm::VPWidenIntOrFpInductionRecipe::getTruncInst(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
Definition at line 85 of file VPlanValue.h.
References UnderlyingVal.
|
inline |
Definition at line 124 of file VPlanValue.h.
Referenced by llvm::VPInstruction::classof(), llvm::VPWidenRecipe::classof(), llvm::VPHeaderPHIRecipe::classof(), llvm::VPWidenPointerInductionRecipe::classof(), llvm::VPWidenPHIRecipe::classof(), llvm::VPFirstOrderRecurrencePHIRecipe::classof(), llvm::VPReductionPHIRecipe::classof(), llvm::VPReductionRecipe::classof(), llvm::VPReplicateRecipe::classof(), and llvm::VPCanonicalIVPHIRecipe::classof().
|
inline |
Returns true if the value has more than one unique user.
Definition at line 168 of file VPlanValue.h.
References getNumUsers(), user_begin(), and user_end().
void VPValue::print | ( | raw_ostream & | OS, |
VPSlotTracker & | Tracker | ||
) | const |
Definition at line 89 of file VPlan.cpp.
References Def, and printAsOperand().
Referenced by dump(), llvm::VPlanPrinter::dump(), and llvm::operator<<().
void VPValue::printAsOperand | ( | raw_ostream & | OS, |
VPSlotTracker & | Tracker | ||
) | const |
Definition at line 1727 of file VPlan.cpp.
References llvm::VPSlotTracker::getSlot().
Referenced by print().
|
inline |
Remove a single User
from the list of users.
Definition at line 138 of file VPlanValue.h.
References llvm::erase_if(), Other, and Users.
void VPValue::replaceAllUsesWith | ( | VPValue * | New | ) |
Definition at line 1711 of file VPlan.cpp.
References E, llvm::User::getNumOperands(), llvm::User::getOperand(), I, llvm::User::setOperand(), and Users.
Referenced by llvm::VPlanTransforms::removeRedundantCanonicalIVs(), llvm::VPlanTransforms::removeRedundantInductionCasts(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
|
inlineprotected |
Definition at line 77 of file VPlanValue.h.
References assert(), and UnderlyingVal.
Referenced by llvm::VPBuilder::createNaryOp(), and llvm::VPInstruction::setUnderlyingInstr().
|
inline |
Definition at line 158 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 159 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 160 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 161 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 162 of file VPlanValue.h.
References user_begin(), and user_end().
Referenced by llvm::InnerLoopVectorizer::clearReductionWrapFlags(), llvm::VPlanTransforms::mergeReplicateRegions(), llvm::VPBlendRecipe::onlyFirstLaneUsed(), llvm::VPlanTransforms::removeRedundantCanonicalIVs(), and llvm::VPlanTransforms::removeRedundantInductionCasts().
|
inline |
Definition at line 163 of file VPlanValue.h.
References user_begin(), and user_end().
|
friend |
Definition at line 49 of file VPlanValue.h.
|
friend |
Definition at line 45 of file VPlanValue.h.
|
friend |
Definition at line 46 of file VPlanValue.h.
|
friend |
Definition at line 47 of file VPlanValue.h.
Referenced by llvm::VPInstruction::clone().
|
friend |
Definition at line 50 of file VPlanValue.h.
|
friend |
Definition at line 48 of file VPlanValue.h.
|
friend |
Definition at line 52 of file VPlanValue.h.
|
friend |
Definition at line 51 of file VPlanValue.h.
|
friend |
Definition at line 53 of file VPlanValue.h.
|
protected |
|
protected |
Definition at line 61 of file VPlanValue.h.
Referenced by getUnderlyingValue(), and setUnderlyingValue().