Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:VNI

324         VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator());
325 (void)VNI;
326 DEBUG(dbgs() << ' ' << PrintRegUnit(Unit, TRI) << '#' << VNI->id);
343 for (auto VNI : VNIs) {
344 if (VNI->isUnused())
346 SlotIndex Def = VNI->def;
347 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI));
364 VNInfo *VNI = WorkList.back().second;
369 // Extend the live range for VNI to be live at Idx.
371 assert(ExtVNI == VNI && "Unexpected existing value number");
374 if (!VNI->isPHIDef() || VNI->def != BlockStart ||
375 !UsedPHIs.insert(VNI).second)
389 // VNI is live-in to MBB.
391 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI));
393 // Make sure VNI is live-out from the predecessors.
398 assert(OldRange.getVNInfoBefore(Stop) == VNI &&
400 WorkList.push_back(std::make_pair(Stop, VNI));
433 VNInfo *VNI = LRQ.valueIn();
434 if (!VNI) {
448 WorkList.push_back(std::make_pair(Idx, VNI));
468 for (auto VNI : LI.valnos) {
469 if (VNI->isUnused())
471 SlotIndex Def = VNI->def;
473 assert(I != LI.end() && "Missing segment for VNI");
479 if ((I == LI.begin() || std::prev(I)->end < Def) && !VNI->isPHIDef()) {
487 if (VNI->isPHIDef()) {
489 VNI->markUnused();
535 VNInfo *VNI = LRQ.valueIn();
538 if (!VNI)
546 WorkList.push_back(std::make_pair(Idx, VNI));
558 for (auto VNI : SR.valnos) {
559 if (VNI->isUnused())
561 const LiveRange::Segment *Segment = SR.getSegmentContaining(VNI->def);
562 assert(Segment != nullptr && "Missing segment for VNI");
563 if (Segment->end != VNI->def.getDeadSlot())
565 if (VNI->isPHIDef()) {
567 DEBUG(dbgs() << "Dead PHI at " << VNI->def << " may separate interval\n");
568 VNI->markUnused();
587 VNInfo *VNI = LRQ.valueOutOrDead();
588 if (!VNI)
594 // If VNI isn't live out from KillMBB, the value is trivially pruned.
601 // VNI is live out of KillMBB.
605 // Find all blocks that are reachable from KillMBB without leaving VNI's live
618 // Check if VNI is live in to MBB.
622 if (LRQ.valueIn() != VNI) {
623 // This block isn't part of the VNI segment. Prune the search.
628 // Prune the search if VNI is killed in MBB.
636 // VNI is live through MBB.
803 LiveIntervals::hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const {
813 if (VNI == LI.getVNInfoBefore(Indexes->getMBBEndIdx(*PI)))
1452 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1454 instrIdx.getDeadSlot(), VNI);
1457 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1458 LiveRange::Segment S(instrIdx.getRegSlot(), lastUseIdx, VNI);
1535 if (VNInfo *VNI = LR->getVNInfoAt(Pos))
1536 LR->removeValNo(VNI);
1541 VNInfo *VNI = LI.getVNInfoAt(Pos);
1542 if (VNI == nullptr)
1544 LI.removeValNo(VNI);