Lines Matching refs:CodeGenRegister
157 CodeGenRegister::CodeGenRegister(Record *R, unsigned Enum) in CodeGenRegister() function in CodeGenRegister
169 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) { in buildObjectGraph()
194 CodeGenRegister *Reg = RegBank.getReg(Alias); in buildObjectGraph()
200 const StringRef CodeGenRegister::getName() const { in getName()
209 CodeGenRegister::Vec::const_iterator RegI, RegE;
210 CodeGenRegister::RegUnitList::iterator UnitI, UnitE;
213 RegUnitIterator(const CodeGenRegister::Vec &Regs): in RegUnitIterator()
227 const CodeGenRegister *getReg() const { assert(isValid()); return *RegI; } in getReg()
250 static bool hasRegUnit(CodeGenRegister::RegUnitList &RegUnits, unsigned Unit) { in hasRegUnit()
256 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) { in inheritRegUnits()
259 CodeGenRegister *SR = SubReg.second; in inheritRegUnits()
267 const CodeGenRegister::SubRegMap &
268 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) { in computeSubRegs()
278 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
291 SmallPtrSet<CodeGenRegister*, 8> Orphans; in computeSubRegs()
295 for (CodeGenRegister *ESR : ExplicitSubRegs) { in computeSubRegs()
313 CodeGenRegister *SR = SubRegs[Idx]; in computeSubRegs()
351 CodeGenRegister *SR = SubRegs[Idx]; in computeSubRegs()
373 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins = in computeSubRegs()
391 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
415 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
429 CodeGenRegister *AR = ExplicitAliases[i]; in computeSubRegs()
466 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) { in computeSecondarySubRegs()
469 std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue; in computeSecondarySubRegs()
470 for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs) in computeSecondarySubRegs()
478 const CodeGenRegister *SubReg; in computeSecondarySubRegs()
482 const CodeGenRegister::SuperRegList &Leads = SubReg->LeadingSuperRegs; in computeSecondarySubRegs()
484 CodeGenRegister *Cand = const_cast<CodeGenRegister*>(Leads[i]); in computeSecondarySubRegs()
498 for (CodeGenRegister *SubReg : Cand->ExplicitSubRegs) { in computeSecondarySubRegs()
519 std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg = in computeSecondarySubRegs()
535 CodeGenRegister *NewSubReg = NewSubRegs[i].second; in computeSecondarySubRegs()
547 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) { in computeSuperRegs()
578 CodeGenRegister::addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet, in addSubRegsPreOrder()
582 CodeGenRegister *SR = ExplicitSubRegs[i]; in addSubRegsPreOrder()
593 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const { in getWeight()
728 static void sortAndUniqueRegisters(CodeGenRegister::Vec &M) { in sortAndUniqueRegisters()
758 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]); in CodeGenRegisterClass()
772 CodeGenRegister *Reg = RegBank.getReg(Order.back()); in CodeGenRegisterClass()
852 bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const { in contains()
1167 const CodeGenRegister *SR = P.second; in CodeGenRegBank()
1217 CodeGenRegister *CodeGenRegBank::getReg(Record *Def) { in getReg()
1218 CodeGenRegister *&Reg = Def2Reg[Def]; in getReg()
1239 const CodeGenRegister::Vec *Members, in getOrCreateSubClass()
1313 using RegMap = std::map<const CodeGenRegister*, const CodeGenRegister*>; in computeComposites()
1319 for (const CodeGenRegister &R : Registers) { in computeComposites()
1320 const CodeGenRegister::SubRegMap &SM = R.getSubRegs(); in computeComposites()
1321 for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM) in computeComposites()
1332 for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Img1) { in computeComposites()
1347 for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Map1) { in computeComposites()
1372 const CodeGenRegister::SubRegMap &SRM1 = Reg1.getSubRegs(); in computeComposites()
1373 for (CodeGenRegister::SubRegMap::const_iterator i1 = SRM1.begin(), in computeComposites()
1376 CodeGenRegister *Reg2 = i1->second; in computeComposites()
1380 const CodeGenRegister::SubRegMap &SRM2 = Reg2->getSubRegs(); in computeComposites()
1382 for (CodeGenRegister::SubRegMap::const_iterator i2 = SRM2.begin(), in computeComposites()
1385 CodeGenRegister *Reg3 = i2->second; in computeComposites()
1561 CodeGenRegister::Vec Regs;
1563 CodeGenRegister::RegUnitList SingularDeterminants;
1590 const CodeGenRegister::Vec &Regs = RegClass.getMembers(); in computeUberSets()
1620 for (const CodeGenRegister &Reg : Registers) { in computeUberSets()
1642 const CodeGenRegister *Reg = nullptr; in computeUberWeights()
1692 static bool normalizeWeight(CodeGenRegister *Reg, in normalizeWeight()
1696 CodeGenRegister::RegUnitList &NormalUnits, in normalizeWeight()
1704 const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs(); in normalizeWeight()
1705 for (CodeGenRegister::SubRegMap::const_iterator SRI = SRM.begin(), in normalizeWeight()
1771 CodeGenRegister::RegUnitList NormalUnits; in computeRegUnitWeights()
2036 CodeGenRegister::RegUnitLaneMaskList in computeRegUnitLaneMasks()
2039 typedef CodeGenRegister::SubRegMap SubRegMap; in computeRegUnitLaneMasks()
2043 CodeGenRegister *SubReg = S->second; in computeRegUnitLaneMasks()
2049 const CodeGenRegister *SubRegister = S->second; in computeRegUnitLaneMasks()
2089 for (const CodeGenRegister *Reg : RC.getMembers()) { in computeDerivedInfo()
2132 const CodeGenRegister::Vec &Memb1 = RC1->getMembers(); in inferCommonSubClass()
2133 const CodeGenRegister::Vec &Memb2 = RC2->getMembers(); in inferCommonSubClass()
2134 CodeGenRegister::Vec Intersection; in inferCommonSubClass()
2161 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()
2169 const CodeGenRegister::SubRegMap &SRM = R->getSubRegs(); in inferSubClassWithSubReg()
2170 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(), in inferSubClassWithSubReg()
2211 SmallVector<std::pair<const CodeGenRegister*, in inferMatchingSuperRegClass()
2212 const CodeGenRegister*>, 16> SSPairs; in inferMatchingSuperRegClass()
2227 const CodeGenRegister *Sub = Super->getSubRegs().find(&SubIdx)->second; in inferMatchingSuperRegClass()
2247 CodeGenRegister::Vec SubSetVec; in inferMatchingSuperRegClass()
2323 const CodeGenRegister *Reg = getReg(R); in getRegClassForRegister()
2362 SetVector<const CodeGenRegister*> Set; in computeCoveredRegisters()
2366 CodeGenRegister *Reg = getReg(Regs[i]); in computeCoveredRegisters()
2375 const CodeGenRegister::SuperRegList &SR = Set[i]->getSuperRegs(); in computeCoveredRegisters()
2377 const CodeGenRegister *Super = SR[j]; in computeCoveredRegisters()
2382 const CodeGenRegister::SubRegMap &SRM = Super->getSubRegs(); in computeCoveredRegisters()
2383 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(), in computeCoveredRegisters()