From 9aecb7878fc0e072f1e6446d0dc18d102b68f67c Mon Sep 17 00:00:00 2001 From: kenner Date: Tue, 5 Jul 1994 23:12:04 +0000 Subject: [PATCH] (can_combine_p): Don't check for replacing arg of function here. (can_combine_p): Do it here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7657 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/combine.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/gcc/combine.c b/gcc/combine.c index 0cd1ee8..9e929ed 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -878,6 +878,8 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) || (rtx_equal_p (src, dest) && find_reg_note (insn, REG_EQUAL, NULL_RTX)) /* 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)) /* Don't substitute into an incremented register. */ || FIND_REG_INC_NOTE (i3, dest) || (succ && FIND_REG_INC_NOTE (succ, dest)) @@ -1218,17 +1220,6 @@ try_combine (i3, i2, i1) || find_reg_note (i3, REG_LIBCALL, NULL_RTX)) return 0; - /* If I1 or I2 is an argument set insn, and I3 is the actual - CALL_INSN using it as argument, never combine the two. - This to prevent the elimination of insns that setup a - parameter register for a CALL_INSN. */ - if (GET_CODE (i3) == CALL_INSN - && (((temp = single_set (i2)) - && find_reg_fusage (i3, USE, SET_DEST (temp))) - || (i1 && (temp = single_set (i1)) - && find_reg_fusage (i3, USE, SET_DEST (temp))))) - return 0; - combine_attempts++; undobuf.num_undo = previous_num_undos = 0; -- 2.7.4