Lines Matching defs:VNI
77 // Map from pair of (StackSlot and Original VNI) to a set of spills which
78 // have the same stackslot and have equal values defined by Original VNI.
195 void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI);
354 VNInfo *VNI = SpillLI.getVNInfoAt(Idx.getRegSlot());
355 assert(VNI && VNI->def == Idx.getRegSlot() && "Not defined by copy");
402 /// eliminateRedundantSpills - SLI:VNI is known to be on the stack. Remove any
404 void InlineSpiller::eliminateRedundantSpills(LiveInterval &SLI, VNInfo *VNI) {
405 assert(VNI && "Missing value");
407 WorkList.push_back(std::make_pair(&SLI, VNI));
412 std::tie(LI, VNI) = WorkList.pop_back_val();
415 << VNI->id << '@' << VNI->def << " in " << *LI << '\n');
421 // Add all of VNI's live range to StackInt.
422 StackInt->MergeValueInAsValue(*LI, VNI, StackInt->getValNumInfo(0));
425 // Find all spills and copies of VNI.
433 if (LI->getVNInfoAt(Idx) != VNI)
468 /// markValueUsed - Remember that VNI failed to rematerialize, so its defining
470 void InlineSpiller::markValueUsed(LiveInterval *LI, VNInfo *VNI) {
472 WorkList.push_back(std::make_pair(LI, VNI));
474 std::tie(LI, VNI) = WorkList.pop_back_val();
475 if (!UsedValues.insert(VNI).second)
478 if (VNI->isPHIDef()) {
479 MachineBasicBlock *MBB = LIS.getMBBFromIndex(VNI->def);
489 MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def);
494 VNInfo *SnipVNI = SnipLI.getVNInfoAt(VNI->def.getRegSlot(true));
612 VNInfo *VNI = *I;
613 if (VNI->isUnused() || VNI->isPHIDef() || UsedValues.count(VNI))
615 MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def);
632 // after rematerialization. To remove a VNI for a vreg from its LiveInterval,
634 // removed, PHI VNI are still left in the LiveInterval.
912 if (VNInfo *VNI = OldLI.getVNInfoAt(Idx.getRegSlot(true)))
913 if (SlotIndex::isSameInstr(Idx, VNI->def))
914 Idx = VNI->def;
1091 "Unexpected VNI");
1095 VNInfo *VNI = LI.getVNInfoAt(Idx);
1096 if (VNI) {