diff options
author | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-12 07:09:07 +0000 |
---|---|---|
committer | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-12 07:09:07 +0000 |
commit | 7aa0d35066596b3c0fefb385bbe1ee43f75f8ec1 (patch) | |
tree | 7547f479237ee79f26fd81c529e65dfa6d42573b /gcc/tree-parloops.c | |
parent | 24fb1d3ff6a2ce44db82978089367a2d1e77965e (diff) | |
download | gcc-7aa0d35066596b3c0fefb385bbe1ee43f75f8ec1.tar.gz |
* tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
with additional argument.
* tree-vectorizer.h (enum vect_def_type): Add
vect_double_reduction_def.
(vect_is_simple_reduction): Add argument.
* tree-vect-loop.c (vect_determine_vectorization_factor): Fix
indentation.
(vect_analyze_scalar_cycles_1): Detect double reduction. Call
vect_is_simple_reduction with additional argument.
(vect_analyze_loop_operations): Handle exit phi nodes in case of
double reduction.
(reduction_code_for_scalar_code): Handle additional codes by
returning ERROR_MARK for them. Fix comment and indentation.
(vect_is_simple_reduction): Fix comment, add argument to specify
double reduction. Detect double reduction.
(get_initial_def_for_induction): Fix indentation.
(get_initial_def_for_reduction): Fix comment and indentation.
Handle double reduction. Create initial definitions that do not
require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
(vect_create_epilog_for_reduction): Fix comment, add argument to
handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
epilogue result extraction. Create double reduction phi node and
replace relevant uses.
(vectorizable_reduction): Call vect_is_simple_reduction with
additional argument. Fix indentation. Update epilogue code treatment
according to the changes in reduction_code_for_scalar_code. Check
for double reduction. Call vect_create_epilog_for_reduction with
additional argument.
* tree-vect-stmts.c (process_use): Handle double reduction, update
documentation.
(vect_mark_stmts_to_be_vectorized): Handle double reduction.
(vect_get_vec_def_for_operand): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149526 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r-- | gcc/tree-parloops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 5f11fc77a1b..28c96a26f59 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -284,13 +284,15 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, { gimple phi = gsi_stmt (gsi); gimple reduc_stmt = NULL; + bool dummy; /* ??? TODO: Change this into a generic function that recognizes reductions. */ if (!is_gimple_reg (PHI_RESULT (phi))) continue; if (simple_loop_info) - reduc_stmt = vect_is_simple_reduction (simple_loop_info, phi, true); + reduc_stmt = vect_is_simple_reduction (simple_loop_info, phi, true, + &dummy); /* Create a reduction_info struct, initialize it and insert it to the reduction list. */ |