]> gcc.gnu.org Git - gcc.git/commitdiff
(expand_fix): Don't copy TARGET to TO if same.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Jan 1996 13:20:15 +0000 (08:20 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Jan 1996 13:20:15 +0000 (08:20 -0500)
From-SVN: r11017

gcc/optabs.c

index cae4c4e9bd090e4e940b4037b3d3a36bef71042a..a2bad2924d0d2c14d321a4814a4154b955adee88 100644 (file)
@@ -1,5 +1,5 @@
 /* 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.
 
@@ -3884,10 +3884,19 @@ expand_fix (to, from, unsignedp)
                                   GET_MODE (to), from));
     }
       
-  if (GET_MODE (to) == GET_MODE (target))
-    emit_move_insn (to, target);
-  else
-    convert_move (to, target, 0);
+  /* Do NOT copy, if "to" is the same as "target".  See
+     expand_float().  It used to cause a bogus "clobber" of the
+     input, causing it's ancestors to be deleted.  Hopefully the call
+     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);
+    }
 }
 \f
 static optab
This page took 0.071263 seconds and 5 git commands to generate.