r149526 - in /trunk/gcc: ChangeLog testsuite/Ch...
irar@gcc.gnu.org
irar@gcc.gnu.org
Sun Jul 12 07:09:00 GMT 2009
Author: irar
Date: Sun Jul 12 07:09:07 2009
New Revision: 149526
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149526
Log:
* 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.
Added:
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-1.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-2.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-3.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-4.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-6.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-7.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
trunk/gcc/tree-parloops.c
trunk/gcc/tree-vect-loop.c
trunk/gcc/tree-vect-stmts.c
trunk/gcc/tree-vectorizer.h
More information about the Gcc-cvs
mailing list