aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-09-09 17:59:54 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-09-09 17:59:54 +0000
commit75f4e3a1b322e16a1aca28bd0ced9af57cb0a683 (patch)
tree6d34be743bff9b04f48cceeea34a2fb06e2bba98
parenta85796511b2b7985f79331c996761f7a87cb8116 (diff)
downloadgcc-75f4e3a1b322e16a1aca28bd0ced9af57cb0a683.zip
gcc-75f4e3a1b322e16a1aca28bd0ced9af57cb0a683.tar.gz
gcc-75f4e3a1b322e16a1aca28bd0ced9af57cb0a683.tar.bz2
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 <richard.sandiford@arm.com> 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
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/ira-build.c8
-rw-r--r--gcc/ira-emit.c4
-rw-r--r--gcc/ira-int.h2
4 files changed, 15 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c791dd..7ae8c43 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
+ * 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 <richard.sandiford@arm.com>
+
* hard-reg-set.h (HARD_REG_SET::operator==): New function.
(HARD_REG_SET::operator!=): Likewise.
(hard_reg_set_equal_p): Delete.
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index 3170d7d..834bea7 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 255af30..9ac0521 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 92b7dfb..95e22aa 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,