Home
last modified time | relevance | path

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

/openbsd-src/gnu/llvm/llvm/lib/Transforms/Vectorize/
H A DVPlanValue.h44 class VPValue {
67 VPValue(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
96 VPValue(Value *UV = nullptr) : VPValue(VPValueSC, UV, nullptr) {} in VPValue() function
98 VPValue(VPDef *Def, Value *UV = nullptr) : VPValue(VPVRecipeSC, UV, Def) {} in VPValue() function
100 VPValue(Value *UV, VPDef *Def) : VPValue(VPValueSC, UV, Def) {} in VPValue() function
101 VPValue(const VPValue &) = delete;
102 VPValue &operator=(const VPValue &) = delete;
104 virtual ~VPValue();
164 void replaceAllUsesWith(VPValue *New);
194 typedef DenseMap<Value *, VPValue *> Value2VPValueTy;
[all …]
H A DVPlan.h228 DenseMap<VPValue *, PerPartValuesTy> PerPartOutput;
231 DenseMap<VPValue *, ScalarsPerPartValuesTy> PerPartScalars;
239 Value *get(VPValue *Def, unsigned Part);
242 Value *get(VPValue *Def, const VPIteration &Instance);
244 bool hasVectorValue(VPValue *Def, unsigned Part) { in hasVectorValue()
250 bool hasAnyVectorValue(VPValue *Def) const { in hasAnyVectorValue()
254 bool hasScalarValue(VPValue *Def, VPIteration Instance) { in hasScalarValue()
265 void set(VPValue *Def, Value *V, unsigned Part) { in set()
273 void reset(VPValue *Def, Value *V, unsigned Part) { in reset()
281 void set(VPValue *Def, Value *V, const VPIteration &Instance) { in set()
[all …]
H A DVPlanSLP.cpp49 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { in addCombined()
50 if (all_of(Operands, [](VPValue *V) { in addCombined()
54 for (VPValue *V : Operands) { in addCombined()
68 bool VPlanSlp::areVectorizable(ArrayRef<VPValue *> Operands) const { in areVectorizable()
70 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
86 if (!all_of(Operands, [Opcode, Width](VPValue *Op) { in areVectorizable()
96 if (any_of(Operands, [this](VPValue *Op) { in areVectorizable()
104 [](VPValue *Op) { return Op->hasMoreThanOneUniqueUser(); })) { in areVectorizable()
133 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
143 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
[all …]
H A DVPRecipeBuilder.h24 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,
103 VPRecipeBase *tryToWiden(Instruction *I, ArrayRef<VPValue *> Operands,
122 ArrayRef<VPValue *> Operands,
[all …]
H A DLoopVectorizationPlanner.h48 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 DVPlanTransforms.cpp40 VPValue *VPV = Ingredient.getVPSingleValue(); in VPInstructionsToVPRecipes()
43 VPValue DummyValue; in VPInstructionsToVPRecipes()
53 VPValue *Start = Plan->getOrAddVPValue(II->getStartValue()); in VPInstructionsToVPRecipes()
54 VPValue *Step = in VPInstructionsToVPRecipes()
123 for (VPValue *Op : Recipe.operands()) in sinkScalarOperands()
188 for (VPValue *Op : SinkCandidate->operands()) in sinkScalarOperands()
198 VPValue *getPredicatedMask(VPRegionBlock *R) { in getPredicatedMask()
248 VPValue *Mask1 = getPredicatedMask(Region1); in mergeReplicateRegionsIntoSuccessors()
249 VPValue *Mask2 = getPredicatedMask(Region2); in mergeReplicateRegionsIntoSuccessors()
284 VPValue *PredInst1 = in mergeReplicateRegionsIntoSuccessors()
[all …]
H A DVPlan.cpp54 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPValue &V) { in operator <<()
76 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def) in VPValue() function in VPValue
82 VPValue::~VPValue() { in ~VPValue()
89 void VPValue::print(raw_ostream &OS, VPSlotTracker &SlotTracker) const { in print()
96 void VPValue::dump() const { in dump()
113 VPRecipeBase *VPValue::getDefiningRecipe() { in getDefiningRecipe()
117 const VPRecipeBase *VPValue::getDefiningRecipe() const { in getDefiningRecipe()
211 Value *VPTransformState::get(VPValue *Def, const VPIteration &Instance) { in get()
389 void VPBasicBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
506 void VPRegionBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
[all …]
H A DVPlanHCFGBuilder.cpp54 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 DLoopVectorize.cpp505 void packScalarIntoVectorValue(VPValue *Def, const VPIteration &Instance,
513 ArrayRef<VPValue *> VPDefs,
514 VPTransformState &State, VPValue *Addr,
515 ArrayRef<VPValue *> StoredValues,
516 VPValue *BlockInMask = nullptr);
1072 for (VPValue *operand : CurRec->operands()) in collectPoisonGeneratingRecipes()
2352 const InductionDescriptor &ID, VPValue *Def, in buildScalarSteps()
2541 void InnerLoopVectorizer::packScalarIntoVectorValue(VPValue *Def, in packScalarIntoVectorValue()
2592 const InterleaveGroup<Instruction> *Group, ArrayRef<VPValue *> VPDefs, in vectorizeInterleaveGroup()
2593 VPTransformState &State, VPValue *Addr, ArrayRef<VPValue *> StoredValues, in vectorizeInterleaveGroup()
[all …]
H A DVPlanRecipes.cpp139 VPValue *ExitValue = getOperand(0); in fixPhi()
418 for (const VPValue *Operand : operands()) { in print()
590 for (VPValue *VPOp : operands()) in execute()
791 VPValue *Operand = getOperand(I); in execute()
926 O, [&O, &SlotTracker](VPValue *Op) { in print()
947 VPValue *BlockInMask = getMask(); in execute()
1203 VPValue *StartVPV = getStartValue(); in execute()
H A DVPlanVerifier.cpp206 for (const VPValue *V : R.definedValues()) { in verifyVPBasicBlock()
/openbsd-src/gnu/llvm/llvm/docs/Proposals/
H A DVectorizationPlan.rst148 :VPValue: