|
reference, declaration → definition
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; };