Lines Matching refs:VNI
770 VNInfo *VNI = li->getVNInfoAt(Idx); in shrinkToUses() local
771 if (!VNI) { in shrinkToUses()
780 if (VNI->def == Idx) { in shrinkToUses()
784 VNI = li->getVNInfoAt(Idx); in shrinkToUses()
785 assert(VNI && "Early-clobber tied value not available"); in shrinkToUses()
787 WorkList.push_back(std::make_pair(Idx, VNI)); in shrinkToUses()
794 VNInfo *VNI = *I; in shrinkToUses() local
795 if (VNI->isUnused()) in shrinkToUses()
797 NewLI.addRange(LiveRange(VNI->def, VNI->def.getNextSlot(), VNI)); in shrinkToUses()
802 if (VNI->def.isUse()) in shrinkToUses()
803 if (VNInfo *UVNI = li->getVNInfoAt(VNI->def.getLoadIndex())) in shrinkToUses()
804 WorkList.push_back(std::make_pair(VNI->def.getLoadIndex(), UVNI)); in shrinkToUses()
813 VNInfo *VNI = WorkList.back().second; in shrinkToUses() local
821 assert(ExtVNI == VNI && "Unexpected existing value number"); in shrinkToUses()
823 if (!VNI->isPHIDef() || VNI->def != BlockStart || !UsedPHIs.insert(VNI)) in shrinkToUses()
840 NewLI.addRange(LiveRange(BlockStart, Idx.getNextSlot(), VNI)); in shrinkToUses()
848 assert(li->getVNInfoAt(Stop) == VNI && "Wrong value out of predecessor"); in shrinkToUses()
849 WorkList.push_back(std::make_pair(Stop, VNI)); in shrinkToUses()
857 VNInfo *VNI = *I; in shrinkToUses() local
858 if (VNI->isUnused()) in shrinkToUses()
860 LiveInterval::iterator LII = NewLI.FindLiveRangeContaining(VNI->def); in shrinkToUses()
862 if (LII->end != VNI->def.getNextSlot()) in shrinkToUses()
864 if (VNI->isPHIDef()) { in shrinkToUses()
866 VNI->setIsUnused(true); in shrinkToUses()
868 DEBUG(dbgs() << "Dead PHI at " << VNI->def << " may separate interval\n"); in shrinkToUses()
872 MachineInstr *MI = getInstructionFromIndex(VNI->def); in shrinkToUses()
876 DEBUG(dbgs() << "All defs dead: " << VNI->def << '\t' << *MI); in shrinkToUses()
1031 const VNInfo *VNI = *i; in isReMaterializable() local
1032 if (VNI->isUnused()) in isReMaterializable()
1035 MachineInstr *ReMatDefMI = getInstructionFromIndex(VNI->def); in isReMaterializable()
1040 !isReMaterializable(li, VNI, ReMatDefMI, SpillIs, DefIsLoad)) in isReMaterializable()
1194 rewriteInstructionForSpills(const LiveInterval &li, const VNInfo *VNI, in rewriteInstructionForSpills() argument
1323 if (ReMatIds[VNI->id] == VirtRegMap::MAX_STACK_SLOT) { in rewriteInstructionForSpills()
1325 ReMatIds[VNI->id] = vrm.assignVirtReMatId(NewVReg); in rewriteInstructionForSpills()
1327 vrm.assignVirtReMatId(NewVReg, ReMatIds[VNI->id]); in rewriteInstructionForSpills()
1395 const VNInfo *VNI, in anyKillInMBBAfterIdx() argument
1573 const VNInfo *VNI = li.findDefinedVNInfoForRegInt(index.getDefIndex()); in rewriteInstructionsForSpills() local
1574 if (VNI) in rewriteInstructionsForSpills()
1575 HasKill = anyKillInMBBAfterIdx(li, VNI, MBB, index.getDefIndex()); in rewriteInstructionsForSpills()
1827 const VNInfo *VNI = *i; in addIntervalsForSpills() local
1828 unsigned VN = VNI->id; in addIntervalsForSpills()
1829 if (VNI->isUnused()) in addIntervalsForSpills()
1832 MachineInstr *ReMatDefMI = getInstructionFromIndex(VNI->def); in addIntervalsForSpills()
1834 if (ReMatDefMI && isReMaterializable(li, VNI, ReMatDefMI, SpillIs, dummy)) { in addIntervalsForSpills()
1843 if (VNI->hasPHIKill()) { in addIntervalsForSpills()