Lines Matching defs:RegBank
56 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) {
65 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]);
66 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]);
80 IdxParts.push_back(RegBank.getSubRegIdx(Parts[i]));
81 RegBank.addConcatSubRegIndex(IdxParts, this);
117 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) {
126 ExplicitSubRegIndices.push_back(RegBank.getSubRegIdx(SRIs[i]));
127 ExplicitSubRegs.push_back(RegBank.getReg(SRs[i]));
142 CodeGenRegister *Reg = RegBank.getReg(Aliases[i]);
211 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) {
223 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) {
248 const SubRegMap &Map = SR->computeSubRegs(RegBank);
266 const SubRegMap &Map = SR->computeSubRegs(RegBank);
304 const SubRegMap &Map = SR->computeSubRegs(RegBank);
308 SubRegs[RegBank.getCompositeSubRegIndex(Idx, SI->first)] = SI->second;
355 RegBank.addConcatSubRegIndex(Parts, ExplicitSubRegIndices[i]);
390 unsigned Unit = RegBank.newRegUnit(this, AR);
399 RegUnits.push_back(RegBank.newRegUnit(this));
421 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) {
458 CodeGenSubRegIndex *Concat= RegBank.getConcatSubRegIndex(Parts);
489 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) {
499 I->second->computeSuperRegs(RegBank);
516 TopoSig = RegBank.getTopoSig(Id);
521 CodeGenRegBank &RegBank) const {
526 SR->addSubRegsPreOrder(OSet, RegBank);
535 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const {
539 Weight += RegBank.getRegUnit(*I).Weight;
660 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, Record *R)
663 TopoSigs(RegBank.getNumTopoSigs()),
684 const SetTheory::RecVec *Elements = RegBank.getSets().expand(R);
691 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]);
699 RegBank.getSets().evaluate(AltOrders->getElement(i), Order, R->getLoc());
703 CodeGenRegister *Reg = RegBank.getReg(Order.back());
725 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank,
730 TopoSigs(RegBank.getNumTopoSigs()),
742 void CodeGenRegisterClass::inheritProperties(CodeGenRegBank &RegBank) {
762 if (contains(RegBank.getReg(Super.Orders[i][j])))
854 void CodeGenRegisterClass::computeSubClasses(CodeGenRegBank &RegBank) {
855 ArrayRef<CodeGenRegisterClass*> RegClasses = RegBank.getRegClasses();
895 RegClasses[rci]->inheritProperties(RegBank);
1248 CodeGenRegBank &RegBank) {
1250 const std::vector<CodeGenRegister*> &Registers = RegBank.getRegisters();
1259 for (unsigned i = 0, e = RegBank.getRegClasses().size(); i != e; ++i) {
1261 CodeGenRegisterClass *RegClass = RegBank.getRegClasses()[i];
1311 CodeGenRegBank &RegBank) {
1326 unsigned UWeight = RegBank.getRegUnit(*UnitI).Weight;
1329 RegBank.increaseRegUnitWeight(*UnitI, UWeight);
1352 && (*RegI)->getWeight(RegBank) == I->Weight)
1373 CodeGenRegBank &RegBank) {
1385 NormalRegs, NormalUnits, RegBank);
1390 if (Reg->inheritRegUnits(RegBank))
1391 computeUberWeights(UberSets, RegBank);
1394 UberRegSet *UberSet = RegSets[RegBank.getRegIndex(Reg)];
1396 unsigned RegWeight = Reg->getWeight(RegBank);
1406 AdjustUnit = RegBank.newRegUnit(UberSet->Weight - RegWeight);
1412 RegBank.increaseRegUnitWeight(AdjustUnit, UberSet->Weight - RegWeight);
1414 computeUberWeights(UberSets, RegBank);
1708 const CodeGenRegBank &RegBank;
1709 LessUnits(const CodeGenRegBank &RB): RegBank(RB) {}
1712 return RegBank.getRegPressureSet(ID1).Units.size()
1713 < RegBank.getRegPressureSet(ID2).Units.size();