Lines Matching refs:VR
212 unsigned operator[](unsigned VR) const { in operator []()
213 const_iterator F = find(VR); in operator []()
270 const BitTracker::RegisterCell &lookup(unsigned VR) { in lookup()
271 unsigned RInd = TargetRegisterInfo::virtReg2Index(VR); in lookup()
277 CP = CVect[RInd] = &BT.lookup(VR); in lookup()
386 void insert(unsigned VR);
387 void remove(unsigned VR);
439 void OrderedRegisterList::insert(unsigned VR) { in insert() argument
440 iterator L = std::lower_bound(Seq.begin(), Seq.end(), VR, Ord); in insert()
442 Seq.push_back(VR); in insert()
444 Seq.insert(L, VR); in insert()
452 void OrderedRegisterList::remove(unsigned VR) { in remove() argument
453 iterator L = std::lower_bound(Seq.begin(), Seq.end(), VR, Ord); in remove()
528 bool isConstant(unsigned VR) const;
529 bool isSmallConstant(unsigned VR) const;
532 bool findSelfReference(unsigned VR) const;
533 bool findNonSelfReference(unsigned VR) const;
542 bool findRecordInsertForms(unsigned VR, OrderedRegisterList &AVs);
544 void findRemovableRegisters(unsigned VR, IFRecord IF,
549 void pruneCoveredSets(unsigned VR);
550 void pruneUsesTooFar(unsigned VR, const UnsignedMap &RPO, PairMapType &M);
551 void pruneRegCopies(unsigned VR);
645 bool HexagonGenInsert::isConstant(unsigned VR) const { in isConstant()
646 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in isConstant()
657 bool HexagonGenInsert::isSmallConstant(unsigned VR) const { in isSmallConstant()
658 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in isSmallConstant()
702 bool HexagonGenInsert::findSelfReference(unsigned VR) const { in findSelfReference()
703 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in findSelfReference()
706 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == VR) in findSelfReference()
712 bool HexagonGenInsert::findNonSelfReference(unsigned VR) const { in findNonSelfReference()
713 BitTracker::RegisterCell RC = CMS->lookup(VR); in findNonSelfReference()
716 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != VR) in findNonSelfReference()
795 bool HexagonGenInsert::findRecordInsertForms(unsigned VR, in findRecordInsertForms() argument
798 dbgs() << __func__ << ": " << printReg(VR, HRI) in findRecordInsertForms()
807 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in findRecordInsertForms()
833 RegisterCellBitCompareSel RCB(VR, S+L, L, BVO, *CMS); in findRecordInsertForms()
834 iterator NewB = std::lower_bound(B, E, VR, RCB); in findRecordInsertForms()
835 iterator NewE = std::upper_bound(NewB, E, VR, RCB); in findRecordInsertForms()
863 dbgs() << "Prefixes matching register " << printReg(VR, HRI) << "\n"; in findRecordInsertForms()
912 if (!isValidInsertForm(VR, SrcR, InsR, L, S)) in findRecordInsertForms()
915 dbgs() << printReg(VR, HRI) << " = insert(" << printReg(SrcR, HRI) in findRecordInsertForms()
920 IFMap[VR].push_back(RR); in findRecordInsertForms()
954 for (unsigned VR = InsDefs.find_first(); VR; VR = InsDefs.find_next(VR)) { in collectInBlock() local
957 if (!DoConst && isConstant(VR)) in collectInBlock()
963 if (findSelfReference(VR) || isSmallConstant(VR)) in collectInBlock()
966 findRecordInsertForms(VR, AVs); in collectInBlock()
975 for (unsigned VR = InsDefs.find_first(); VR; VR = InsDefs.find_next(VR)) in collectInBlock() local
976 AVs.insert(VR); in collectInBlock()
985 for (unsigned VR = BlockDefs.find_first(); VR; VR = BlockDefs.find_next(VR)) in collectInBlock() local
986 AVs.remove(VR); in collectInBlock()
989 void HexagonGenInsert::findRemovableRegisters(unsigned VR, IFRecord IF, in findRemovableRegisters() argument
998 Regs[S].insert(VR); in findRemovableRegisters()
1037 RMs.remove(VR); in findRemovableRegisters()
1061 void HexagonGenInsert::pruneCoveredSets(unsigned VR) { in pruneCoveredSets() argument
1062 IFMapType::iterator F = IFMap.find(VR); in pruneCoveredSets()
1073 MachineInstr *DefVR = MRI->getVRegDef(VR); in pruneCoveredSets()
1148 void HexagonGenInsert::pruneUsesTooFar(unsigned VR, const UnsignedMap &RPO, in pruneUsesTooFar() argument
1150 IFMapType::iterator F = IFMap.find(VR); in pruneUsesTooFar()
1154 const MachineInstr *DefV = MRI->getVRegDef(VR); in pruneUsesTooFar()
1170 void HexagonGenInsert::pruneRegCopies(unsigned VR) { in pruneRegCopies() argument
1171 IFMapType::iterator F = IFMap.find(VR); in pruneRegCopies()
1401 unsigned VR = I->first; in generateInserts() local
1402 const TargetRegisterClass *RC = MRI->getRegClass(VR); in generateInserts()
1404 RegMap[VR] = NewVR; in generateInserts()
1543 unsigned VR = I->first, Pos = I->second; in runOnMachineFunction() local
1544 dbgs() << printReg(VR, HRI) << " -> " << Pos << "\n"; in runOnMachineFunction()