From: Richard Sandiford Date: Mon, 9 Sep 2019 17:59:54 +0000 (+0000) Subject: Tweak interface to ira-build.c:ior_hard_reg_conflicts X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=75f4e3a1b322e16a1aca28bd0ced9af57cb0a683;p=gcc.git Tweak interface to ira-build.c:ior_hard_reg_conflicts This patch makes ior_hard_reg_conflicts take a const_hard_reg_set rather than a pointer, so that it can be passed a temporary object in later patches. 2019-09-09 Richard Sandiford gcc/ * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set instead of a HARD_REG_SET *. * ira-build.c (ior_hard_reg_conflicts): Likewise. (ira_build): Update call accordingly. * ira-emit.c (add_range_and_copies_from_move_list): Likewise. From-SVN: r275535 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c791dd7131..7ae8c4333f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-09-09 Richard Sandiford + + * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set + instead of a HARD_REG_SET *. + * ira-build.c (ior_hard_reg_conflicts): Likewise. + (ira_build): Update call accordingly. + * ira-emit.c (add_range_and_copies_from_move_list): Likewise. + 2019-09-09 Richard Sandiford * hard-reg-set.h (HARD_REG_SET::operator==): New function. diff --git a/gcc/ira-build.c b/gcc/ira-build.c index 3170d7d1689..834bea71011 100644 --- a/gcc/ira-build.c +++ b/gcc/ira-build.c @@ -614,15 +614,15 @@ merge_hard_reg_conflicts (ira_allocno_t from, ira_allocno_t to, /* Update hard register conflict information for all objects associated with A to include the regs in SET. */ void -ior_hard_reg_conflicts (ira_allocno_t a, HARD_REG_SET *set) +ior_hard_reg_conflicts (ira_allocno_t a, const_hard_reg_set set) { ira_allocno_object_iterator i; ira_object_t obj; FOR_EACH_ALLOCNO_OBJECT (a, obj, i) { - OBJECT_CONFLICT_HARD_REGS (obj) |= *set; - OBJECT_TOTAL_CONFLICT_HARD_REGS (obj) |= *set; + OBJECT_CONFLICT_HARD_REGS (obj) |= set; + OBJECT_TOTAL_CONFLICT_HARD_REGS (obj) |= set; } } @@ -3462,7 +3462,7 @@ ira_build (void) allocno crossing calls. */ FOR_EACH_ALLOCNO (a, ai) if (ALLOCNO_CALLS_CROSSED_NUM (a) != 0) - ior_hard_reg_conflicts (a, &call_used_reg_set); + ior_hard_reg_conflicts (a, call_used_reg_set); } if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL) print_copies (ira_dump_file); diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c index 255af307b3c..9ac05210721 100644 --- a/gcc/ira-emit.c +++ b/gcc/ira-emit.c @@ -1122,8 +1122,8 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node, ira_allocate_object_conflicts (to_obj, n); } } - ior_hard_reg_conflicts (from, &hard_regs_live); - ior_hard_reg_conflicts (to, &hard_regs_live); + ior_hard_reg_conflicts (from, hard_regs_live); + ior_hard_reg_conflicts (to, hard_regs_live); update_costs (from, true, freq); update_costs (to, false, freq); diff --git a/gcc/ira-int.h b/gcc/ira-int.h index 92b7dfb1119..95e22aa26b1 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -998,7 +998,7 @@ extern void ira_set_allocno_class (ira_allocno_t, enum reg_class); extern bool ira_conflict_vector_profitable_p (ira_object_t, int); extern void ira_allocate_conflict_vec (ira_object_t, int); extern void ira_allocate_object_conflicts (ira_object_t, int); -extern void ior_hard_reg_conflicts (ira_allocno_t, HARD_REG_SET *); +extern void ior_hard_reg_conflicts (ira_allocno_t, const_hard_reg_set); extern void ira_print_expanded_allocno (ira_allocno_t); extern void ira_add_live_range_to_object (ira_object_t, int, int); extern live_range_t ira_create_live_range (ira_object_t, int, int,