Lines Matching defs:CodeGenRegister
103 // CodeGenRegister
106 CodeGenRegister::CodeGenRegister(Record *R, unsigned Enum)
117 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) {
142 CodeGenRegister *Reg = RegBank.getReg(Aliases[i]);
148 const std::string &CodeGenRegister::getName() const {
156 CodeGenRegister::Vec::const_iterator RegI, RegE;
157 CodeGenRegister::RegUnitList::iterator UnitI, UnitE;
160 RegUnitIterator(const CodeGenRegister::Vec &Regs):
174 const CodeGenRegister *getReg() const { assert(isValid()); return *RegI; }
196 static bool hasRegUnit(CodeGenRegister::RegUnitList &RegUnits, unsigned Unit) {
202 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) {
206 CodeGenRegister *SR = I->second;
214 const CodeGenRegister::SubRegMap &
215 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) {
225 CodeGenRegister *SR = ExplicitSubRegs[i];
236 SmallPtrSet<CodeGenRegister*, 8> Orphans;
241 CodeGenRegister *SR = ExplicitSubRegs[i];
260 CodeGenRegister *SR = SubRegs[Idx];
298 CodeGenRegister *SR = SubRegs[Idx];
322 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins =
340 CodeGenRegister *SR = ExplicitSubRegs[i];
359 CodeGenRegister *SR = ExplicitSubRegs[i];
373 CodeGenRegister *AR = ExplicitAliases[i];
410 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) {
418 const CodeGenRegister *SubReg = I->second;
419 const CodeGenRegister::SuperRegList &Leads = SubReg->LeadingSuperRegs;
421 CodeGenRegister *Cand = const_cast<CodeGenRegister*>(Leads[i]);
459 CodeGenRegister *NewSubReg = NewSubRegs[i].second;
466 CodeGenRegister *NewSubReg = NewSubRegs[i].second;
478 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) {
509 CodeGenRegister::addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet,
513 CodeGenRegister *SR = ExplicitSubRegs[i];
524 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const {
584 // is only for consumption by CodeGenRegister, it is not added to the
648 static void sortAndUniqueRegisters(CodeGenRegister::Vec &M) {
683 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]);
696 CodeGenRegister *Reg = RegBank.getReg(Order.back());
764 bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const {
1027 CodeGenRegister *CodeGenRegBank::getReg(Record *Def) {
1028 CodeGenRegister *&Reg = Def2Reg[Def];
1049 const CodeGenRegister::Vec *Members,
1127 const CodeGenRegister::SubRegMap &SRM1 = Reg1.getSubRegs();
1128 for (CodeGenRegister::SubRegMap::const_iterator i1 = SRM1.begin(),
1131 CodeGenRegister *Reg2 = i1->second;
1135 const CodeGenRegister::SubRegMap &SRM2 = Reg2->getSubRegs();
1137 for (CodeGenRegister::SubRegMap::const_iterator i2 = SRM2.begin(),
1140 CodeGenRegister *Reg3 = i2->second;
1309 CodeGenRegister::Vec Regs;
1311 CodeGenRegister::RegUnitList SingularDeterminants;
1338 const CodeGenRegister::Vec &Regs = RegClass.getMembers();
1368 for (const CodeGenRegister &Reg : Registers) {
1390 const CodeGenRegister *Reg = nullptr;
1437 static bool normalizeWeight(CodeGenRegister *Reg,
1441 CodeGenRegister::RegUnitList &NormalUnits,
1448 const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs();
1449 for (CodeGenRegister::SubRegMap::const_iterator SRI = SRM.begin(),
1514 CodeGenRegister::RegUnitList NormalUnits;
1784 CodeGenRegister::RegUnitLaneMaskList RegUnitLaneMasks(RegUnits.count(), 0);
1786 typedef CodeGenRegister::SubRegMap SubRegMap;
1790 CodeGenRegister *SubReg = S->second;
1796 const CodeGenRegister *SubRegister = S->second;
1836 for (const CodeGenRegister *Reg : RC.getMembers()) {
1879 const CodeGenRegister::Vec &Memb1 = RC1->getMembers();
1880 const CodeGenRegister::Vec &Memb2 = RC2->getMembers();
1881 CodeGenRegister::Vec Intersection;
1910 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec,
1916 const CodeGenRegister::SubRegMap &SRM = R->getSubRegs();
1917 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),
1954 SmallVector<std::pair<const CodeGenRegister*,
1955 const CodeGenRegister*>, 16> SSPairs;
1970 const CodeGenRegister *Sub = Super->getSubRegs().find(&SubIdx)->second;
1988 CodeGenRegister::Vec SubSetVec;
2063 const CodeGenRegister *Reg = getReg(R);
2102 SetVector<const CodeGenRegister*> Set;
2106 CodeGenRegister *Reg = getReg(Regs[i]);
2115 const CodeGenRegister::SuperRegList &SR = Set[i]->getSuperRegs();
2117 const CodeGenRegister *Super = SR[j];
2122 const CodeGenRegister::SubRegMap &SRM = Super->getSubRegs();
2123 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),