Home
last modified time | relevance | path

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

/freebsd-12-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
DVPlanValue.h44 class VPValue {
67 VPValue(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
112 VPValue(Value *UV = nullptr, VPDef *Def = nullptr)
113 : VPValue(VPValueSC, UV, Def) {} in VPValue() function
114 VPValue(const VPValue &) = delete;
115 VPValue &operator=(const VPValue &) = delete;
117 virtual ~VPValue();
177 void replaceAllUsesWith(VPValue *New);
191 typedef DenseMap<Value *, VPValue *> Value2VPValueTy;
192 typedef DenseMap<VPValue *, Value *> VPValue2ValueTy;
[all …]
DVPlan.h216 DenseMap<VPValue *, PerPartValuesTy> PerPartOutput;
219 DenseMap<VPValue *, ScalarsPerPartValuesTy> PerPartScalars;
227 Value *get(VPValue *Def, unsigned Part);
230 Value *get(VPValue *Def, const VPIteration &Instance);
232 bool hasVectorValue(VPValue *Def, unsigned Part) { in hasVectorValue()
238 bool hasAnyVectorValue(VPValue *Def) const { in hasAnyVectorValue()
242 bool hasScalarValue(VPValue *Def, VPIteration Instance) { in hasScalarValue()
253 void set(VPValue *Def, Value *V, unsigned Part) { in set()
261 void reset(VPValue *Def, Value *V, unsigned Part) { in reset()
269 void set(VPValue *Def, Value *V, const VPIteration &Instance) { in set()
[all …]
DVPlanSLP.cpp57 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { in addCombined()
58 if (all_of(Operands, [](VPValue *V) { in addCombined()
62 for (VPValue *V : Operands) { in addCombined()
76 bool VPlanSlp::areVectorizable(ArrayRef<VPValue *> Operands) const { in areVectorizable()
78 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
94 if (!all_of(Operands, [Opcode, Width](VPValue *Op) { in areVectorizable()
104 if (any_of(Operands, [this](VPValue *Op) { in areVectorizable()
112 [](VPValue *Op) { return Op->hasMoreThanOneUniqueUser(); })) { in areVectorizable()
141 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
151 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
[all …]
DVPlanPredicator.cpp37 VPValue *VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB, in getOrCreateNotPredicate()
39 VPValue *CBV = PredBB->getCondBit(); in getOrCreateNotPredicate()
44 VPValue *IntermediateVal = nullptr; in getOrCreateNotPredicate()
58 VPValue *BP = PredBB->getPredicate(); in getOrCreateNotPredicate()
85 VPValue *VPlanPredicator::genPredicateTree(std::list<VPValue *> &Worklist) { in genPredicateTree()
93 VPValue *LHS = Worklist.front(); in genPredicateTree()
95 VPValue *RHS = Worklist.front(); in genPredicateTree()
99 VPValue *Or = Builder.createOr(LHS, RHS); in genPredicateTree()
108 VPValue *Root = Worklist.front(); in genPredicateTree()
138 VPValue *RegionBP = Region->getPredicate(); in createOrPropagatePredicates()
[all …]
DLoopVectorizationPlanner.h48 ArrayRef<VPValue *> Operands) { in createInstruction()
56 std::initializer_list<VPValue *> Operands) { in createInstruction()
57 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands)); in createInstruction()
124 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands,
130 VPValue *createNaryOp(unsigned Opcode,
131 std::initializer_list<VPValue *> Operands,
133 return createNaryOp(Opcode, ArrayRef<VPValue *>(Operands), Inst);
136 VPValue *createNot(VPValue *Operand) { in createNot()
140 VPValue *createAnd(VPValue *LHS, VPValue *RHS) { in createAnd()
144 VPValue *createOr(VPValue *LHS, VPValue *RHS) { in createOr()
[all …]
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 tryToOptimizeInductionPHI(PHINode *Phi, ArrayRef<VPValue *> Operands) const;
83 tryToOptimizeInductionTruncate(TruncInst *I, ArrayRef<VPValue *> Operands,
90 VPRecipeOrVPValueTy tryToBlend(PHINode *Phi, ArrayRef<VPValue *> Operands,
96 VPWidenCallRecipe *tryToWidenCall(CallInst *CI, ArrayRef<VPValue *> Operands,
102 VPWidenRecipe *tryToWiden(Instruction *I, ArrayRef<VPValue *> Operands) const;
120 ArrayRef<VPValue *> Operands,
[all …]
DVPlanHCFGBuilder.cpp57 DenseMap<Value *, VPValue *> IRDef2VPValue;
69 VPValue *getOrCreateVPOperand(Value *IRVal);
96 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes()
167 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { in getOrCreateVPOperand()
185 VPValue *NewVPVal = new VPValue(IRVal); in getOrCreateVPOperand()
215 VPValue *NewVPV; in createVPInstructionsForVPBB()
226 SmallVector<VPValue *, 4> VPOperands; in createVPInstructionsForVPBB()
261 VPValue *VPV = new VPValue(&I); in buildPlainCFG()
304 VPValue *VPCondBit = IRDef2VPValue[BrCond]; in buildPlainCFG()
DVPlanTransforms.cpp36 VPValue *VPV = Ingredient->getVPSingleValue(); in VPInstructionsToVPRecipes()
39 VPValue DummyValue; in VPInstructionsToVPRecipes()
51 VPValue *Start = Plan->getOrAddVPValue(II.getStartValue()); in VPInstructionsToVPRecipes()
109 SetVector<VPValue *> WorkList; in sinkScalarOperands()
154 VPValue *getPredicatedMask(VPRegionBlock *R) { in getPredicatedMask()
209 VPValue *Mask1 = getPredicatedMask(Region1); in mergeReplicateRegions()
210 VPValue *Mask2 = getPredicatedMask(Region2); in mergeReplicateRegions()
235 VPValue *PredInst1 = in mergeReplicateRegions()
237 VPValue *Phi1ToMoveV = Phi1ToMove.getVPSingleValue(); in mergeReplicateRegions()
DVPlanPredicator.h50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
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()
191 VPValue *VPBlockBase::getCondBit() { in getCondBit()
195 const VPValue *VPBlockBase::getCondBit() const { in getCondBit()
199 void VPBlockBase::setCondBit(VPValue *CV) { CondBitUser.resetSingleOpUser(CV); } in setCondBit()
201 VPValue *VPBlockBase::getPredicate() { in getPredicate()
205 const VPValue *VPBlockBase::getPredicate() const { in getPredicate()
[all …]
DLoopVectorize.cpp478 void widenInstruction(Instruction &I, VPValue *Def, VPUser &Operands,
482 void widenCallInstruction(CallInst &I, VPValue *Def, VPUser &ArgOperands,
486 void widenSelectInstruction(SelectInst &I, VPValue *VPDef, VPUser &Operands,
502 void widenGEP(GetElementPtrInst *GEP, VPValue *VPDef, VPUser &Indices,
517 void scalarizeInstruction(Instruction *Instr, VPValue *Def, VPUser &Operands,
525 VPValue *Def, VPValue *CastDef,
529 void packScalarIntoVectorValue(VPValue *Def, const VPIteration &Instance,
537 ArrayRef<VPValue *> VPDefs,
538 VPTransformState &State, VPValue *Addr,
539 ArrayRef<VPValue *> StoredValues,
[all …]