aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDorit Nuzman <dorit@il.ibm.com>2005-09-19 14:54:28 +0000
committerDorit Nuzman <dorit@gcc.gnu.org>2005-09-19 14:54:28 +0000
commit3c7d0735f564a48ea13b5246c5675cabaf53d0c6 (patch)
tree2900f810d56e7c95c656926bb2065f9957bcf714
parent99c09897c242936f17490c0340ac272fc90b67f0 (diff)
downloadgcc-3c7d0735f564a48ea13b5246c5675cabaf53d0c6.zip
gcc-3c7d0735f564a48ea13b5246c5675cabaf53d0c6.tar.gz
gcc-3c7d0735f564a48ea13b5246c5675cabaf53d0c6.tar.bz2
tree-ssa-operands.c (swap_tree_operands): Export.
* 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. From-SVN: r104421
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-operands.c2
-rw-r--r--gcc/tree-vectorizer.c18
-rw-r--r--gcc/tree.h1
4 files changed, 12 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 242cda2..118b6b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index 0af1995..5b1e445 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -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;
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 1e415cb..bc0f11e 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -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
diff --git a/gcc/tree.h b/gcc/tree.h
index fb3a645..198c443 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -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 *);