LLVM
12.0.0git
|
#include "Transforms/Vectorize/VPlanValue.h"
Public Types | |
enum | { VPValueSC, VPVInstructionSC, VPVMemoryInstructionSC, VPVReductionSC, VPVReplicateSC, VPVWidenSC, VPVWidenCallSC, VPVWidenGEPSC, 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 141 of file VPlanValue.h.
Definition at line 143 of file VPlanValue.h.
typedef SmallVectorImpl<VPUser *>::iterator llvm::VPValue::user_iterator |
Definition at line 140 of file VPlanValue.h.
Definition at line 142 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.
Enumerator | |
---|---|
VPValueSC | |
VPVInstructionSC | |
VPVMemoryInstructionSC | |
VPVReductionSC | |
VPVReplicateSC | |
VPVWidenSC | |
VPVWidenCallSC | |
VPVWidenGEPSC | |
VPVWidenSelectSC |
Definition at line 91 of file VPlanValue.h.
Definition at line 103 of file VPlanValue.h.
|
virtual |
|
inline |
Definition at line 122 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 173 of file VPlanValue.h.
References assert(), getDef(), and getUnderlyingValue().
|
inline |
Definition at line 121 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(), printAsOperand(), llvm::VPlanTransforms::VPInstructionsToVPRecipes(), and llvm::VPPredInstPHIRecipe::VPPredInstPHIRecipe().
Definition at line 85 of file VPlanValue.h.
References UnderlyingVal.
|
inline |
Definition at line 113 of file VPlanValue.h.
Referenced by llvm::VPInstruction::classof(), llvm::VPWidenRecipe::classof(), llvm::VPReductionRecipe::classof(), and llvm::VPReplicateRecipe::classof().
|
inline |
Returns true if the value has more than one unique user.
Definition at line 155 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 1020 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::VPBlendRecipe::print(), llvm::VPReductionRecipe::print(), llvm::VPReplicateRecipe::print(), llvm::VPWidenMemoryInstructionRecipe::print(), and llvm::VPWidenCanonicalIVRecipe::print().
|
inline |
Remove a single User
from the list of users.
Definition at line 125 of file VPlanValue.h.
References llvm::erase_if(), llvm::Other, and Users.
void VPValue::replaceAllUsesWith | ( | VPValue * | New | ) |
Definition at line 1005 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 145 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 146 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 147 of file VPlanValue.h.
References Users.
Referenced by llvm::VPlanSlp::buildGraph(), hasMoreThanOneUniqueUser(), and users().
|
inline |
Definition at line 148 of file VPlanValue.h.
References Users.
|
inline |
Definition at line 149 of file VPlanValue.h.
References user_begin(), and user_end().
|
inline |
Definition at line 150 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.
|
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().