Lines Matching defs:VNI
119 const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd);
120 if (!VNI)
125 if (SlotIndex::isSameInstr(VNI->def, LIP.second))
133 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd)
172 for (const VNInfo *VNI : CurLI->valnos)
173 if (!VNI->isPHIDef() && !VNI->isUnused())
174 UseSlots.push_back(VNI->def);
429 void SplitEditor::addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original) {
431 LI.createDeadDef(VNI);
435 SlotIndex Def = VNI->def;
476 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
480 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator());
483 ValueForcePair FP(Force ? nullptr : VNI, Force);
491 return VNI;
502 // This is a complex mapping, add liveness for VNI
503 addDeadDef(*LI, VNI, Original);
504 return VNI;
509 VNInfo *VNI = VFP.getPointer();
513 if (!VNI) {
520 addDeadDef(LIS.getInterval(Edit->get(RegIdx)), VNI, false);
676 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
677 return VNI->def;
693 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
695 return VNI->def;
715 // can insert the def into the VNI of the use and the tied def/use
727 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
729 RegAssign.insert(VNI->def, End, OpenIdx);
731 return VNI->def;
772 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
774 return VNI->def;
792 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
793 return VNI->def;
810 VNInfo *VNI = defFromParent(RegIdx, ParentVNI, Start, MBB,
812 RegAssign.insert(Start, VNI->def, OpenIdx);
814 return VNI->def;
967 for (VNInfo *VNI : LI->valnos) {
968 if (VNI->isUnused())
970 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
971 EqualVNs[ParentVNI->id].insert(VNI);
974 // For VNI aggregation of each ParentVNI, collect dominated, i.e.,
1029 for (VNInfo *VNI : LI->valnos) {
1030 if (VNI->isUnused())
1032 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
1040 MachineBasicBlock *ValMBB = LIS.getMBBFromIndex(VNI->def);
1047 if (VNI->def == ParentVNI->def) {
1048 LLVM_DEBUG(dbgs() << "Direct complement def at " << VNI->def << '\n');
1049 Dom = DomPair(ValMBB, VNI->def);
1055 LLVM_DEBUG(dbgs() << "Single complement def at " << VNI->def << '\n');
1060 // First time we see ParentVNI. VNI dominates itself.
1061 Dom = DomPair(ValMBB, VNI->def);
1064 if (!Dom.second.isValid() || VNI->def < Dom.second)
1065 Dom.second = VNI->def;
1072 Dom = DomPair(ValMBB, VNI->def);
1079 LLVM_DEBUG(dbgs() << "Multi-mapped complement " << VNI->id << '@'
1080 << VNI->def << " for parent " << ParentVNI->id << '@'
1113 for (VNInfo *VNI : LI->valnos) {
1114 if (VNI->isUnused())
1116 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
1118 if (!Dom.first || Dom.second == VNI->def ||
1121 BackCopies.push_back(VNI);
1167 if (VNInfo *VNI = VFP.getPointer()) {
1168 LLVM_DEBUG(dbgs() << ':' << VNI->id);
1169 LI.addSegment(LiveInterval::Segment(Start, End, VNI));
1193 VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
1194 assert(VNI && "Missing def for complex mapped value");
1195 LLVM_DEBUG(dbgs() << ':' << VNI->id << "*" << printMBBReference(*MBB));
1198 LIC.setLiveOutValue(&*MBB, VNI);
1213 VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
1214 assert(VNI && "Missing def for complex mapped parent PHI");
1216 LIC.setLiveOutValue(&*MBB, VNI); // Live-out as well.
1476 SmallPtrSet<const VNInfo *, 8> Visited; ///< whether VNI was/is in worklist.
1484 const VNInfo &VNI = *WorkList.back();
1487 forceRecompute(I, VNI);
1488 if (!VNI.isPHIDef())
1491 MachineBasicBlock &MBB = *Indexes.getMBBFromIndex(VNI.def);