Lines Matching defs:VNI

1143     for (auto *VNI : IntB.valnos) {
1144 if (VNI->isUnused())
1146 if (PVal->def < VNI->def && VNI->def < LIS->getMBBEndIdx(Pred)) {
1604 // VNI is in ValNo - remove any segments in this SubRange that have
1780 VNInfo *VNI = DstLI.getVNInfoAt(RegIndex);
1781 DstLI.MergeValueNumberInto(VNI, PrevVNI);
2587 /// Find the ultimate value that VNI was copied from.
2588 std::pair<const VNInfo *, Register> followCopyChain(const VNInfo *VNI) const;
2714 JoinVals::followCopyChain(const VNInfo *VNI) const {
2717 while (!VNI->isPHIDef()) {
2718 SlotIndex Def = VNI->def;
2722 return std::make_pair(VNI, TrackReg);
2725 return std::make_pair(VNI, TrackReg);
2748 return std::make_pair(VNI, TrackReg);
2760 VNI = ValueIn;
2763 return std::make_pair(VNI, TrackReg);
2794 VNInfo *VNI = LR.getValNumInfo(ValNo);
2795 if (VNI->isUnused()) {
2802 if (VNI->isPHIDef()) {
2808 DefMI = Indexes->getInstructionFromIndex(VNI->def);
2837 V.RedefVNI = LR.Query(VNI->def).valueIn();
2859 // Find the value in Other that overlaps VNI->def, if any.
2860 LiveQueryResult OtherLRQ = Other.LR.Query(VNI->def);
2867 assert(SlotIndex::isSameInstr(VNI->def, OtherVNI->def) && "Broken LRQ");
2871 if (OtherVNI->def < VNI->def)
2873 else if (VNI->def < OtherVNI->def && OtherLRQ.valueIn()) {
2889 if (VNI->isPHIDef())
2904 assert(!SlotIndex::isSameInstr(VNI->def, V.OtherVNI->def) && "Broken LRQ");
2950 if (VNI->isPHIDef())
2967 // VNI.
2968 if (OtherLRQ.isKill() && OtherLRQ.endPoint() <= VNI->def)
2971 // Handle the case where VNI and OtherVNI can be proven to be identical:
2977 valuesIdentical(VNI, V.OtherVNI, Other)) {
2993 // 2 %src = BAR <-- VNI
2998 // Here OtherVNI will map to itself in [1;2), but to VNI in [2;5). CR_Replace
3012 assert(VNI->def.isEarlyClobber() &&
3017 // VNI is clobbering live lanes in OtherVNI, but there is still the
3034 // If we are clobbering some active lanes of OtherVNI at VNI->def, it is
3043 auto OtherSRQ = OtherSR.Query(VNI->def);
3044 if (OtherSRQ.valueIn() && OtherSRQ.endPoint() > VNI->def) {
3045 // VNI is clobbering some lanes of OtherVNI, they have real conflict.
3050 // VNI is NOT clobbering any lane of OtherVNI, just replace OtherVNI.
3057 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3123 VNInfo *VNI = LR.getValNumInfo(ValNo);
3124 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3127 // Scan Other.LR from VNI.def to MBBEnd.
3128 LiveInterval::iterator OtherI = Other.LR.find(VNI->def);
3190 VNInfo *VNI = LR.getValNumInfo(i);
3193 // VNI is known to clobber some lanes in OtherVNI. If we go ahead with the
3204 // Now look at the instructions from VNI->def to TaintExtent (inclusive).
3205 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
3207 if (!VNI->isPHIDef()) {
3208 MI = Indexes->getInstructionFromIndex(VNI->def);
3209 if (!VNI->def.isEarlyClobber()) {
3210 // No need to check the instruction defining VNI for reads.
3214 assert(!SlotIndex::isSameInstr(VNI->def, TaintExtent.front().first) &&
3215 "Interference ends on VNI->def. Should have been handled earlier");
3437 if (VNInfo *VNI = SR.Query(Def).valueOutOrDead())
3438 if (VNI->def == Def)
3450 VNInfo *VNI = LR.getValNumInfo(i);
3451 if (VNI->isUnused() || VNI->isPHIDef() || isDefInSubRange(LI, VNI->def))
3464 VNInfo *VNI = LR.getValNumInfo(i);
3465 VNI->markUnused();
3466 LR.removeValNo(VNI);
3475 VNInfo *VNI = LR.getValNumInfo(i);
3476 SlotIndex Def = VNI->def;
3503 LR.removeValNo(VNI);
3506 VNI->markUnused();