Home
last modified time | relevance | path

Searched refs:RecurrenceDescriptor (Results 1 – 19 of 19) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DIVDescriptors.cpp32 bool RecurrenceDescriptor::areAllUsesIn(Instruction *I, in areAllUsesIn()
40 bool RecurrenceDescriptor::isIntegerRecurrenceKind(RecurKind Kind) { in isIntegerRecurrenceKind()
60 bool RecurrenceDescriptor::isFloatingPointRecurrenceKind(RecurKind Kind) { in isFloatingPointRecurrenceKind()
191 !RecurrenceDescriptor::isFMulAddIntrinsic(Exit)) in checkOrderedReduction()
213 bool RecurrenceDescriptor::AddReductionVar( in AddReductionVar()
215 RecurrenceDescriptor &RedDes, DemandedBits *DB, AssumptionCache *AC, in AddReductionVar()
598 RecurrenceDescriptor RD(RdxStart, ExitInstruction, IntermediateStore, Kind, in AddReductionVar()
627 RecurrenceDescriptor::InstDesc
628 RecurrenceDescriptor::isAnyOfPattern(Loop *Loop, PHINode *OrigPhi, in isAnyOfPattern()
662 RecurrenceDescriptor::InstDesc
[all …]
H A DTargetTransformInfo.cpp1271 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DIVDescriptors.h59 /// The RecurrenceDescriptor is used to identify recurrences variables in a
71 class RecurrenceDescriptor {
73 RecurrenceDescriptor() = default;
75 RecurrenceDescriptor(Value *Start, Instruction *Exit, StoreInst *Store, in RecurrenceDescriptor() function
166 /// RecurrenceDescriptor. If either \p DB is non-null or \p AC and \p DT are
171 FastMathFlags FuncFMF, RecurrenceDescriptor &RedDes,
175 /// Returns true if Phi is a reduction in TheLoop. The RecurrenceDescriptor
181 isReductionPHI(PHINode *Phi, Loop *TheLoop, RecurrenceDescriptor &RedDes,
H A DTargetTransformInfo.h60 class RecurrenceDescriptor; variable
1660 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc,
2162 virtual bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc,
2893 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction()
H A DTargetTransformInfoImpl.h906 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h407 const RecurrenceDescriptor &Desc);
413 const RecurrenceDescriptor &Desc,
420 Value *createTargetReduction(IRBuilderBase &B, const RecurrenceDescriptor &Desc,
426 const RecurrenceDescriptor &Desc, Value *Src,
431 const RecurrenceDescriptor &Desc, Value *Src,
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp827 RecurrenceDescriptor RedDes; in canVectorizeInstrs()
828 if (RecurrenceDescriptor::isReductionPHI(Phi, TheLoop, RedDes, DB, AC, in canVectorizeInstrs()
870 if (RecurrenceDescriptor::isFixedOrderRecurrence(Phi, TheLoop, DT)) { in canVectorizeInstrs()
1182 const RecurrenceDescriptor &RdxDesc = Reduction.second; in canVectorizeFPMath()
1189 const RecurrenceDescriptor &RdxDesc = Reduction.second; in isInvariantStoreOfReduction()
1196 const RecurrenceDescriptor &RdxDesc = Reduction.second; in isInvariantAddressOfReduction()
H A DLoopVectorize.cpp707 SmallMapVector<const RecurrenceDescriptor *, PHINode *, 4>
1103 bool useOrderedReductions(const RecurrenceDescriptor &RdxDesc) const { in useOrderedReductions()
1337 const RecurrenceDescriptor &RdxDesc = Reduction.second; in canVectorizeReductions()
2898 if (RecurrenceDescriptor::isFMulAddIntrinsic(CI)) in getVectorCallCost()
4763 const RecurrenceDescriptor &RdxDesc = PhiDescriptorPair.second; in getSmallestAndWidestTypes()
4803 const RecurrenceDescriptor &RdxDesc = in collectElementTypesForWidening()
5044 const RecurrenceDescriptor &RdxDesc = Reduction.second; in selectInterleaveCount()
5045 return RecurrenceDescriptor::isAnyOfRecurrenceKind( in selectInterleaveCount()
5061 const RecurrenceDescriptor &RdxDesc = Reduction.second; in selectInterleaveCount()
5777 const RecurrenceDescriptor &RdxDesc = in getReductionPatternCost()
[all …]
H A DVPlanRecipes.cpp554 const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); in generatePerPart()
575 unsigned Op = RecurrenceDescriptor::getOpcode(RK); in generatePerPart()
576 if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) in generatePerPart()
598 RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) && in generatePerPart()
1738 if (RecurrenceDescriptor::isMinMaxRecurrenceKind(Kind)) { in execute()
1758 const RecurrenceDescriptor &RdxDesc = getRecurrenceDescriptor(); in execute()
1781 if (RecurrenceDescriptor::isMinMaxRecurrenceKind(Kind)) in execute()
1814 const RecurrenceDescriptor &RdxDesc = getRecurrenceDescriptor(); in print()
2584 if (RecurrenceDescriptor::isMinMaxRecurrenceKind(RK) || in execute()
2585 RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) { in execute()
H A DVPlan.h59 class RecurrenceDescriptor; variable
1968 const RecurrenceDescriptor &RdxDesc;
1979 VPReductionPHIRecipe(PHINode *Phi, const RecurrenceDescriptor &RdxDesc,
2012 const RecurrenceDescriptor &getRecurrenceDescriptor() const { in getRecurrenceDescriptor()
2175 const RecurrenceDescriptor &RdxDesc;
2181 VPReductionRecipe(const unsigned char SC, const RecurrenceDescriptor &R, in VPReductionRecipe()
2192 VPReductionRecipe(const RecurrenceDescriptor &R, Instruction *I, in VPReductionRecipe()
2226 const RecurrenceDescriptor &getRecurrenceDescriptor() const { in getRecurrenceDescriptor()
H A DLoopVectorizationPlanner.h384 DenseMap<const RecurrenceDescriptor *, Value *>>
H A DVPlanTransforms.cpp977 const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); in clearReductionWrapFlags()
H A DSLPVectorizer.cpp15694 if (!RecurrenceDescriptor::isIntMinMaxRecurrenceKind(::getRdxKind(V))) { in computeMinimumValueSizes()
16677 RecurrenceDescriptor::isMinMaxRecurrenceKind(getRdxKind(I)); in isCmpSelMinMax()
16694 if (RecurrenceDescriptor::isIntMinMaxRecurrenceKind(Kind) || in isVectorizable()
16724 unsigned RdxOpcode = RecurrenceDescriptor::getOpcode(Kind); in createOp()
16795 if (RecurrenceDescriptor::isIntMinMaxRecurrenceKind(RdxKind)) { in createOp()
17828 unsigned RdxOpcode = RecurrenceDescriptor::getOpcode(RdxKind); in getReductionCost()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1107 assert(RecurrenceDescriptor::isMinMaxRecurrenceKind(RdxKind) && in getOrderedReduction()
1142 assert(RecurrenceDescriptor::isMinMaxRecurrenceKind(RdxKind) && in getShuffleReduction()
1176 const RecurrenceDescriptor &Desc, in createAnyOfTargetReduction()
1179 RecurrenceDescriptor::isAnyOfRecurrenceKind(Desc.getRecurrenceKind()) && in createAnyOfTargetReduction()
1252 const RecurrenceDescriptor &Desc) { in createSimpleTargetReduction()
1254 assert(!RecurrenceDescriptor::isAnyOfRecurrenceKind(Kind) && in createSimpleTargetReduction()
1266 const RecurrenceDescriptor &Desc, Value *Src, in createTargetReduction()
1275 if (RecurrenceDescriptor::isAnyOfRecurrenceKind(RK)) in createTargetReduction()
1282 const RecurrenceDescriptor &Desc, in createOrderedReduction()
1294 const RecurrenceDescriptor &Desc, in createOrderedReduction()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/
H A DLoopVectorizationLegality.h254 using ReductionList = MapVector<PHINode *, RecurrenceDescriptor>;
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64TargetTransformInfo.h386 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc,
H A DAArch64TargetTransformInfo.cpp3784 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction()
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVTargetTransformInfo.h304 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp715 RecurrenceDescriptor RD; in findInnerReductionPhi()
716 if (RecurrenceDescriptor::isReductionPHI(PHI, L, RD)) { in findInnerReductionPhi()