* tree-ssa-operands.c (swap_tree_operands): Export.
authordorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Sep 2005 14:54:28 +0000 (14:54 +0000)
committerdorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Sep 2005 14:54:28 +0000 (14:54 +0000)
        * tree.h (swap_tree_operands): Declare.
        * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
        Call swap_tree_operands.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104421 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-operands.c
gcc/tree-vectorizer.c
gcc/tree.h

index 242cda2..118b6b6 100644 (file)
@@ -1,3 +1,10 @@
+2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * tree-ssa-operands.c (swap_tree_operands): Export.
+       * tree.h (swap_tree_operands): Declare.
+       * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
+       Call swap_tree_operands.
+       
 2005-09-19  Richard Henderson  <rth@redhat.com>
 
        * tree-flow.h (merge_alias_info): Declare.
index 0af1995..5b1e445 100644 (file)
@@ -1165,7 +1165,7 @@ create_ssa_artficial_load_stmt (tree new_stmt, tree old_stmt)
     delink_imm_use (use_p);
 }
 
-static void
+void
 swap_tree_operands (tree stmt, tree *exp0, tree *exp1)
 {
   tree op0, op1;
index 1e415cb..bc0f11e 100644 (file)
@@ -1787,8 +1787,7 @@ reduction_code_for_scalar_code (enum tree_code code,
    Conditions 2,3 are tested in vect_mark_stmts_to_be_vectorized.  */
 
 tree
-vect_is_simple_reduction (struct loop *loop ATTRIBUTE_UNUSED, 
-                         tree phi ATTRIBUTE_UNUSED)
+vect_is_simple_reduction (struct loop *loop, tree phi)
 {
   edge latch_e = loop_latch_edge (loop);
   tree loop_arg = PHI_ARG_DEF_FROM_EDGE (phi, latch_e);
@@ -1930,9 +1929,6 @@ vect_is_simple_reduction (struct loop *loop ATTRIBUTE_UNUSED,
       && flow_bb_inside_loop_p (loop, bb_for_stmt (def2))
       && def1 == phi)
     {
-      use_operand_p use;
-      ssa_op_iter iter;
-
       /* Swap operands (just for simplicity - so that the rest of the code
         can assume that the reduction variable is always the last (second)
         argument).  */
@@ -1941,16 +1937,8 @@ vect_is_simple_reduction (struct loop *loop ATTRIBUTE_UNUSED,
           fprintf (vect_dump, "detected reduction: need to swap operands:");
           print_generic_expr (vect_dump, operation, TDF_SLIM);
         }
-
-      /* CHECKME */
-      FOR_EACH_SSA_USE_OPERAND (use, def_stmt, iter, SSA_OP_USE)
-        {
-          tree tuse = USE_FROM_PTR (use);
-          if (tuse == op1)
-            SET_USE (use, op2);
-          else if (tuse == op2)
-            SET_USE (use, op1);
-        }
+      swap_tree_operands (def_stmt, &TREE_OPERAND (operation, 0), 
+                                   &TREE_OPERAND (operation, 1));
       return def_stmt;
     }
   else
index fb3a645..198c443 100644 (file)
@@ -3857,6 +3857,7 @@ extern tree constant_boolean_node (int, tree);
 extern tree build_low_bits_mask (tree, unsigned);
 
 extern bool tree_swap_operands_p (tree, tree, bool);
+extern void swap_tree_operands (tree, tree *, tree *);
 extern enum tree_code swap_tree_comparison (enum tree_code);
 
 extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);