Commit 3e53ea48 by Richard Kenner

(expand_fix): Don't copy TARGET to TO if same.

From-SVN: r11017
parent 995d54dd
/* Expand the basic unary and binary arithmetic operations, for GNU compiler. /* Expand the basic unary and binary arithmetic operations, for GNU compiler.
Copyright (C) 1987, 88, 92, 93, 94, 1995 Free Software Foundation, Inc. Copyright (C) 1987, 88, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
This file is part of GNU CC. This file is part of GNU CC.
...@@ -3884,10 +3884,19 @@ expand_fix (to, from, unsignedp) ...@@ -3884,10 +3884,19 @@ expand_fix (to, from, unsignedp)
GET_MODE (to), from)); GET_MODE (to), from));
} }
if (GET_MODE (to) == GET_MODE (target)) /* Do NOT copy, if "to" is the same as "target". See
emit_move_insn (to, target); expand_float(). It used to cause a bogus "clobber" of the
else input, causing it's ancestors to be deleted. Hopefully the call
convert_move (to, target, 0); is just unnecessary now, causing extra time in optimization, or
some extra instructions.
/ Hans-Peter.Nilsson@axis.se */
if (target != to)
{
if (GET_MODE (to) == GET_MODE (target))
emit_move_insn (to, target);
else
convert_move (to, target, 0);
}
} }
static optab static optab
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment