From: Jeff Law Date: Wed, 5 May 1993 23:34:48 +0000 (-0600) Subject: combine.c (combinable_i3pat): Do not make REG_DEAD notes for the stack pointer, frame... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=36a9c2e959284ad91b7266a2ab188e90b6460090;p=gcc.git combine.c (combinable_i3pat): Do not make REG_DEAD notes for the stack pointer, frame pointer or arg pointer. * combine.c (combinable_i3pat): Do not make REG_DEAD notes for the stack pointer, frame pointer or arg pointer. From-SVN: r4345 --- diff --git a/gcc/combine.c b/gcc/combine.c index cd5936d1e9b..66375ff68e5 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1043,9 +1043,18 @@ combinable_i3pat (i3, loc, i2dest, i1dest, i1_not_in_src, pi3dest_killed) return 0; /* If DEST is used in I3, it is being killed in this insn, - so record that for later. */ + so record that for later. + Never add REG_DEAD notes for the FRAME_POINTER_REGNUM or the + STACK_POINTER_REGNUM, since these are always considered to be + live. Similarly for ARG_POINTER_REGNUM if it is fixed. */ if (pi3dest_killed && GET_CODE (dest) == REG - && reg_referenced_p (dest, PATTERN (i3))) + && reg_referenced_p (dest, PATTERN (i3)) + && REGNO (dest) != FRAME_POINTER_REGNUM +#if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM + && (REGNO (dest) != ARG_POINTER_REGNUM + || ! fixed_regs [REGNO (dest)]) +#endif + && REGNO (dest) != STACK_POINTER_REGNUM) { if (*pi3dest_killed) return 0;