| /freebsd-12-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| D | VPlanValue.h | 44 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 …]
|
| D | VPlan.h | 216 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 …]
|
| 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() 141 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable() 151 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 | 48 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 …]
|
| 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 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 …]
|
| D | VPlanHCFGBuilder.cpp | 57 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()
|
| D | VPlanTransforms.cpp | 36 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()
|
| D | VPlanPredicator.h | 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB); 54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
|
| D | VPlan.cpp | 54 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 …]
|
| D | LoopVectorize.cpp | 478 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 …]
|