mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 01:27:15 +08:00
global.c (prune_preferences): Move some invariants out of the inner loop.
* global.c (prune_preferences): Move some invariants out of the inner loop. From-SVN: r28691
This commit is contained in:
parent
7bc699731b
commit
ea1637e9e5
@ -1,3 +1,8 @@
|
||||
Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* global.c (prune_preferences): Move some invariants out of the
|
||||
inner loop.
|
||||
|
||||
Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
|
||||
|
||||
* configure.in (alpha*-dec-osf*): Add osf5.
|
||||
|
20
gcc/global.c
20
gcc/global.c
@ -864,7 +864,7 @@ prune_preferences ()
|
||||
|
||||
for (i = max_allocno - 1; i >= 0; i--)
|
||||
{
|
||||
HARD_REG_SET temp;
|
||||
HARD_REG_SET temp, temp2;
|
||||
|
||||
allocno = allocno_order[i];
|
||||
COPY_HARD_REG_SET (temp, hard_reg_conflicts[allocno]);
|
||||
@ -882,25 +882,27 @@ prune_preferences ()
|
||||
AND_COMPL_HARD_REG_SET (hard_reg_copy_preferences[allocno], temp);
|
||||
AND_COMPL_HARD_REG_SET (hard_reg_full_preferences[allocno], temp);
|
||||
|
||||
CLEAR_HARD_REG_SET (regs_someone_prefers[allocno]);
|
||||
|
||||
/* Merge in the preferences of lower-priority registers (they have
|
||||
already been pruned). If we also prefer some of those registers,
|
||||
don't exclude them unless we are of a smaller size (in which case
|
||||
we want to give the lower-priority allocno the first chance for
|
||||
these registers). */
|
||||
CLEAR_HARD_REG_SET (temp);
|
||||
CLEAR_HARD_REG_SET (temp2);
|
||||
for (j = i + 1; j < max_allocno; j++)
|
||||
if (CONFLICTP (allocno, allocno_order[j])
|
||||
|| CONFLICTP (allocno_order[j], allocno))
|
||||
{
|
||||
COPY_HARD_REG_SET (temp,
|
||||
hard_reg_full_preferences[allocno_order[j]]);
|
||||
if (allocno_size[allocno_order[j]] <= allocno_size[allocno])
|
||||
AND_COMPL_HARD_REG_SET (temp,
|
||||
hard_reg_full_preferences[allocno]);
|
||||
|
||||
IOR_HARD_REG_SET (regs_someone_prefers[allocno], temp);
|
||||
IOR_HARD_REG_SET (temp,
|
||||
hard_reg_full_preferences[allocno_order[j]]);
|
||||
else
|
||||
IOR_HARD_REG_SET (temp2,
|
||||
hard_reg_full_preferences[allocno_order[j]]);
|
||||
}
|
||||
AND_COMPL_HARD_REG_SET (temp, hard_reg_full_preferences[allocno]);
|
||||
IOR_HARD_REG_SET (temp, temp2);
|
||||
COPY_HARD_REG_SET (regs_someone_prefers[allocno], temp);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user