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