mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-26 21:33:59 +08:00
ra-build.c (conflicts_between_webs): For webs that cross a call add conflicts to regs_invalidated_by_call.
2004-08-03 Pat Haugen <pthaugen@us.ibm.com> * ra-build.c (conflicts_between_webs): For webs that cross a call add conflicts to regs_invalidated_by_call. From-SVN: r85482
This commit is contained in:
parent
8ee6eb4e8c
commit
8589ae1578
@ -1,3 +1,8 @@
|
||||
2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
|
||||
|
||||
* ra-build.c (conflicts_between_webs): For webs that cross a call add
|
||||
conflicts to regs_invalidated_by_call.
|
||||
|
||||
2004-08-03 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
|
||||
|
@ -2176,9 +2176,7 @@ static void
|
||||
conflicts_between_webs (struct df *df)
|
||||
{
|
||||
unsigned int i;
|
||||
#ifdef STACK_REGS
|
||||
struct dlist *d;
|
||||
#endif
|
||||
bitmap ignore_defs = BITMAP_XMALLOC ();
|
||||
unsigned int have_ignored;
|
||||
unsigned int *pass_cache = xcalloc (num_webs, sizeof (int));
|
||||
@ -2253,18 +2251,24 @@ conflicts_between_webs (struct df *df)
|
||||
free (pass_cache);
|
||||
BITMAP_XFREE (ignore_defs);
|
||||
|
||||
#ifdef STACK_REGS
|
||||
/* Pseudos can't go in stack regs if they are live at the beginning of
|
||||
a block that is reached by an abnormal edge. */
|
||||
for (d = WEBS(INITIAL); d; d = d->next)
|
||||
{
|
||||
struct web *web = DLIST_WEB (d);
|
||||
int j;
|
||||
|
||||
if (web->crosses_call)
|
||||
for (j = 0; j < FIRST_PSEUDO_REGISTER; j++)
|
||||
if (TEST_HARD_REG_BIT (regs_invalidated_by_call, j))
|
||||
record_conflict (web, hardreg2web[j]);
|
||||
|
||||
#ifdef STACK_REGS
|
||||
/* Pseudos can't go in stack regs if they are live at the beginning of
|
||||
a block that is reached by an abnormal edge. */
|
||||
if (web->live_over_abnormal)
|
||||
for (j = FIRST_STACK_REG; j <= LAST_STACK_REG; j++)
|
||||
record_conflict (web, hardreg2web[j]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/* Remember that a web was spilled, and change some characteristics
|
||||
|
Loading…
Reference in New Issue
Block a user