Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:VNI

1317   VNInfo *stripCopies(VNInfo *VNI);
1377 /// Find the ultimate value that VNI was copied from.
1378 VNInfo *JoinVals::stripCopies(VNInfo *VNI) {
1379 while (!VNI->isPHIDef()) {
1380 MachineInstr *MI = Indexes->getInstructionFromIndex(VNI->def);
1387 LiveRangeQuery LRQ(LIS->getInterval(Reg), VNI->def);
1390 VNI = LRQ.valueIn();
1392 return VNI;
1406 VNInfo *VNI = LI.getValNumInfo(ValNo);
1407 if (VNI->isUnused()) {
1414 if (VNI->isPHIDef()) {
1418 DefMI = Indexes->getInstructionFromIndex(VNI->def);
1438 V.RedefVNI = LiveRangeQuery(LI, VNI->def).valueIn();
1454 // Find the value in Other that overlaps VNI->def, if any.
1455 LiveRangeQuery OtherLRQ(Other.LI, VNI->def);
1462 assert(SlotIndex::isSameInstr(VNI->def, OtherVNI->def) && "Broken LRQ");
1466 if (OtherVNI->def < VNI->def)
1468 else if (VNI->def < OtherVNI->def && OtherLRQ.valueIn()) {
1482 if (VNI->isPHIDef())
1497 assert(!SlotIndex::isSameInstr(VNI->def, V.OtherVNI->def) && "Broken LRQ");
1521 if (VNI->isPHIDef())
1538 // VNI.
1539 if (OtherLRQ.isKill() && OtherLRQ.endPoint() <= VNI->def)
1542 // Handle the case where VNI and OtherVNI can be proven to be identical:
1548 stripCopies(VNI) == stripCopies(V.OtherVNI))
1556 // 2 %src = BAR <-- VNI
1561 // Here OtherVNI will map to itself in [1;2), but to VNI in [2;5). CR_Replace
1575 assert(VNI->def.isEarlyClobber() &&
1580 // VNI is clobbering live lanes in OtherVNI, but there is still the
1590 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
1672 VNInfo *VNI = LI.getValNumInfo(ValNo);
1673 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
1676 // Scan Other.LI from VNI.def to MBBEnd.
1677 LiveInterval::iterator OtherI = Other.LI.find(VNI->def);
1737 VNInfo *VNI = LI.getValNumInfo(i);
1740 // VNI is known to clobber some lanes in OtherVNI. If we go ahead with the
1751 // Now look at the instructions from VNI->def to TaintExtent (inclusive).
1752 MachineBasicBlock *MBB = Indexes->getMBBFromIndex(VNI->def);
1754 if (!VNI->isPHIDef()) {
1755 MI = Indexes->getInstructionFromIndex(VNI->def);
1756 // No need to check the instruction defining VNI for reads.
1759 assert(!SlotIndex::isSameInstr(VNI->def, TaintExtent.front().first) &&
1760 "Interference ends on VNI->def. Should have been handled earlier");