Lines Matching defs:VNI

364         VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator());
365 (void)VNI;
366 LLVM_DEBUG(dbgs() << ' ' << printRegUnit(Unit, TRI) << '#' << VNI->id);
380 for (VNInfo *VNI : VNIs) {
381 if (VNI->isUnused())
383 SlotIndex Def = VNI->def;
384 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI));
415 VNInfo *VNI = WorkList.back().second;
420 // Extend the live range for VNI to be live at Idx.
422 assert(ExtVNI == VNI && "Unexpected existing value number");
425 if (!VNI->isPHIDef() || VNI->def != BlockStart ||
426 !UsedPHIs.insert(VNI).second)
440 // VNI is live-in to MBB.
442 Segments.addSegment(LiveRange::Segment(BlockStart, Idx, VNI));
444 // Make sure VNI is live-out from the predecessors.
450 assert(OldVNI == VNI && "Wrong value out of predecessor");
452 WorkList.push_back(std::make_pair(Stop, VNI));
455 // There was no old VNI. Verify that Stop is jointly dominated
494 VNInfo *VNI = LRQ.valueIn();
495 if (!VNI) {
510 WorkList.push_back(std::make_pair(Idx, VNI));
531 for (VNInfo *VNI : LI.valnos) {
532 if (VNI->isUnused())
534 SlotIndex Def = VNI->def;
536 assert(I != LI.end() && "Missing segment for VNI");
542 if ((I == LI.begin() || std::prev(I)->end < Def) && !VNI->isPHIDef()) {
550 if (VNI->isPHIDef()) {
552 VNI->markUnused();
598 VNInfo *VNI = LRQ.valueIn();
601 if (!VNI)
609 WorkList.push_back(std::make_pair(Idx, VNI));
621 for (VNInfo *VNI : SR.valnos) {
622 if (VNI->isUnused())
624 const LiveRange::Segment *Segment = SR.getSegmentContaining(VNI->def);
625 assert(Segment != nullptr && "Missing segment for VNI");
626 if (Segment->end != VNI->def.getDeadSlot())
628 if (VNI->isPHIDef()) {
630 LLVM_DEBUG(dbgs() << "Dead PHI at " << VNI->def
632 VNI->markUnused();
652 VNInfo *VNI = LRQ.valueOutOrDead();
653 if (!VNI)
659 // If VNI isn't live out from KillMBB, the value is trivially pruned.
666 // VNI is live out of KillMBB.
670 // Find all blocks that are reachable from KillMBB without leaving VNI's live
681 // Check if VNI is live in to MBB.
685 if (LRQ.valueIn() != VNI) {
686 // This block isn't part of the VNI segment. Prune the search.
691 // Prune the search if VNI is killed in MBB.
699 // VNI is live through MBB.
861 LiveIntervals::hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const {
870 if (VNI == LI.getVNInfoBefore(Indexes->getMBBEndIdx(Pred)))
1632 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1634 instrIdx.getDeadSlot(), VNI);
1637 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1638 LiveRange::Segment S(instrIdx.getRegSlot(), lastUseIdx, VNI);
1743 if (VNInfo *VNI = LR->getVNInfoAt(Pos))
1744 LR->removeValNo(VNI);
1751 VNInfo *VNI = LI.getVNInfoAt(Pos);
1752 if (VNI != nullptr) {
1753 assert(VNI->def.getBaseIndex() == Pos.getBaseIndex());
1754 LI.removeValNo(VNI);