Lines Matching refs:hard_regno

454 adjust_hard_regno_cost (int hard_regno, int incr)
456 if (hard_regno_costs_check[hard_regno] != curr_hard_regno_costs_check)
457 hard_regno_costs[hard_regno] = 0;
458 hard_regno_costs_check[hard_regno] = curr_hard_regno_costs_check;
459 hard_regno_costs[hard_regno] += incr;
484 int p, i, j, rclass_size, best_hard_regno, priority, hard_regno;
537 if ((hard_regno = lra_reg_info[regno].preferred_hard_regno1) >= 0)
540 (hard_regno, -lra_reg_info[regno].preferred_hard_regno_profit1);
541 if ((hard_regno = lra_reg_info[regno].preferred_hard_regno2) >= 0)
543 (hard_regno, -lra_reg_info[regno].preferred_hard_regno_profit2);
599 if ((hard_regno
603 (hard_regno,
605 if ((hard_regno
608 (hard_regno,
618 hard_regno = ira_class_hard_regs[rclass][0];
619 biggest_nregs = hard_regno_nregs (hard_regno, biggest_mode);
621 - hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno)));
626 hard_regno = try_only_hard_regno;
628 hard_regno = ira_class_hard_regs[rclass][i];
630 PSEUDO_REGNO_MODE (regno), hard_regno)
631 && targetm.hard_regno_mode_ok (hard_regno,
638 hard_regno))
639 && ! TEST_HARD_REG_BIT (impossible_start_hard_regs, hard_regno)
642 ? (hard_regno - nregs_diff >= 0
644 hard_regno - nregs_diff))
646 hard_regno + nregs_diff))))
648 if (hard_regno_costs_check[hard_regno]
651 hard_regno_costs_check[hard_regno] = curr_hard_regno_costs_check;
652 hard_regno_costs[hard_regno] = 0;
655 j < hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno));
657 if (! crtl->abi->clobbers_full_reg_p (hard_regno + j)
658 && ! df_regs_ever_live_p (hard_regno + j))
660 hard_regno_costs[hard_regno]
664 priority = targetm.register_priority (hard_regno);
665 if (best_hard_regno < 0 || hard_regno_costs[hard_regno] < best_cost
666 || (hard_regno_costs[hard_regno] == best_cost
670 && best_usage > lra_hard_reg_usage[hard_regno]))))
672 best_hard_regno = hard_regno;
673 best_cost = hard_regno_costs[hard_regno];
675 best_usage = lra_hard_reg_usage[hard_regno];
692 int hard_regno;
702 hard_regno = find_hard_regno_for_1 (regno, cost, -1, first_p,
704 if (hard_regno >= 0)
705 return hard_regno;
728 update_hard_regno_preference (int regno, int hard_regno, int div)
758 (another_regno, hard_regno, cost);
759 update_hard_regno_preference (another_regno, hard_regno, div * 2);
780 lra_setup_reg_renumber (int regno, int hard_regno, bool print_p)
785 lra_assert (hard_regno < 0 || reg_renumber[regno] < 0);
786 if ((hr = hard_regno) < 0)
788 reg_renumber[regno] = hard_regno;
791 if (hard_regno < 0)
799 if (hard_regno >= 0)
802 update_hard_regno_preference (regno, hard_regno, 1);
829 int i, hard_regno;
838 hard_regno = live_pseudos_reg_renumber[spill_regno];
840 mode, hard_regno))
842 for (i = hard_regno_nregs (hard_regno, mode) - 1; i >= 0; i--)
844 if (try_hard_reg_pseudos_check[hard_regno + i]
847 try_hard_reg_pseudos_check[hard_regno + i]
849 bitmap_clear (&try_hard_reg_pseudos[hard_regno + i]);
851 bitmap_set_bit (&try_hard_reg_pseudos[hard_regno + i],
861 assign_temporarily (int regno, int hard_regno)
869 if (hard_regno < 0)
877 live_pseudos_reg_renumber[regno] = hard_regno;
926 int i, j, n, p, hard_regno, best_hard_regno, cost, best_cost, rclass_size;
963 hard_regno = ira_class_hard_regs[rclass][i];
965 for (j = hard_regno_nregs (hard_regno, mode) - 1; j >= 0; j--)
967 if (hard_regno + j >= FIRST_PSEUDO_REGISTER)
969 if (try_hard_reg_pseudos_check[hard_regno + j] != curr_pseudo_check)
971 lra_assert (!bitmap_empty_p (&try_hard_reg_pseudos[hard_regno + j]));
973 &try_hard_reg_pseudos[hard_regno + j]);
985 fprintf (lra_dump_file, " Trying %d:", hard_regno);
1028 hard_regno = find_hard_regno_for (regno, &cost, -1, first_p);
1029 if (hard_regno >= 0)
1031 assign_temporarily (regno, hard_regno);
1075 best_hard_regno = hard_regno;
1080 hard_regno, cost, bad_spills_num, insn_pseudos_num);
1117 assign_hard_regno (int hard_regno, int regno)
1121 lra_assert (hard_regno >= 0);
1122 lra_setup_reg_renumber (regno, hard_regno, true);
1125 i < hard_regno_nregs (hard_regno, lra_reg_info[regno].biggest_mode);
1127 df_set_regs_ever_live (hard_regno + i, true);
1147 int p, i, j, n, regno, hard_regno, biggest_nregs, nregs_diff;
1167 && (hard_regno = reg_renumber[i]) >= 0 && lra_reg_info[i].nrefs > 0)
1170 biggest_nregs = hard_regno_nregs (hard_regno, biggest_mode);
1172 - hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (i)));
1176 && (hard_regno - nregs_diff < 0
1178 hard_regno - nregs_diff)))
1180 && (hard_regno + nregs_diff >= FIRST_PSEUDO_REGISTER
1182 hard_regno + nregs_diff))))
1199 hard_regno = reg_renumber[regno];
1200 lra_assert (hard_regno >= 0);
1226 || hard_regno != reg_renumber[conflict_regno])
1242 if (! overlaps_hard_reg_set_p (conflict_set, mode, hard_regno))
1249 j < hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno));
1251 lra_hard_reg_usage[hard_regno + j] -= lra_reg_info[regno].freq;
1271 int regno, another_regno, hard_regno, another_hard_regno, cost, i, n;
1285 hard_regno = reg_renumber[regno];
1286 lra_assert (hard_regno >= 0);
1307 && another_hard_regno != hard_regno)
1313 regno, hard_regno, another_regno, another_hard_regno);
1316 if (hard_regno == find_hard_regno_for (another_regno, &cost,
1317 hard_regno, false))
1318 assign_hard_regno (hard_regno, another_regno);
1384 int i, n, nfails, iter, regno, regno2, hard_regno, cost;
1426 hard_regno = find_hard_regno_for (regno, &cost, -1, iter == 1);
1428 if (hard_regno < 0 && reload_p)
1429 hard_regno = spill_for (regno, &all_spilled_pseudos, iter == 1);
1430 if (hard_regno < 0)
1445 assign_hard_regno (hard_regno, regno);
1550 hard_regno = find_hard_regno_for (regno, &cost, -1, false);
1551 if (hard_regno >= 0)
1553 assign_hard_regno (hard_regno, regno);
1574 hard_regno = find_hard_regno_for (regno, &cost, -1, false);
1575 if (hard_regno < 0)
1581 assign_hard_regno (hard_regno, regno);