Lines Matching defs:RegBank

78 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) {
88 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]);
89 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]);
90 CodeGenSubRegIndex *X = A->addComposite(B, this, RegBank.getHwModes());
103 IdxParts.push_back(RegBank.getSubRegIdx(Part));
170 void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) {
180 ExplicitSubRegIndices.push_back(RegBank.getSubRegIdx(SRIs[i]));
181 ExplicitSubRegs.push_back(RegBank.getReg(SRs[i]));
195 CodeGenRegister *Reg = RegBank.getReg(Alias);
264 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) {
276 CodeGenRegister::computeSubRegs(CodeGenRegBank &RegBank) {
305 const SubRegMap &Map = ESR->computeSubRegs(RegBank);
323 const SubRegMap &Map = SR->computeSubRegs(RegBank);
360 const SubRegMap &Map = SR->computeSubRegs(RegBank);
363 SubRegs[RegBank.getCompositeSubRegIndex(Idx, SubReg.first)] =
451 unsigned Unit = RegBank.newRegUnit(this, AR);
460 RegUnits.set(RegBank.newRegUnit(this));
482 void CodeGenRegister::computeSecondarySubRegs(CodeGenRegBank &RegBank) {
534 RegBank.getConcatSubRegIndex(Parts, RegBank.getHwModes());
558 NewIdx->addComposite(SubReg.first, SubIdx, RegBank.getHwModes());
563 void CodeGenRegister::computeSuperRegs(CodeGenRegBank &RegBank) {
572 SubReg.second->computeSuperRegs(RegBank);
589 TopoSig = RegBank.getTopoSig(Id);
593 SetVector<const CodeGenRegister *> &OSet, CodeGenRegBank &RegBank) const {
598 SR->addSubRegsPreOrder(OSet, RegBank);
606 unsigned CodeGenRegister::getWeight(const CodeGenRegBank &RegBank) const {
609 Weight += RegBank.getRegUnit(RegUnit).Weight;
766 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank,
769 TopoSigs(RegBank.getNumTopoSigs()), EnumValue(-1), TSFlags(0) {
780 VTs.push_back(getValueTypeByHwMode(Type, RegBank.getHwModes()));
784 const SetTheory::RecVec *Elements = RegBank.getSets().expand(R);
792 const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]);
802 RegBank.getSets().evaluate(AltOrders->getElement(i), Order, R->getLoc());
806 CodeGenRegister *Reg = RegBank.getReg(Order.back());
818 RSI = RegSizeInfoByHwMode(DI->getDef(), RegBank.getHwModes());
850 CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank,
853 TopoSigs(RegBank.getNumTopoSigs()), EnumValue(-1), RSI(Props.RSI),
865 void CodeGenRegisterClass::inheritProperties(CodeGenRegBank &RegBank) {
892 if (contains(RegBank.getReg(Super.Orders[i][j])))
921 unsigned CodeGenRegisterClass::getWeight(const CodeGenRegBank &RegBank) const {
928 return (*Members.begin())->getWeight(RegBank);
1014 void CodeGenRegisterClass::computeSubClasses(CodeGenRegBank &RegBank) {
1015 auto &RegClasses = RegBank.getRegClasses();
1061 RC.inheritProperties(RegBank);
1066 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const {
1078 auto &RegClasses = RegBank.getRegClasses();
1161 const CodeGenRegBank &RegBank, std::vector<unsigned> &RegUnits) const {
1164 const RegUnit &RU = RegBank.getRegUnit(*UnitI);
1177 CodeGenRegisterCategory::CodeGenRegisterCategory(CodeGenRegBank &RegBank,
1181 Classes.push_back(RegBank.getRegClass(RegClass));
1726 CodeGenRegBank &RegBank) {
1727 const auto &Registers = RegBank.getRegisters();
1736 for (auto &RegClass : RegBank.getRegClasses()) {
1785 CodeGenRegBank &RegBank) {
1801 if (!RegBank.getRegUnit(*UnitI).Artificial) {
1802 unsigned UWeight = RegBank.getRegUnit(*UnitI).Weight;
1805 RegBank.increaseRegUnitWeight(*UnitI, UWeight);
1825 if (R->getRegUnits().count() == 1 && R->getWeight(RegBank) == I->Weight) {
1847 CodeGenRegBank &RegBank) {
1860 NormalUnits, RegBank);
1865 if (Reg->inheritRegUnits(RegBank))
1866 computeUberWeights(UberSets, RegBank);
1869 UberRegSet *UberSet = RegSets[RegBank.getRegIndex(Reg)];
1871 unsigned RegWeight = Reg->getWeight(RegBank);
1880 AdjustUnit = RegBank.newRegUnit(UberSet->Weight - RegWeight);
1885 if (!RegBank.getRegUnit(AdjustUnit).Artificial)
1886 RegBank.increaseRegUnitWeight(AdjustUnit, UberSet->Weight - RegWeight);
1888 computeUberWeights(UberSets, RegBank);