From 6bdb8dd69517ba58d3c8281fef8d7455f1dccfe9 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 29 Jun 2002 01:41:19 +0200 Subject: [PATCH] * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move. From-SVN: r55087 --- gcc/ChangeLog | 4 ++++ gcc/gcse.c | 12 +++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f5cfca8cd6b..dcdefc80e54 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-06-28 Jan Hubicka + + * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move. + 2002-06-28 Stephen Clarke * combine.c (combine_simplify_rtx): Pass the mode of the diff --git a/gcc/gcse.c b/gcc/gcse.c index daeaa909144..665be1fd9a3 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -5144,21 +5144,19 @@ gcse_emit_move_after (src, dest, insn) rtx src, dest, insn; { rtx new; - rtx set = single_set (insn); + rtx set = single_set (insn), set2; rtx note; rtx eqv; /* This should never fail since we're creating a reg->reg copy we've verified to be valid. */ - new = emit_insn_after (gen_rtx_SET (VOIDmode, dest, src), insn); - - /* want_to_gcse_p verifies that this move will be valid. Still this call - is mandatory as it may create clobbers required by the pattern. */ - if (insn_invalid_p (insn)) - abort (); + new = emit_insn_after (gen_move_insn (dest, src), insn); /* Note the equivalence for local CSE pass. */ + set2 = single_set (new); + if (!set2 || !rtx_equal_p (SET_DEST (set2), dest)) + return new; if ((note = find_reg_equal_equiv_note (insn))) eqv = XEXP (note, 0); else -- 2.11.4.GIT