mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-26 02:24:01 +08:00
global.c (regclass_intersect): Remove.
* global.c (regclass_intersect): Remove. (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead. From-SVN: r92729
This commit is contained in:
parent
8c5cacfdca
commit
2fdb7cd791
@ -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>
|
2004-12-30 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* config/ia64/ia64.c (ia64_function_value): Use PARALLEL for
|
* config/ia64/ia64.c (ia64_function_value): Use PARALLEL for
|
||||||
|
26
gcc/global.c
26
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 allocate_bb_info (void);
|
||||||
static void free_bb_info (void);
|
static void free_bb_info (void);
|
||||||
static bool check_earlyclobber (rtx);
|
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 void mark_reg_use_for_earlyclobber_1 (rtx *, void *);
|
||||||
static int mark_reg_use_for_earlyclobber (rtx *, void *);
|
static int mark_reg_use_for_earlyclobber (rtx *, void *);
|
||||||
static void calculate_local_reg_bb_info (void);
|
static void calculate_local_reg_bb_info (void);
|
||||||
@ -2180,22 +2179,6 @@ check_earlyclobber (rtx insn)
|
|||||||
return found;
|
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
|
/* The function checks that pseudo-register *X has a class
|
||||||
intersecting with the class of pseudo-register could be early
|
intersecting with the class of pseudo-register could be early
|
||||||
clobbered in the same insn.
|
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);
|
pref_class = reg_preferred_class (regno);
|
||||||
alt_class = reg_alternate_class (regno);
|
alt_class = reg_alternate_class (regno);
|
||||||
for (i = VARRAY_ACTIVE_SIZE (earlyclobber_regclass) - 1; i >= 0; i--)
|
for (i = VARRAY_ACTIVE_SIZE (earlyclobber_regclass) - 1; i >= 0; i--)
|
||||||
if (regclass_intersect (VARRAY_INT (earlyclobber_regclass, i),
|
if (reg_classes_intersect_p (VARRAY_INT (earlyclobber_regclass, i),
|
||||||
pref_class)
|
pref_class)
|
||||||
|| (VARRAY_INT (earlyclobber_regclass, i) != NO_REGS
|
|| (VARRAY_INT (earlyclobber_regclass, i) != NO_REGS
|
||||||
&& regclass_intersect (VARRAY_INT (earlyclobber_regclass, i),
|
&& reg_classes_intersect_p (VARRAY_INT (earlyclobber_regclass,
|
||||||
alt_class)))
|
i),
|
||||||
|
alt_class)))
|
||||||
{
|
{
|
||||||
bitmap_set_bit (bb_info->earlyclobber, regno);
|
bitmap_set_bit (bb_info->earlyclobber, regno);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user