Home
last modified time | relevance | path

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

12

/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Vectorize/
DVPlanValue.h38 class VPValue {
53 VPValue(const unsigned char SC, Value *UV = nullptr)
79 VPValue(Value *UV = nullptr) : VPValue(VPValueSC, UV) {} in VPValue() function
80 VPValue(const VPValue &) = delete;
81 VPValue &operator=(const VPValue &) = delete;
121 void replaceAllUsesWith(VPValue *New);
124 typedef DenseMap<Value *, VPValue *> Value2VPValueTy;
125 typedef DenseMap<VPValue *, Value *> VPValue2ValueTy;
127 raw_ostream &operator<<(raw_ostream &OS, const VPValue &V);
131 class VPUser : public VPValue {
[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()
139 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
149 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.h41 ArrayRef<VPValue *> Operands) { in createInstruction()
49 std::initializer_list<VPValue *> Operands) { in createInstruction()
50 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands)); in createInstruction()
117 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands,
123 VPValue *createNaryOp(unsigned Opcode,
124 std::initializer_list<VPValue *> Operands,
126 return createNaryOp(Opcode, ArrayRef<VPValue *>(Operands), Inst);
129 VPValue *createNot(VPValue *Operand) { in createNot()
133 VPValue *createAnd(VPValue *LHS, VPValue *RHS) { in createAnd()
137 VPValue *createOr(VPValue *LHS, VPValue *RHS) { in createOr()
DVPlan.h258 DenseMap<VPValue *, PerPartValuesTy> PerPartOutput;
266 Value *get(VPValue *Def, unsigned Part) { in get()
277 Value *get(VPValue *Def, const VPIteration &Instance) { in get()
282 void set(VPValue *Def, Value *V, unsigned Part) { in set()
363 VPValue *CondBit = nullptr;
366 VPValue *Predicate = nullptr;
500 VPValue *getCondBit() { return CondBit; } in getCondBit()
502 const VPValue *getCondBit() const { return CondBit; } in getCondBit()
504 void setCondBit(VPValue *CV) { CondBit = CV; } in setCondBit()
506 VPValue *getPredicate() { return Predicate; } in getPredicate()
[all …]
DVPlanHCFGBuilder.cpp57 DenseMap<Value *, VPValue *> IRDef2VPValue;
69 VPValue *getOrCreateVPOperand(Value *IRVal);
96 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes()
165 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { in getOrCreateVPOperand()
183 VPValue *NewVPVal = new VPValue(IRVal); in getOrCreateVPOperand()
224 SmallVector<VPValue *, 4> VPOperands; in createVPInstructionsForVPBB()
296 VPValue *VPCondBit = IRDef2VPValue[BrCond]; in buildPlainCFG()
DVPlanPredicator.h50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
DVPRecipeBuilder.h45 DenseMap<std::pair<BasicBlock *, BasicBlock *>, VPValue *>;
46 using BlockMaskCacheTy = DenseMap<BasicBlock *, VPValue *>;
72 VPValue *createBlockInMask(BasicBlock *BB, VPlanPtr &Plan);
76 VPValue *createEdgeMask(BasicBlock *Src, BasicBlock *Dst, VPlanPtr &Plan);
DVPlan.cpp51 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPValue &V) { in operator <<()
203 VPValue *CBV; in execute()
382 for (const VPValue *Operand : operands()) { in print()
604 const VPValue *Pred = BasicBlock->getPredicate(); in dumpBasicBlock()
619 const VPValue *CBV = BasicBlock->getCondBit(); in dumpBasicBlock()
744 VPValue *Mask = getMask(); in print()
754 void VPValue::replaceAllUsesWith(VPValue *New) { in replaceAllUsesWith()
DVPlanTransforms.cpp33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue()); in VPInstructionsToVPRecipes()
DLoopVectorize.cpp490 VPValue *Addr, VPValue *BlockInMask = nullptr);
497 VPValue *Addr,
498 VPValue *BlockInMask = nullptr);
2171 VPValue *Addr, in vectorizeInterleaveGroup()
2172 VPValue *BlockInMask) { in vectorizeInterleaveGroup()
2356 VPValue *Addr, in vectorizeMemoryInstruction()
2357 VPValue *BlockInMask) { in vectorizeMemoryInstruction()
6703 VPValue *VPRecipeBuilder::createEdgeMask(BasicBlock *Src, BasicBlock *Dst, in createEdgeMask()
6713 VPValue *SrcMask = createBlockInMask(Src, Plan); in createEdgeMask()
6722 VPValue *EdgeMask = Plan->getVPValue(BI->getCondition()); in createEdgeMask()
[all …]
/external/llvm-project/llvm/lib/Transforms/Vectorize/
DVPlanValue.h44 class VPValue {
66 VPValue(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
102 VPValue(Value *UV = nullptr, VPDef *Def = nullptr)
103 : VPValue(VPValueSC, UV, Def) {} in VPValue() function
104 VPValue(const VPValue &) = delete;
105 VPValue &operator=(const VPValue &) = delete;
107 virtual ~VPValue();
165 void replaceAllUsesWith(VPValue *New);
170 typedef DenseMap<Value *, VPValue *> Value2VPValueTy;
171 typedef DenseMap<VPValue *, Value *> VPValue2ValueTy;
[all …]
DVPlan.h271 DenseMap<VPValue *, PerPartValuesTy> PerPartOutput;
279 Value *get(VPValue *Def, unsigned Part) { in get()
288 Value *get(VPValue *Def, const VPIteration &Instance) { in get()
309 void set(VPValue *Def, Value *V, unsigned Part) { in set()
316 void set(VPValue *Def, Value *IRDef, Value *V, unsigned Part);
393 VPValue *CondBit = nullptr;
396 VPValue *Predicate = nullptr;
542 VPValue *getCondBit() { return CondBit; } in getCondBit()
544 const VPValue *getCondBit() const { return CondBit; } in getCondBit()
546 void setCondBit(VPValue *CV) { CondBit = CV; } in setCondBit()
[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()
139 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
149 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.h45 ArrayRef<VPValue *> Operands) { in createInstruction()
53 std::initializer_list<VPValue *> Operands) { in createInstruction()
54 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands)); in createInstruction()
121 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands,
127 VPValue *createNaryOp(unsigned Opcode,
128 std::initializer_list<VPValue *> Operands,
130 return createNaryOp(Opcode, ArrayRef<VPValue *>(Operands), Inst);
133 VPValue *createNot(VPValue *Operand) { in createNot()
137 VPValue *createAnd(VPValue *LHS, VPValue *RHS) { in createAnd()
141 VPValue *createOr(VPValue *LHS, VPValue *RHS) { in createOr()
DVPlanHCFGBuilder.cpp57 DenseMap<Value *, VPValue *> IRDef2VPValue;
69 VPValue *getOrCreateVPOperand(Value *IRVal);
96 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes()
165 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { in getOrCreateVPOperand()
183 VPValue *NewVPVal = new VPValue(IRVal); in getOrCreateVPOperand()
224 SmallVector<VPValue *, 4> VPOperands; in createVPInstructionsForVPBB()
296 VPValue *VPCondBit = IRDef2VPValue[BrCond]; in buildPlainCFG()
DVPlanPredicator.h50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
DVPlan.cpp52 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPValue &V) { in operator <<()
60 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def) in VPValue() function in VPValue
66 VPValue::~VPValue() { in ~VPValue()
72 void VPValue::print(raw_ostream &OS, VPSlotTracker &SlotTracker) const { in print()
79 void VPValue::dump() const { in dump()
121 VPValue *VPRecipeBase::toVPValue() { in toVPValue()
141 const VPValue *VPRecipeBase::toVPValue() const { in toVPValue()
348 VPValue *CBV; in execute()
376 void VPBasicBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
387 void VPRegionBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
[all …]
DVPRecipeBuilder.h46 DenseMap<std::pair<BasicBlock *, BasicBlock *>, VPValue *>;
47 using BlockMaskCacheTy = DenseMap<BasicBlock *, VPValue *>;
118 VPValue *createBlockInMask(BasicBlock *BB, VPlanPtr &Plan);
122 VPValue *createEdgeMask(BasicBlock *Src, BasicBlock *Dst, VPlanPtr &Plan);
DVPlanTransforms.cpp33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue()); in VPInstructionsToVPRecipes()
38 VPValue DummyValue; in VPInstructionsToVPRecipes()
DLoopVectorize.cpp484 void widenInstruction(Instruction &I, VPValue *Def, VPUser &Operands,
488 void widenCallInstruction(CallInst &I, VPValue *Def, VPUser &ArgOperands,
492 void widenSelectInstruction(SelectInst &I, VPValue *VPDef, VPUser &Operands,
508 void widenGEP(GetElementPtrInst *GEP, VPValue *VPDef, VPUser &Indices,
572 VPTransformState &State, VPValue *Addr,
573 ArrayRef<VPValue *> StoredValues,
574 VPValue *BlockInMask = nullptr);
581 VPValue *Def, VPValue *Addr,
582 VPValue *StoredValue, VPValue *BlockInMask);
2515 VPValue *Addr, ArrayRef<VPValue *> StoredValues, VPValue *BlockInMask) { in vectorizeInterleaveGroup()
[all …]
/external/llvm-project/llvm/unittests/Transforms/Vectorize/
DVPlanTest.cpp91 VPValue *VPV1 = new VPValue(); in TEST()
92 VPValue *VPV2 = new VPValue(); in TEST()
100 VPValue *VPV3 = new VPValue(); in TEST()
117 VPValue *VPV4 = new VPValue(); in TEST()
137 VPValue *VPV1 = new VPValue(); in TEST()
138 VPValue *VPV2 = new VPValue(); in TEST()
142 VPValue *VPV3 = new VPValue(); in TEST()
183 VPValue *VPV1 = new VPValue(); in TEST()
184 VPValue *VPV2 = new VPValue(); in TEST()
361 VPValue Op1; in TEST()
[all …]
DVPlanPredicatorTest.cpp76 VPValue *CBV1 = InnerLoopH->getCondBit(); in TEST_F()
77 VPValue *CBV2 = OuterIf->getCondBit(); in TEST_F()
86 VPValue *OuterIfPred = OuterIf->getPredicate(); in TEST_F()
89 VPValue *InnerIfPred = InnerIf->getPredicate(); in TEST_F()
180 VPValue *OuterCBV = OuterIfCmpBlk->getCondBit(); in TEST_F()
181 VPValue *InnerCBV = InnerIfCmpBlk->getCondBit(); in TEST_F()
DVPlanSlpTest.cpp108 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()
315 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
324 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in checkReorderExample()
597 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
734 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
797 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
856 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
915 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()

12