/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Vectorize/ |
D | VPlanValue.h | 38 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 …]
|
D | VPlanSLP.cpp | 57 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 …]
|
D | VPlanPredicator.cpp | 37 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 …]
|
D | LoopVectorizationPlanner.h | 41 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()
|
D | VPlan.h | 258 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 …]
|
D | VPlanHCFGBuilder.cpp | 57 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()
|
D | VPlanPredicator.h | 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB); 54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
|
D | VPRecipeBuilder.h | 45 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);
|
D | VPlan.cpp | 51 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()
|
D | VPlanTransforms.cpp | 33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue()); in VPInstructionsToVPRecipes()
|
D | LoopVectorize.cpp | 490 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/ |
D | VPlanValue.h | 44 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 …]
|
D | VPlan.h | 271 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 …]
|
D | VPlanSLP.cpp | 57 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 …]
|
D | VPlanPredicator.cpp | 37 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 …]
|
D | LoopVectorizationPlanner.h | 45 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()
|
D | VPlanHCFGBuilder.cpp | 57 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()
|
D | VPlanPredicator.h | 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB); 54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
|
D | VPlan.cpp | 52 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 …]
|
D | VPRecipeBuilder.h | 46 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);
|
D | VPlanTransforms.cpp | 33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue()); in VPInstructionsToVPRecipes() 38 VPValue DummyValue; in VPInstructionsToVPRecipes()
|
D | LoopVectorize.cpp | 484 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/ |
D | VPlanTest.cpp | 91 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 …]
|
D | VPlanPredicatorTest.cpp | 76 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()
|
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() 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()
|