cse.c (approx_reg_cost_1, [...]): Recode to not use regsets.
2002-05-23 David S. Miller <davem@redhat.com> * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use regsets. From-SVN: r53793
This commit is contained in:
parent
da2c31aee9
commit
c863f8c2fa
@ -1,3 +1,8 @@
|
||||
2002-05-23 David S. Miller <davem@redhat.com>
|
||||
|
||||
* cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
|
||||
regsets.
|
||||
|
||||
2002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* c-common.c (warn_nonnull): Declare.
|
||||
|
41
gcc/cse.c
41
gcc/cse.c
@ -720,10 +720,25 @@ approx_reg_cost_1 (xp, data)
|
||||
void *data;
|
||||
{
|
||||
rtx x = *xp;
|
||||
regset set = (regset) data;
|
||||
int *cost_p = data;
|
||||
|
||||
if (x && GET_CODE (x) == REG)
|
||||
SET_REGNO_REG_SET (set, REGNO (x));
|
||||
{
|
||||
unsigned int regno = REGNO (x);
|
||||
|
||||
if (! CHEAP_REGNO (regno))
|
||||
{
|
||||
if (regno < FIRST_PSEUDO_REGISTER)
|
||||
{
|
||||
if (SMALL_REGISTER_CLASSES)
|
||||
return 1;
|
||||
*cost_p += 2;
|
||||
}
|
||||
else
|
||||
*cost_p += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -736,28 +751,12 @@ static int
|
||||
approx_reg_cost (x)
|
||||
rtx x;
|
||||
{
|
||||
regset_head set;
|
||||
int i;
|
||||
int cost = 0;
|
||||
int hardregs = 0;
|
||||
|
||||
INIT_REG_SET (&set);
|
||||
for_each_rtx (&x, approx_reg_cost_1, (void *) &set);
|
||||
if (for_each_rtx (&x, approx_reg_cost_1, (void *) &cost))
|
||||
return MAX_COST;
|
||||
|
||||
EXECUTE_IF_SET_IN_REG_SET
|
||||
(&set, 0, i,
|
||||
{
|
||||
if (! CHEAP_REGNO (i))
|
||||
{
|
||||
if (i < FIRST_PSEUDO_REGISTER)
|
||||
hardregs++;
|
||||
|
||||
cost += i < FIRST_PSEUDO_REGISTER ? 2 : 1;
|
||||
}
|
||||
});
|
||||
|
||||
CLEAR_REG_SET (&set);
|
||||
return hardregs && SMALL_REGISTER_CLASSES ? MAX_COST : cost;
|
||||
return cost;
|
||||
}
|
||||
|
||||
/* Return a negative value if an rtx A, whose costs are given by COST_A
|
||||
|
Loading…
Reference in New Issue
Block a user