| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanAnalysis.cpp | 270 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 D | VPlan.h | 388 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 D | VPlanTransforms.cpp | 53 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 D | VPlanUnroll.cpp | 47 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 D | VPlanUtils.cpp | 80 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 D | VPRecipeBuilder.h | 77 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 D | VPlanVerifier.cpp | 144 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 D | VPlan.cpp | 67 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 D | VPlanDominatorTree.h | 47 bool properlyDominates(const VPRecipeBase *A, const VPRecipeBase *B);
|
| H A D | VPlanAnalysis.h | 29 class VPRecipeBase; variable 75 DenseSet<VPRecipeBase *> &EphRecipes);
|
| H A D | VPlanValue.h | 40 class VPRecipeBase; variable 162 VPRecipeBase *getDefiningRecipe(); 163 const VPRecipeBase *getDefiningRecipe() const; 193 raw_ostream &operator<<(raw_ostream &OS, const VPRecipeBase &R);
|
| H A D | VPlanRecipes.cpp | 50 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 D | LoopVectorizationPlanner.h | 74 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 D | VPlanConstruction.cpp | 326 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 D | LoopVectorize.cpp | 2314 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 D | VPlanPatternMatch.h | 33 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 D | VPlanPredicator.cpp | 232 for (VPRecipeBase &R : VPBB->phis()) in convertPhisToBlends()
|
| H A D | VPlanSLP.cpp | 58 for (VPRecipeBase &VPI : *VPBB) { in visitBlock()
|