diff options
Diffstat (limited to 'gcc/lra-assigns.c')
-rw-r--r-- | gcc/lra-assigns.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c index d9000b9..9208fcc 100644 --- a/gcc/lra-assigns.c +++ b/gcc/lra-assigns.c @@ -568,8 +568,8 @@ find_hard_regno_for_1 (int regno, int *cost, int try_only_hard_regno, if (lra_reg_val_equal_p (conflict_regno, val, offset)) { conflict_hr = live_pseudos_reg_renumber[conflict_regno]; - nregs = (hard_regno_nregs[conflict_hr] - [lra_reg_info[conflict_regno].biggest_mode]); + nregs = hard_regno_nregs (conflict_hr, + lra_reg_info[conflict_regno].biggest_mode); /* Remember about multi-register pseudos. For example, 2 hard register pseudos can start on the same hard register but can not start on HR and HR+1/HR-1. */ @@ -587,12 +587,12 @@ find_hard_regno_for_1 (int regno, int *cost, int try_only_hard_regno, machine_mode biggest_conflict_mode = lra_reg_info[conflict_regno].biggest_mode; int biggest_conflict_nregs - = hard_regno_nregs[conflict_hr][biggest_conflict_mode]; + = hard_regno_nregs (conflict_hr, biggest_conflict_mode); - nregs_diff = (biggest_conflict_nregs - - (hard_regno_nregs - [conflict_hr] - [PSEUDO_REGNO_MODE (conflict_regno)])); + nregs_diff + = (biggest_conflict_nregs + - hard_regno_nregs (conflict_hr, + PSEUDO_REGNO_MODE (conflict_regno))); add_to_hard_reg_set (&conflict_set, biggest_conflict_mode, conflict_hr @@ -627,9 +627,9 @@ find_hard_regno_for_1 (int regno, int *cost, int try_only_hard_regno, rclass_size = ira_class_hard_regs_num[rclass]; best_hard_regno = -1; hard_regno = ira_class_hard_regs[rclass][0]; - biggest_nregs = hard_regno_nregs[hard_regno][biggest_mode]; + biggest_nregs = hard_regno_nregs (hard_regno, biggest_mode); nregs_diff = (biggest_nregs - - hard_regno_nregs[hard_regno][PSEUDO_REGNO_MODE (regno)]); + - hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno))); COPY_HARD_REG_SET (available_regs, reg_class_contents[rclass]); AND_COMPL_HARD_REG_SET (available_regs, lra_no_alloc_regs); for (i = 0; i < rclass_size; i++) @@ -664,7 +664,7 @@ find_hard_regno_for_1 (int regno, int *cost, int try_only_hard_regno, hard_regno_costs[hard_regno] = 0; } for (j = 0; - j < hard_regno_nregs[hard_regno][PSEUDO_REGNO_MODE (regno)]; + j < hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno)); j++) if (! TEST_HARD_REG_BIT (call_used_reg_set, hard_regno + j) && ! df_regs_ever_live_p (hard_regno + j)) @@ -799,7 +799,7 @@ lra_setup_reg_renumber (int regno, int hard_regno, bool print_p) hr = reg_renumber[regno]; reg_renumber[regno] = hard_regno; lra_assert (hr >= 0); - for (i = 0; i < hard_regno_nregs[hr][PSEUDO_REGNO_MODE (regno)]; i++) + for (i = 0; i < hard_regno_nregs (hr, PSEUDO_REGNO_MODE (regno)); i++) if (hard_regno < 0) lra_hard_reg_usage[hr + i] -= lra_reg_info[regno].freq; else @@ -851,7 +851,7 @@ setup_try_hard_regno_pseudos (int p, enum reg_class rclass) if (overlaps_hard_reg_set_p (reg_class_contents[rclass], mode, hard_regno)) { - for (i = hard_regno_nregs[hard_regno][mode] - 1; i >= 0; i--) + for (i = hard_regno_nregs (hard_regno, mode) - 1; i >= 0; i--) { if (try_hard_reg_pseudos_check[hard_regno + i] != curr_pseudo_check) @@ -974,7 +974,7 @@ spill_for (int regno, bitmap spilled_pseudo_bitmap, bool first_p) { hard_regno = ira_class_hard_regs[rclass][i]; bitmap_clear (&spill_pseudos_bitmap); - for (j = hard_regno_nregs[hard_regno][mode] - 1; j >= 0; j--) + for (j = hard_regno_nregs (hard_regno, mode) - 1; j >= 0; j--) { if (try_hard_reg_pseudos_check[hard_regno + j] != curr_pseudo_check) continue; @@ -1132,7 +1132,7 @@ assign_hard_regno (int hard_regno, int regno) lra_setup_reg_renumber (regno, hard_regno, true); update_lives (regno, false); for (i = 0; - i < hard_regno_nregs[hard_regno][lra_reg_info[regno].biggest_mode]; + i < hard_regno_nregs (hard_regno, lra_reg_info[regno].biggest_mode); i++) df_set_regs_ever_live (hard_regno + i, true); } @@ -1214,11 +1214,12 @@ setup_live_pseudos_and_spill_after_risky_transforms (bitmap { int conflict_hard_regno = reg_renumber[conflict_regno]; machine_mode biggest_mode = lra_reg_info[conflict_regno].biggest_mode; - int biggest_nregs = hard_regno_nregs[conflict_hard_regno][biggest_mode]; - int nregs_diff = (biggest_nregs - - (hard_regno_nregs - [conflict_hard_regno] - [PSEUDO_REGNO_MODE (conflict_regno)])); + int biggest_nregs = hard_regno_nregs (conflict_hard_regno, + biggest_mode); + int nregs_diff + = (biggest_nregs + - hard_regno_nregs (conflict_hard_regno, + PSEUDO_REGNO_MODE (conflict_regno))); add_to_hard_reg_set (&conflict_set, biggest_mode, conflict_hard_regno @@ -1231,7 +1232,7 @@ setup_live_pseudos_and_spill_after_risky_transforms (bitmap } bitmap_set_bit (spilled_pseudo_bitmap, regno); for (j = 0; - j < hard_regno_nregs[hard_regno][PSEUDO_REGNO_MODE (regno)]; + j < hard_regno_nregs (hard_regno, PSEUDO_REGNO_MODE (regno)); j++) lra_hard_reg_usage[hard_regno + j] -= lra_reg_info[regno].freq; reg_renumber[regno] = -1; |