Lines Matching refs:VR
215 unsigned operator[](unsigned VR) const { in operator []()
216 const_iterator F = find(VR); in operator []()
273 const BitTracker::RegisterCell &lookup(unsigned VR) { in lookup()
274 unsigned RInd = Register::virtReg2Index(VR); in lookup()
280 CP = CVect[RInd] = &BT.lookup(VR); in lookup()
389 void insert(unsigned VR);
390 void remove(unsigned VR);
442 void OrderedRegisterList::insert(unsigned VR) { in insert() argument
443 iterator L = llvm::lower_bound(Seq, VR, Ord); in insert()
445 Seq.push_back(VR); in insert()
447 Seq.insert(L, VR); in insert()
455 void OrderedRegisterList::remove(unsigned VR) { in remove() argument
456 iterator L = llvm::lower_bound(Seq, VR, Ord); in remove()
531 bool isConstant(unsigned VR) const;
532 bool isSmallConstant(unsigned VR) const;
535 bool findSelfReference(unsigned VR) const;
536 bool findNonSelfReference(unsigned VR) const;
545 bool findRecordInsertForms(unsigned VR, OrderedRegisterList &AVs);
547 void findRemovableRegisters(unsigned VR, IFRecord IF,
552 void pruneCoveredSets(unsigned VR);
553 void pruneUsesTooFar(unsigned VR, const UnsignedMap &RPO, PairMapType &M);
554 void pruneRegCopies(unsigned VR);
639 bool HexagonGenInsert::isConstant(unsigned VR) const { in isConstant()
640 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in isConstant()
651 bool HexagonGenInsert::isSmallConstant(unsigned VR) const { in isSmallConstant()
652 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in isSmallConstant()
696 bool HexagonGenInsert::findSelfReference(unsigned VR) const { in findSelfReference()
697 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in findSelfReference()
700 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == VR) in findSelfReference()
706 bool HexagonGenInsert::findNonSelfReference(unsigned VR) const { in findNonSelfReference()
707 BitTracker::RegisterCell RC = CMS->lookup(VR); in findNonSelfReference()
710 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != VR) in findNonSelfReference()
784 bool HexagonGenInsert::findRecordInsertForms(unsigned VR, in findRecordInsertForms() argument
787 dbgs() << __func__ << ": " << printReg(VR, HRI) in findRecordInsertForms()
796 const BitTracker::RegisterCell &RC = CMS->lookup(VR); in findRecordInsertForms()
822 RegisterCellBitCompareSel RCB(VR, S+L, L, BVO, *CMS); in findRecordInsertForms()
823 iterator NewB = std::lower_bound(B, E, VR, RCB); in findRecordInsertForms()
824 iterator NewE = std::upper_bound(NewB, E, VR, RCB); in findRecordInsertForms()
852 dbgs() << "Prefixes matching register " << printReg(VR, HRI) << "\n"; in findRecordInsertForms()
899 if (!isValidInsertForm(VR, SrcR, InsR, L, S)) in findRecordInsertForms()
902 dbgs() << printReg(VR, HRI) << " = insert(" << printReg(SrcR, HRI) in findRecordInsertForms()
907 IFMap[VR].push_back(RR); in findRecordInsertForms()
940 for (unsigned VR = InsDefs.find_first(); VR; VR = InsDefs.find_next(VR)) { in collectInBlock() local
943 if (!DoConst && isConstant(VR)) in collectInBlock()
949 if (findSelfReference(VR) || isSmallConstant(VR)) in collectInBlock()
952 findRecordInsertForms(VR, AVs); in collectInBlock()
961 for (unsigned VR = InsDefs.find_first(); VR; VR = InsDefs.find_next(VR)) in collectInBlock() local
962 AVs.insert(VR); in collectInBlock()
971 for (unsigned VR = BlockDefs.find_first(); VR; VR = BlockDefs.find_next(VR)) in collectInBlock() local
972 AVs.remove(VR); in collectInBlock()
975 void HexagonGenInsert::findRemovableRegisters(unsigned VR, IFRecord IF, in findRemovableRegisters() argument
984 Regs[S].insert(VR); in findRemovableRegisters()
1023 RMs.remove(VR); in findRemovableRegisters()
1047 void HexagonGenInsert::pruneCoveredSets(unsigned VR) { in pruneCoveredSets() argument
1048 IFMapType::iterator F = IFMap.find(VR); in pruneCoveredSets()
1059 MachineInstr *DefVR = MRI->getVRegDef(VR); in pruneCoveredSets()
1132 void HexagonGenInsert::pruneUsesTooFar(unsigned VR, const UnsignedMap &RPO, in pruneUsesTooFar() argument
1134 IFMapType::iterator F = IFMap.find(VR); in pruneUsesTooFar()
1138 const MachineInstr *DefV = MRI->getVRegDef(VR); in pruneUsesTooFar()
1154 void HexagonGenInsert::pruneRegCopies(unsigned VR) { in pruneRegCopies() argument
1155 IFMapType::iterator F = IFMap.find(VR); in pruneRegCopies()
1383 unsigned VR = I.first; in generateInserts() local
1384 const TargetRegisterClass *RC = MRI->getRegClass(VR); in generateInserts()
1386 RegMap[VR] = NewVR; in generateInserts()
1522 unsigned VR = I.first, Pos = I.second; in runOnMachineFunction() local
1523 dbgs() << printReg(VR, HRI) << " -> " << Pos << "\n"; in runOnMachineFunction()