Lines Matching refs:RegBank
79 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) { in updateComponents() argument
88 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]); in updateComponents()
89 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]); in updateComponents()
90 CodeGenSubRegIndex *X = A->addComposite(B, this, RegBank.getHwModes()); in updateComponents()
103 IdxParts.push_back(RegBank.getSubRegIdx(Part)); in updateComponents()
170 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) { in buildObjectGraph() argument
179 ExplicitSubRegIndices.push_back(RegBank.getSubRegIdx(SRIs[i])); in buildObjectGraph()
180 ExplicitSubRegs.push_back(RegBank.getReg(SRs[i])); in buildObjectGraph()
195 CodeGenRegister *Reg = RegBank.getReg(Alias); in buildObjectGraph()
264 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) { in inheritRegUnits() argument
276 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) { in computeSubRegs() argument
305 const SubRegMap &Map = ESR->computeSubRegs(RegBank); in computeSubRegs()
323 const SubRegMap &Map = SR->computeSubRegs(RegBank); in computeSubRegs()
360 const SubRegMap &Map = SR->computeSubRegs(RegBank); in computeSubRegs()
363 SubRegs[RegBank.getCompositeSubRegIndex(Idx, SubReg.first)] = in computeSubRegs()
445 unsigned Unit = RegBank.newRegUnit(this, AR); in computeSubRegs()
454 RegUnits.set(RegBank.newRegUnit(this)); in computeSubRegs()
476 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) { in computeSecondarySubRegs() argument
528 RegBank.getConcatSubRegIndex(Parts, RegBank.getHwModes()); in computeSecondarySubRegs()
552 NewIdx->addComposite(SubReg.first, SubIdx, RegBank.getHwModes()); in computeSecondarySubRegs()
557 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) { in computeSuperRegs() argument
566 SubReg.second->computeSuperRegs(RegBank); in computeSuperRegs()
583 TopoSig = RegBank.getTopoSig(Id); in computeSuperRegs()
587 SetVector<const CodeGenRegister *> &OSet, CodeGenRegBank &RegBank) const { in addSubRegsPreOrder()
592 SR->addSubRegsPreOrder(OSet, RegBank); in addSubRegsPreOrder()
600 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const { in getWeight()
603 Weight += RegBank.getRegUnit(RegUnit).Weight; in getWeight()
759 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, Record *R) in CodeGenRegisterClass() argument
761 TopoSigs(RegBank.getNumTopoSigs()), EnumValue(-1), TSFlags(0) { in CodeGenRegisterClass()
772 VTs.push_back(getValueTypeByHwMode(Type, RegBank.getHwModes())); in CodeGenRegisterClass()
776 const SetTheory::RecVec *Elements = RegBank.getSets().expand(R); in CodeGenRegisterClass()
784 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]); in CodeGenRegisterClass()
794 RegBank.getSets().evaluate(AltOrders->getElement(i), Order, R->getLoc()); in CodeGenRegisterClass()
798 CodeGenRegister *Reg = RegBank.getReg(Order.back()); in CodeGenRegisterClass()
810 RSI = RegSizeInfoByHwMode(DI->getDef(), RegBank.getHwModes()); in CodeGenRegisterClass()
842 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, in CodeGenRegisterClass() argument
845 TopoSigs(RegBank.getNumTopoSigs()), EnumValue(-1), RSI(Props.RSI), in CodeGenRegisterClass()
857 void CodeGenRegisterClass::inheritProperties(CodeGenRegBank &RegBank) { in inheritProperties() argument
884 if (contains(RegBank.getReg(Super.Orders[i][j]))) in inheritProperties()
913 unsigned CodeGenRegisterClass::getWeight(const CodeGenRegBank &RegBank) const { in getWeight()
920 return (*Members.begin())->getWeight(RegBank); in getWeight()
1006 void CodeGenRegisterClass::computeSubClasses(CodeGenRegBank &RegBank) { in computeSubClasses() argument
1007 auto &RegClasses = RegBank.getRegClasses(); in computeSubClasses()
1053 RC.inheritProperties(RegBank); in computeSubClasses()
1058 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const { in getMatchingSubClassWithSubRegs() argument
1070 auto &RegClasses = RegBank.getRegClasses(); in getMatchingSubClassWithSubRegs()
1153 const CodeGenRegBank &RegBank, std::vector<unsigned> &RegUnits) const { in buildRegUnitSet() argument
1156 const RegUnit &RU = RegBank.getRegUnit(*UnitI); in buildRegUnitSet()
1169 CodeGenRegisterCategory::CodeGenRegisterCategory(CodeGenRegBank &RegBank, in CodeGenRegisterCategory() argument
1173 Classes.push_back(RegBank.getRegClass(RegClass)); in CodeGenRegisterCategory()
1726 CodeGenRegBank &RegBank) { in computeUberSets() argument
1727 const auto &Registers = RegBank.getRegisters(); in computeUberSets()
1736 for (auto &RegClass : RegBank.getRegClasses()) { in computeUberSets()
1785 CodeGenRegBank &RegBank) { in computeUberWeights() argument
1801 if (!RegBank.getRegUnit(*UnitI).Artificial) { in computeUberWeights()
1802 unsigned UWeight = RegBank.getRegUnit(*UnitI).Weight; in computeUberWeights()
1805 RegBank.increaseRegUnitWeight(*UnitI, UWeight); in computeUberWeights()
1825 if (R->getRegUnits().count() == 1 && R->getWeight(RegBank) == I->Weight) { in computeUberWeights()
1847 CodeGenRegBank &RegBank) { in normalizeWeight() argument
1860 NormalUnits, RegBank); in normalizeWeight()
1865 if (Reg->inheritRegUnits(RegBank)) in normalizeWeight()
1866 computeUberWeights(UberSets, RegBank); in normalizeWeight()
1869 UberRegSet *UberSet = RegSets[RegBank.getRegIndex(Reg)]; in normalizeWeight()
1871 unsigned RegWeight = Reg->getWeight(RegBank); in normalizeWeight()
1880 AdjustUnit = RegBank.newRegUnit(UberSet->Weight - RegWeight); in normalizeWeight()
1885 if (!RegBank.getRegUnit(AdjustUnit).Artificial) in normalizeWeight()
1886 RegBank.increaseRegUnitWeight(AdjustUnit, UberSet->Weight - RegWeight); in normalizeWeight()
1888 computeUberWeights(UberSets, RegBank); in normalizeWeight()