aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched.c
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1993-09-24 19:54:46 +0000
committerDoug Evans <dje@gnu.org>1993-09-24 19:54:46 +0000
commitcd0ca9ad6ddec1af5ac76d3c8cee303ce89cbc51 (patch)
treecc8ddbb9e89cd08480119222653daa5f7d041a66 /gcc/sched.c
parentb3b6c9b3f3dab2f1ae27beeb9ebe5b732411c695 (diff)
downloadgcc-cd0ca9ad6ddec1af5ac76d3c8cee303ce89cbc51.zip
gcc-cd0ca9ad6ddec1af5ac76d3c8cee303ce89cbc51.tar.gz
gcc-cd0ca9ad6ddec1af5ac76d3c8cee303ce89cbc51.tar.bz2
sched.c: (memrefs_conflict_p): We can work out whether references via...
* sched.c: (memrefs_conflict_p): We can work out whether references via hard_frame_pointer_rtx are likely to conflict. (attach_deaths, case REG): Don't add death notes for HARD_FRAME_POINTER_REGNUM. From-SVN: r5466
Diffstat (limited to 'gcc/sched.c')
-rw-r--r--gcc/sched.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/sched.c b/gcc/sched.c
index 2ec48f4..b067d36 100644
--- a/gcc/sched.c
+++ b/gcc/sched.c
@@ -563,7 +563,8 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
return (xsize == 0 || ysize == 0 ||
(c >= 0 && xsize > c) || (c < 0 && ysize+c > 0));
- if (y == frame_pointer_rtx || y == stack_pointer_rtx)
+ if (y == frame_pointer_rtx || y == hard_frame_pointer_rtx
+ || y == stack_pointer_rtx)
{
rtx t = y;
int tsize = ysize;
@@ -571,7 +572,8 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
x = t; xsize = tsize;
}
- if (x == frame_pointer_rtx || x == stack_pointer_rtx)
+ if (x == frame_pointer_rtx || x == hard_frame_pointer_rtx
+ || x == stack_pointer_rtx)
{
rtx y1;
@@ -2663,6 +2665,9 @@ attach_deaths (x, insn, set_p)
STACK_POINTER_REGNUM, since these are always considered to be
live. Similarly for ARG_POINTER_REGNUM if it is fixed. */
if (regno != FRAME_POINTER_REGNUM
+#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
+ && ! (regno == HARD_FRAME_POINTER_REGNUM)
+#endif
#if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
&& ! (regno == ARG_POINTER_REGNUM && fixed_regs[regno])
#endif