(can_combine_p): Don't combine into CALL_INSN where DEST is a global
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 18 Oct 1994 23:10:20 +0000 (19:10 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 18 Oct 1994 23:10:20 +0000 (19:10 -0400)
reg.

From-SVN: r8305

gcc/combine.c

index 27875e51e5e7d8781e2f11576027dda4da823c47..4399bb0863e794a473615cd360cfa5b4a51042cb 100644 (file)
@@ -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))