LLVM: llvm::VPUser Class Reference (original) (raw)
This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs. More...
#include "[Transforms/Vectorize/VPlanValue.h](VPlanValue%5F8h%5Fsource.html)"
| Friends | |
|---|---|
| class | VPPhiAccessors |
| Grant access to removeOperand for VPPhiAccessors, the only supported user. |
This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs.
Definition at line 207 of file VPlanValue.h.
◆ const_operand_iterator
◆ const_operand_range
◆ operand_iterator
◆ operand_range
◆ VPUser() [1/3]
◆ VPUser() [2/3]
| llvm::VPUser::VPUser ( ) | delete |
|---|
◆ VPUser() [3/3]
| virtual llvm::VPUser::~VPUser ( ) | inlinevirtual |
|---|
◆ addOperand()
| void llvm::VPUser::addOperand ( VPValue * Operand) | inline |
|---|
◆ getNumOperands()
| unsigned llvm::VPUser::getNumOperands ( ) const | inline |
|---|
Definition at line 245 of file VPlanValue.h.
Referenced by llvm::VPActiveLaneMaskPHIRecipe::clone(), llvm::VPReplicateRecipe::computeCost(), llvm::VPIRInstruction::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPIRInstruction::extractLastLaneOfLastPartOfFirstOperand(), llvm::VPWidenCallRecipe::getCalledScalarFunction(), llvm::VPReductionRecipe::getCondOp(), llvm::VPWidenIntOrFpInductionRecipe::getLastUnrolledPartOperand(), llvm::VPHistogramRecipe::getMask(), llvm::VPInterleaveBase::getMask(), llvm::VPReplicateRecipe::getMask(), llvm::VPWidenMemoryRecipe::getMask(), llvm::VPPhiAccessors::getNumIncoming(), llvm::VPBlendRecipe::getNumIncomingValues(), llvm::VPInterleaveEVLRecipe::getNumStoreOperands(), llvm::VPInterleaveRecipe::getNumStoreOperands(), llvm::VPExpressionRecipe::getOperandOfResultType(), llvm::VPWidenIntOrFpInductionRecipe::getSplatVFValue(), llvm::VPHeaderPHIRecipe::getStartValue(), llvm::VPHeaderPHIRecipe::getStartValue(), llvm::VPBlendRecipe::isNormalized(), llvm::VPExpressionRecipe::printRecipe(), llvm::VPIRPhi::printRecipe(), llvm::VPReplicateRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenPointerInductionRecipe::printRecipe(), replaceUsesOfWith(), llvm::VPInstruction::usesFirstLaneOnly(), llvm::VPVectorEndPointerRecipe::usesFirstPartOnly(), llvm::VPVectorPointerRecipe::usesFirstPartOnly(), and llvm::VPInstruction::VPInstruction().
◆ getOperand()
Definition at line 246 of file VPlanValue.h.
Referenced by canNarrowLoad(), llvm::VPActiveLaneMaskPHIRecipe::clone(), llvm::VPBranchOnMaskRecipe::clone(), llvm::VPCanonicalIVPHIRecipe::clone(), llvm::VPDerivedIVRecipe::clone(), llvm::VPFirstOrderRecurrencePHIRecipe::clone(), llvm::VPPredInstPHIRecipe::clone(), llvm::VPReductionPHIRecipe::clone(), llvm::VPScalarIVStepsRecipe::clone(), llvm::VPVectorEndPointerRecipe::clone(), llvm::VPVectorPointerRecipe::clone(), llvm::VPWidenCanonicalIVRecipe::clone(), llvm::VPWidenCastRecipe::clone(), llvm::VPWidenPHIRecipe::clone(), llvm::VPWidenPointerInductionRecipe::clone(), llvm::VPExpressionRecipe::computeCost(), llvm::VPHistogramRecipe::computeCost(), llvm::VPInstruction::computeCost(), llvm::VPReplicateRecipe::computeCost(), llvm::VPWidenCastRecipe::computeCost(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), createWidenInductionRecipes(), llvm::VPActiveLaneMaskPHIRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPDerivedIVRecipe::execute(), llvm::VPHistogramRecipe::execute(), llvm::VPInstructionWithType::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPVectorEndPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenPHIRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), llvm::VPIRInstruction::extractLastLaneOfLastPartOfFirstOperand(), fixReductionScalarResumeWhenVectorizingEpilog(), llvm::VPInterleaveBase::getAddr(), llvm::VPWidenMemoryRecipe::getAddr(), llvm::VPHeaderPHIRecipe::getBackedgeValue(), llvm::VPWidenCallRecipe::getCalledScalarFunction(), llvm::VPReductionRecipe::getChainOp(), llvm::VPWidenSelectRecipe::getCond(), llvm::VPReductionRecipe::getCondOp(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), llvm::VPInterleaveEVLRecipe::getEVL(), llvm::VPReductionEVLRecipe::getEVL(), llvm::VPWidenLoadEVLRecipe::getEVL(), llvm::VPWidenStoreEVLRecipe::getEVL(), llvm::VPBlendRecipe::getIncomingValue(), llvm::VPPhiAccessors::getIncomingValue(), llvm::VPWidenIntOrFpInductionRecipe::getLastUnrolledPartOperand(), llvm::VPBlendRecipe::getMask(), llvm::VPHistogramRecipe::getMask(), llvm::VPInterleaveBase::getMask(), llvm::VPReplicateRecipe::getMask(), llvm::VPWidenMemoryRecipe::getMask(), llvm::VPExpressionRecipe::getOperandOfResultType(), llvm::VPWidenIntOrFpInductionRecipe::getSplatVFValue(), llvm::VPDerivedIVRecipe::getStartValue(), llvm::VPHeaderPHIRecipe::getStartValue(), llvm::VPHeaderPHIRecipe::getStartValue(), getStartValueFromReductionResult(), llvm::VPDerivedIVRecipe::getStepValue(), llvm::VPScalarIVStepsRecipe::getStepValue(), llvm::VPWidenInductionRecipe::getStepValue(), llvm::VPWidenInductionRecipe::getStepValue(), llvm::VPWidenStoreEVLRecipe::getStoredValue(), llvm::VPWidenStoreRecipe::getStoredValue(), llvm::VPUnrollPartAccessor< 1 >::getUnrollPart(), llvm::VPReductionRecipe::getVecOp(), llvm::VPVectorEndPointerRecipe::getVFValue(), llvm::VPVectorEndPointerRecipe::getVFValue(), llvm::VPWidenInductionRecipe::getVFValue(), llvm::VPWidenInductionRecipe::getVFValue(), llvm::VPlanTransforms::handleMultiUseReductions(), llvm::VPlanTransforms::handleUncountableEarlyExit(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), llvm::VPDerivedIVRecipe::printRecipe(), llvm::VPExpressionRecipe::printRecipe(), llvm::VPHistogramRecipe::printRecipe(), llvm::VPInterleaveEVLRecipe::printRecipe(), llvm::VPInterleaveRecipe::printRecipe(), llvm::VPWidenPointerInductionRecipe::printRecipe(), llvm::VPWidenSelectRecipe::printRecipe(), removeCommonBlendMask(), replaceUsesOfWith(), scalarizeVPWidenPointerInduction(), simplifyRecipe(), llvm::VPRecipeBuilder::tryToCreateWidenRecipe(), tryToMatchAndCreateMulAccumulateReduction(), and llvm::VPInstruction::usesFirstLaneOnly().
◆ op_begin() [1/2]
| operand_iterator llvm::VPUser::op_begin ( ) | inline |
|---|
◆ op_begin() [2/2]
| const_operand_iterator llvm::VPUser::op_begin ( ) const | inline |
|---|
◆ op_end() [1/2]
| operand_iterator llvm::VPUser::op_end ( ) | inline |
|---|
◆ op_end() [2/2]
| const_operand_iterator llvm::VPUser::op_end ( ) const | inline |
|---|
◆ operands() [1/2]
| operand_range llvm::VPUser::operands ( ) | inline |
|---|
Definition at line 275 of file VPlanValue.h.
References op_begin(), and op_end().
Referenced by llvm::VPWidenCallRecipe::args(), llvm::VPWidenCallRecipe::args(), llvm::VPBlendRecipe::clone(), llvm::VPExpressionRecipe::clone(), llvm::VPHistogramRecipe::clone(), llvm::VPInstruction::clone(), llvm::VPInstructionWithType::clone(), llvm::VPIRInstruction::clone(), llvm::VPPhi::clone(), llvm::VPReplicateRecipe::clone(), llvm::VPWidenCallRecipe::clone(), llvm::VPWidenGEPRecipe::clone(), llvm::VPWidenIntrinsicRecipe::clone(), llvm::VPWidenPHIRecipe::clone(), llvm::VPWidenRecipe::clone(), llvm::VPWidenSelectRecipe::clone(), cloneForLane(), llvm::collectEphemeralRecipesForVPlan(), llvm::VPReplicateRecipe::computeCost(), llvm::VPWidenIntrinsicRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), createReplicateRegion(), llvm::VPExpressionRecipe::decompose(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), llvm::VPIRPhi::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPRecipeBuilder::handleReplication(), hoistPreviousBeforeFORUsers(), llvm::vputils::isSingleScalar(), printOperands(), llvm::VPWidenIntrinsicRecipe::printRecipe(), scalarizeInstruction(), sinkScalarOperands(), llvm::VPBlendRecipe::usesFirstLaneOnly(), llvm::VPCanonicalIVPHIRecipe::usesFirstLaneOnly(), llvm::VPDerivedIVRecipe::usesFirstLaneOnly(), llvm::VPEVLBasedIVPHIRecipe::usesFirstLaneOnly(), llvm::VPFirstOrderRecurrencePHIRecipe::usesFirstLaneOnly(), llvm::VPInstruction::usesFirstLaneOnly(), llvm::VPInterleaveEVLRecipe::usesFirstLaneOnly(), llvm::VPInterleaveRecipe::usesFirstLaneOnly(), llvm::VPIRInstruction::usesFirstLaneOnly(), llvm::VPReductionEVLRecipe::usesFirstLaneOnly(), llvm::VPReductionPHIRecipe::usesFirstLaneOnly(), llvm::VPReplicateRecipe::usesFirstLaneOnly(), llvm::VPScalarIVStepsRecipe::usesFirstLaneOnly(), usesFirstLaneOnly(), llvm::VPVectorEndPointerRecipe::usesFirstLaneOnly(), llvm::VPVectorPointerRecipe::usesFirstLaneOnly(), llvm::VPWidenGEPRecipe::usesFirstLaneOnly(), llvm::VPWidenInductionRecipe::usesFirstLaneOnly(), llvm::VPWidenIntrinsicRecipe::usesFirstLaneOnly(), llvm::VPWidenLoadEVLRecipe::usesFirstLaneOnly(), llvm::VPWidenLoadRecipe::usesFirstLaneOnly(), llvm::VPWidenSelectRecipe::usesFirstLaneOnly(), llvm::VPWidenStoreEVLRecipe::usesFirstLaneOnly(), llvm::VPWidenStoreRecipe::usesFirstLaneOnly(), llvm::VPCanonicalIVPHIRecipe::usesFirstPartOnly(), llvm::VPInstruction::usesFirstPartOnly(), llvm::VPIRInstruction::usesFirstPartOnly(), usesFirstPartOnly(), llvm::VPVectorEndPointerRecipe::usesFirstPartOnly(), llvm::VPVectorPointerRecipe::usesFirstPartOnly(), llvm::VPBranchOnMaskRecipe::usesScalars(), llvm::VPIRInstruction::usesScalars(), llvm::VPPredInstPHIRecipe::usesScalars(), llvm::VPReplicateRecipe::usesScalars(), usesScalars(), and ~VPUser().
◆ operands() [2/2]
| const_operand_range llvm::VPUser::operands ( ) const | inline |
|---|
◆ operator=()
◆ printOperands()
Print the operands to O.
Definition at line 1420 of file VPlan.cpp.
References llvm::interleaveComma(), and operands().
Referenced by llvm::VPActiveLaneMaskPHIRecipe::printRecipe(), llvm::VPBranchOnMaskRecipe::printRecipe(), llvm::VPCanonicalIVPHIRecipe::printRecipe(), llvm::VPEVLBasedIVPHIRecipe::printRecipe(), llvm::VPFirstOrderRecurrencePHIRecipe::printRecipe(), llvm::VPInstruction::printRecipe(), llvm::VPInstructionWithType::printRecipe(), llvm::VPPredInstPHIRecipe::printRecipe(), llvm::VPReductionPHIRecipe::printRecipe(), llvm::VPReplicateRecipe::printRecipe(), llvm::VPScalarIVStepsRecipe::printRecipe(), llvm::VPVectorEndPointerRecipe::printRecipe(), llvm::VPVectorPointerRecipe::printRecipe(), llvm::VPWidenCanonicalIVRecipe::printRecipe(), llvm::VPWidenCastRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenIntOrFpInductionRecipe::printRecipe(), llvm::VPWidenLoadEVLRecipe::printRecipe(), llvm::VPWidenLoadRecipe::printRecipe(), llvm::VPWidenRecipe::printRecipe(), llvm::VPWidenStoreEVLRecipe::printRecipe(), and llvm::VPWidenStoreRecipe::printRecipe().
◆ replaceUsesOfWith()
◆ setOperand()
Definition at line 251 of file VPlanValue.h.
References I.
Referenced by createReplicateRegion(), createWidenInductionRecipes(), llvm::VPIRInstruction::extractLastLaneOfLastPartOfFirstOperand(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleMultiUseReductions(), llvm::VPlanTransforms::handleUncountableEarlyExit(), llvm::VPlanTransforms::narrowInterleaveGroups(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), replaceUsesOfWith(), llvm::VPHeaderPHIRecipe::setBackedgeValue(), llvm::VPBlendRecipe::setMask(), llvm::VPHeaderPHIRecipe::setStartValue(), and llvm::VPWidenInductionRecipe::setStepValue().
◆ swapOperands()
| void llvm::VPUser::swapOperands ( ) | inline |
|---|
◆ usesFirstLaneOnly()
| virtual bool llvm::VPUser::usesFirstLaneOnly ( const VPValue * Op) const | inlinevirtual |
|---|
Returns true if the VPUser only uses the first lane of operand [Op](namespacellvm.html#ab471937b9a227e70c7fe8bd9604014d6).
Conservatively returns false.
Reimplemented in llvm::VPBlendRecipe, llvm::VPCanonicalIVPHIRecipe, llvm::VPDerivedIVRecipe, llvm::VPEVLBasedIVPHIRecipe, llvm::VPFirstOrderRecurrencePHIRecipe, llvm::VPInstruction, llvm::VPInterleaveBase, llvm::VPInterleaveEVLRecipe, llvm::VPInterleaveRecipe, llvm::VPIRInstruction, llvm::VPReductionEVLRecipe, llvm::VPReductionPHIRecipe, llvm::VPReplicateRecipe, llvm::VPScalarIVStepsRecipe, llvm::VPVectorEndPointerRecipe, llvm::VPVectorPointerRecipe, llvm::VPWidenGEPRecipe, llvm::VPWidenInductionRecipe, llvm::VPWidenIntrinsicRecipe, llvm::VPWidenLoadEVLRecipe, llvm::VPWidenLoadRecipe, llvm::VPWidenSelectRecipe, llvm::VPWidenStoreEVLRecipe, and llvm::VPWidenStoreRecipe.
Definition at line 290 of file VPlanValue.h.
References assert(), llvm::is_contained(), and operands().
Referenced by llvm::VPWidenCallRecipe::execute(), and usesScalars().
◆ usesFirstPartOnly()
| virtual bool llvm::VPUser::usesFirstPartOnly ( const VPValue * Op) const | inlinevirtual |
|---|
◆ usesScalars()
| virtual bool llvm::VPUser::usesScalars ( const VPValue * Op) const | inlinevirtual |
|---|
◆ VPPhiAccessors
The documentation for this class was generated from the following files:
- lib/Transforms/Vectorize/VPlanValue.h
- lib/Transforms/Vectorize/VPlan.cpp