Home | History | Annotate | Download | only in TableGen

Lines Matching defs:CodeGenRegister

78 //                              CodeGenRegister
81 CodeGenRegister::CodeGenRegister(Record *R, unsigned Enum)
89 const std::string &CodeGenRegister::getName() const {
96 CodeGenRegister::Set::const_iterator RegI, RegE;
97 CodeGenRegister::RegUnitList::const_iterator UnitI, UnitE;
100 RegUnitIterator(const CodeGenRegister::Set &Regs):
114 const CodeGenRegister *getReg() const { assert(isValid()); return *RegI; }
137 static void mergeRegUnits(CodeGenRegister::RegUnitList &MergedRU,
138 const CodeGenRegister::RegUnitList &RRU) {
139 CodeGenRegister::RegUnitList LRU = MergedRU;
146 static bool hasRegUnit(CodeGenRegister::RegUnitList &RegUnits, unsigned Unit) {
152 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) {
158 CodeGenRegister *SR = I->second;
171 const CodeGenRegister::SubRegMap &
172 CodeGenRegister::getSubRegs(CodeGenRegBank &RegBank) {
187 CodeGenRegister *SR = RegBank.getReg(SubList[i]);
196 SmallPtrSet<CodeGenRegister*, 8> Orphans;
201 CodeGenRegister *SR = RegBank.getReg(SubList[i]);
227 CodeGenRegister *SR = SubRegs[Idx];
262 CodeGenRegister *R2 = this;
303 CodeGenRegister *SR = SubRegs[Idx];
329 CodeGenRegister::addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet,
335 CodeGenRegister *SR = SubRegs.find(Idx)->second;
342 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const {
401 // is only for consumption by CodeGenRegister, it is not added to the
500 CodeGenRegister *Reg = RegBank.getReg(Order.back());
581 bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const {
588 for (CodeGenRegister::Set::const_iterator I = K.Members->begin(),
622 CodeGenRegister::Less());
814 CodeGenRegister *CodeGenRegBank::getReg(Record *Def) {
815 CodeGenRegister *&Reg = Def2Reg[Def];
818 Reg = new CodeGenRegister(Def, Registers.size() + 1);
838 const CodeGenRegister::Set *Members,
876 CodeGenRegister *Reg1 = Registers[i];
877 const CodeGenRegister::SubRegMap &SRM1 = Reg1->getSubRegs();
878 for (CodeGenRegister::SubRegMap::const_iterator i1 = SRM1.begin(),
881 CodeGenRegister *Reg2 = i1->second;
885 const CodeGenRegister::SubRegMap &SRM2 = Reg2->getSubRegs();
887 for (CodeGenRegister::SubRegMap::const_iterator i2 = SRM2.begin(),
890 CodeGenRegister *Reg3 = i2->second;
895 for (CodeGenRegister::SubRegMap::const_iterator i1d = SRM1.begin(),
934 CodeGenRegister::Set Regs;
936 CodeGenRegister::RegUnitList SingularDeterminants;
950 const std::vector<CodeGenRegister*> &Registers = RegBank.getRegisters();
965 const CodeGenRegister::Set &Regs = RegClass->getMembers();
973 for (CodeGenRegister::Set::const_iterator I = llvm::next(Regs.begin()),
996 const CodeGenRegister *Reg = Registers[i];
1017 const CodeGenRegister *Reg = 0;
1040 for (CodeGenRegister::Set::iterator RegI = I->Regs.begin(),
1059 static bool normalizeWeight(CodeGenRegister *Reg,
1062 CodeGenRegister::RegUnitList &NormalUnits,
1065 const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs();
1066 for (CodeGenRegister::SubRegMap::const_iterator SRI = SRM.begin(),
1136 CodeGenRegister::RegUnitList NormalUnits;
1329 computeOverlaps(std::map<const CodeGenRegister*, CodeGenRegister::Set> &Map) {
1334 CodeGenRegister *Reg = Registers[i];
1335 CodeGenRegister::Set &Overlaps = Map[Reg];
1341 const CodeGenRegister::SuperRegList &Supers = Reg->getSuperRegs();
1347 CodeGenRegister *Reg2 = getReg(RegList[i2]);
1348 CodeGenRegister::Set &Overlaps2 = Map[Reg2];
1349 const CodeGenRegister::SuperRegList &Supers2 = Reg2->getSuperRegs();
1360 CodeGenRegister *Reg = Registers[i];
1361 CodeGenRegister::Set &Overlaps = Map[Reg];
1362 const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs();
1363 for (CodeGenRegister::SubRegMap::const_iterator i2 = SRM.begin(),
1365 CodeGenRegister::Set &Overlaps2 = Map[i2->second];
1397 const CodeGenRegister::Set &Memb1 = RC1->getMembers();
1398 const CodeGenRegister::Set &Memb2 = RC2->getMembers();
1399 CodeGenRegister::Set Intersection;
1403 CodeGenRegister::Less());
1429 typedef std::map<CodeGenSubRegIndex*, CodeGenRegister::Set,
1434 for (CodeGenRegister::Set::const_iterator RI = RC->getMembers().begin(),
1436 const CodeGenRegister::SubRegMap &SRM = (*RI)->getSubRegs();
1437 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),
1472 SmallVector<std::pair<const CodeGenRegister*,
1473 const CodeGenRegister*>, 16> SSPairs;
1486 for (CodeGenRegister::Set::const_iterator RI = RC->getMembers().begin(),
1488 const CodeGenRegister *Super = *RI;
1489 const CodeGenRegister *Sub = Super->getSubRegs().find(SubIdx)->second;
1500 CodeGenRegister::Set SubSet;
1565 const CodeGenRegister *Reg = getReg(R);
1606 SetVector<const CodeGenRegister*> Set;
1610 CodeGenRegister *Reg = getReg(Regs[i]);
1619 const CodeGenRegister::SuperRegList &SR = Set[i]->getSuperRegs();
1621 const CodeGenRegister *Super = SR[j];
1626 const CodeGenRegister::SubRegMap &SRM = Super->getSubRegs();
1627 for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),