diff options
author | Dorit Nuzman <dorit@il.ibm.com> | 2005-09-19 14:54:28 +0000 |
---|---|---|
committer | Dorit Nuzman <dorit@gcc.gnu.org> | 2005-09-19 14:54:28 +0000 |
commit | 3c7d0735f564a48ea13b5246c5675cabaf53d0c6 (patch) | |
tree | 2900f810d56e7c95c656926bb2065f9957bcf714 | |
parent | 99c09897c242936f17490c0340ac272fc90b67f0 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-operands.c | 2 | ||||
-rw-r--r-- | gcc/tree-vectorizer.c | 18 | ||||
-rw-r--r-- | gcc/tree.h | 1 |
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 @@ -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 *); |