• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/

Lines Matching refs:VPValue

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 *getCondBit() { return CondBit; }
525 const VPValue *getCondBit() const { return CondBit; }
527 void setCondBit(VPValue *CV) { CondBit = CV; }
529 VPValue *getPredicate() { return Predicate; }
531 const VPValue *getPredicate() const { return Predicate; }
533 void setPredicate(VPValue *Pred) { Predicate = Pred; }
548 VPValue *Condition) {
707 VPInstruction(unsigned Opcode, ArrayRef<VPValue *> Operands)
708 : VPUser(VPValue::VPInstructionSC, Operands),
711 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands)
712 : VPInstruction(Opcode, ArrayRef<VPValue *>(Operands)) {}
715 static inline bool classof(const VPValue *V) {
716 return V->getVPValueID() == VPValue::VPInstructionSC;
720 SmallVector<VPValue *, 2> Operands(operands());
954 /// might be incoming with a full mask for which there is no VPValue.
958 VPBlendRecipe(PHINode *Phi, ArrayRef<VPValue *> Operands)
978 VPValue *getIncomingValue(unsigned Idx) const {
983 VPValue *getMask(unsigned Idx) const { return User.getOperand(Idx * 2 + 1); }
1000 VPInterleaveRecipe(const InterleaveGroup<Instruction> *IG, VPValue *Addr,
1001 VPValue *Mask)
1014 VPValue *getAddr() const {
1020 VPValue *getMask() const {
1093 VPBranchOnMaskRecipe(VPValue *BlockInMask) : VPRecipeBase(VPBranchOnMaskSC) {
1111 if (VPValue *Mask = getMask())
1120 VPValue *getMask() const {
1165 void setMask(VPValue *Mask) {
1177 VPWidenMemoryInstructionRecipe(LoadInst &Load, VPValue *Addr, VPValue *Mask)
1182 VPWidenMemoryInstructionRecipe(StoreInst &Store, VPValue *Addr,
1183 VPValue *StoredValue, VPValue *Mask)
1195 VPValue *getAddr() const {
1201 VPValue *getMask() const {
1207 VPValue *getStoredValue() const {
1223 /// A VPValue representing the canonical vector IV.
1224 VPValue Val;
1230 /// Return the VPValue representing the canonical vector induction variable of
1232 const VPValue *getVPValue() const { return &Val; }
1233 VPValue *getVPValue() { return &Val; }
1557 SmallPtrSet<VPValue *, 16> VPExternalDefs;
1561 VPValue *BackedgeTakenCount = nullptr;
1563 /// Holds a mapping between Values and their corresponding VPValue inside
1571 SmallVector<VPValue *, 4> VPCBVs;
1586 for (VPValue *Def : VPExternalDefs)
1588 for (VPValue *CBV : VPCBVs)
1605 VPValue *getOrCreateBackedgeTakenCount() {
1607 BackedgeTakenCount = new VPValue();
1621 void addExternalDef(VPValue *VPVal) {
1626 void addCBV(VPValue *CBV) {
1633 Value2VPValue[V] = new VPValue(V);
1636 VPValue *getVPValue(Value *V) {
1637 assert(V && "Trying to get the VPValue of a null Value");
1642 VPValue *getOrAddVPValue(Value *V) {
1643 assert(V && "Trying to get or add the VPValue of a null Value");
1658 iterator_range<mapped_iterator<Use *, std::function<VPValue *(Value *)>>>
1660 std::function<VPValue *(Value *)> Fn = [this](Value *Op) {
1778 VPValue *Condition, VPBlockBase *BlockPtr) {
1893 /// A DenseMapInfo implementation for using SmallVector<VPValue *, 4> as
1896 static SmallVector<VPValue *, 4> getEmptyKey() {
1897 return {reinterpret_cast<VPValue *>(-1)};
1900 static SmallVector<VPValue *, 4> getTombstoneKey() {
1901 return {reinterpret_cast<VPValue *>(-2)};
1904 static unsigned getHashValue(const SmallVector<VPValue *, 4> &V) {
1908 static bool isEqual(const SmallVector<VPValue *, 4> &LHS,
1909 const SmallVector<VPValue *, 4> &RHS) {
1915 DenseMap<SmallVector<VPValue *, 4>, VPInstruction *, BundleDenseMapInfo>
1931 typename std::pair<VPInstruction *, SmallVector<VPValue *, 4>>;
1943 bool areVectorizable(ArrayRef<VPValue *> Operands) const;
1946 void addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New);
1958 std::pair<OpMode, VPValue *> getBest(OpMode Mode, VPValue *Last,
1959 SmallPtrSetImpl<VPValue *> &Candidates,
1963 void dumpBundle(ArrayRef<VPValue *> Values);
1975 VPInstruction *buildGraph(ArrayRef<VPValue *> Operands);