aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-06-29 01:41:19 +0200
committerJeff Law <law@gcc.gnu.org>2002-06-28 17:41:19 -0600
commit6bdb8dd69517ba58d3c8281fef8d7455f1dccfe9 (patch)
tree1ba1471b88635ad1e6a1d35451607c96354b03dd /gcc/gcse.c
parentf1b1186f6c7287df5685e8ebf21d5d4ce73d5647 (diff)
downloadgcc-6bdb8dd69517ba58d3c8281fef8d7455f1dccfe9.zip
gcc-6bdb8dd69517ba58d3c8281fef8d7455f1dccfe9.tar.gz
gcc-6bdb8dd69517ba58d3c8281fef8d7455f1dccfe9.tar.bz2
* gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
From-SVN: r55087
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index daeaa90..665be1f 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