Lines Matching defs:VNI
98 const VNInfo *VNI = CurLI->getVNInfoBefore(MBBEnd);
99 if (!VNI)
106 if (!SlotIndex::isEarlierInstr(VNI->def, LSP.second) && VNI->def < MBBEnd)
378 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
382 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator());
387 ValueForcePair(VNI, false)));
392 return VNI;
402 // This is a complex mapping, add liveness for VNI
403 SlotIndex Def = VNI->def;
404 LI->addSegment(LiveInterval::Segment(Def, Def.getDeadSlot(), VNI));
406 return VNI;
412 VNInfo *VNI = VFP.getPointer();
416 if (!VNI) {
423 SlotIndex Def = VNI->def;
425 LI->addSegment(LiveInterval::Segment(Def, Def.getDeadSlot(), VNI));
493 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
494 return VNI->def;
510 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
512 return VNI->def;
526 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
528 RegAssign.insert(VNI->def, End, OpenIdx);
530 return VNI->def;
571 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
573 return VNI->def;
591 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
592 return VNI->def;
606 VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
608 RegAssign.insert(Start, VNI->def, OpenIdx);
610 return VNI->def;
640 VNInfo *VNI = Copies[i];
641 SlotIndex Def = VNI->def;
652 LI->removeValNo(VNI);
656 // Adjust RegAssign if a register assignment is killed at VNI->def. We
745 VNInfo *VNI = *VI;
746 if (VNI->isUnused())
748 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
756 MachineBasicBlock *ValMBB = LIS.getMBBFromIndex(VNI->def);
762 if (VNI->def == ParentVNI->def) {
763 DEBUG(dbgs() << "Direct complement def at " << VNI->def << '\n');
764 Dom = DomPair(ValMBB, VNI->def);
770 DEBUG(dbgs() << "Single complement def at " << VNI->def << '\n');
775 // First time we see ParentVNI. VNI dominates itself.
776 Dom = DomPair(ValMBB, VNI->def);
779 if (!Dom.second.isValid() || VNI->def < Dom.second)
780 Dom.second = VNI->def;
787 Dom = DomPair(ValMBB, VNI->def);
793 DEBUG(dbgs() << "Multi-mapped complement " << VNI->id << '@' << VNI->def
820 VNInfo *VNI = *VI;
821 if (VNI->isUnused())
823 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
825 if (!Dom.first || Dom.second == VNI->def)
827 BackCopies.push_back(VNI);
868 if (VNInfo *VNI = VFP.getPointer()) {
869 DEBUG(dbgs() << ':' << VNI->id);
870 LR.addSegment(LiveInterval::Segment(Start, End, VNI));
894 VNInfo *VNI = LR.extendInBlock(BlockStart, std::min(BlockEnd, End));
895 assert(VNI && "Missing def for complex mapped value");
896 DEBUG(dbgs() << ':' << VNI->id << "*BB#" << MBB->getNumber());
899 LRC.setLiveOutValue(MBB, VNI);
914 VNInfo *VNI = LR.extendInBlock(BlockStart, std::min(BlockEnd, End));
915 assert(VNI && "Missing def for complex mapped parent PHI");
917 LRC.setLiveOutValue(MBB, VNI); // Live-out as well.