diff options
author | Steven Bosscher <stevenb@suse.de> | 2004-12-30 09:09:07 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2004-12-30 09:09:07 +0000 |
commit | 2fdb7cd791dc85ada9ffc675623fc0389af78794 (patch) | |
tree | a530aedece694ab387659c1709e4d6eb9f20abbb | |
parent | 8c5cacfdca4cb9d6351e19922c4c1d9eeb0841bb (diff) | |
download | gcc-2fdb7cd791dc85ada9ffc675623fc0389af78794.zip gcc-2fdb7cd791dc85ada9ffc675623fc0389af78794.tar.gz gcc-2fdb7cd791dc85ada9ffc675623fc0389af78794.tar.bz2 |
global.c (regclass_intersect): Remove.
* global.c (regclass_intersect): Remove.
(mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead.
From-SVN: r92729
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/global.c | 26 |
2 files changed, 10 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3be00eb..4c3d8a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-30 Steven Bosscher <stevenb@suse.de> + + * global.c (regclass_intersect): Remove. + (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead. + 2004-12-30 Richard Henderson <rth@redhat.com> * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for diff --git a/gcc/global.c b/gcc/global.c index 5779e4e..35fec4a 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -309,7 +309,6 @@ static void reg_dies (int, enum machine_mode, struct insn_chain *); static void allocate_bb_info (void); static void free_bb_info (void); static bool check_earlyclobber (rtx); -static bool regclass_intersect (enum reg_class, enum reg_class); static void mark_reg_use_for_earlyclobber_1 (rtx *, void *); static int mark_reg_use_for_earlyclobber (rtx *, void *); static void calculate_local_reg_bb_info (void); @@ -2180,22 +2179,6 @@ check_earlyclobber (rtx insn) return found; } -/* The function returns true if register classes C1 and C2 intersect. */ - -static bool -regclass_intersect (enum reg_class c1, enum reg_class c2) -{ - HARD_REG_SET rs, zero; - - CLEAR_HARD_REG_SET (zero); - COPY_HARD_REG_SET(rs, reg_class_contents [c1]); - AND_HARD_REG_SET (rs, reg_class_contents [c2]); - GO_IF_HARD_REG_EQUAL (zero, rs, yes); - return true; - yes: - return false; -} - /* The function checks that pseudo-register *X has a class intersecting with the class of pseudo-register could be early clobbered in the same insn. @@ -2218,11 +2201,12 @@ mark_reg_use_for_earlyclobber (rtx *x, void *data ATTRIBUTE_UNUSED) pref_class = reg_preferred_class (regno); alt_class = reg_alternate_class (regno); for (i = VARRAY_ACTIVE_SIZE (earlyclobber_regclass) - 1; i >= 0; i--) - if (regclass_intersect (VARRAY_INT (earlyclobber_regclass, i), - pref_class) + if (reg_classes_intersect_p (VARRAY_INT (earlyclobber_regclass, i), + pref_class) || (VARRAY_INT (earlyclobber_regclass, i) != NO_REGS - && regclass_intersect (VARRAY_INT (earlyclobber_regclass, i), - alt_class))) + && reg_classes_intersect_p (VARRAY_INT (earlyclobber_regclass, + i), + alt_class))) { bitmap_set_bit (bb_info->earlyclobber, regno); break; |