Home
last modified time | relevance | path

Searched refs:VPRecipeBase (Results 1 – 18 of 18) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanAnalysis.cpp270 TypeSwitch<const VPRecipeBase *, Type *>(V->getDefiningRecipe()) in inferScalarType()
286 VPPartialReductionRecipe>([this](const VPRecipeBase *R) { in inferScalarType()
316 VPlan &Plan, DenseSet<VPRecipeBase *> &EphRecipes) { in collectEphemeralRecipesForVPlan()
318 SmallVector<VPRecipeBase *> Worklist; in collectEphemeralRecipesForVPlan()
321 for (VPRecipeBase &R : *VPBB) { in collectEphemeralRecipesForVPlan()
335 VPRecipeBase *Cur = Worklist.pop_back_val(); in collectEphemeralRecipesForVPlan()
341 auto *UR = dyn_cast<VPRecipeBase>(U); in collectEphemeralRecipesForVPlan()
354 bool VPDominatorTree::properlyDominates(const VPRecipeBase *A, in properlyDominates()
355 const VPRecipeBase *B) { in properlyDominates()
359 auto LocalComesBefore = [](const VPRecipeBase *A, const VPRecipeBase *B) { in properlyDominates()
[all …]
H A DVPlan.h388 class LLVM_ABI_FOR_TEST VPRecipeBase
389 : public ilist_node_with_parent<VPRecipeBase, VPBasicBlock>,
402 VPRecipeBase(const unsigned char SC, ArrayRef<VPValue *> Operands,
406 virtual ~VPRecipeBase() = default;
409 virtual VPRecipeBase *clone() = 0;
426 void insertBefore(VPRecipeBase *InsertPos);
429 void insertBefore(VPBasicBlock &BB, iplist<VPRecipeBase>::iterator IP);
433 void insertAfter(VPRecipeBase *InsertPos);
437 void moveAfter(VPRecipeBase *MovePos);
442 void moveBefore(VPBasicBlock &BB, iplist<VPRecipeBase>::iterator I);
[all …]
H A DVPlanTransforms.cpp53 VPRecipeBase *Term = VPBB->getTerminator(); in tryToConvertVPInstructionsToVPRecipes()
56 for (VPRecipeBase &Ingredient : in tryToConvertVPInstructionsToVPRecipes()
65 VPRecipeBase *NewRecipe = nullptr; in tryToConvertVPInstructionsToVPRecipes()
168 auto *UI = cast<VPRecipeBase>(U); in sinkScalarOperands()
198 return cast<VPRecipeBase>(&U)->getParent() != SinkTo; in sinkScalarOperands()
292 for (VPRecipeBase &ToMove : make_early_inc_range(reverse(*Then1))) in mergeReplicateRegionsIntoSuccessors()
301 for (VPRecipeBase &Phi1ToMove : make_early_inc_range(reverse(*Merge1))) { in mergeReplicateRegionsIntoSuccessors()
306 return cast<VPRecipeBase>(&U)->getParent() == Then2; in mergeReplicateRegionsIntoSuccessors()
318 for (VPRecipeBase &R : in mergeReplicateRegionsIntoSuccessors()
381 for (VPRecipeBase &R : *VPBB) in addReplicateRegions()
[all …]
H A DVPlanUnroll.cpp47 SmallPtrSet<VPRecipeBase *, 8> ToSkip;
58 void unrollRecipeByUF(VPRecipeBase &R);
93 void addRecipeForPart(VPRecipeBase *OrigR, VPRecipeBase *CopyR, in addRecipeForPart()
114 void remapOperand(VPRecipeBase *R, unsigned OpIdx, unsigned Part) { in remapOperand()
120 void remapOperands(VPRecipeBase *R, unsigned Part) { in remapOperands()
221 VPRecipeBase *Copy = R->clone(); in unrollHeaderPHIByUF()
258 void UnrollState::unrollRecipeByUF(VPRecipeBase &R) { in unrollRecipeByUF()
288 VPRecipeBase *Copy = R.clone(); in unrollRecipeByUF()
344 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) { in unrollBlock()
408 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) { in unrollByUF()
[all …]
H A DVPlanUtils.cpp80 return TypeSwitch<const VPRecipeBase *, const SCEV *>(V->getDefiningRecipe()) in getSCEVExprForVPValue()
83 .Default([&SE](const VPRecipeBase *) { return SE.getCouldNotCompute(); }); in getSCEVExprForVPValue() argument
92 VPRecipeBase *R = V->getDefiningRecipe(); in isUniformAcrossVFsAndUFs()
106 return TypeSwitch<const VPRecipeBase *, bool>(R) in isUniformAcrossVFsAndUFs()
125 .Default([](const VPRecipeBase *) { // A value is considered non-uniform in isUniformAcrossVFsAndUFs() argument
H A DVPRecipeBuilder.h77 DenseMap<Instruction *, VPRecipeBase *> Ingredient2Recipe;
170 VPRecipeBase *tryToCreateWidenRecipe(VPSingleDefRecipe *R, VFRange &Range);
174 VPRecipeBase *tryToCreatePartialReduction(Instruction *Reduction,
179 void setRecipe(Instruction *I, VPRecipeBase *R) { in setRecipe()
192 VPRecipeBase *getRecipe(Instruction *I) { in getRecipe()
H A DVPlanVerifier.cpp144 auto VerifyEVLUse = [&](const VPRecipeBase &R, in verifyEVLRecipe()
161 [&](const VPRecipeBase *S) { return VerifyEVLUse(*S, 2); }) in verifyEVLRecipe()
170 [&](const VPRecipeBase *R) { return VerifyEVLUse(*R, 1); }) in verifyEVLRecipe()
218 DenseMap<const VPRecipeBase *, unsigned> RecipeNumbering; in verifyVPBasicBlock()
220 for (const VPRecipeBase &R : *VPBB) in verifyVPBasicBlock()
223 for (const VPRecipeBase &R : *VPBB) { in verifyVPBasicBlock()
243 auto *UI = cast<VPRecipeBase>(U); in verifyVPBasicBlock()
H A DVPlan.cpp67 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPRecipeBase &R) { in operator <<()
102 if (const VPRecipeBase *R = dyn_cast_or_null<VPRecipeBase>(Def)) in print()
109 const VPRecipeBase *Instr = dyn_cast_or_null<VPRecipeBase>(this->Def); in dump()
117 const VPRecipeBase *Instr = dyn_cast_or_null<VPRecipeBase>(this); in dump()
125 VPRecipeBase *VPValue::getDefiningRecipe() { in getDefiningRecipe()
126 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
129 const VPRecipeBase *VPValue::getDefiningRecipe() const { in getDefiningRecipe()
130 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
531 for (VPRecipeBase &R : Recipes) in clone()
589 for (VPRecipeBase &R : *this) in clone()
[all …]
H A DVPlanDominatorTree.h47 bool properlyDominates(const VPRecipeBase *A, const VPRecipeBase *B);
H A DVPlanAnalysis.h29 class VPRecipeBase; variable
75 DenseSet<VPRecipeBase *> &EphRecipes);
H A DVPlanValue.h40 class VPRecipeBase; variable
162 VPRecipeBase *getDefiningRecipe();
163 const VPRecipeBase *getDefiningRecipe() const;
193 raw_ostream &operator<<(raw_ostream &OS, const VPRecipeBase &R);
H A DVPlanRecipes.cpp50 bool VPRecipeBase::mayWriteToMemory() const { in mayWriteToMemory()
102 bool VPRecipeBase::mayReadFromMemory() const { in mayReadFromMemory()
150 bool VPRecipeBase::mayHaveSideEffects() const { in mayHaveSideEffects()
208 void VPRecipeBase::insertBefore(VPRecipeBase *InsertPos) { in insertBefore()
215 void VPRecipeBase::insertBefore(VPBasicBlock &BB, in insertBefore()
216 iplist<VPRecipeBase>::iterator I) { in insertBefore()
222 void VPRecipeBase::insertAfter(VPRecipeBase *InsertPos) { in insertAfter()
229 void VPRecipeBase::removeFromParent() { in removeFromParent()
235 iplist<VPRecipeBase>::iterator VPRecipeBase::eraseFromParent() { in eraseFromParent()
240 void VPRecipeBase::moveAfter(VPRecipeBase *InsertPos) { in moveAfter()
[all …]
H A DLoopVectorizationPlanner.h74 VPBuilder(VPRecipeBase *InsertPt) { setInsertPoint(InsertPt); } in VPBuilder()
90 static VPBuilder getToInsertAfter(VPRecipeBase *R) { in getToInsertAfter()
141 void setInsertPoint(VPRecipeBase *IP) { in setInsertPoint()
147 void insert(VPRecipeBase *R) { BB->insert(R, InsertPt); } in insert()
H A DVPlanConstruction.cpp326 for (VPRecipeBase &R : EB->phis()) { in buildPlainCFG()
373 for (VPRecipeBase &R : cast<VPBasicBlock>(HeaderVPB)->phis()) in canonicalHeaderAndLatch()
506 for (VPRecipeBase &R : EB->phis()) in prepareForVectorization()
613 for (VPRecipeBase &R : cast<VPBasicBlock>(ScalarPH)->phis()) { in attachCheckBlock()
H A DLoopVectorize.cpp2314 for (VPRecipeBase &R : cast<VPBasicBlock>(ScalarPH)->phis()) { in introduceCheckBlockInVPlan()
2703 for (VPRecipeBase &P : VPBB->phis()) { in fixNonInductionPHIs()
4010 using RecipeVFPair = std::pair<VPRecipeBase *, ElementCount>; in emitInvalidCostRemarks()
4039 DenseMap<VPRecipeBase *, unsigned> Numbering; in emitInvalidCostRemarks()
4065 VPRecipeBase *R = Subset.front().first; in emitInvalidCostRemarks()
4068 TypeSwitch<const VPRecipeBase *, unsigned>(R) in emitInvalidCostRemarks()
4131 DenseSet<VPRecipeBase *> EphemeralRecipes; in willGenerateVectors()
4137 for (VPRecipeBase &R : *VPBB) { in willGenerateVectors()
4282 for (VPRecipeBase &R : *VPBB) { in selectVectorizationFactor()
6907 auto GetInstructionForCost = [](const VPRecipeBase *R) -> Instruction * { in planContainsAdditionalSimplifications()
[all …]
H A DVPlanPatternMatch.h33 auto *R = dyn_cast<VPRecipeBase>(U); in match()
220 return match(static_cast<const VPRecipeBase *>(R)); in match()
223 bool match(const VPRecipeBase *R) const { in match()
252 static bool matchRecipeAndOpcode(const VPRecipeBase *R) { in matchRecipeAndOpcode()
H A DVPlanPredicator.cpp232 for (VPRecipeBase &R : VPBB->phis()) in convertPhisToBlends()
H A DVPlanSLP.cpp58 for (VPRecipeBase &VPI : *VPBB) { in visitBlock()