Searched refs:VPValue (Results 1 - 11 of 11) sorted by relevance
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanValue.h | 13 /// VPValue 39 class VPValue { class in namespace:llvm 51 // Hold the underlying Value, if any, attached to this VPValue. 54 VPValue(const unsigned char SC, Value *UV = nullptr) function in class:llvm::VPValue 64 /// Return the underlying Value attached to this VPValue. 68 // Set \p Val as the underlying Value of this VPValue. 75 /// An enumeration for keeping track of the concrete subclass of VPValue that 77 /// SubclassID field of the VPValue objects. They are used for concrete 81 VPValue(Value *UV = nullptr) : VPValue(VPValueS function in class:llvm::VPValue [all...] |
H A D | VPlanPredicator.h | 48 /// Create and return VPValue corresponding to the predicate for the edge from 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB); 54 VPValue *genPredicateTree(std::list<VPValue *> &Worklist);
|
H A D | VPlanPredicator.cpp | 37 VPValue *VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB, 39 VPValue *CBV = PredBB->getCondBit(); 44 VPValue *IntermediateVal = nullptr; 58 VPValue *BP = PredBB->getPredicate(); 85 VPValue *VPlanPredicator::genPredicateTree(std::list<VPValue *> &Worklist) { 93 VPValue *LHS = Worklist.front(); 95 VPValue *RHS = Worklist.front(); 99 VPValue *Or = Builder.createOr(LHS, RHS); 108 VPValue *Roo [all...] |
H A D | VPlanSLP.cpp | 57 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { 58 if (all_of(Operands, [](VPValue *V) { 62 for (VPValue *V : Operands) { 76 bool VPlanSlp::areVectorizable(ArrayRef<VPValue *> Operands) const { 78 if (!all_of(Operands, [](VPValue *Op) { 94 if (!all_of(Operands, [Opcode, Width](VPValue *Op) { 104 if (any_of(Operands, [this](VPValue *Op) { 112 [](VPValue *Op) { return Op->hasMoreThanOneUniqueUser(); })) { 139 if (!all_of(Operands, [](VPValue *Op) { 149 if (!all_of(Operands, [](VPValue *O [all...] |
H A D | LoopVectorizationPlanner.h | 44 ArrayRef<VPValue *> Operands) { 52 std::initializer_list<VPValue *> Operands) { 53 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands)); 120 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands, 126 VPValue *createNaryOp(unsigned Opcode, 127 std::initializer_list<VPValue *> Operands, 129 return createNaryOp(Opcode, ArrayRef<VPValue *>(Operands), Inst); 132 VPValue *createNot(VPValue *Operan [all...] |
H A D | VPlan.h | 257 DenseMap<VPValue *, PerPartValuesTy> PerPartOutput; 260 /// Get the generated Value for a given VPValue and a given Part. Note that 265 Value *get(VPValue *Def, unsigned Part) { 273 /// Get the generated Value for a given VPValue and given Part and Lane. 274 Value *get(VPValue *Def, const VPIteration &Instance) { 290 /// Set the generated Value for a given VPValue and a given Part. 291 void set(VPValue *Def, Value *V, unsigned Part) { 374 VPValue *CondBit = nullptr; 377 VPValue *Predicate = nullptr; 523 VPValue *getCondBi [all...] |
H A 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);
|
H A D | VPlanHCFGBuilder.cpp | 57 DenseMap<Value *, VPValue *> IRDef2VPValue; 69 VPValue *getOrCreateVPOperand(Value *IRVal); 96 VPValue *VPVal = IRDef2VPValue[Phi]; 161 // Create a new VPValue or retrieve an existing one for the Instruction's 165 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { 168 // Operand has an associated VPInstruction or VPValue that was previously 172 // Operand doesn't have a previously created VPInstruction/VPValue. This 176 // For now, we use VPValue to represent A and B and classify both as external 177 // definitions. We may introduce specific VPValue subclasses for them in the 181 // A and B: Create VPValue an [all...] |
H A D | VPlan.cpp | 51 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPValue &V) { 59 void VPValue::print(raw_ostream &OS, VPSlotTracker &SlotTracker) const { 242 VPValue *CBV; 446 for (const VPValue *Operand : operands()) { 667 const VPValue *Pred = BasicBlock->getPredicate(); 685 const VPValue *CBV = BasicBlock->getCondBit(); 821 VPValue *Mask = getMask(); 858 void VPValue::replaceAllUsesWith(VPValue *New) { 865 void VPValue [all...] |
H A D | VPlanTransforms.cpp | 33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue());
|
H A D | LoopVectorize.cpp | 446 /// inclusive. Uses the VPValue operands from \p Operands instead of \p 494 VPTransformState &State, VPValue *Addr, 495 VPValue *BlockInMask = nullptr); 502 VPValue *Addr, VPValue *StoredValue, 503 VPValue *BlockInMask); 2194 VPValue *Addr, VPValue *BlockInMask) { 2371 VPValue *Addr, 2372 VPValue *StoredValu [all...] |
Completed in 67 milliseconds