LLVM
13.0.0git
|
#include "Transforms/Vectorize/VPlanValue.h"
Public Types | |
enum | { VPValueSC, VPVBlendSC, VPVInstructionSC, VPVMemoryInstructionSC, VPVPredInstPHI, VPVReductionSC, VPVReplicateSC, VPVWidenSC, VPVWidenCallSC, VPVWidenGEPSC, VPVWidenIntOrFpIndcutionSC, VPVWidenPHISC, VPVWidenSelectSC } |
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 145 of file VPlanValue.h.
Definition at line 147 of file VPlanValue.h.
typedef SmallVectorImpl<VPUser *>::iterator llvm::VPValue::user_iterator |
Definition at line 144 of file VPlanValue.h.
Definition at line 146 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 107 of file VPlanValue.h.
|
virtual |
|
inline |
Definition at line 126 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 80 of file VPlan.cpp.
References llvm::dbgs(), Def, llvm::VPRecipeBase::getParent(), llvm::VPBlockBase::getPlan(), and print().
|
inline |
|
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 177 of file VPlanValue.h.
References assert(), getDef(), and getUnderlyingValue().
Referenced by llvm::InnerLoopVectorizer::widenPHIInstruction().
|
inline |
Definition at line 125 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlan::execute(), hasMoreThanOneUniqueUser(), and replaceAllUsesWith().
|
inline |
Return the underlying Value attached to this VPValue.
Definition at line 84 of file VPlanValue.h.
References UnderlyingVal.
Referenced by llvm::VPBasicBlock::execute(), getLiveInIRValue(), llvm::VPWidenPHIRecipe::print(), printAsOperand(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
Definition at line 85 of file VPlanValue.h.
References UnderlyingVal.
|
inline |
Definition at line 117 of file VPlanValue.h.
Referenced by llvm::VPInstruction::classof(), llvm::VPWidenRecipe::classof(), llvm::VPWidenPHIRecipe::classof(), llvm::VPReductionRecipe::classof(), and llvm::VPReplicateRecipe::classof().
|
inline |
Returns true if the value has more than one unique user.
Definition at line 159 of file VPlanValue.h.
References getNumUsers(), user_begin(), and user_end().
void VPValue::print | ( | raw_ostream & | OS, |
VPSlotTracker & | Tracker | ||
) | const |
Definition at line 73 of file VPlan.cpp.
References Def, and printAsOperand().
Referenced by dump(), and llvm::operator<<().
void VPValue::printAsOperand | ( | raw_ostream & | OS, |
VPSlotTracker & | Tracker | ||
) | const |
Definition at line 1060 of file VPlan.cpp.
References llvm::VPSlotTracker::getSlot(), and getUnderlyingValue().
Referenced by print(), llvm::VPInstruction::print(), llvm::VPWidenRecipe::print(), llvm::VPWidenCallRecipe::print(), llvm::VPWidenSelectRecipe::print(), llvm::VPWidenGEPRecipe::print(), llvm::VPWidenIntOrFpInductionRecipe::print(), llvm::VPBlendRecipe::print(), llvm::VPReductionRecipe::print(), llvm::VPReplicateRecipe::print(), llvm::VPPredInstPHIRecipe::print(), llvm::VPWidenMemoryInstructionRecipe::print(), and llvm::VPWidenCanonicalIVRecipe::print().
|
inline |
Remove a single User
from the list of users.
Definition at line 129 of file VPlanValue.h.
References llvm::erase_if(), Other, and Users.
void VPValue::replaceAllUsesWith | ( | VPValue * | New | ) |
Definition at line 1045 of file VPlan.cpp.
References E, llvm::User::getNumOperands(), getNumUsers(), llvm::User::getOperand(), I, and llvm::User::setOperand().
Referenced by 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 149 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 150 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 151 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 152 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 153 of file VPlanValue.h.
References user_begin(), and user_end().
|
inline |
Definition at line 154 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().