From: Richard Kenner Date: Tue, 18 Oct 1994 23:10:20 +0000 (-0400) Subject: (can_combine_p): Don't combine into CALL_INSN where DEST is a global X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4dca5ec5b8066d1ba161e3c5c93d6ff383bcf567;p=gcc.git (can_combine_p): Don't combine into CALL_INSN where DEST is a global reg. From-SVN: r8305 --- diff --git a/gcc/combine.c b/gcc/combine.c index 27875e51e5e..4399bb0863e 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -875,7 +875,11 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) /* Can't merge a function call. */ || GET_CODE (src) == CALL /* Don't eliminate a function call argument. */ - || (GET_CODE (i3) == CALL_INSN && find_reg_fusage (i3, USE, dest)) + || (GET_CODE (i3) == CALL_INSN + && (find_reg_fusage (i3, USE, dest) + || (GET_CODE (dest) == REG + && REGNO (dest) < FIRST_PSEUDO_REGISTER + && global_regs[REGNO (dest)]))) /* Don't substitute into an incremented register. */ || FIND_REG_INC_NOTE (i3, dest) || (succ && FIND_REG_INC_NOTE (succ, dest))