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

/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanValue.h13 /// 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 DVPlanPredicator.h48 /// 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 DVPlanPredicator.cpp37 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 DVPlanSLP.cpp57 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 DLoopVectorizationPlanner.h44 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 DVPlan.h257 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 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);
H A DVPlanHCFGBuilder.cpp57 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 DVPlan.cpp51 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 DVPlanTransforms.cpp33 auto *NCondBit = new VPValue(CondBit->getUnderlyingValue());
H A DLoopVectorize.cpp446 /// 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