| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanValue.h | 44 class VPValue { 116 : VPValue(VPValueSC, UV, Def) {} in VPValue() function 117 VPValue(const VPValue &) = delete; 118 VPValue &operator=(const VPValue &) = delete; 120 virtual ~VPValue(); 216 SmallVector<VPValue *, 2> Operands; 245 for (VPValue *Op : operands()) in ~VPUser() 313 friend class VPValue; variable 322 void addDefinedValue(VPValue *V) { in addDefinedValue() 388 VPValue *getVPSingleValue() { in getVPSingleValue() [all …]
|
| H A D | VPlan.h | 925 VPValue(VPValue::VPVWidenSC, &I, this) {} in VPWidenRecipe() 954 VPValue(VPValue::VPVWidenCallSC, &I, this) {} in VPWidenCallRecipe() 984 VPValue(VPValue::VPVWidenSelectSC, &I, this), in VPWidenSelectRecipe() 1020 VPValue(VPValue::VPVWidenGEPSC, GEP, this), in VPWidenGEPRecipe() 1378 VPValue(VPValue::VPVBlendSC, Phi, this), Phi(Phi) { in VPBlendRecipe() 1513 VPValue *ChainOp, VPValue *VecOp, VPValue *CondOp, in VPReductionRecipe() 1677 VPValue(VPValue::VPVPredInstPHI, nullptr, this) {} in VPPredInstPHIRecipe() 1733 new VPValue(VPValue::VPVMemoryInstructionSC, &Load, this); 1921 VPValue(VPValue::VPVWidenCanonicalIVSC, nullptr, this) {} 1969 VPValue *CanonicalIV, VPValue *Start, VPValue *Step, in VPScalarIVStepsRecipe() [all …]
|
| H A D | VPlanSLP.cpp | 49 if (all_of(Operands, [](VPValue *V) { in addCombined() 53 for (VPValue *V : Operands) { in addCombined() 69 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable() 153 static SmallVector<VPValue *, 4> getOperands(ArrayRef<VPValue *> Values, in getOperands() 155 SmallVector<VPValue *, 4> Operands; in getOperands() 156 for (VPValue *V : Values) { in getOperands() 170 getOperands(ArrayRef<VPValue *> Values) { in getOperands() 217 static unsigned getLAScore(VPValue *V1, VPValue *V2, unsigned MaxLevel, in getLAScore() 236 std::pair<VPlanSlp::OpMode, VPValue *> 264 VPValue *Best = nullptr; in getBest() [all …]
|
| H A D | VPRecipeBuilder.h | 24 using VPRecipeOrVPValueTy = PointerUnion<VPRecipeBase *, VPValue *>; 49 DenseMap<std::pair<BasicBlock *, BasicBlock *>, VPValue *>; 50 using BlockMaskCacheTy = DenseMap<BasicBlock *, VPValue *>; 72 VPRecipeBase *tryToWidenMemory(Instruction *I, ArrayRef<VPValue *> Operands, 78 ArrayRef<VPValue *> Operands, 84 tryToOptimizeInductionTruncate(TruncInst *I, ArrayRef<VPValue *> Operands, 91 VPRecipeOrVPValueTy tryToBlend(PHINode *Phi, ArrayRef<VPValue *> Operands, 97 VPWidenCallRecipe *tryToWidenCall(CallInst *CI, ArrayRef<VPValue *> Operands, 121 ArrayRef<VPValue *> Operands, 137 VPValue *createBlockInMask(BasicBlock *BB, VPlanPtr &Plan); [all …]
|
| H A D | LoopVectorizationPlanner.h | 48 ArrayRef<VPValue *> Operands, DebugLoc DL, 57 std::initializer_list<VPValue *> Operands, 59 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands), DL, Name); 126 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands, 135 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands, 140 VPValue *createNot(VPValue *Operand, DebugLoc DL, const Twine &Name = "") { 144 VPValue *createAnd(VPValue *LHS, VPValue *RHS, DebugLoc DL, 149 VPValue *createOr(VPValue *LHS, VPValue *RHS, DebugLoc DL, 154 VPValue *createSelect(VPValue *Cond, VPValue *TrueVal, VPValue *FalseVal,
|
| H A D | VPlanTransforms.cpp | 36 VPValue *VPV = Ingredient.getVPSingleValue(); in VPInstructionsToVPRecipes() 39 VPValue DummyValue; in VPInstructionsToVPRecipes() 50 VPValue *Step = in VPInstructionsToVPRecipes() 116 for (VPValue *Op : RepR->operands()) in sinkScalarOperands() 124 VPValue *C; in sinkScalarOperands() 186 VPValue *getPredicatedMask(VPRegionBlock *R) { in getPredicatedMask() 241 VPValue *Mask1 = getPredicatedMask(Region1); in mergeReplicateRegions() 267 VPValue *PredInst1 = in mergeReplicateRegions() 314 VPValue *FindMyCast = IV; in removeRedundantInductionCasts() 394 VPValue *Step = in optimizeInductions() [all …]
|
| H A D | VPlanHCFGBuilder.cpp | 54 DenseMap<Value *, VPValue *> IRDef2VPValue; 69 VPValue *getOrCreateVPOperand(Value *IRVal); 97 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes() 181 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { in getOrCreateVPOperand() 199 VPValue *NewVPVal = Plan.getOrAddExternalDef(IRVal); in getOrCreateVPOperand() 222 VPValue *Cond = getOrCreateVPOperand(Br->getCondition()); in createVPInstructionsForVPBB() 231 VPValue *NewVPV; in createVPInstructionsForVPBB() 242 SmallVector<VPValue *, 4> VPOperands; in createVPInstructionsForVPBB()
|
| H A D | VPlan.cpp | 75 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def) in VPValue() function in VPValue 81 VPValue::~VPValue() { in ~VPValue() 95 void VPValue::dump() const { in dump() 382 void VPBasicBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences() 499 void VPRegionBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences() 792 void VPlan::addLiveOut(PHINode *PN, VPValue *V) { in addLiveOut() 979 void VPValue::replaceAllUsesWith(VPValue *New) { in replaceAllUsesWith() 1068 void VPSlotTracker::assignSlot(const VPValue *V) { in assignSlot() 1089 for (VPValue *Def : Recipe.definedValues()) in assignSlots() 1093 bool vputils::onlyFirstLaneUsed(VPValue *Def) { in onlyFirstLaneUsed() [all …]
|
| H A D | LoopVectorize.cpp | 2543 VPTransformState &State, VPValue *Addr, ArrayRef<VPValue *> StoredValues, in vectorizeInterleaveGroup() 2544 VPValue *BlockInMask) { in vectorizeInterleaveGroup() 2777 VPValue *Operand = I.value(); in scalarizeInstruction() 8009 VPValue *BlockMask = nullptr; in createBlockInMask() 8087 VPValue *Mask = nullptr; in tryToWidenMemory() 8131 VPValue *Step = in createWidenInductionRecipes() 8206 VPValue *InLoopVal = nullptr; in tryToBlend() 8230 VPValue *EdgeMask = in tryToBlend() 8492 VPValue *StartV = Operands[0]; in tryToCreateWidenRecipe() 9185 VPValue *Cond = in adjustRecipesForReductions() [all …]
|
| H A D | VPlanRecipes.cpp | 134 VPValue *ExitValue = getOperand(0); in fixPhi() 413 for (const VPValue *Operand : operands()) { in print() 522 for (VPValue *VPOp : operands()) in execute() 720 VPValue *Operand = getOperand(I); in execute() 855 O, [&O, &SlotTracker](VPValue *Op) { in print() 876 VPValue *BlockInMask = getMask(); in execute() 1116 VPValue *StartVPV = getStartValue(); in execute()
|
| H A D | VPlanVerifier.cpp | 178 for (const VPValue *V : R.definedValues()) { in verifyVPBasicBlock()
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/ |
| H A D | VPlanTest.cpp | 130 VPValue *VPV1 = new VPValue(); in TEST() 131 VPValue *VPV2 = new VPValue(); in TEST() 139 VPValue *VPV3 = new VPValue(); in TEST() 156 VPValue *VPV4 = new VPValue(); in TEST() 176 VPValue *VPV1 = new VPValue(); in TEST() 177 VPValue *VPV2 = new VPValue(); in TEST() 181 VPValue *VPV3 = new VPValue(); in TEST() 222 VPValue *VPV1 = new VPValue(); in TEST() 223 VPValue *VPV2 = new VPValue(); in TEST() 770 VPValue Op1; in TEST() [all …]
|
| H A D | VPlanSlpTest.cpp | 108 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 182 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 252 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 316 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 325 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in checkReorderExample() 598 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 735 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 798 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 857 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F() 916 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
|
| /llvm-project-15.0.7/llvm/docs/Proposals/ |
| H A D | VectorizationPlan.rst | 148 :VPValue:
|