OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / tree-ssa-dom.c
index 4d95261..909bfeb 100644 (file)
@@ -1146,11 +1146,12 @@ record_equality (tree x, tree y)
      (by depth), then use that.
      Otherwise it doesn't matter which value we choose, just so
      long as we canonicalize on one value.  */
-  if (TREE_INVARIANT (y))
+  if (is_gimple_min_invariant (y))
     ;
-  else if (TREE_INVARIANT (x) || (loop_depth_of_name (x) <= loop_depth_of_name (y)))
+  else if (is_gimple_min_invariant (x)
+          || (loop_depth_of_name (x) <= loop_depth_of_name (y)))
     prev_x = x, x = y, y = prev_x, prev_x = prev_y;
-  else if (prev_x && TREE_INVARIANT (prev_x))
+  else if (prev_x && is_gimple_min_invariant (prev_x))
     x = y, y = prev_x, prev_x = prev_y;
   else if (prev_y && TREE_CODE (prev_y) != VALUE_HANDLE)
     y = prev_y;
@@ -1594,38 +1595,13 @@ record_equivalences_from_stmt (tree stmt, int may_optimize_p, stmt_ann_t ann)
       tree rhs = GIMPLE_STMT_OPERAND (stmt, 1);
       tree new_stmt;
 
-      /* FIXME: If the LHS of the assignment is a bitfield and the RHS
-         is a constant, we need to adjust the constant to fit into the
-         type of the LHS.  If the LHS is a bitfield and the RHS is not
-        a constant, then we can not record any equivalences for this
-        statement since we would need to represent the widening or
-        narrowing of RHS.  This fixes gcc.c-torture/execute/921016-1.c
-        and should not be necessary if GCC represented bitfields
-        properly.  */
-      if (lhs_code == COMPONENT_REF
-         && DECL_BIT_FIELD (TREE_OPERAND (lhs, 1)))
-       {
-         if (TREE_CONSTANT (rhs))
-           rhs = widen_bitfield (rhs, TREE_OPERAND (lhs, 1), lhs);
-         else
-           rhs = NULL;
-
-         /* If the value overflowed, then we can not use this equivalence.  */
-         if (rhs && ! is_gimple_min_invariant (rhs))
-           rhs = NULL;
-       }
-
-      if (rhs)
-       {
-         /* Build a new statement with the RHS and LHS exchanged.  */
-         new_stmt = build_gimple_modify_stmt (rhs, lhs);
-
-         create_ssa_artificial_load_stmt (new_stmt, stmt, true);
+      /* Build a new statement with the RHS and LHS exchanged.  */
+      new_stmt = build_gimple_modify_stmt (rhs, lhs);
+      create_ssa_artificial_load_stmt (new_stmt, stmt, true);
 
-         /* Finally enter the statement into the available expression
-            table.  */
-         lookup_avail_expr (new_stmt, true);
-       }
+      /* Finally enter the statement into the available expression
+        table.  */
+      lookup_avail_expr (new_stmt, true);
     }
 }