Lines Matching defs:VNI

120   const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd);
121 if (!VNI)
126 if (SlotIndex::isSameInstr(VNI->def, LIP.second))
134 if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd)
173 for (const VNInfo *VNI : CurLI->valnos)
174 if (!VNI->isPHIDef() && !VNI->isUnused())
175 UseSlots.push_back(VNI->def);
430 void SplitEditor::addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original) {
432 LI.createDeadDef(VNI);
436 SlotIndex Def = VNI->def;
477 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
481 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator());
484 ValueForcePair FP(Force ? nullptr : VNI, Force);
492 return VNI;
503 // This is a complex mapping, add liveness for VNI
504 addDeadDef(*LI, VNI, Original);
505 return VNI;
510 VNInfo *VNI = VFP.getPointer();
514 if (!VNI) {
521 addDeadDef(LIS.getInterval(Edit->get(RegIdx)), VNI, false);
677 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
678 return VNI->def;
694 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
696 return VNI->def;
716 // can insert the def into the VNI of the use and the tied def/use
728 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
730 RegAssign.insert(VNI->def, End, OpenIdx);
732 return VNI->def;
773 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
775 return VNI->def;
793 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
794 return VNI->def;
811 VNInfo *VNI = defFromParent(RegIdx, ParentVNI, Start, MBB,
813 RegAssign.insert(Start, VNI->def, OpenIdx);
815 return VNI->def;
968 for (VNInfo *VNI : LI->valnos) {
969 if (VNI->isUnused())
971 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
972 EqualVNs[ParentVNI->id].insert(VNI);
975 // For VNI aggregation of each ParentVNI, collect dominated, i.e.,
1030 for (VNInfo *VNI : LI->valnos) {
1031 if (VNI->isUnused())
1033 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
1041 MachineBasicBlock *ValMBB = LIS.getMBBFromIndex(VNI->def);
1048 if (VNI->def == ParentVNI->def) {
1049 LLVM_DEBUG(dbgs() << "Direct complement def at " << VNI->def << '\n');
1050 Dom = DomPair(ValMBB, VNI->def);
1056 LLVM_DEBUG(dbgs() << "Single complement def at " << VNI->def << '\n');
1061 // First time we see ParentVNI. VNI dominates itself.
1062 Dom = DomPair(ValMBB, VNI->def);
1065 if (!Dom.second.isValid() || VNI->def < Dom.second)
1066 Dom.second = VNI->def;
1073 Dom = DomPair(ValMBB, VNI->def);
1080 LLVM_DEBUG(dbgs() << "Multi-mapped complement " << VNI->id << '@'
1081 << VNI->def << " for parent " << ParentVNI->id << '@'
1114 for (VNInfo *VNI : LI->valnos) {
1115 if (VNI->isUnused())
1117 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
1119 if (!Dom.first || Dom.second == VNI->def ||
1122 BackCopies.push_back(VNI);
1168 if (VNInfo *VNI = VFP.getPointer()) {
1169 LLVM_DEBUG(dbgs() << ':' << VNI->id);
1170 LI.addSegment(LiveInterval::Segment(Start, End, VNI));
1194 VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
1195 assert(VNI && "Missing def for complex mapped value");
1196 LLVM_DEBUG(dbgs() << ':' << VNI->id << "*" << printMBBReference(*MBB));
1199 LIC.setLiveOutValue(&*MBB, VNI);
1214 VNInfo *VNI = LI.extendInBlock(BlockStart, std::min(BlockEnd, End));
1215 assert(VNI && "Missing def for complex mapped parent PHI");
1217 LIC.setLiveOutValue(&*MBB, VNI); // Live-out as well.
1477 SmallPtrSet<const VNInfo *, 8> Visited; ///< whether VNI was/is in worklist.
1485 const VNInfo &VNI = *WorkList.back();
1488 forceRecompute(I, VNI);
1489 if (!VNI.isPHIDef())
1492 MachineBasicBlock &MBB = *Indexes.getMBBFromIndex(VNI.def);