Lines Matching refs:VNI

122     SibValueInfo(unsigned Reg, VNInfo *VNI)  in SibValueInfo()
124 SpillReg(Reg), SpillVNI(VNI), SpillMBB(nullptr), DefMI(nullptr) {} in SibValueInfo()
165 void propagateSiblingValue(SibValueMap::iterator, VNInfo *VNI = nullptr);
169 void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI);
349 VNInfo *VNI) { in propagateSiblingValue() argument
354 if (VNI) { in propagateSiblingValue()
355 FirstDeps.push_back(VNI); in propagateSiblingValue()
356 SVI->second.Deps.push_back(VNI); in propagateSiblingValue()
369 TinyPtrVector<VNInfo*> *Deps = VNI ? &FirstDeps : &SVI->second.Deps; in propagateSiblingValue()
370 VNI = nullptr; in propagateSiblingValue()
514 VNInfo *VNI; in traceSiblingValue() local
515 std::tie(Reg, VNI) = WorkList.pop_back_val(); in traceSiblingValue()
516 DEBUG(dbgs() << " " << PrintReg(Reg) << ':' << VNI->id << '@' << VNI->def in traceSiblingValue()
520 SVI = SibValues.find(VNI); in traceSiblingValue()
524 if (VNI->isPHIDef()) { in traceSiblingValue()
529 if (VNI->def == OrigLI.getVNInfoAt(VNI->def)->def) { in traceSiblingValue()
593 MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def); in traceSiblingValue()
600 LiveQueryResult SrcQ = SrcLI.Query(VNI->def); in traceSiblingValue()
614 propagateSiblingValue(SVI, VNI); in traceSiblingValue()
662 VNInfo *VNI = *VI; in analyzeSiblingValues() local
663 if (VNI->isUnused()) in analyzeSiblingValues()
666 if (!VNI->isPHIDef()) { in analyzeSiblingValues()
667 DefMI = LIS.getInstructionFromIndex(VNI->def); in analyzeSiblingValues()
671 if (VNI->isPHIDef() || DefMI->isCopy()) { in analyzeSiblingValues()
672 VNInfo *OrigVNI = OrigLI.getVNInfoAt(VNI->def); in analyzeSiblingValues()
674 if (OrigVNI->def != VNI->def) in analyzeSiblingValues()
675 DefMI = traceSiblingValue(Reg, VNI, OrigVNI); in analyzeSiblingValues()
677 if (DefMI && Edit->checkRematerializable(VNI, DefMI, AA)) { in analyzeSiblingValues()
678 DEBUG(dbgs() << "Value " << PrintReg(Reg) << ':' << VNI->id << '@' in analyzeSiblingValues()
679 << VNI->def << " may remat from " << *DefMI); in analyzeSiblingValues()
689 VNInfo *VNI = SpillLI.getVNInfoAt(Idx.getRegSlot()); in hoistSpill() local
690 assert(VNI && VNI->def == Idx.getRegSlot() && "Not defined by copy"); in hoistSpill()
691 SibValueMap::iterator I = SibValues.find(VNI); in hoistSpill()
698 if (!SVI.AllDefsAreReloads && SVI.SpillVNI == VNI) in hoistSpill()
759 void InlineSpiller::eliminateRedundantSpills(LiveInterval &SLI, VNInfo *VNI) { in eliminateRedundantSpills() argument
760 assert(VNI && "Missing value"); in eliminateRedundantSpills()
762 WorkList.push_back(std::make_pair(&SLI, VNI)); in eliminateRedundantSpills()
767 std::tie(LI, VNI) = WorkList.pop_back_val(); in eliminateRedundantSpills()
770 << VNI->id << '@' << VNI->def << " in " << *LI << '\n'); in eliminateRedundantSpills()
777 StackInt->MergeValueInAsValue(*LI, VNI, StackInt->getValNumInfo(0)); in eliminateRedundantSpills()
788 if (LI->getVNInfoAt(Idx) != VNI) in eliminateRedundantSpills()
824 void InlineSpiller::markValueUsed(LiveInterval *LI, VNInfo *VNI) { in markValueUsed() argument
826 WorkList.push_back(std::make_pair(LI, VNI)); in markValueUsed()
828 std::tie(LI, VNI) = WorkList.pop_back_val(); in markValueUsed()
829 if (!UsedValues.insert(VNI).second) in markValueUsed()
832 if (VNI->isPHIDef()) { in markValueUsed()
833 MachineBasicBlock *MBB = LIS.getMBBFromIndex(VNI->def); in markValueUsed()
844 MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def); in markValueUsed()
849 VNInfo *SnipVNI = SnipLI.getVNInfoAt(VNI->def.getRegSlot(true)); in markValueUsed()
971 VNInfo *VNI = *I; in reMaterializeAll() local
972 if (VNI->isUnused() || VNI->isPHIDef() || UsedValues.count(VNI)) in reMaterializeAll()
974 MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def); in reMaterializeAll()
1261 if (VNInfo *VNI = OldLI.getVNInfoAt(Idx.getRegSlot(true))) in spillAroundUses() local
1262 if (SlotIndex::isSameInstr(Idx, VNI->def)) in spillAroundUses()
1263 Idx = VNI->def; in spillAroundUses()