Lines Matching defs:VNI

95   const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd);
96 if (!VNI)
103 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd)
144 for (const VNInfo *VNI : CurLI->valnos)
145 if (!VNI->isPHIDef() && !VNI->isUnused())
146 UseSlots.push_back(VNI->def);
389 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
393 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator());
398 ValueForcePair(VNI, false)));
403 return VNI;
413 // This is a complex mapping, add liveness for VNI
414 SlotIndex Def = VNI->def;
415 LI->addSegment(LiveInterval::Segment(Def, Def.getDeadSlot(), VNI));
417 return VNI;
423 VNInfo *VNI = VFP.getPointer();
427 if (!VNI) {
434 SlotIndex Def = VNI->def;
436 LI->addSegment(LiveInterval::Segment(Def, Def.getDeadSlot(), VNI));
510 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
511 return VNI->def;
527 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
529 return VNI->def;
543 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
545 RegAssign.insert(VNI->def, End, OpenIdx);
547 return VNI->def;
588 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
590 return VNI->def;
608 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
609 return VNI->def;
623 VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
625 RegAssign.insert(Start, VNI->def, OpenIdx);
627 return VNI->def;
754 for (VNInfo *VNI : LI->valnos) {
755 if (VNI->isUnused())
757 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
758 EqualVNs[ParentVNI->id].insert(VNI);
761 // For VNI aggregation of each ParentVNI, collect dominated, i.e.,
788 for (auto VNI : DominatedVNIs) {
789 BackCopies.push_back(VNI);
818 for (VNInfo *VNI : LI->valnos) {
819 if (VNI->isUnused())
821 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
829 MachineBasicBlock *ValMBB = LIS.getMBBFromIndex(VNI->def);
836 if (VNI->def == ParentVNI->def) {
837 DEBUG(dbgs() << "Direct complement def at " << VNI->def << '\n');
838 Dom = DomPair(ValMBB, VNI->def);
844 DEBUG(dbgs() << "Single complement def at " << VNI->def << '\n');
849 // First time we see ParentVNI. VNI dominates itself.
850 Dom = DomPair(ValMBB, VNI->def);
853 if (!Dom.second.isValid() || VNI->def < Dom.second)
854 Dom.second = VNI->def;
861 Dom = DomPair(ValMBB, VNI->def);
868 DEBUG(dbgs() << "Multi-mapped complement " << VNI->id << '@' << VNI->def
898 for (VNInfo *VNI : LI->valnos) {
899 if (VNI->isUnused())
901 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
903 if (!Dom.first || Dom.second == VNI->def ||
906 BackCopies.push_back(VNI);
952 if (VNInfo *VNI = VFP.getPointer()) {
953 DEBUG(dbgs() << ':' << VNI->id);
954 LR.addSegment(LiveInterval::Segment(Start, End, VNI));
978 VNInfo *VNI = LR.extendInBlock(BlockStart, std::min(BlockEnd, End));
979 assert(VNI && "Missing def for complex mapped value");
980 DEBUG(dbgs() << ':' << VNI->id << "*BB#" << MBB->getNumber());
983 LRC.setLiveOutValue(&*MBB, VNI);
998 VNInfo *VNI = LR.extendInBlock(BlockStart, std::min(BlockEnd, End));
999 assert(VNI && "Missing def for complex mapped parent PHI");
1001 LRC.setLiveOutValue(&*MBB, VNI); // Live-out as well.
1038 assert(Segment != nullptr && "Missing segment for VNI");