OSDN Git Service

* expr.c (expand_assignment): Optimize away no-op moves where the
[pf3gnuchains/gcc-fork.git] / gcc / expr.c
index b0e958c..f59cc42 100644 (file)
@@ -3988,13 +3988,16 @@ expand_assignment (tree to, tree from)
   rtx result;
 
   /* Don't crash if the lhs of the assignment was erroneous.  */
-
   if (TREE_CODE (to) == ERROR_MARK)
     {
       result = expand_normal (from);
       return;
     }
 
+  /* Optimize away no-op moves without side-effects.  */
+  if (operand_equal_p (to, from, 0))
+    return;
+
   /* Assignment of a structure component needs special treatment
      if the structure component's rtx is not simply a MEM.
      Assignment of an array element at a constant index, and assignment of