reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/CodeGen/LiveInterval.h
   66     VNInfo(unsigned i, const VNInfo &orig) : id(i), def(orig.def) {}
   69     void copyFrom(VNInfo &src) {
   90     VNInfo *const EarlyVal;
   91     VNInfo *const LateVal;
   96     LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint,
   96     LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint,
  104     VNInfo *valueIn() const {
  122     VNInfo *valueOut() const {
  128     VNInfo *valueOutOrDead() const {
  134     VNInfo *valueDefined() const {
  164       VNInfo *valno = nullptr; // identifier for the value contained in this
  169       Segment(SlotIndex S, SlotIndex E, VNInfo *V)
  200     using VNInfoList = SmallVector<VNInfo *, 2>;
  250       for (const VNInfo *VNI : Other.valnos)
  308     inline VNInfo *getValNumInfo(unsigned ValNo) {
  311     inline const VNInfo *getValNumInfo(unsigned ValNo) const {
  316     bool containsValue(const VNInfo *VNI) const {
  322     VNInfo *getNextValue(SlotIndex def, VNInfo::Allocator &VNInfoAllocator) {
  322     VNInfo *getNextValue(SlotIndex def, VNInfo::Allocator &VNInfoAllocator) {
  323       VNInfo *VNI =
  324         new (VNInfoAllocator) VNInfo((unsigned)valnos.size(), def);
  332     VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc);
  332     VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc);
  336     VNInfo *createDeadDef(VNInfo *VNI);
  336     VNInfo *createDeadDef(VNInfo *VNI);
  340     VNInfo *createValueCopy(const VNInfo *orig,
  340     VNInfo *createValueCopy(const VNInfo *orig,
  341                             VNInfo::Allocator &VNInfoAllocator) {
  342       VNInfo *VNI =
  343         new (VNInfoAllocator) VNInfo((unsigned)valnos.size(), *orig);
  356     VNInfo* MergeValueNumberInto(VNInfo *V1, VNInfo *V2);
  356     VNInfo* MergeValueNumberInto(VNInfo *V1, VNInfo *V2);
  356     VNInfo* MergeValueNumberInto(VNInfo *V1, VNInfo *V2);
  363     void MergeSegmentsInAsValue(const LiveRange &RHS, VNInfo *LHSValNo);
  371                              const VNInfo *RHSValNo, VNInfo *LHSValNo);
  371                              const VNInfo *RHSValNo, VNInfo *LHSValNo);
  412     VNInfo *getVNInfoAt(SlotIndex Idx) const {
  420     VNInfo *getVNInfoBefore(SlotIndex Idx) const {
  487     std::pair<VNInfo*,bool> extendInBlock(ArrayRef<SlotIndex> Undefs,
  495     VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Kill);
  503               SmallVectorImpl<VNInfo *> &NewVNInfo);
  542       VNInfo *EarlyVal = nullptr;
  543       VNInfo *LateVal  = nullptr;
  573     void removeValNo(VNInfo *ValNo);
  669     void markValNoForDeletion(VNInfo *V);
  922     void add(SlotIndex Start, SlotIndex End, VNInfo *VNI) {
  979     unsigned getEqClass(const VNInfo *VNI) const { return EqClass[VNI->id]; }
include/llvm/CodeGen/LiveIntervals.h
   65     VNInfo::Allocator VNInfoAllocator;
  284     VNInfo::Allocator& getVNInfoAllocator() { return VNInfoAllocator; }
  301     bool hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const;
  474     using ShrinkToUsesWorkList = SmallVector<std::pair<SlotIndex, VNInfo*>, 16>;
include/llvm/CodeGen/LiveRangeCalc.h
   49   VNInfo::Allocator *Alloc = nullptr;
   53   using LiveOutPair = std::pair<VNInfo *, MachineDomTreeNode *>;
  114     VNInfo *Value = nullptr;
  194              MachineDominatorTree *MDT, VNInfo::Allocator *VNIA);
  255   void setLiveOutValue(MachineBasicBlock *MBB, VNInfo *VNI) {
include/llvm/CodeGen/LiveRangeEdit.h
   90   SmallPtrSet<const VNInfo *, 4> Remattable;
   94   SmallPtrSet<const VNInfo *, 4> Rematted;
  197   bool checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI,
  202     VNInfo *ParentVNI;              // parent_'s value at the remat location.
  206     explicit Remat(VNInfo *ParentVNI) : ParentVNI(ParentVNI) {}
  212   bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx,
  226   void markRematerialized(const VNInfo *ParentVNI) {
  231   bool didRematerialize(const VNInfo *ParentVNI) const {
include/llvm/CodeGen/LiveStacks.h
   35   VNInfo::Allocator VNInfoAllocator;
   88   VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; }
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
lib/CodeGen/CalcSpillWeights.cpp
   93     const VNInfo *VNI = *I;
lib/CodeGen/InlineSpiller.cpp
  110       MapVector<std::pair<int, VNInfo *>, SmallPtrSet<MachineInstr *, 16>>;
  118   bool isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI,
  133   void runHoistSpills(LiveInterval &OrigLI, VNInfo &OrigVNI,
  185   SmallPtrSet<VNInfo*, 8> UsedValues;
  218   void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI);
  220   void markValueUsed(LiveInterval*, VNInfo*);
  375   VNInfo *VNI = SpillLI.getVNInfoAt(Idx.getRegSlot());
  381   VNInfo *SrcVNI = SrcLI.getVNInfoAt(Idx);
  392   VNInfo *OrigVNI = OrigLI.getVNInfoAt(Idx);
  425 void InlineSpiller::eliminateRedundantSpills(LiveInterval &SLI, VNInfo *VNI) {
  427   SmallVector<std::pair<LiveInterval*, VNInfo*>, 8> WorkList;
  461            VNInfo *DstVNI = DstLI.getVNInfoAt(Idx.getRegSlot());
  490 void InlineSpiller::markValueUsed(LiveInterval *LI, VNInfo *VNI) {
  491   SmallVector<std::pair<LiveInterval*, VNInfo*>, 8> WorkList;
  501         VNInfo *PVNI = LI->getVNInfoBefore(LIS.getMBBEndIdx(P));
  514     VNInfo *SnipVNI = SnipLI.getVNInfoAt(VNI->def.getRegSlot(true));
  553   VNInfo *ParentVNI = VirtReg.getVNInfoAt(UseIdx.getBaseIndex());
  570   VNInfo *OrigVNI = OrigLI.getVNInfoAt(UseIdx);
  670       VNInfo *VNI = *I;
 1001     if (VNInfo *VNI = OldLI.getVNInfoAt(Idx.getRegSlot(true)))
 1153   VNInfo *OrigVNI = StackSlotToOrigLI[StackSlot]->getVNInfoAt(Idx.getRegSlot());
 1154   std::pair<int, VNInfo *> MIdx = std::make_pair(StackSlot, OrigVNI);
 1166   VNInfo *OrigVNI = It->second->getVNInfoAt(Idx.getRegSlot());
 1167   std::pair<int, VNInfo *> MIdx = std::make_pair(StackSlot, OrigVNI);
 1173 bool HoistSpillHelper::isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI,
 1187     VNInfo *VNI = LI.getVNInfoAt(Idx);
 1318     LiveInterval &OrigLI, VNInfo &OrigVNI,
 1470     VNInfo *OrigVNI = Ent.first.second;
lib/CodeGen/LiveDebugVariables.cpp
  283                  LiveRange *LR, const VNInfo *VNI,
  717                           const VNInfo *VNI, SmallVectorImpl<SlotIndex> *Kills,
  772   SmallVector<std::pair<LiveInterval*, const VNInfo*>, 8> CopyValues;
  797     const VNInfo *DstVNI = DstLI->getVNInfoAt(Idx.getRegSlot());
  813       const VNInfo *DstVNI = CopyValues[j].second;
  857       const VNInfo *VNI = nullptr;
lib/CodeGen/LiveInterval.cpp
   87   VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator *VNInfoAllocator,
   87   VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator *VNInfoAllocator,
   88                         VNInfo *ForVNI) {
   94       VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator);
  115     VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator);
  120   VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) {
  135   std::pair<VNInfo*,bool> extendInBlock(ArrayRef<SlotIndex> Undefs,
  161     VNInfo *ValNo = I->valno;
  189     VNInfo *ValNo = I->valno;
  370 VNInfo *LiveRange::createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc) {
  370 VNInfo *LiveRange::createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc) {
  378 VNInfo *LiveRange::createDeadDef(VNInfo *VNI) {
  378 VNInfo *LiveRange::createDeadDef(VNInfo *VNI) {
  519 void LiveRange::markValNoForDeletion(VNInfo *ValNo) {
  532   SmallPtrSet<VNInfo*, 8> Seen;
  535     VNInfo *VNI = S.valno;
  564 std::pair<VNInfo*,bool> LiveRange::extendInBlock(ArrayRef<SlotIndex> Undefs,
  573 VNInfo *LiveRange::extendInBlock(SlotIndex StartIdx, SlotIndex Kill) {
  592   VNInfo *ValNo = I->valno;
  632 void LiveRange::removeValNo(VNInfo *ValNo) {
  644                      SmallVectorImpl<VNInfo *> &NewVNInfo) {
  668       VNInfo* nextValNo = NewVNInfo[LHSValNoAssignments[I->valno->id]];
  702     VNInfo *VNI = NewVNInfo[i];
  725                                        VNInfo *LHSValNo) {
  737                                     const VNInfo *RHSValNo,
  738                                     VNInfo *LHSValNo) {
  749 VNInfo *LiveRange::MergeValueNumberInto(VNInfo *V1, VNInfo *V2) {
  749 VNInfo *LiveRange::MergeValueNumberInto(VNInfo *V1, VNInfo *V2) {
  749 VNInfo *LiveRange::MergeValueNumberInto(VNInfo *V1, VNInfo *V2) {
  892   SmallVector<VNInfo *, 8> ToBeRemoved;
  893   for (VNInfo *VNI : SR.valnos) {
  917   for (VNInfo *VNI : ToBeRemoved)
 1017       const VNInfo *vni = *i;
 1314   const VNInfo *used = nullptr, *unused = nullptr;
 1317   for (const VNInfo *VNI : LR.valnos) {
 1332         if (const VNInfo *PVNI = LR.getVNInfoBefore(LIS.getMBBEndIdx(*PI)))
 1339       if (const VNInfo *UVNI = LR.getVNInfoBefore(VNI->def))
 1360     const VNInfo *VNI;
 1394         const VNInfo &VNI = *SR.valnos[I];
 1399           const VNInfo *MainRangeVNI = LI.getVNInfoAt(VNI.def);
lib/CodeGen/LiveIntervals.cpp
  336         VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator());
  352   for (VNInfo *VNI : VNIs) {
  364   SmallPtrSet<VNInfo*, 8> UsedPHIs;
  387     VNInfo *VNI = WorkList.back().second;
  393     if (VNInfo *ExtVNI = Segments.extendInBlock(BlockStart, Idx)) {
  406         if (VNInfo *PVNI = OldRange.getVNInfoBefore(Stop))
  421       if (VNInfo *OldVNI = OldRange.getVNInfoBefore(Stop)) {
  467     VNInfo *VNI = LRQ.valueIn();
  480     if (VNInfo *DefVNI = LRQ.valueDefined())
  503   for (VNInfo *VNI : LI.valnos) {
  570     VNInfo *VNI = LRQ.valueIn();
  578     if (VNInfo *DefVNI = LRQ.valueDefined())
  593   for (VNInfo *VNI : SR.valnos) {
  624   VNInfo *VNI = LRQ.valueOutOrDead();
  838 LiveIntervals::hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const {
  839   for (const VNInfo *PHI : LI.valnos) {
  870   VNInfo *VN = Interval.getNextValue(
 1107     VNInfo *OldIdxVNI = OldIdxOut->valno;
 1129       VNInfo *DefVNI;
 1209       VNInfo *NewSegmentVNI = OldIdxVNI;
 1257     VNInfo *OldIdxVNI = OldIdxOut->valno;
 1377         VNInfo *NewSegmentVNI = OldIdxVNI;
 1548           VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
 1553           VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
 1629       if (VNInfo *VNI = LR->getVNInfoAt(Pos))
 1637   VNInfo *VNI = LI.getVNInfoAt(Pos);
 1645     if (VNInfo *SVNI = S.getVNInfoAt(Pos))
lib/CodeGen/LiveRangeCalc.cpp
   41 static VNInfo UndefVNI(0xbad, SlotIndex());
   54                           VNInfo::Allocator *VNIA) {
   64 static void createDeadDef(SlotIndexes &Indexes, VNInfo::Allocator &Alloc,
  138     for (const VNInfo *VNI : SR.valnos) {
  356   VNInfo *TheVNI = nullptr;
  389          if (VNInfo *VNI = Map[Pred].first) {
  403        VNInfo *VNI = EP.first;
  554         VNInfo *VNI = LR.getNextValue(Start, *Alloc);
lib/CodeGen/LiveRangeEdit.cpp
   47     VNInfo::Allocator &Alloc = LIS.getVNInfoAllocator();
   70 bool LiveRangeEdit::checkRematerializable(VNInfo *VNI,
   82   for (VNInfo *VNI : getParent().valnos) {
   87     VNInfo *OrigVNI = OrigLI.getVNInfoAt(VNI->def);
  124     const VNInfo *OVNI = li.getVNInfoAt(OrigIdx);
  140 bool LiveRangeEdit::canRematerializeAt(Remat &RM, VNInfo *OrigVNI,
  297     VNInfo *OrigVNI = OrigLI.getVNInfoAt(Idx);
  365       VNInfo *VNI = NewLI.getNextValue(Idx, LIS.getVNInfoAllocator());
lib/CodeGen/LiveRangeUtils.h
   47     VNInfo *VNI = LR.getValNumInfo(i);
lib/CodeGen/LiveRegMatrix.cpp
  211   VNInfo valno(0, Start);
lib/CodeGen/MachineBasicBlock.cpp
 1038           VNInfo *VNI = LI.getVNInfoAt(PrevIndex);
 1058         VNInfo *VNI = LI.getVNInfoAt(PrevIndex);
lib/CodeGen/MachineScheduler.cpp
 1131       VNInfo *VNI;
 1327     const VNInfo *DefVNI = LI.getVNInfoBefore(LIS->getMBBEndIdx(BB));
 1767   const VNInfo *LastLocalVN = LocalLI->getVNInfoBefore(LocalLI->endIndex());
lib/CodeGen/MachineVerifier.cpp
  253     void report_context(const VNInfo &VNI) const;
  280     void verifyLiveRangeValue(const LiveRange&, const VNInfo*, unsigned,
  538 void MachineVerifier::report_context(const VNInfo &VNI) const {
 1898   if (const VNInfo *VNI = LR.getVNInfoAt(DefIdx)) {
 2365                                            const VNInfo *VNI, unsigned Reg,
 2370   const VNInfo *DefVNI = LR.getVNInfoAt(VNI->def);
 2461   const VNInfo *VNI = S.valno;
 2637       const VNInfo *PVNI = LR.getVNInfoBefore(PEnd);
 2673   for (const VNInfo *VNI : LR.valnos)
lib/CodeGen/PHIElimination.cpp
  335       VNInfo *IncomingVNI = IncomingLI.getVNInfoAt(MBBStartIndex);
  351       VNInfo *OrigDestVNI = DestLI.getVNInfoAt(MBBStartIndex);
  361       VNInfo *DestVNI = DestLI.getVNInfoAt(DestCopyIndex.getRegSlot());
  492           VNInfo *VNI = SrcLI.getVNInfoAt(startIdx);
lib/CodeGen/RegisterCoalescer.cpp
  244                               VNInfo *AValNo, VNInfo *BValNo);
  244                               VNInfo *AValNo, VNInfo *BValNo);
  584   VNInfo *BValNo = BS->valno;
  596   VNInfo *AValNo = AS->valno;
  649     VNInfo *SubBValNo = S.getVNInfoAt(CopyIdx);
  651     VNInfo *SubValSNo = S.getVNInfoAt(AValNo->def.getPrevSlot());
  688                                              VNInfo *AValNo,
  689                                              VNInfo *BValNo) {
  715 addSegmentsWithValNo(LiveRange &Dst, VNInfo *DstValNo, const LiveRange &Src,
  716                      const VNInfo *SrcValNo) {
  770   VNInfo *BValNo = IntB.getVNInfoAt(CopyIdx);
  774   VNInfo *AValNo = IntA.getVNInfoAt(CopyIdx.getRegSlot(true));
  895     VNInfo *DVNI = IntB.getVNInfoAt(DefIdx);
  902       VNInfo *SubDVNI = S.getVNInfoAt(DefIdx);
  905       VNInfo *SubBValNo = S.getVNInfoAt(CopyIdx);
  929       VNInfo *ASubValNo = SA.getVNInfoAt(AIdx);
  944             VNInfo *BSubValNo = SR.empty() ? SR.getNextValue(CopyIdx, Allocator)
 1045   VNInfo *AValNo = IntA.getVNInfoAt(CopyIdx);
 1059     VNInfo *PVal = IntA.getVNInfoBefore(LIS->getMBBEndIdx(Pred));
 1150   VNInfo *BValNo = IntB.Query(CopyIdx).valueOutOrDead();
 1160     VNInfo *BValNo = SR.Query(CopyIdx).valueOutOrDead();
 1217   VNInfo *ValNo = SrcInt.Query(CopyIdx).valueIn();
 1388       VNInfo::Allocator& Alloc = LIS->getVNInfoAllocator();
 1419           if (VNInfo *RmValNo = SR.getVNInfoAt(CurrIdx.getRegSlot())) {
 1550   if (VNInfo *V = DstLI.getVNInfoAt(Seg->end)) {
 1568   if (VNInfo *PrevVNI = DstLI.getVNInfoAt(Idx)) {
 1569     VNInfo *VNI = DstLI.getVNInfoAt(RegIndex);
 1578       VNInfo *SVNI = SR.getVNInfoAt(RegIndex);
 1806     if (VNInfo *DefVNI = LRQ.valueDefined()) {
 1807       VNInfo *ReadVNI = LRQ.valueIn();
 1815         if (VNInfo *SDefVNI = SLRQ.valueDefined()) {
 1816           VNInfo *SReadVNI = SLRQ.valueIn();
 2187   SmallVectorImpl<VNInfo*> &NewVNInfo;
 2240     VNInfo *RedefVNI = nullptr;
 2243     VNInfo *OtherVNI = nullptr;
 2286   std::pair<const VNInfo*,unsigned> followCopyChain(const VNInfo *VNI) const;
 2286   std::pair<const VNInfo*,unsigned> followCopyChain(const VNInfo *VNI) const;
 2288   bool valuesIdentical(VNInfo *Value0, VNInfo *Value1, const JoinVals &Other) const;
 2288   bool valuesIdentical(VNInfo *Value0, VNInfo *Value1, const JoinVals &Other) const;
 2337            SmallVectorImpl<VNInfo*> &newVNInfo, const CoalescerPair &cp,
 2404 std::pair<const VNInfo*, unsigned> JoinVals::followCopyChain(
 2405     const VNInfo *VNI) const {
 2419     const VNInfo *ValueIn;
 2457 bool JoinVals::valuesIdentical(VNInfo *Value0, VNInfo *Value1,
 2457 bool JoinVals::valuesIdentical(VNInfo *Value0, VNInfo *Value1,
 2459   const VNInfo *Orig0;
 2465   const VNInfo *Orig1;
 2485   VNInfo *VNI = LR.getValNumInfo(ValNo);
 2557   if (VNInfo *OtherVNI = OtherLRQ.valueDefined()) {
 2786   VNInfo *VNI = LR.getValNumInfo(ValNo);
 2852     VNInfo *VNI = LR.getValNumInfo(i);
 3043       VNInfo *ValueOut = Q.valueOutOrDead();
 3080     if (VNInfo *VNI = SR.Query(Def).valueOutOrDead())
 3093     VNInfo *VNI = LR.getValNumInfo(i);
 3107     VNInfo *VNI = LR.getValNumInfo(i);
 3134       VNInfo *VNI = LR.getValNumInfo(i);
 3212   SmallVector<VNInfo*, 16> NewVNInfo;
 3303   SmallVector<VNInfo*, 16> NewVNInfo;
lib/CodeGen/RenameIndependentSubregs.cpp
  191       const VNInfo *VNI = SR.getVNInfoAt(Pos);
  233       const VNInfo *VNI = SR.getVNInfoAt(Pos);
  279       const VNInfo &VNI = *SR.valnos[I];
  318         const VNInfo &VNI = *SR.valnos[I];
  337             VNInfo *SRVNI = SR.getNextValue(RegDefIdx, Allocator);
lib/CodeGen/SplitKit.cpp
  122   const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd);
  170   for (const VNInfo *VNI : CurLI->valnos)
  415 void SplitEditor::addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original) {
  428       VNInfo *PV = PS.getVNInfoAt(Def);
  456 VNInfo *SplitEditor::defValue(unsigned RegIdx,
  457                               const VNInfo *ParentVNI,
  466   VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator());
  480   if (VNInfo *OldVNI = InsP.first->second.getPointer()) {
  493 void SplitEditor::forceRecompute(unsigned RegIdx, const VNInfo &ParentVNI) {
  495   VNInfo *VNI = VFP.getPointer();
  627 VNInfo *SplitEditor::defFromParent(unsigned RegIdx,
  628                                    VNInfo *ParentVNI,
  642   VNInfo *OrigVNI = OrigLI.getVNInfoAt(UseIdx);
  696   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
  705   VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
  713   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
  722   VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
  733   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Last);
  739   VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
  764   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Boundary);
  784   VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
  795   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
  804   VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
  814   VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
  820   VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
  829   const VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
  847 void SplitEditor::removeBackCopies(SmallVectorImpl<VNInfo*> &Copies) {
  948     DenseSet<unsigned> &NotToHoistSet, SmallVectorImpl<VNInfo *> &BackCopies) {
  951   SmallVector<SmallPtrSet<VNInfo *, 8>, 8> EqualVNs(Parent->getNumValNums());
  952   SmallPtrSet<VNInfo *, 8> DominatedVNIs;
  955   for (VNInfo *VNI : LI->valnos) {
  958     VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
  965     VNInfo *ParentVNI = Parent->getValNumInfo(i);
  968     SmallPtrSetIterator<VNInfo *> It1 = EqualVNs[ParentVNI->id].begin();
  969     SmallPtrSetIterator<VNInfo *> It2 = It1;
 1019   for (VNInfo *VNI : LI->valnos) {
 1022     VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
 1082     VNInfo *ParentVNI = Parent->getValNumInfo(i);
 1099   SmallVector<VNInfo*, 8> BackCopies;
 1100   for (VNInfo *VNI : LI->valnos) {
 1103     VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
 1127     VNInfo *ParentVNI = S.valno;
 1154       if (VNInfo *VNI = VFP.getPointer()) {
 1180         VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
 1200           VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
 1267   for (const VNInfo *V : ParentLI.valnos) {
 1283     for (const VNInfo *V : PS.valnos) {
 1435 void SplitEditor::forceRecomputeVNI(const VNInfo &ParentVNI) {
 1444   SmallPtrSet<const VNInfo *, 8> Visited; ///< whether VNI was/is in worklist.
 1445   SmallVector<const VNInfo *, 4> WorkList;
 1452     const VNInfo &VNI = *WorkList.back();
 1462       VNInfo *PredVNI = ParentLI.getVNInfoBefore(PredEnd);
 1477   for (const VNInfo *ParentVNI : Edit->getParent().valnos) {
lib/CodeGen/SplitKit.h
  318   using ValueForcePair = PointerIntPair<VNInfo *, 1>;
  359   void addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original);
  369   VNInfo *defValue(unsigned RegIdx, const VNInfo *ParentVNI, SlotIndex Idx,
  369   VNInfo *defValue(unsigned RegIdx, const VNInfo *ParentVNI, SlotIndex Idx,
  376   void forceRecompute(unsigned RegIdx, const VNInfo &ParentVNI);
  380   void forceRecomputeVNI(const VNInfo &ParentVNI);
  384   VNInfo *defFromParent(unsigned RegIdx,
  385                         VNInfo *ParentVNI,
  392   void removeBackCopies(SmallVectorImpl<VNInfo*> &Copies);
  401                                   SmallVectorImpl<VNInfo *> &BackCopies);
lib/CodeGen/StackColoring.cpp
  419   VNInfo::Allocator VNInfoAllocator;
  852             VNInfo *VNI = Intervals[Slot]->getValNumInfo(0);
  868       VNInfo *VNI = Intervals[i]->getValNumInfo(0);
lib/CodeGen/TwoAddressInstructionPass.cpp
 1582         VNInfo *VNI = LI.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator());
lib/Target/AMDGPU/SIRegisterInfo.cpp
 1878     VNInfo *V = nullptr;
 1896       if (VNInfo *V = LR.getVNInfoAt(UseIdx)) {
lib/Target/AMDGPU/SIWholeQuadMode.cpp
  287         const VNInfo *Value = LR.Query(LIS->getInstructionIndex(MI)).valueIn();
lib/Target/Hexagon/HexagonExpandCondsets.cpp
 1161   using ValueInfoMap = DenseMap<VNInfo *, VNInfo *>;
 1161   using ValueInfoMap = DenseMap<VNInfo *, VNInfo *>;
 1164     VNInfo *NewVN, *OldVN = I->valno;
lib/Target/PowerPC/PPCVSXFMAMutate.cpp
  110         VNInfo *AddendValNo =
  281         VNInfo *FMAValNo = FMAInt.getVNInfoAt(FMAIdx.getRegSlot());
  305           VNInfo *NewFMAValNo =
lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
   95   VNInfo *FromVNI = FromLI->getVNInfoAt(FromIdx);
  110     VNInfo *WhereVNI = FromLI->getVNInfoAt(WhereIdx);
  115     VNInfo *ToVNI = ToLI->getVNInfoAt(WhereIdx);
lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
  277   if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore(
  295   const VNInfo *DefVNI =
  409   VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst));
  416     VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst));
  627   VNInfo *ValNo = LI.getVNInfoAt(DefIdx);
usr/include/c++/7.4.0/type_traits
 1983     { typedef _Up     type; };