Lines Matching refs:CodeGenRegister
156 CodeGenRegister::CodeGenRegister(Record *R, unsigned Enum) in CodeGenRegister() function in CodeGenRegister
165 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) { in buildObjectGraph()
190 CodeGenRegister *Reg = RegBank.getReg(Alias); in buildObjectGraph()
196 StringRef CodeGenRegister::getName() const { in getName()
205 CodeGenRegister::Vec::const_iterator RegI, RegE;
206 CodeGenRegister::RegUnitList::iterator UnitI, UnitE;
209 RegUnitIterator(const CodeGenRegister::Vec &Regs): in RegUnitIterator()
223 const CodeGenRegister *getReg() const { assert(isValid()); return *RegI; } in getReg()
246 static bool hasRegUnit(CodeGenRegister::RegUnitList &RegUnits, unsigned Unit) { in hasRegUnit()
252 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) { in inheritRegUnits()
255 CodeGenRegister *SR = SubReg.second; in inheritRegUnits()
263 const CodeGenRegister::SubRegMap &
264 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) { in computeSubRegs()
274 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
287 SmallPtrSet<CodeGenRegister*, 8> Orphans; in computeSubRegs()
291 for (CodeGenRegister *ESR : ExplicitSubRegs) { in computeSubRegs()
309 CodeGenRegister *SR = SubRegs[Idx]; in computeSubRegs()
346 CodeGenRegister *SR = SubRegs[Idx]; in computeSubRegs()
368 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins = in computeSubRegs()
386 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
410 CodeGenRegister *SR = ExplicitSubRegs[i]; in computeSubRegs()
424 CodeGenRegister *AR = ExplicitAliases[i]; in computeSubRegs()
461 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) { in computeSecondarySubRegs()
464 std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue; in computeSecondarySubRegs()
465 for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs) in computeSecondarySubRegs()
473 const CodeGenRegister *SubReg; in computeSecondarySubRegs()
477 const CodeGenRegister::SuperRegList &Leads = SubReg->LeadingSuperRegs; in computeSecondarySubRegs()
479 CodeGenRegister *Cand = const_cast<CodeGenRegister*>(Leads[i]); in computeSecondarySubRegs()
493 for (CodeGenRegister *SubReg : Cand->ExplicitSubRegs) { in computeSecondarySubRegs()
513 std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg = in computeSecondarySubRegs()
529 CodeGenRegister *NewSubReg = NewSubRegs[i].second; in computeSecondarySubRegs()
541 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) { in computeSuperRegs()
571 CodeGenRegister::addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet, in addSubRegsPreOrder()
575 CodeGenRegister *SR = ExplicitSubRegs[i]; in addSubRegsPreOrder()
585 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const { in getWeight()
730 static void sortAndUniqueRegisters(CodeGenRegister::Vec &M) { in sortAndUniqueRegisters()
760 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]); in CodeGenRegisterClass()
774 CodeGenRegister *Reg = RegBank.getReg(Order.back()); in CodeGenRegisterClass()
853 bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const { in contains()
1186 const CodeGenRegister *SR = P.second; in CodeGenRegBank()
1241 CodeGenRegister *CodeGenRegBank::getReg(Record *Def) { in getReg()
1242 CodeGenRegister *&Reg = Def2Reg[Def]; in getReg()
1263 const CodeGenRegister::Vec *Members, in getOrCreateSubClass()
1337 using RegMap = std::map<const CodeGenRegister*, const CodeGenRegister*>; in computeComposites()
1343 for (const CodeGenRegister &R : Registers) { in computeComposites()
1344 const CodeGenRegister::SubRegMap &SM = R.getSubRegs(); in computeComposites()
1345 for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM) in computeComposites()
1356 for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Img1) { in computeComposites()
1371 for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Map1) { in computeComposites()
1396 const CodeGenRegister::SubRegMap &SRM1 = Reg1.getSubRegs(); in computeComposites()
1399 CodeGenRegister *Reg2 = I1.second; in computeComposites()
1403 const CodeGenRegister::SubRegMap &SRM2 = Reg2->getSubRegs(); in computeComposites()
1407 CodeGenRegister *Reg3 = I2.second; in computeComposites()
1583 CodeGenRegister::Vec Regs;
1585 CodeGenRegister::RegUnitList SingularDeterminants;
1612 const CodeGenRegister::Vec &Regs = RegClass.getMembers(); in computeUberSets()
1642 for (const CodeGenRegister &Reg : Registers) { in computeUberSets()
1664 const CodeGenRegister *Reg = nullptr; in computeUberWeights()
1714 static bool normalizeWeight(CodeGenRegister *Reg, in normalizeWeight()
1718 CodeGenRegister::RegUnitList &NormalUnits, in normalizeWeight()
1726 const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs(); in normalizeWeight()
1792 CodeGenRegister::RegUnitList NormalUnits; in computeRegUnitWeights()
2057 CodeGenRegister::RegUnitLaneMaskList in computeRegUnitLaneMasks()
2060 typedef CodeGenRegister::SubRegMap SubRegMap; in computeRegUnitLaneMasks()
2063 CodeGenRegister *SubReg = S.second; in computeRegUnitLaneMasks()
2069 const CodeGenRegister *SubRegister = S.second; in computeRegUnitLaneMasks()
2109 for (const CodeGenRegister *Reg : RC.getMembers()) { in computeDerivedInfo()
2151 const CodeGenRegister::Vec &Memb1 = RC1->getMembers(); in inferCommonSubClass()
2152 const CodeGenRegister::Vec &Memb2 = RC2->getMembers(); in inferCommonSubClass()
2153 CodeGenRegister::Vec Intersection; in inferCommonSubClass()
2181 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()
2190 const CodeGenRegister::SubRegMap &SRM = R->getSubRegs(); in inferSubClassWithSubReg()
2231 SmallVector<std::pair<const CodeGenRegister*, in inferMatchingSuperRegClass()
2232 const CodeGenRegister*>, 16> SSPairs; in inferMatchingSuperRegClass()
2247 const CodeGenRegister *Sub = Super->getSubRegs().find(&SubIdx)->second; in inferMatchingSuperRegClass()
2267 CodeGenRegister::Vec SubSetVec; in inferMatchingSuperRegClass()
2343 const CodeGenRegister *Reg = getReg(R); in getRegClassForRegister()
2384 const CodeGenRegister *Reg = getReg(RegRecord); in getMinimalPhysRegClass()
2397 SetVector<const CodeGenRegister*> Set; in computeCoveredRegisters()
2401 CodeGenRegister *Reg = getReg(Regs[i]); in computeCoveredRegisters()
2410 const CodeGenRegister::SuperRegList &SR = Set[i]->getSuperRegs(); in computeCoveredRegisters()
2412 const CodeGenRegister *Super = SR[j]; in computeCoveredRegisters()
2417 const CodeGenRegister::SubRegMap &SRM = Super->getSubRegs(); in computeCoveredRegisters()