Home
last modified time | relevance | path

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

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanTransforms.cpp42 VPRecipeBase *Term = VPBB->getTerminator(); in VPInstructionsToVPRecipes()
45 for (VPRecipeBase &Ingredient : in VPInstructionsToVPRecipes()
51 VPRecipeBase *NewRecipe = nullptr; in VPInstructionsToVPRecipes()
148 auto *UI = dyn_cast<VPRecipeBase>(U); in sinkScalarOperands()
169 return cast<VPRecipeBase>(&U)->getParent() != SinkTo; in sinkScalarOperands()
263 for (VPRecipeBase &ToMove : make_early_inc_range(reverse(*Then1))) in mergeReplicateRegionsIntoSuccessors()
272 for (VPRecipeBase &Phi1ToMove : make_early_inc_range(reverse(*Merge1))) { in mergeReplicateRegionsIntoSuccessors()
277 auto *UI = dyn_cast<VPRecipeBase>(&U); in mergeReplicateRegionsIntoSuccessors()
343 for (VPRecipeBase &R : *VPBB) in addReplicateRegions()
387 for (VPRecipeBase &R : make_early_inc_range(*VPBB)) in mergeBlocksIntoPredecessors()
[all …]
H A DVPlan.h402 BasicBlock *getPreheaderBBFor(VPRecipeBase *R);
762 class VPRecipeBase : public ilist_node_with_parent<VPRecipeBase, VPBasicBlock>,
775 VPRecipeBase(const unsigned char SC, ArrayRef<VPValue *> Operands,
780 VPRecipeBase(const unsigned char SC, iterator_range<IterT> Operands,
783 virtual ~VPRecipeBase() = default;
786 virtual VPRecipeBase *clone() = 0;
803 void insertBefore(VPRecipeBase *InsertPos);
806 void insertBefore(VPBasicBlock &BB, iplist<VPRecipeBase>::iterator IP);
810 void insertAfter(VPRecipeBase *InsertPos);
814 void moveAfter(VPRecipeBase *MovePos);
[all …]
H A DVPRecipeBuilder.h57 DenseMap<Instruction *, VPRecipeBase *> Ingredient2Recipe;
115 VPRecipeBase *tryToCreateWidenRecipe(Instruction *Instr,
120 void setRecipe(Instruction *I, VPRecipeBase *R) { in setRecipe()
146 VPRecipeBase *getRecipe(Instruction *I) { in getRecipe()
H A DVPlanAnalysis.cpp246 TypeSwitch<const VPRecipeBase *, Type *>(V->getDefiningRecipe()) in inferScalarType()
261 VPWidenCanonicalIVRecipe>([this](const VPRecipeBase *R) { in inferScalarType()
288 VPlan &Plan, DenseSet<VPRecipeBase *> &EphRecipes) { in collectEphemeralRecipesForVPlan()
290 SmallVector<VPRecipeBase *> Worklist; in collectEphemeralRecipesForVPlan()
293 for (VPRecipeBase &R : *VPBB) { in collectEphemeralRecipesForVPlan()
307 VPRecipeBase *Cur = Worklist.pop_back_val(); in collectEphemeralRecipesForVPlan()
313 auto *UR = dyn_cast<VPRecipeBase>(U); in collectEphemeralRecipesForVPlan()
H A DVPlan.cpp97 if (const VPRecipeBase *R = dyn_cast_or_null<VPRecipeBase>(Def)) in print()
104 const VPRecipeBase *Instr = dyn_cast_or_null<VPRecipeBase>(this->Def); in dump()
112 const VPRecipeBase *Instr = dyn_cast_or_null<VPRecipeBase>(this); in dump()
120 VPRecipeBase *VPValue::getDefiningRecipe() { in getDefiningRecipe()
121 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
124 const VPRecipeBase *VPValue::getDefiningRecipe() const { in getDefiningRecipe()
125 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
356 BasicBlock *VPTransformState::CFGState::getPreheaderBBFor(VPRecipeBase *R) { in getPreheaderBBFor()
528 for (VPRecipeBase &R : Recipes) { in dropAllReferences()
544 for (VPRecipeBase &Recipe : Recipes) in executeRecipes()
[all …]
H A DVPlanPatternMatch.h116 static bool match(const VPRecipeBase *R) {
124 static bool match(const VPRecipeBase *R) {
142 bool match(const VPRecipeBase *R) {
174 return match(static_cast<const VPRecipeBase *>(R));
177 bool match(const VPRecipeBase *R) {
313 bool match(const VPRecipeBase *R) { return isa<VPCanonicalIVPHIRecipe>(R); }
331 bool match(const VPRecipeBase *R) {
H A DVPlanVerifier.cpp123 DenseMap<const VPRecipeBase *, unsigned> RecipeNumbering; in verifyVPBasicBlock()
125 for (const VPRecipeBase &R : *VPBB) in verifyVPBasicBlock()
128 for (const VPRecipeBase &R : *VPBB) { in verifyVPBasicBlock()
131 auto *UI = dyn_cast<VPRecipeBase>(U); in verifyVPBasicBlock()
H A DVPlanAnalysis.h27 class VPRecipeBase; variable
69 DenseSet<VPRecipeBase *> &EphRecipes);
H A DVPlanValue.h38 class VPRecipeBase; variable
52 friend class VPRecipeBase; variable
160 VPRecipeBase *getDefiningRecipe();
161 const VPRecipeBase *getDefiningRecipe() const;
H A DVPlanRecipes.cpp47 bool VPRecipeBase::mayWriteToMemory() const { in mayWriteToMemory()
89 bool VPRecipeBase::mayReadFromMemory() const { in mayReadFromMemory()
129 bool VPRecipeBase::mayHaveSideEffects() const { in mayHaveSideEffects()
202 VPRecipeBase *ExitingRecipe = ExitValue->getDefiningRecipe(); in fixPhi()
230 void VPRecipeBase::insertBefore(VPRecipeBase *InsertPos) { in insertBefore()
237 void VPRecipeBase::insertBefore(VPBasicBlock &BB, in insertBefore()
238 iplist<VPRecipeBase>::iterator I) { in insertBefore()
244 void VPRecipeBase::insertAfter(VPRecipeBase *InsertPos) { in insertAfter()
251 void VPRecipeBase::removeFromParent() { in removeFromParent()
257 iplist<VPRecipeBase>::iterator VPRecipeBase::eraseFromParent() { in eraseFromParent()
[all …]
H A DLoopVectorizationPlanner.h71 VPBuilder(VPRecipeBase *InsertPt) { setInsertPoint(InsertPt); } in VPBuilder()
84 static VPBuilder getToInsertAfter(VPRecipeBase *R) { in getToInsertAfter()
135 void setInsertPoint(VPRecipeBase *IP) { in setInsertPoint()
H A DLoopVectorize.cpp3095 for (VPRecipeBase &P : VPBB->phis()) { in fixNonInductionPHIs()
4423 DenseSet<VPRecipeBase *> EphemeralRecipes; in willGenerateVectors()
4429 for (VPRecipeBase &R : *VPBB) { in willGenerateVectors()
7360 for (VPRecipeBase &R : *ExitVPBB) { in executePlan()
8180 VPRecipeBase *IncR = in fixHeaderPhis()
8248 VPRecipeBase *
8254 VPRecipeBase *Recipe; in tryToCreateWidenRecipe()
8573 VPRecipeBase *Recipe = in tryToBuildVPlanWithVPRecipes()
8649 VPRecipeBase *MemberR = RecipeBuilder.getRecipe(Member); in tryToBuildVPlanWithVPRecipes()
8775 for (VPRecipeBase &R : Header->phis()) { in adjustRecipesForReductions()
[all …]