summaryrefslogtreecommitdiffstats
path: root/gcc/sched.c
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>1993-09-24 19:54:46 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>1993-09-24 19:54:46 +0000
commitbda10a9ce459f1d0be69e57ea95121db04abcf61 (patch)
treecc8ddbb9e89cd08480119222653daa5f7d041a66 /gcc/sched.c
parent6f7c45ae28e4d79e6f23fb6bffd4d9127d0c9919 (diff)
downloadppe42-gcc-bda10a9ce459f1d0be69e57ea95121db04abcf61.tar.gz
ppe42-gcc-bda10a9ce459f1d0be69e57ea95121db04abcf61.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5466 138bc75d-0d04-0410-961f-82ee72b054a4
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 2ec48f42fe7..b067d36abaa 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
OpenPOWER on IntegriCloud