Lines Matching defs:VNI
1141 for (auto *VNI : IntB.valnos) {
1142 if (VNI->isUnused())
1144 if (PVal->def < VNI->def && VNI->def < LIS->getMBBEndIdx(Pred)) {
1558 // VNI is in ValNo - remove any segments in this SubRange that have
1734 VNInfo *VNI = DstLI.getVNInfoAt(RegIndex);
1735 DstLI.MergeValueNumberInto(VNI, PrevVNI);
2538 /// Find the ultimate value that VNI was copied from.
2539 std::pair<const VNInfo *, Register> followCopyChain(const VNInfo *VNI) const;
2664 JoinVals::followCopyChain(const VNInfo *VNI) const {
2667 while (!VNI->isPHIDef()) {
2668 SlotIndex Def = VNI->def;
2672 return std::make_pair(VNI, TrackReg);
2675 return std::make_pair(VNI, TrackReg);
2698 return std::make_pair(VNI, TrackReg);
2710 VNI = ValueIn;
2713 return std::make_pair(VNI, TrackReg);
2744 VNInfo *VNI = LR.getValNumInfo(ValNo);
2745 if (VNI->isUnused()) {
2752 if (VNI->isPHIDef()) {
2758 DefMI = Indexes->getInstructionFromIndex(VNI->def);
2787 V.RedefVNI = LR.Query(VNI->def).valueIn();
2809 // Find the value in Other that overlaps VNI->def, if any.
2810 LiveQueryResult OtherLRQ = Other.LR.Query(VNI->def);
2817 assert(SlotIndex::isSameInstr(VNI->def, OtherVNI->def) && "Broken LRQ");
2821 if (OtherVNI->def < VNI->def)
2823 else if (VNI->def < OtherVNI->def && OtherLRQ.valueIn()) {
2839 if (VNI->isPHIDef())
2854 assert(!SlotIndex::isSameInstr(VNI->def, V.OtherVNI->def) && "Broken LRQ");
2900 if (VNI->isPHIDef())
2917 // VNI.
2918 if (OtherLRQ.isKill() && OtherLRQ.endPoint() <= VNI->def)
2921 // Handle the case where VNI and OtherVNI can be proven to be identical:
2927 valuesIdentical(VNI, V.OtherVNI, Other)) {
2943 // 2 %src = BAR <-- VNI
2948 // Here OtherVNI will map to itself in [1;2), but to VNI in [2;5). CR_Replace
2962 assert(VNI->def.isEarlyClobber() &&
2967 // VNI is clobbering live lanes in OtherVNI, but there is still the
2984 // If we are clobbering some active lanes of OtherVNI at VNI->def, it is
2993 auto OtherSRQ = OtherSR.Query(VNI->def);
2994 if (OtherSRQ.valueIn() && OtherSRQ.endPoint() > VNI->def) {
2995 // VNI is clobbering some lanes of OtherVNI, they have real conflict.
3000 // VNI is NOT clobbering any lane of OtherVNI, just replace OtherVNI.
3007 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3073 VNInfo *VNI = LR.getValNumInfo(ValNo);
3074 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3077 // Scan Other.LR from VNI.def to MBBEnd.
3078 LiveInterval::iterator OtherI = Other.LR.find(VNI->def);
3140 VNInfo *VNI = LR.getValNumInfo(i);
3143 // VNI is known to clobber some lanes in OtherVNI. If we go ahead with the
3154 // Now look at the instructions from VNI->def to TaintExtent (inclusive).
3155 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3157 if (!VNI->isPHIDef()) {
3158 MI = Indexes->getInstructionFromIndex(VNI->def);
3159 if (!VNI->def.isEarlyClobber()) {
3160 // No need to check the instruction defining VNI for reads.
3164 assert(!SlotIndex::isSameInstr(VNI->def, TaintExtent.front().first) &&
3165 "Interference ends on VNI->def. Should have been handled earlier");
3387 if (VNInfo *VNI = SR.Query(Def).valueOutOrDead())
3388 if (VNI->def == Def)
3400 VNInfo *VNI = LR.getValNumInfo(i);
3401 if (VNI->isUnused() || VNI->isPHIDef() || isDefInSubRange(LI, VNI->def))
3414 VNInfo *VNI = LR.getValNumInfo(i);
3415 VNI->markUnused();
3416 LR.removeValNo(VNI);
3425 VNInfo *VNI = LR.getValNumInfo(i);
3426 SlotIndex Def = VNI->def;
3453 LR.removeValNo(VNI);
3456 VNI->markUnused();