aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2019-09-09 17:59:29 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2019-09-09 17:59:29 +0000
commitfcbb220b1d7305c8d28f9331bc50f5a562431971 (patch)
treefa56ee920dccfe14c219e9c7f229ee84154e46c0
parent9cfad81014cfe929442c83a2917e3084fc77ce1b (diff)
Remove IOR_COMPL_HARD_REG_SET
Use "x |= ~y" instead of "IOR_COMPL_HARD_REG_SET (x, y)", or just "x | ~y" if the result is a temporary. 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> gcc/ * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete. * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain): Use "|~" instead of IOR_COMPL_HARD_REG_SET. * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable): Likewise. * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise. * ira.c (setup_reg_renumber): Likewise. * lra-assigns.c (find_hard_regno_for_1): Likewise. * regrename.c (regrename_find_superclass): Likewise. * reload1.c (find_reg): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@275533 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/config/aarch64/cortex-a57-fma-steering.c2
-rw-r--r--gcc/config/aarch64/falkor-tag-collision-avoidance.c2
-rw-r--r--gcc/hard-reg-set.h14
-rw-r--r--gcc/ira-build.c12
-rw-r--r--gcc/ira.c4
-rw-r--r--gcc/lra-assigns.c2
-rw-r--r--gcc/regrename.c3
-rw-r--r--gcc/reload1.c5
9 files changed, 26 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1fc84aee644..5a97cb9e61a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,18 @@
2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
+ * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
+ * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
+ Use "|~" instead of IOR_COMPL_HARD_REG_SET.
+ * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
+ Likewise.
+ * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
+ * ira.c (setup_reg_renumber): Likewise.
+ * lra-assigns.c (find_hard_regno_for_1): Likewise.
+ * regrename.c (regrename_find_superclass): Likewise.
+ * reload1.c (find_reg): Likewise.
+
+2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
+
* hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
* caller-save.c (setup_save_areas): Use "&~" instead of
AND_COMPL_HARD_REG_SET.
diff --git a/gcc/config/aarch64/cortex-a57-fma-steering.c b/gcc/config/aarch64/cortex-a57-fma-steering.c
index eb91662b688..3e890ad3de6 100644
--- a/gcc/config/aarch64/cortex-a57-fma-steering.c
+++ b/gcc/config/aarch64/cortex-a57-fma-steering.c
@@ -267,7 +267,7 @@ rename_single_chain (du_head_p head, HARD_REG_SET *unavailable)
if (DEBUG_INSN_P (tmp->insn))
continue;
n_uses++;
- IOR_COMPL_HARD_REG_SET (*unavailable, reg_class_contents[tmp->cl]);
+ *unavailable |= ~reg_class_contents[tmp->cl];
super_class = reg_class_superunion[(int) super_class][(int) tmp->cl];
}
diff --git a/gcc/config/aarch64/falkor-tag-collision-avoidance.c b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
index 779dee81f7f..9faed40403c 100644
--- a/gcc/config/aarch64/falkor-tag-collision-avoidance.c
+++ b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
@@ -229,7 +229,7 @@ init_unavailable (tag_insn_info *insn_info, tag_map_t &tag_map, du_head_p head,
if (DEBUG_INSN_P (tmp->insn))
continue;
- IOR_COMPL_HARD_REG_SET (*unavailable, reg_class_contents[tmp->cl]);
+ *unavailable |= ~reg_class_contents[tmp->cl];
super_class = reg_class_superunion[(int) super_class][(int) tmp->cl];
}
diff --git a/gcc/hard-reg-set.h b/gcc/hard-reg-set.h
index 7d41162c495..793b8699c36 100644
--- a/gcc/hard-reg-set.h
+++ b/gcc/hard-reg-set.h
@@ -127,11 +127,6 @@ struct hard_reg_set_container
These take just one argument.
Also define:
- IOR_COMPL_HARD_REG_SET
- This takes two arguments TO and FROM; it reads from FROM
- and combines its complement bitwise into TO.
-
- Also define:
hard_reg_set_subset_p (X, Y), which returns true if X is a subset of Y.
hard_reg_set_equal_p (X, Y), which returns true if X and Y are equal.
@@ -152,8 +147,6 @@ struct hard_reg_set_container
#define CLEAR_HARD_REG_SET(TO) ((TO) = HARD_CONST (0))
#define SET_HARD_REG_SET(TO) ((TO) = ~ HARD_CONST (0))
-#define IOR_COMPL_HARD_REG_SET(TO, FROM) ((TO) |= ~ (FROM))
-
static inline bool
hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
{
@@ -215,13 +208,6 @@ SET_HARD_REG_SET (HARD_REG_SET &set)
set.elts[i] = -1;
}
-inline void
-IOR_COMPL_HARD_REG_SET (HARD_REG_SET &to, const_hard_reg_set from)
-{
- for (unsigned int i = 0; i < ARRAY_SIZE (to.elts); ++i)
- to.elts[i] |= ~from.elts[i];
-}
-
static inline bool
hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
{
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index 354f989e563..3170d7d1689 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -458,10 +458,8 @@ ira_create_object (ira_allocno_t a, int subword)
OBJECT_NUM_CONFLICTS (obj) = 0;
OBJECT_CONFLICT_HARD_REGS (obj) = ira_no_alloc_regs;
OBJECT_TOTAL_CONFLICT_HARD_REGS (obj) = ira_no_alloc_regs;
- IOR_COMPL_HARD_REG_SET (OBJECT_CONFLICT_HARD_REGS (obj),
- reg_class_contents[aclass]);
- IOR_COMPL_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
- reg_class_contents[aclass]);
+ OBJECT_CONFLICT_HARD_REGS (obj) |= ~reg_class_contents[aclass];
+ OBJECT_TOTAL_CONFLICT_HARD_REGS (obj) |= ~reg_class_contents[aclass];
OBJECT_MIN (obj) = INT_MAX;
OBJECT_MAX (obj) = -1;
OBJECT_LIVE_RANGES (obj) = NULL;
@@ -549,10 +547,8 @@ ira_set_allocno_class (ira_allocno_t a, enum reg_class aclass)
ALLOCNO_CLASS (a) = aclass;
FOR_EACH_ALLOCNO_OBJECT (a, obj, oi)
{
- IOR_COMPL_HARD_REG_SET (OBJECT_CONFLICT_HARD_REGS (obj),
- reg_class_contents[aclass]);
- IOR_COMPL_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
- reg_class_contents[aclass]);
+ OBJECT_CONFLICT_HARD_REGS (obj) |= ~reg_class_contents[aclass];
+ OBJECT_TOTAL_CONFLICT_HARD_REGS (obj) |= ~reg_class_contents[aclass];
}
}
diff --git a/gcc/ira.c b/gcc/ira.c
index 7926ae09db9..344275a24a8 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -2370,8 +2370,8 @@ setup_reg_renumber (void)
for (i = 0; i < nwords; i++)
{
obj = ALLOCNO_OBJECT (a, i);
- IOR_COMPL_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
- reg_class_contents[pclass]);
+ OBJECT_TOTAL_CONFLICT_HARD_REGS (obj)
+ |= ~reg_class_contents[pclass];
}
if (ALLOCNO_CALLS_CROSSED_NUM (a) != 0
&& ira_hard_reg_set_intersection_p (hard_regno, ALLOCNO_MODE (a),
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index c2244f57510..0a34ea921d0 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -611,7 +611,7 @@ find_hard_regno_for_1 (int regno, int *cost, int try_only_hard_regno,
}
/* Make sure that all registers in a multi-word pseudo belong to the
required class. */
- IOR_COMPL_HARD_REG_SET (conflict_set, reg_class_contents[rclass]);
+ conflict_set |= ~reg_class_contents[rclass];
lra_assert (rclass != NO_REGS);
rclass_size = ira_class_hard_regs_num[rclass];
best_hard_regno = -1;
diff --git a/gcc/regrename.c b/gcc/regrename.c
index c28023ea72d..d83e1e92d25 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -441,8 +441,7 @@ regrename_find_superclass (du_head_p head, int *pn_uses,
if (DEBUG_INSN_P (tmp->insn))
continue;
n_uses++;
- IOR_COMPL_HARD_REG_SET (*punavailable,
- reg_class_contents[tmp->cl]);
+ *punavailable |= ~reg_class_contents[tmp->cl];
super_class
= reg_class_superunion[(int) super_class][(int) tmp->cl];
}
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 90cee06773b..3c23e6e5eed 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1823,8 +1823,9 @@ find_reg (class insn_chain *chain, int order)
static int regno_pseudo_regs[FIRST_PSEUDO_REGISTER];
static int best_regno_pseudo_regs[FIRST_PSEUDO_REGISTER];
- not_usable = bad_spill_regs | bad_spill_regs_global;
- IOR_COMPL_HARD_REG_SET (not_usable, reg_class_contents[rl->rclass]);
+ not_usable = (bad_spill_regs
+ | bad_spill_regs_global
+ | ~reg_class_contents[rl->rclass]);
CLEAR_HARD_REG_SET (used_by_other_reload);
for (k = 0; k < order; k++)